数据库整理第3章 sql

上传人:夏** 文档编号:567476522 上传时间:2024-07-20 格式:PPT 页数:104 大小:1.60MB
返回 下载 相关 举报
数据库整理第3章 sql_第1页
第1页 / 共104页
数据库整理第3章 sql_第2页
第2页 / 共104页
数据库整理第3章 sql_第3页
第3页 / 共104页
数据库整理第3章 sql_第4页
第4页 / 共104页
数据库整理第3章 sql_第5页
第5页 / 共104页
点击查看更多>>
资源描述

《数据库整理第3章 sql》由会员分享,可在线阅读,更多相关《数据库整理第3章 sql(104页珍藏版)》请在金锄头文库上搜索。

1、第第3章章 关系数据库标准语言关系数据库标准语言SQL朋朋骡骡辑辑阑阑蚂蚂汉汉闯闯维维猾猾缔缔借借贬贬游游否否厦厦凸凸己己拽拽兜兜链链巾巾锦锦褥褥砾砾拷拷竭竭酚酚蚤蚤验验酗酗终终末末数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20082 23.1 SQL语言的基本概念与特点语言的基本概念与特点3.2 了解了解SQL Server 20083.3 创建与使用数据库创建与使用数据库3.4 创建与使用数据表创建与使用数据表3.5 创建与使用索引创建与使用索引3.6 数据查询数据查询3.7 数据更新数据更新3.8 视图视图3.9 数据控制数据控制楚楚

2、竹竹封封吱吱树树家家喇喇博博卜卜梦梦宝宝抽抽径径古古蕾蕾宏宏脊脊雄雄阎阎歪歪焦焦追追古古锯锯蹄蹄香香尝尝玻玻圆圆狞狞轮轮失失数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20083 3结构化查询语言结构化查询语言Structured Query Language 数据查询数据查询数据定义数据定义数据操纵数据操纵 数据控制数据控制 SQL简洁、方便实用、功能齐全,已成为目前应用最广泛的关系简洁、方便实用、功能齐全,已成为目前应用最广泛的关系数据库语言。数据库语言。室室赴赴忌忌合合秒秒甸甸差差披披矣矣蒜蒜言言碳碳鸽鸽梯梯查查歌歌区区倾倾凡凡竞竞禄禄

3、富富一一吱吱稍稍厨厨欲欲宫宫绪绪忠忠腾腾铃铃数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20084 43.1 SQL语言的基本概念与特点语言的基本概念与特点 3.1.1 SQL语言的发展及标准化语言的发展及标准化 SQL语言的发展语言的发展 Chamberlin Chamberlin SEQUELSQL大型数据库大型数据库SybaseINFORMIXSQLServerOracleDB2INGRES-小型数据库小型数据库FoxProAccess悄悄翻翻癸癸厢厢镀镀乖乖饺饺流流演演紫紫始始役役颂颂庸庸葛葛起起盐盐涛涛搭搭秧秧吻吻挝挝提提掀掀盲盲栓

4、栓洒洒布布恼恼陵陵昭昭戮戮数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20085 53.1.2 SQL语言的基本概念语言的基本概念 基本表(基本表(Base Table) 一个关系对应一个基本表一个关系对应一个基本表 一个或多个基本表对应一个存储文件一个或多个基本表对应一个存储文件 视图(视图(View) 视图是从一个或几个基本表导出的表,是一个虚拟的视图是从一个或几个基本表导出的表,是一个虚拟的表表 S(SNo,SN,Sex,Age,Dept) S_Male(SNo,SN,Age,Dept)无数据,只有定义无数据,只有定义Sex=男男在数据

5、库中只存有在数据库中只存有S_Male的定义,数的定义,数据仍在据仍在S表中表中亚亚损损贴贴小小斜斜喂喂呐呐浴浴饰饰尾尾段段锅锅寥寥籽籽喀喀臃臃账账删删柞柞嗽嗽膏膏荷荷峨峨维维墒墒此此突突堵堵堕堕兰兰趾趾孺孺数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20086 6SQL语言支持的关系数据库的三级模式结构语言支持的关系数据库的三级模式结构佳佳姬姬唾唾颁颁隙隙治治胳胳屋屋神神扎扎秩秩眠眠患患档档牌牌蛆蛆惨惨递递骡骡骏骏僚僚恃恃监监得得族族色色距距象象稗稗鲜鲜码码菲菲数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章

6、章 sql - 20087 73.1.3 SQL语言的主要特点语言的主要特点 SQL语言是类似于英语的自然语言,简洁易用语言是类似于英语的自然语言,简洁易用 SQL语言是一种非过程语言语言是一种非过程语言 SQL语言是一种面向集合的语言语言是一种面向集合的语言 SQL语言既是自含式语言,又是嵌入式语言语言既是自含式语言,又是嵌入式语言SQL语言具有数据查询、数据定义、数据操纵和数据控语言具有数据查询、数据定义、数据操纵和数据控制四种功能制四种功能 散散泪泪谁谁耳耳埋埋闹闹吸吸节节甸甸硅硅瓮瓮颇颇透透阮阮赠赠禽禽犯犯咏咏禾禾蓑蓑柔柔裳裳兜兜触触及及会会粕粕拾拾隶隶丈丈牧牧币币数数据据库库整整理理

7、第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20088 83.2 了解了解SQL Server 2008 企业版企业版SQL Server 2008 是满足企业联机事务处理和数据仓库应用程序高标准要求的综合是满足企业联机事务处理和数据仓库应用程序高标准要求的综合数据平台。数据平台。标准版标准版SQL Server 2008 Standard 是一个完整的数据管理和商业智能平台,为正在运行是一个完整的数据管理和商业智能平台,为正在运行的部门应用程序提供一流的易用性和易管理性。的部门应用程序提供一流的易用性和易管理性。Specialized 版本版本工作组版工作组版

8、在此可靠的数据管理和报表平台上运行分机位置,提供安全性的远程同步和管理在此可靠的数据管理和报表平台上运行分机位置,提供安全性的远程同步和管理功能。功能。网络版网络版借助于面向借助于面向 Web 服务环境的高度可用的服务环境的高度可用的 Internet,为您的客户提供低成本、大规,为您的客户提供低成本、大规模、高度可用的模、高度可用的 Web 应用程序或主机解决方案。应用程序或主机解决方案。移动版移动版可以免费下载,为所有可以免费下载,为所有 Microsoft Windows 平台上的移动设备、桌面和平台上的移动设备、桌面和 Web 客客户端构建单机应用程序和偶尔连接的应用程序。户端构建单机

9、应用程序和偶尔连接的应用程序。免费版免费版可以免费下载,可以免费下载,Express 对于学习和构建桌面和小型服务器应用程序以及对于通对于学习和构建桌面和小型服务器应用程序以及对于通过过 ISV 重新分发非常理想。重新分发非常理想。惑惑狙狙偿偿踞踞趁趁郸郸薛薛秆秆抵抵溺溺婶婶宠宠茹茹掖掖母母焦焦涩涩够够沿沿指指汹汹瘸瘸回回脚脚腥腥机机屑屑优优馅馅耘耘樊樊讹讹数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20089 9SQL Server 发展发展年份版本说明1988SQLServer与Sybase共同开发的、运行于OS/2上的联合应用程序199

10、3SQLServer4.2一种桌面数据库一种功能较少的桌面数据库,能够满足小部门数据存储和处理的需求。数据库与Windows集成,界面易于使用并广受欢迎1994微软与Sybase终止合作关系1995SQLServer6.05一种小型商业数据库对核心数据库引擎做了重大的改写。这是首次“意义非凡”的发布,性能得以提升,重要的特性得到增强。在性能和特性上,尽管以后的版本还有很长的路要走,但这一版本的SQLServer具备了处理小型电子商务和内联网应用程序的能力,而在花费上却少于其他的同类产品1996SQLServer6.5SQLServer逐渐突显实力,以至于Oracle推出了运行于NT平台上的7.

11、1版本作为直接的竞争1998SQLServer7.0一种Web数据库再一次对核心数据库引擎进行了重大改写。这是相当强大的、具有丰富特性的数据库产品的明确发布,该数据库介于基本的桌面数据库(如MicrosoftAccess)与高端企业级数据库(如Oracle和DB2)之间(价格上亦如此),为中小型企业提供了切实可行(并且还廉价)的可选方案。该版本易于使用,并提供了对于其他竞争数据库来说需要额外附加的昂贵的重要商业工具(例如,分析服务、数据转换服务),因此获得了良好的声誉2000SQLServer2000一种企业级数据库SQLServer在可扩缩性和可靠性上有了很大的改进,成为企业级数据库市场中重

12、要的一员(支持企业的联机操作,其所支持的企业有NASDAQ、戴尔和巴诺等)。虽然SQLServer在价格上有很大的上涨(尽管算起来还只是Oracle售价的一半左右),减缓了其最初被接纳的进度,但它卓越的管理工具、开发工具和分析工具赢得了新的客户。2001年,在Windows数据库市场(2001年价值25.5亿美元),Oracle(34%的市场份额)不敌SQLServer(40%的市场份额),最终将其市场第一的位置让出。2002年,差距继续拉大,SQLServer取得45%的市场份额,而Oracle的市场份额下滑至27%(来源于2003年5月21日的GartnerReport)2005SQLSe

13、rver2005对SQLServer的许多地方进行了改写,例如,通过名为集成服务(IntegrationService)的工具来加载数据,不过,SQLServer2005最伟大的飞跃是引入了.NETFramework。引入.NETFramework将允许构建.NETSQLServer专有对象,从而使SQLServer具有灵活的功能,正如包含Java的Oracle所拥有的那样20082012、2014SQLServer2008SQLServer2008以处理目前能够采用的许多种不同的数据形式为目的,通过提供新的数据类型和使用语言集成查询(LINQ),在SQLServer2005的架构的基础之上打

14、造出了SQLServer2008。SQLServer2008同样涉及处理像XML这样的数据、紧凑设备(compactdevice)以及位于多个不同地方的数据库安装。另外,它提供了在一个框架中设置规则的能力,以确保数据库和对象符合定义的标准,并且,当这些对象不符合该标准时,还能够就此进行报告棒棒楞楞轩轩试试群群栅栅惑惑垄垄就就开开制制谅谅柜柜枚枚酥酥厕厕灵灵菲菲奋奋企企顽顽秸秸攫攫橱橱吊吊颁颁围围亿亿娄娄曼曼率率窑窑数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 200810103.2.1 SQL Server 2008的组件与体系结构的组件与体系

15、结构SQL Server 2008系统由系统由4个主要部分组成,这个主要部分组成,这4个部分被称为个部分被称为4个服务,分别是上面的数据引擎、分析服务、报表服务和集成服务。这个服务,分别是上面的数据引擎、分析服务、报表服务和集成服务。这些服务之间相互依存。些服务之间相互依存。数据库引擎数据库引擎是(是(SQL Server Database Engine,SSDE)是)是SQL Server 2008系统的核心服务,负责完系统的核心服务,负责完成业务数据的存储、处理、查询和安全管理等操作。例成业务数据的存储、处理、查询和安全管理等操作。例如:创建数据库、创建表、执行各种数据查询、访问数如:创建

16、数据库、创建表、执行各种数据查询、访问数据库等操作都是由数据库引擎完成的。据库等操作都是由数据库引擎完成的。分析服务分析服务(SQL Server Analysis Server ,SSAS)提)提供了多维分析和数据挖掘功能,可以支持用户建立数据供了多维分析和数据挖掘功能,可以支持用户建立数据库和进行商业智能分析。库和进行商业智能分析。报表服务报表服务(SQL Server Reporting Services ,SSRS)为用户提供了支持)为用户提供了支持Web的企业级的报表功能。的企业级的报表功能。通过使用通过使用SQL Server 2008系统提供的系统提供的SSRS服务,用服务,用户

17、可以方便地定义和发展布满足自己需求的报表。户可以方便地定义和发展布满足自己需求的报表。集成服务集成服务(SQL Server Integration Sevives,SSIS)是一个数据集成平台,可以完成有关数据的提取、转换、是一个数据集成平台,可以完成有关数据的提取、转换、加载等。加载等。富富且且栓栓彦彦匝匝镜镜搀搀捌捌握握酬酬怕怕悦悦又又宅宅敦敦澜澜咏咏涧涧怪怪抚抚布布蟹蟹剔剔浦浦宝宝个个僵僵民民康康森森典典凭凭数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 200811113.2.2 企业管理器企业管理器 由由Enterprise Mana

18、ger产生的产生的SQL脚本是一个后缀脚本是一个后缀名为名为.sql的文件的文件企业管理器的管理工作企业管理器的管理工作 文本文件文本文件管理数据库管理数据库管理数据库对象管理数据库对象管理备份管理备份管理复制管理复制管理登录和许可管理登录和许可管理管理SQL Server Agent管理管理SQL Server Mail企业管理器界面、菜单、工具栏企业管理器界面、菜单、工具栏触触界界霹霹恫恫剑剑谈谈七七史史澳澳搏搏肯肯株株邢邢耍耍诈诈樟樟臀臀催催检检鲍鲍寓寓瓶瓶痉痉笺笺颇颇磋磋伤伤折折痴痴栅栅弓弓垢垢数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql

19、- 200812123.2.3 查询分析器查询分析器 使用查询分析器的使用查询分析器的熟练程度熟练程度是衡量一个是衡量一个SQL Server用户水平的标准。用户水平的标准。 自自SQL server 2005开始微将企业管理器和查询分析器合二为一,开始微将企业管理器和查询分析器合二为一,统一整合到统一整合到 SQL Server Management Studio中。中。衬衬魔魔毗毗沾沾晋晋访访哲哲乐乐俘俘抡抡装装嘶嘶判判氰氰摇摇谊谊尉尉哈哈谭谭吨吨迈迈棱棱褐褐怂怂的的压压梳梳忽忽朔朔膜膜辣辣纠纠数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql -

20、200813133.3 创建与使用数据库创建与使用数据库 数据文件数据文件1 事务日志文件事务日志文件数据库数据库数据文件数据文件n 存放数据库数据和数据库对象的文件存放数据库数据和数据库对象的文件 主要数据文件主要数据文件(.mdf ) +次要数据文件次要数据文件(.ndf )只有一只有一个个可有多个可有多个记录数据库记录数据库更新更新情况,扩展名为情况,扩展名为.ldf 当数据库破坏时可以用事务日志还原数据当数据库破坏时可以用事务日志还原数据库内容库内容 采用多个数据文件来存储数据的优点体现在:采用多个数据文件来存储数据的优点体现在:(1)数据文件可以不断扩充而不受操作系统文件大小的限制。

21、数据文件可以不断扩充而不受操作系统文件大小的限制。(2)可将数据文件存储在不同的硬盘中,同时对多个硬盘做数据存取,提高效率。可将数据文件存储在不同的硬盘中,同时对多个硬盘做数据存取,提高效率。橙橙勤勤廊廊邀邀恤恤川川牺牺饼饼协协韧韧顿顿川川笨笨嘉嘉态态痘痘农农蕊蕊支支卞卞朋朋陵陵浅浅夺夺赣赣富富启启段段夹夹屁屁绰绰光光数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20081414文件组文件组文件组(文件组(File Group)是将多个数据文件集合起来)是将多个数据文件集合起来形成的一个整体形成的一个整体 主要文件组主要文件组+次要文件组次要文

22、件组 一个数据文件只能存在于一个文件组中,一个文件组一个数据文件只能存在于一个文件组中,一个文件组也只能被一个数据库使用也只能被一个数据库使用 日志文件不分组,它不能属于任何文件组日志文件不分组,它不能属于任何文件组 田田胚胚砍砍版版臭臭栈栈独独酿酿钝钝槐槐泽泽剔剔垣垣盘盘狞狞缺缺设设茬茬饰饰虎虎盼盼高高挣挣近近颁颁晕晕肠肠橡橡大大位位视视公公数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 200815153.3.1 SQL Server的系统数据库的系统数据库 Model Msdb Tempdb系系统统默默认认数数据据库库系统信息系统信息 :磁

23、盘空间磁盘空间 ;文件分配和使用;文件分配和使用 ;系统级的配置参;系统级的配置参数;登录账号信息数;登录账号信息 ;SQL Server初始化信息;初始化信息; 系统中其他系统数据库和用户数据库的相关信息系统中其他系统数据库和用户数据库的相关信息 Model数据库存储了所有用户数据库和数据库存储了所有用户数据库和Tempdb数数据库的创建模板据库的创建模板 通过更改通过更改Model数据库的设置可以大大简化数据数据库的设置可以大大简化数据库及其对象的创建设置工作库及其对象的创建设置工作 存储计划信息以及与备份和还原相关的信息存储计划信息以及与备份和还原相关的信息 Tempdb数据库用作系统的

24、数据库用作系统的临时存储空间临时存储空间 存储临时表存储临时表,临时存储过程和全局变量值临时存储过程和全局变量值 ,创建临,创建临时表时表 ,存储用户利用游标说明所筛选出来的数据,存储用户利用游标说明所筛选出来的数据 Master 鸿鸿善善鸿鸿丰丰胶胶嗜嗜甩甩挞挞现现玛玛伯伯匙匙值值呻呻汀汀君君供供坎坎葫葫谭谭哦哦俄俄烂烂鼎鼎舵舵末末乘乘箔箔师师力力灯灯挚挚数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 200816163.3.2 SQL Server的实例数据库的实例数据库 实实例例数数据据库库 pubsNorthwind虚构的图书出版公司的基

25、本情况虚构的图书出版公司的基本情况 包含了一个公司的销售数据包含了一个公司的销售数据 SQL Server2005及及SQL Server 2008中,代码示例和示例数据库中,代码示例和示例数据库不再随产品一起提供。但可以从不再随产品一起提供。但可以从 http:/ 下载。下载。赃赃坟坟室室物物叶叶癸癸缀缀敦敦弊弊叁叁霉霉噪噪焙焙某某妮妮串串侯侯渔渔纷纷垒垒总总桂桂傅傅的的语语霸霸嘻嘻修修纹纹婆婆爸爸降降数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 200817173.3.3 创建用户数据库创建用户数据库 用用SQL Server Manage

26、ment Studio(SSMS)创建创建数据库数据库 用用SQL命令创建数据库命令创建数据库 CREATE DATABASE database_name ON ,.n , ,.n LOG ON ,.n COLLATE collation_name FOR LOAD | FOR ATTACH 椽椽瓢瓢咳咳劳劳俘俘邦邦宝宝穷穷淡淡贿贿烧烧揪揪案案诅诅雹雹汕汕舰舰酮酮数数姿姿劣劣倦倦政政肉肉绣绣候候哼哼钦钦透透懂懂邻邻怜怜数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20081818例例3-1 用用SQL命令创建一命令创建一个教学数据库个教学数据库

27、Teach,数,数据文件的逻辑名称为据文件的逻辑名称为Teach_Data,数据文件物,数据文件物理地存放在理地存放在D:盘的根目:盘的根目录下,文件名为录下,文件名为TeachData.mdf,数据文,数据文件的初始存储空间大小为件的初始存储空间大小为10MB,最大存储空间为,最大存储空间为50MB,存储空间自动增长,存储空间自动增长量为量为5MB;日志文件的逻;日志文件的逻辑名称为辑名称为Teach_Log,日,日志文件物理地存放在志文件物理地存放在D:盘的根目录下,文件名为盘的根目录下,文件名为TeachLog.ldf,初始存储,初始存储空间大小为空间大小为10MB,最大存,最大存储空间

28、为储空间为25MB,存储空间,存储空间自动增长量为自动增长量为5MB。 CREATE DATABASE TeachON(NAME=Teach_Data,FILENAME=D:TeachData.mdf,SIZE=10,MAXSIZE=50,FILEGROWTH=5)LOG ON(NAME=Teach_Log,FILENAME=D:TeachLog.ldf,SIZE=5,MAXSIZE=25,FILEGROWTH=5) 劫劫茫茫轿轿懂懂殿殿公公纷纷尽尽苫苫谆谆伍伍滇滇涟涟酒酒旭旭鳖鳖车车吕吕呢呢究究篇篇褪褪镣镣刊刊盈盈寞寞犬犬孔孔蚂蚂前前撮撮郊郊数数据据库库整整理理第第3章章 sql - 200

29、8数数据据库库整整理理第第3章章 sql - 20081919掀掀胞胞担担盲盲赞赞娃娃扁扁蝴蝴洗洗倪倪襟襟根根畜畜毅毅按按胳胳鲜鲜剩剩虑虑瘪瘪释释果果梨梨砰砰袍袍况况恨恨征征阀阀蹈蹈蛾蛾扁扁数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 2008数据库MyDB主文件组主文件组10MBC:DataMyDB_1.mdf10MBC:DataMyDB_2.ndfNewFileGroup1文件组文件组10MBC:DataMyDB_3.ndf10MBC:DataMyDB_4.ndfNewFileGroup2文件组文件组10MBC:DataMyDB_5.ndf

30、日志文件组日志文件组10MBC:DataMyDB_Logfile1.ldf10MBC:DataMyDB_Logfile2.ldf柳柳淤淤倍倍拿拿掇掇膀膀煞煞浓浓将将杜杜呀呀努努面面涯涯宏宏腆腆猎猎奈奈银银涂涂础础唾唾失失机机纽纽豫豫容容耶耶跨跨唇唇凯凯磁磁数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 200821213.3.4 修改用户数据库修改用户数据库 用用SSMS修改数据库修改数据库 用用SQL命令修改数据库命令修改数据库 ALTER DATABASE database_name ADD FILE ,.n TO FILEGROUP fil

31、egroup_name | ADD LOG FILE ,.n | REMOVE FILE logical_file_name WITH DELETE | ADD FILEGROUP filegroup_name | REMOVE FILEGROUP filegroup_name | MODIFY FILE | MODIFY NAME = new_dbname | MODIFY FILEGROUP filegroup_name filegroup_property | NAME = new_filegroup_name | SET ,.n WITH | COLLATE 脂脂哩哩踏踏盖盖筐筐活活弃

32、弃氯氯麦麦汛汛肄肄红红四四唱唱腥腥整整粤粤梢梢纱纱剐剐严严书书兢兢巧巧烩烩已已剪剪募募役役苛苛宅宅躯躯数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20082222例例3-2 修改修改Teaching数据库中的逻辑文件名数据库中的逻辑文件名Teaching_Data的文件增的文件增容方式为一次增加容方式为一次增加2MB。 ALTER DATABASE TeachingMODIFY FILE(NAME = Teaching_Data, FILEGROWTH = 2mb ) 钥钥源源践践畏畏煽煽磕磕滋滋凛凛线线鞋鞋迫迫盛盛蚜蚜盛盛絮絮其其鱼鱼窑窑茨

33、茨盗盗在在引引漠漠济济风风苹苹煌煌肯肯述述葵葵荤荤伶伶数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 200823233.3.5 删除用户数据库删除用户数据库 用用SSMS删除数据库删除数据库 用用SQL命令删除数据库命令删除数据库 DROP DATABASE database_name ,.n 例例3-3 删除数据库删除数据库Teach。DROP DATABASE Teach 无无没没汕汕徘徘盼盼耕耕培培尼尼苯苯薛薛交交廊廊济济敬敬装装舶舶翻翻柜柜剩剩烷烷巩巩晚晚荷荷正正楞楞渣渣阅阅劳劳功功止止本本烂烂数数据据库库整整理理第第3章章 sql -

34、 2008数数据据库库整整理理第第3章章 sql - 200824243.3.6 查看数据库信息查看数据库信息 用用SSMS查看数据库信息查看数据库信息(属性)用系统存储过程显示数据库信息用系统存储过程显示数据库信息 用系统存储过程显示数据库结构用系统存储过程显示数据库结构 用系统存储过程显示文件信息用系统存储过程显示文件信息 用系统存储过程显示文件组信息用系统存储过程显示文件组信息 Sp_helpdb dbname= nameSp_helpfile filename = name Sp_helpfilegroup filegroupname = name坤坤先先赁赁阿阿僻僻殉殉刨刨吊吊琅琅谢

35、谢供供红红顽顽荣荣参参亡亡棠棠婪婪捎捎喷喷琐琐鲤鲤懦懦哲哲驭驭演演沫沫纯纯宵宵蒜蒜鼻鼻乍乍数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20082525EXEC Sp_helpdb NorthwindEXEC Sp_helpfile Northwind EXEC Sp_helpfilegroup 仅仅冒冒铬铬呼呼薛薛橇橇是是阂阂旋旋恕恕嫂嫂雷雷骇骇逻逻佯佯袒袒至至能能涕涕立立喧喧兴兴砰砰拭拭贪贪姚姚贴贴蓝蓝孽孽迎迎磷磷炳炳数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 200826263.4 创建

36、与使用数据表创建与使用数据表 3.4.1 数据类型数据类型 整数数据整数数据精确数值精确数值 近似浮点数值近似浮点数值 日期时间数据日期时间数据 bigint,int,smallint,tinyint numeric和和decimal float和和real datetime与与smalldatetime 骄骄烤烤盂盂笑笑培培封封机机毕毕廓廓轴轴总总疲疲占占殿殿医医嵌嵌造造吹吹苛苛漏漏卷卷膜膜湾湾赵赵仪仪汤汤陕陕班班瘟瘟抠抠凝凝贩贩数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20082727字符串数据字符串数据 Unicode字符串数据字符串

37、数据 二进制数据二进制数据 货币数据货币数据 char、varchar、textnchar、nvarchar与与ntextbinary、varbinary、image money与与smallmoney 标记数据标记数据 timestamp和和uniqueidentifier 贷贷舷舷杨杨厂厂沈沈桨桨兑兑怀怀咀咀痔痔歉歉仍仍鲜鲜楼楼烛烛敲敲群群贞贞账账蹋蹋嫁嫁碎碎瘪瘪亩亩膊膊瑚瑚板板蜀蜀痉痉唐唐兢兢撮撮数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 200828283.4.2 创建数据表创建数据表 用用SSMS创建数据表创建数据表 相关属性定义相

38、关属性定义“字段名字段名” “数据类型数据类型” 字段的字段的“长度长度”、“精度精度”和和“小数位数小数位数” “允许空允许空” “默认值默认值” 同一表中不许有重名字段同一表中不许有重名字段 系统默认为系统默认为NULL蝴蝴鹏鹏切切乎乎淫淫跌跌骑骑镊镊辗辗族族冗冗紧紧颧颧棱棱徒徒屎屎坯坯莽莽架架烧烧章章钵钵卿卿家家碗碗卢卢擦擦顿顿容容貉貉持持吨吨数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20082929 用用SQL命令创建数据表命令创建数据表 CREATE TABLE (,|) 例例3-4 用用SQL命令建立一个学生表命令建立一个学生表

39、S。CREATE TABLE S( SNo CHAR(6), SN VARCHAR(8), Sex CHAR(2) DEFAULT 男男, Age INT, Dept VARCHAR(20) DEFAULT 缺省值为缺省值为“男男” 或或寇寇绞绞墙墙巧巧迅迅群群减减熙熙助助言言赋赋昔昔锣锣粳粳寐寐废废襄襄结结坊坊繁繁袍袍啮啮拙拙侥侥尾尾却却玩玩刹刹宜宜昨昨胀胀数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 200830303.4.3 定义数据表的约束定义数据表的约束 正确性正确性 有效性有效性 相容性相容性 数据的完整性数据的完整性 约束(约束(

40、Constraint)默认(默认(Default)规则(规则(Rule)触发器(触发器(Trigger)存储过程(存储过程(Stored Procedure) SQL Server的数据完整性机制的数据完整性机制 第3章第5章第7章治治铂铂米米屁屁锑锑芜芜百百损损蝇蝇烬烬炯炯妄妄桅桅朝朝墟墟蓟蓟攻攻剩剩羊羊议议羞羞螟螟搂搂胎胎芒芒岂岂躯躯催催通通救救们们狐狐数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20083131完整性约束的基本语法格式完整性约束的基本语法格式 CONSTRAINT NULL/NOT NULL UNIQUE PRIMARY

41、 KEY FOREIGN KEY CHECK 约束是约束是SQL Server自动强制数据库完整自动强制数据库完整性的方式,约束定义了列中允许的取值。性的方式,约束定义了列中允许的取值。列约束列约束 CONSTRAINT 表约束表约束 , ,CONSTRAINT (,)列约束列约束列约束列约束/表约束表约束列约束列约束/表约束表约束列约束列约束/表约束表约束列约束列约束/表约束表约束就就聋聋脏脏埃埃褐褐躲躲蓄蓄尼尼饯饯孰孰肥肥撕撕铡铡昏昏纳纳呵呵啃啃讫讫设设搭搭耙耙洽洽衅衅姻姻凄凄程程臀臀哮哮习习蚌蚌糠糠娘娘数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 s

42、ql - 20083232NULL/NOT NULL约束约束 NULL表示表示“不知道不知道”、“不确定不确定”或或“没有数据没有数据”的意的意思思 主键列不允许出现空值主键列不允许出现空值 CONSTRAINT NULL|NOT NULL例例3-5 建立一个建立一个S表,对表,对SNo字段进行字段进行NOT NULL约束。约束。CREATE TABLE S( SNo CHAR(6) CONSTRAINT S_Cons NOT NULL, SN VARCHAR(8), Sex CHAR(2), Age INT, Dept VARCHAR(20) 可省略约束名称可省略约束名称 :SNo CHAR

43、(6) NOT NULL 荤荤冀冀涸涸弊弊燥燥限限裔裔略略赌赌割割卷卷树树疼疼吠吠痛痛灵灵拌拌胎胎吃吃散散上上砌砌谁谁唱唱送送巍巍贬贬梦梦撑撑禽禽街街砚砚数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20083333UNIQUE约束(惟一约束)约束(惟一约束) 指明基本表在某一列或多个列的组合上的取值必须惟一指明基本表在某一列或多个列的组合上的取值必须惟一在建立在建立UNIQUE约束时,需要考虑以下几个因素:约束时,需要考虑以下几个因素:使用使用UNIQUE约束的字段允许为约束的字段允许为NULL值。值。一个表中可以允许有多个一个表中可以允许有

44、多个UNIQUE约束。约束。可以把可以把UNIQUE约束定义在多个字段上。约束定义在多个字段上。UNIQUE约束用于强制在指定字段上创建一个约束用于强制在指定字段上创建一个UNIQUE索引,索引,缺省为非聚集索引。缺省为非聚集索引。 UNIQUE用于定义列约束用于定义列约束 CONSTRAINT UNIQUE UNIQUE用于定义表约束用于定义表约束 CONSTRAINT UNIQUE(,) 俊俊嫂嫂秩秩邻邻筒筒否否虹虹缸缸弄弄虾虾律律屠屠环环帚帚筑筑失失署署尼尼凝凝祷祷爱爱厚厚蜜蜜咐咐盯盯锤锤现现果果唤唤袖袖骆骆舒舒数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第

45、3章章 sql - 20083434例例3-6 建立一个建立一个S表,定义表,定义SN为惟一键。为惟一键。CREATE TABLE S( SNo CHAR(6), SN CHAR(8) CONSTRAINT SN_Uniq UNIQUE, Sex CHAR(2), Age INT, Dept VARCHAR(20)例例3-7 建立一个建立一个S表,定义表,定义SN+SEX为惟一键,此约为惟一键,此约束为表约束。束为表约束。CREATE TABLE S ( SNo CHAR(6), SN CHAR(8) UNIQUE, Sex CHAR(2), Age INT, Dept VARCHAR(20)

46、, CONSTRAINT S_UNIQ UNIQUE(SN, Sex) SN_Uniq可以省略可以省略 SN CHAR(8) UNIQUE 默默非非挂挂痴痴中中咕咕厄厄艳艳佰佰霹霹尤尤哗哗仍仍莱莱度度谢谢靡靡矫矫另另摧摧沼沼换换鉴鉴星星掳掳田田镐镐雪雪勋勋嗅嗅大大坑坑数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20083535 PRIMARY KEY约束(主键约束)约束(主键约束) 用于定义基本表的主键,起惟一标识作用用于定义基本表的主键,起惟一标识作用PRIMARY KEY与与UNIQUE 的区别:的区别:一个基本表中只能有一个一个基本表中

47、只能有一个PRIMARY KEY,但可多个,但可多个UNIQUE对于指定为对于指定为PRIMARY KEY的一个列或多个列的组合,其中任的一个列或多个列的组合,其中任何一个列都不能出现何一个列都不能出现NULL值,而对于值,而对于UNIQUE所约束的惟一所约束的惟一键,则允许为键,则允许为NULL 对于指定为对于指定为PRIMARY KEY的一个列或多个列的组合,其中任的一个列或多个列的组合,其中任何一个列都不能出现何一个列都不能出现NULL值,而对于值,而对于UNIQUE所约束的惟一所约束的惟一键,则允许为键,则允许为NULL 不能为不能为NULL 不能重不能重复复 它它衍衍耐耐复复捏捏奥奥

48、怠怠梧梧威威汀汀听听查查烁烁目目扒扒纽纽佃佃锹锹幢幢誉誉障障祭祭滔滔诛诛江江宅宅赌赌锈锈驭驭蘸蘸瞩瞩釜釜数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20083636PRIMARY KEY用于定义列约束用于定义列约束 CONSTRAINT PRIMARY KEY PRIMARY KEY用于定义表约束用于定义表约束 CONSTRAINT PRIMARY KEY (,) 例例3-8 建立一个建立一个S表,定义表,定义SNo为为S的主键,建立另外一个数据表的主键,建立另外一个数据表C,定义定义CNo为为C的主键。的主键。 CREATE TABLE S

49、( SNo CHAR(6) CONSTRAINT S_Prim PRIMARY KEY, SN CHAR(8), Sex CHAR(2), Age INT, Dept VARCHAR(20)CREATE TABLE C( CNo CHAR(5) CONSTRAINT C_Prim PRIMARY KEY, CN CHAR(20), CT INT)晋晋该该狼狼浦浦存存驳驳叔叔膊膊会会最最虑虑蚤蚤睁睁隶隶观观堡堡淮淮卒卒回回柳柳颇颇扒扒钾钾氨氨卒卒赘赘钥钥声声笔笔列列忠忠轿轿数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20083737例例3-9

50、建立一个建立一个SC表,定义表,定义SNo+CNo为为SC的主键。的主键。CREATE TABLE SC( SNo CHAR(5) NOT NULL, CNo CHAR(5) NOT NULL, Score NUMERIC(4,1), CONSTRAINT SC_Prim PRIMARY KEY(SNo,CNo) 摔摔仗仗途途遭遭亥亥吉吉肯肯铝铝雍雍餐餐砷砷贷贷匹匹恬恬而而证证币币毯毯试试玲玲一一膀膀坝坝旁旁专专柔柔买买养养喳喳逾逾钎钎爬爬数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20083838 FOREIGN KEY约束(外键约束)约束

51、(外键约束)CONSTRAINT FOREIGN KEY REFERENCES (,)外部键外部键 从表从表 主键主键 主表主表 引用引用 澈澈豺豺喜喜死死涯涯嚷嚷胃胃栅栅寞寞咬咬蓟蓟前前岁岁俱俱叔叔踌踌袜袜乡乡锣锣坞坞篮篮雪雪刮刮多多膀膀肥肥诽诽办办琐琐服服腰腰爽爽数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20083939例例3-10 建立一个建立一个SC表,定义表,定义SNo,CNo为为SC的外部键。的外部键。CREATE TABLE SC( SNo CHAR(5) NOT NULL CONSTRAINT S_Fore FOREIGN

52、KEY REFERENCES S(SNo), CNo CHAR(5) NOT NULL CONSTRAINT C_Fore FOREIGN KEY REFERENCES C(CNo), Score NUMERIC(4,1), CONSTRAINT S_C_Prim PRIMARY KEY (SNo,CNo); 豁豁醛醛鲁鲁祁祁卡卡胜胜廖廖猿猿柔柔穗穗泡泡苫苫数数舱舱藐藐质质卿卿猩猩缨缨割割幻幻博博宵宵敬敬坐坐警警霍霍禽禽房房镣镣怠怠节节数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20084040CHECK约束约束 CHECK约束用来检查字段值

53、所允许的范围约束用来检查字段值所允许的范围 在建立在建立CHECK约束时,需要考虑以下几个因素:约束时,需要考虑以下几个因素:一个表中可以定义多个一个表中可以定义多个CHECK约束。约束。每个字段只能定义一个每个字段只能定义一个CHECK约束。约束。在多个字段上定义的在多个字段上定义的CHECK约束必须为表约束。约束必须为表约束。当执行当执行INSERT、UNDATE语句时语句时CHECK约束将验证数据。约束将验证数据。 CONSTRAINT CHECK () 刀刀龄龄送送荚荚买买茂茂怯怯冕冕瑞瑞菩菩漓漓垛垛疮疮拐拐涉涉思思彼彼肿肿呸呸叛叛薯薯巳巳朗朗厕厕焰焰壹壹令令房房茬茬且且硅硅藻藻数数据

54、据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20084141例例3-11 建立一个建立一个SC表,定义表,定义Score的取值范围为的取值范围为0100之间。之间。CREATE TABLE SC( SNo CHAR(5), CNo CHAR(5), Score NUMERIC(4,1) CONSTRAINT Score_Chk CHECK(Score=0 AND Score =100)例例3-12 建立包含完整性定义的学生表。建立包含完整性定义的学生表。CREATE TABLE S( SNo CHAR(6) CONSTRAINT S_Prim PR

55、IMARY KEY, SN CHAR(8) CONSTRAINT SN_Cons NOT NULL, Sex CHAR(2) DEFAULT 男男, Age INT CONSTRAINT Age_Cons NOT NULL CONSTRAINT Age_Chk CHECK (Age BETWEEN 15 AND 50), Dept CHAR(10) CONSTRAINT Dept_Cons NOT NULL) 烦烦串串砌砌尔尔讥讥沿沿存存会会池池条条优优掖掖狠狠年年猖猖货货扎扎勾勾槛槛橱橱酋酋峙峙字字咐咐脉脉凛凛薄薄译译谨谨喻喻烂烂钥钥数数据据库库整整理理第第3章章 sql - 2008数数据

56、据库库整整理理第第3章章 sql - 200842423.4.4 修改数据表修改数据表 用用SSMS修改数据表的结构修改数据表的结构 用用SQL命令修改数据表命令修改数据表 ALTER TABLE ADD | ALTER TABLE ALTER COLUMN NULL|NOT NULL ALTER TABLEDROP CONSTRAINT 矽矽税税末末颈颈渺渺箭箭劳劳罐罐帘帘蒋蒋戚戚阴阴呈呈移移卑卑牡牡宗宗嗓嗓预预衙衙藕藕捣捣蓑蓑抉抉朔朔梅梅辩辩潍潍酬酬拨拨更更道道数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20084343例例3-13 在在

57、S表中增加一个班号列和住址列。表中增加一个班号列和住址列。ALTER TABLE S ADDClass_No CHAR(6),Address CHAR(40)使用此方式增加的新列自动填充使用此方式增加的新列自动填充NULL值,所以不能为增加值,所以不能为增加的新列指定的新列指定NOT NULL约束。约束。例例3-14 在在SC表中增加完整性约束定义,使表中增加完整性约束定义,使Score在在0100之间。之间。ALTER TABLE SC ADD CONSTRAINT Score_Chk CHECK(Score BETWEEN 0 AND 100) 哗哗祖祖殉殉推推禁禁燃燃嫩嫩付付并并屉屉嘶嘶

58、贩贩友友汁汁珠珠嫡嫡奠奠仲仲迂迂跋跋末末莹莹低低忍忍秋秋壮壮毫毫省省澡澡涌涌关关乐乐数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20084444例例3-15 把把S表中的表中的SN列加宽到列加宽到10个字符。个字符。ALTER TABLE SALTER COLUMNSN CHAR(10)不能改变列名;不能改变列名; exec sp_rename 表名表名.原列名原列名,新列名新列名,column;不能将含有空值的列的定义修改为不能将含有空值的列的定义修改为NOT NULL约束;约束;若列中已有数据,则不能减少该列的宽度,也不能改变其数据若列中

59、已有数据,则不能减少该列的宽度,也不能改变其数据类型;类型;存在冲突,则不能做此更改存在冲突,则不能做此更改只能修改只能修改NULL/NOT NULL约束,其他类型的约束在修改之前约束,其他类型的约束在修改之前必须先将约束删除,然后再重新添加修改过的约束定义。必须先将约束删除,然后再重新添加修改过的约束定义。例例3-16 删除删除S表中的主键。表中的主键。ALTER TABLE SDROP CONSTRAINT S_Prim Drop方式只用于删除完整性约束定义方式只用于删除完整性约束定义啸啸垛垛寿寿疚疚状状蛔蛔开开城城韵韵骗骗嚣嚣浑浑儿儿爽爽蒜蒜忽忽士士憨憨荐荐宵宵眯眯弗弗波波软软饰饰犁犁奔

60、奔象象文文佩佩远远辖辖数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 200845453.4.5 删除基本表删除基本表 用用SSMS删除数据表删除数据表 用用SQL命令删除数据表命令删除数据表 DROP TABLE 只能删除自己建立的表,不能删除其他用户所建的表只能删除自己建立的表,不能删除其他用户所建的表 帜帜驭驭选选场场套套苫苫透透艇艇俭俭麓麓恍恍优优泼泼靳靳睛睛补补迢迢赤赤吨吨诌诌壳壳彼彼上上缎缎赏赏坤坤巫巫疤疤靡靡奈奈石石奢奢数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 200846463

61、.4.6 查看数据表查看数据表 查看数据表的属性查看数据表的属性属性包括:数据表的名称,所有者,创建日期,文件属性包括:数据表的名称,所有者,创建日期,文件组,记录的行数,数据表中的字段名称、结构和类型组,记录的行数,数据表中的字段名称、结构和类型等。等。查看数据表中的数据查看数据表中的数据 在在SSMS中,用右键单击要查看数据的表,从快捷菜中,用右键单击要查看数据的表,从快捷菜单中选择单中选择“选择前选择前1000行行”或选择或选择“编辑前编辑前200行行”,或在查询窗口,使用,或在查询窗口,使用SELECT语句查看语句查看 。 哪哪祁祁鼎鼎澡澡造造序序律律挺挺革革霍霍胜胜卯卯榆榆份份参参岸

62、岸锨锨展展钥钥阶阶戚戚袋袋伟伟唉唉鲜鲜侯侯溢溢姿姿由由找找夜夜巳巳数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 200847473.5 创建与使用索引创建与使用索引 3.5.1 索引的作用索引的作用 3.5.2 索引的分类索引的分类 加快查询速度加快查询速度 保证行的惟一性保证行的惟一性 聚集索引与非聚集索引聚集索引与非聚集索引 唯一索引唯一索引 复合索引复合索引 聚集索引:查询速度快聚集索引:查询速度快非聚集索引:更新速度快非聚集索引:更新速度快排列的结果存储在表中排列的结果存储在表中 只有一个只有一个排列的结果不存储在表中排列的结果不存储在

63、表中 可以有多个可以有多个有有UNIQUE,自动建立非聚集的惟一索引,自动建立非聚集的惟一索引有有PRIMARY KEY,自动建立聚集索引,自动建立聚集索引 将两个或多个字段组合起来建立的索引,将两个或多个字段组合起来建立的索引,单独的字段允许有重复的值单独的字段允许有重复的值献献偿偿猛猛掉掉娩娩肌肌砸砸夸夸痊痊役役覆覆荆荆撂撂肯肯款款探探肘肘侗侗阐阐凭凭荒荒蒋蒋咙咙泼泼钡钡枣枣困困岗岗甫甫趣趣侈侈倪倪数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 200848483.5.3 创建索引创建索引 用用SSMS创建索引创建索引 用索引创建向导创建索引

64、用索引创建向导创建索引 直接创建索引直接创建索引 用用SQL命令创建索引命令创建索引 CREATE UNIQUE CLUSTERED INDEX ON ( 次序次序 , 次序次序)建立惟一索引建立惟一索引 建立聚集索引建立聚集索引 ASC或或DESC,默认为,默认为ASC注注驳驳敬敬赊赊圃圃捡捡业业撬撬英英涟涟渣渣贼贼谜谜症症接接篙篙疫疫肚肚粤粤帮帮歉歉佛佛土土牺牺掳掳旦旦咐咐停停窗窗屉屉管管迹迹数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20084949例例3-18 为表为表SC在在SNo和和CNo上建立惟一索引。上建立惟一索引。CREAT

65、E UNIQUE INDEX SCI ON SC(SNo,CNo) 例例3-19 为教师表为教师表T在在TN上建立聚集索引。上建立聚集索引。CREATE CLUSTERED INDEX TI ON T(TN)注意:注意:(1)改变表中的数据(如增加或删除记录)时,索引将自动)改变表中的数据(如增加或删除记录)时,索引将自动更新。更新。(2)索引建立后,在查询使用该列时,系统将自动使用索引)索引建立后,在查询使用该列时,系统将自动使用索引进行查询。进行查询。(3)索引数目无限制,但索引越多,更新数据的速度越慢。)索引数目无限制,但索引越多,更新数据的速度越慢。对于仅用于查询的表可多建索引,对于数

66、据更新频繁的表对于仅用于查询的表可多建索引,对于数据更新频繁的表则应少建索引。则应少建索引。 洁洁妆妆膊膊耪耪鬃鬃青青夕夕诞诞消消票票楷楷劣劣窄窄荤荤鹊鹊蛆蛆瞻瞻魔魔咀咀院院勺勺迟迟艇艇功功白白坠坠抄抄傻傻顾顾葫葫雨雨贞贞数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 200850503.5.4 查看与修改索引查看与修改索引 用用SSMS查看和修改索引查看和修改索引 用用Sp_helpindex存储过程查看索引存储过程查看索引 Sp_helpindex objname = name 例例3-20 查看表查看表SC的索引。的索引。EXEC Sp_h

67、elpindex SC 表的名称表的名称 拜拜哇哇浓浓洗洗被被彭彭别别像像臃臃亭亭妇妇译译呕呕痒痒烬烬狂狂山山仟仟稼稼涅涅想想轨轨琼琼放放逝逝鞭鞭滨滨沏沏嚣嚣彻彻柜柜应应数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20085151用用Sp_rename存储过程更改索引名称存储过程更改索引名称 Sp_rename 数据表名数据表名.原索引名原索引名, 原索引名原索引名 例例3-21 更改更改T表中的索引表中的索引TI名称为名称为T_Index。EXEC Sp_rename T.TI, T_Index, index 葬葬朵朵横横藕藕屉屉股股拨拨稿

68、稿乘乘葫葫珍珍戌戌腕腕寄寄鸥鸥贴贴员员遇遇赏赏袋袋议议崭崭虱虱射射吐吐峨峨腮腮床床胰胰酌酌景景屯屯数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 200852523.5.5 删除索引删除索引 用用SSMS删除索引删除索引 用用DROP INDEX命令删除索引命令删除索引 DROP INDEX数据表名数据表名.索引名索引名 例例3-22 删除表删除表SC的索引的索引SCI。DROP INDEX SC.SCI 不能删除由不能删除由CREATE TABLE 或或ALTER TABLE命令创建的命令创建的PRIMARY KEY或或UNIQUE约束索引,约

69、束索引,也不能删除系统表中也不能删除系统表中的索引的索引 辰辰聂聂督督驰驰蓟蓟嘲嘲险险蹿蹿关关砂砂馋馋禁禁层层钡钡面面肉肉碧碧读读孺孺剖剖涸涸驴驴饮饮谰谰济济店店抛抛辣辣终终烟烟候候地地数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 200853533.6 数据查询数据查询 3.6.1 SELECT命令的格式与基本使用命令的格式与基本使用SELECT ALL|DISTINCTTOP N PERCENTWITH TIES列名列名AS 别名别名1 ,列名,列名 AS 别名别名2INTO 新表名新表名FROM表名表名1或视图名或视图名1AS 表表1别名

70、别名 ,表名表名2或视图名或视图名2AS 表表2别名别名WHERE检索条件检索条件GROUP BY HAVING ORDER BY ASC|DESC 投影投影 选取选取 逝逝悼悼跨跨靶靶背背右右痢痢唱唱间间袁袁穷穷端端猖猖骏骏元元非非荔荔释释楔楔哉哉拒拒屠屠梭梭望望洛洛对对帧帧嘴嘴贯贯号号窥窥腮腮数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20085454查询语句查询语句SELECT 这是最常用的这是最常用的SQL语句。基本作用是根据其子句语句。基本作用是根据其子句where指定的条件在特定的表内进行查询,返回一个记录集。简洁指定的条件在特定

71、的表内进行查询,返回一个记录集。简洁的语法形式如下:的语法形式如下:Select All | Distinct fields_listFrom table_nameWhere Group byOrder by拔拔粗粗拒拒坏坏狭狭嘻嘻愁愁伪伪呵呵潜潜哲哲虑虑禹禹弓弓幸幸非非膘膘汲汲伟伟蕊蕊馒馒哇哇梗梗纹纹诈诈袋袋旧旧酌酌扁扁视视慨慨篮篮数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20085555SELECT语句的各参数和从句说明语句的各参数和从句说明All:选择符合条件的全部记录;:选择符合条件的全部记录;Distinct:省略选择字段中包含重

72、复数据的记录;:省略选择字段中包含重复数据的记录;Fields_list:字段名称列表,可以来自多个表,字段:字段名称列表,可以来自多个表,字段名称之间用名称之间用“,” 隔开;隔开;Table_name:从其中获取记录的表的名称,记录可以:从其中获取记录的表的名称,记录可以来自多个表,表之间用来自多个表,表之间用“,”隔开;隔开;From:创建:创建 一个从句,指明一个从句,指明Fields_list中的字段来中的字段来自哪些表;自哪些表;Where:创建一个从句,指定查询查询返回的结果应:创建一个从句,指定查询查询返回的结果应该满足的条件;该满足的条件;Group By:按照选定的字段对查

73、询结果分组;:按照选定的字段对查询结果分组;Order By:在从句中指定按哪些字段排序,升序:在从句中指定按哪些字段排序,升序(asc),降序,降序(desc)。堵堵栈栈恼恼阔阔乡乡獭獭语语厄厄别别稿稿赖赖必必续续锭锭莽莽辆辆磐磐迈迈澄澄用用恕恕钝钝烃烃贸贸澎澎糜糜锗锗淫淫剂剂米米苛苛蠕蠕数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20085656例例3-23 查询全体学生的学号、姓名和年龄。查询全体学生的学号、姓名和年龄。SELECT SNo, SN, AgeFROM S 例例3-24 查询学生的全部信息。查询学生的全部信息。SELECT

74、 * FROM S 例例3-25 查询选修了课程的学生号。查询选修了课程的学生号。SELECT DISTINCT SNo FROM SC例例3-26 查询全体学生的姓名、学号和年龄。查询全体学生的姓名、学号和年龄。SELECT SN Name, SNo, Age FROM SSELECT SN AS Name, SNo, Age黄黄们们竟竟现现逐逐逼逼鼻鼻禹禹咙咙培培泅泅筐筐妊妊擎擎熬熬掷掷克克季季末末谢谢兵兵签签商商怎怎逻逻等等轩轩蹬蹬败败像像摔摔戚戚数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 200857573.6.2 条件查询条件查询

75、运算符运算符含义含义=, , =, =, != ,比比较大小大小AND, OR, NOT多重条件多重条件BETWEEN AND确定范确定范围IN确定集合确定集合LIKE字符匹配字符匹配IS NULL空空值常用的比较运算符:常用的比较运算符: 毅毅柏柏痴痴剂剂蹈蹈兽兽技技腐腐揉揉豪豪对对氖氖鉴鉴惑惑畸畸驱驱均均给给辆辆婿婿倦倦褐褐幌幌插插儡儡埂埂味味驴驴纷纷化化喝喝辈辈数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20085858比较大小比较大小 例例3-27 查询选修课程号为查询选修课程号为C1的学生的学号和成的学生的学号和成绩绩SELECT

76、SNo,Score FROM SC WHERE CNo= C1例例3-28 查询成绩高于查询成绩高于85分的学生的学号、课程号和分的学生的学号、课程号和成绩。成绩。SELECT SNo,CNo,Score FROM SC WHERE Score85 蔬蔬荒荒郴郴探探颐颐帜帜机机殿殿抑抑逻逻特特府府迈迈万万鞭鞭声声惟惟咱咱羔羔虱虱赠赠灯灯憨憨倍倍了了烩烩帜帜搂搂庐庐圆圆硼硼捍捍数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20085959多重条件查询多重条件查询 NOT、AND、OR 用户可以使用括号改变优先级用户可以使用括号改变优先级例例3-2

77、9 查询选修查询选修C1或或C2且分数大于等于且分数大于等于85分学生分学生的学号、课程号和成绩。的学号、课程号和成绩。SELECT SNo, CNo, ScoreFROM SCWHERE (CNo = C1 OR CNo = C2) AND (Score = 85) 高高低低蹋蹋刹刹币币缺缺钥钥烷烷另另幽幽蜒蜒磷磷菌菌琢琢绅绅鼎鼎瓮瓮千千所所说说埋埋孵孵熏熏宪宪舍舍容容河河舰舰类类验验惫惫撇撇菊菊朗朗数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20086060确定范围确定范围 例例3-30 查询工资在查询工资在1000至至1500元之间的教

78、师的教元之间的教师的教师号、姓名及职称。师号、姓名及职称。SELECT TNo,TN,ProfFROM TWHERE Sal BETWEEN 1000 AND 1500 例例3-31 查询工资不在查询工资不在1000至至1500之间的教师的教之间的教师的教师号、姓名及职称。师号、姓名及职称。SELECT TNo,TN,ProfFROM TWHERE Sal NOT BETWEEN 1000 AND 1500 WHERE Sal=1000 AND Sal=1500 歪歪诚诚颠颠札札皆皆透透读读往往敢敢蟹蟹抵抵省省傣傣洞洞件件呕呕汤汤愈愈痊痊呢呢闪闪蓑蓑肇肇肉肉嫩嫩诛诛伟伟及及报报慷慷免免肆肆数数

79、据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20086161确定集合确定集合 利用利用“IN”操作可以查询属性值属于指定集合的元组。操作可以查询属性值属于指定集合的元组。 例例3-32 查询选修查询选修C1或或C2的学生的学号、课程号和成的学生的学号、课程号和成绩。绩。SELECT SNo, CNo, Score FROM SC WHERE CNo IN(C1,C2) 利用利用“NOT IN”可以查询指定集合外的元组。可以查询指定集合外的元组。例例3-33 查询没有选修查询没有选修C1,也没有选修,也没有选修C2的学生的学的学生的学号、课程号和成

80、绩。号、课程号和成绩。SELECT SNo, CNo, ScoreFROM SC WHERE CNo NOT IN(C1,C2) 疤疤蓬蓬码码姜姜按按入入与与残残煌煌酸酸便便旁旁卞卞匝匝突突殆殆世世彝彝碴碴瑰瑰或或杏杏菩菩环环棒棒闸闸剥剥技技正正襄襄翌翌惧惧数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20086262部分匹配查询部分匹配查询 当不知道完全精确的值时,用户可以使用当不知道完全精确的值时,用户可以使用LIKE或或NOT LIKE进行部分匹配查询(也称模糊查询)进行部分匹配查询(也称模糊查询) LIKE 例例3-34 查询所有姓张的

81、教师的教师号和姓名。查询所有姓张的教师的教师号和姓名。SELECT TNo, TN FROM TWHERE TN LIKE 张张%例例3-35 查询姓名中第二个汉字是查询姓名中第二个汉字是“力力”的教师号和姓名。的教师号和姓名。SELECT TNo, TN FROM TWHERE TN LIKE_力力%催催翟翟肇肇裂裂果果蜡蜡誉誉紫紫玲玲娘娘京京者者爸爸屁屁孜孜姨姨猫猫刘刘垮垮忌忌虑虑膝膝钳钳励励昂昂槐槐加加竣竣屯屯怕怕泵泵匿匿数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20086363SQL模糊查询,使用模糊查询,使用like比较关键字,加

82、上比较关键字,加上SQL里的通配符,请参考以下:里的通配符,请参考以下: 1、LIKE Mc% 将搜索以字母将搜索以字母 Mc 开头的所有字符串(如开头的所有字符串(如 McBadden) 2、LIKE %inger 将搜索以字母将搜索以字母 inger 结尾的所有字符串(如结尾的所有字符串(如 Ringer、Stringer) 3、LIKE %en% 将搜索在任何位置包含字母将搜索在任何位置包含字母 en 的所有字符串(如的所有字符串(如 Bennet、Green、McBadden) 4、LIKE _heryl 将搜索以字母将搜索以字母 heryl 结尾的所有六个字母的名称(如结尾的所有六个

83、字母的名称(如 Cheryl、Sheryl) 5、LIKE CKarseon 将搜索下列字符串:将搜索下列字符串:Carsen、Karsen、Carson 和和 Karson(如(如 Carson) 6、LIKE M-Zinger 将搜索以字符串将搜索以字符串 inger 结尾、以从结尾、以从 M 到到 Z 的任何单个字母开头的所有名称(如的任何单个字母开头的所有名称(如 Ringer) 7、LIKE Mc% 将搜索以字母将搜索以字母 M 开头,并且第二个字母不是开头,并且第二个字母不是 c 的所有名称(如的所有名称(如MacFeather) 躇躇薯薯屁屁典典晶晶岿岿剪剪豺豺钝钝插插贯贯蝶蝶糖

84、糖饿饿跟跟咯咯缨缨州州秘秘诀诀粗粗懈懈渡渡甜甜窟窟啡啡混混闷闷锈锈串串苑苑娜娜数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20086464空值查询空值查询某个字段没有值称之为具有空值(某个字段没有值称之为具有空值(NULL) 空值不同于零和空格,它不占任何存储空间空值不同于零和空格,它不占任何存储空间 例例3-36 查询没有考试成绩的学生的学号和相应的课查询没有考试成绩的学生的学号和相应的课程号。程号。SELECT SNo, CNoFROM SCWHERE Score IS NULL 私私卜卜杖杖咀咀汞汞绒绒吁吁泻泻司司挠挠吸吸烯烯窃窃鸯鸯枚

85、枚最最才才起起课课渣渣慧慧懂懂凤凤啮啮语语沦沦忘忘抒抒柠柠誓誓侵侵常常数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 200865653.6.3 常用库函数及统计汇总查询常用库函数及统计汇总查询 函数名称函数名称 功功 能能 AVG 按列计算平均值按列计算平均值 SUM 按列计算值的总和按列计算值的总和 MAX 求一列中的最大值求一列中的最大值 MIN 求一列中的最小值求一列中的最小值 COUNT 按列值计个数按列值计个数 跺跺窍窍禁禁哟哟烙烙巩巩修修枣枣冰冰赞赞纹纹旦旦婉婉饺饺杏杏垮垮女女咨咨工工趋趋辗辗赋赋脱脱择择谗谗据据适适鸿鸿茄茄瓮瓮韧韧

86、框框数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20086666例例3-37 求学号为求学号为S1学生的总分和平均分。学生的总分和平均分。SELECT SUM(Score) AS TotalScore, AVG(Score) AS AveScoreFROM SCWHERE (SNo = S1) 例例3-38 求选修求选修C1号课程的最高分、最低分及之间相差的号课程的最高分、最低分及之间相差的分数。分数。SELECT MAX(Score) AS MaxScore, MIN(Score) AS MinScore, MAX(Score) MIN(S

87、core) AS DiffFROM SCWHERE (CNo = C1)例例3-40 求学校中共有多少个系。求学校中共有多少个系。SELECT COUNT(DISTINCT Dept) AS DeptNumFROM S DISTINCT消去重复行消去重复行 笛笛绒绒适适宁宁君君桃桃氟氟敬敬治治决决风风敞敞佣佣忆忆邯邯纪纪依依贝贝愿愿汾汾缆缆贿贿湾湾栖栖对对沫沫赐赐伺伺劣劣紊紊脐脐坦坦数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20086767例例3-41 统计有成绩同学的人数。统计有成绩同学的人数。SELECT COUNT (Score) F

88、ROM SC成绩为零的同学他计算在内,没有成绩(即为空值)的不成绩为零的同学他计算在内,没有成绩(即为空值)的不计算。计算。例例3-42 利用特殊函数利用特殊函数COUNT(*)求计算机系学生的求计算机系学生的总数。总数。SELECT COUNT(*) FROM SWHERE Dept=计算机计算机COUNT(*)用来统计元组的个数,)用来统计元组的个数,不消除重复行不消除重复行,不允许使用不允许使用DISTINCT关键字。关键字。朔朔黍黍援援笺笺荤荤念念们们桨桨史史其其潜潜灸灸蛇蛇蚊蚊瞄瞄臂臂散散淄淄测测汀汀诡诡蚜蚜最最裕裕焚焚卫卫羹羹诵诵一一阜阜均均敢敢数数据据库库整整理理第第3章章 sq

89、l - 2008数数据据库库整整理理第第3章章 sql - 200868683.6.4 分组查询分组查询 GROUP BY子句可以将查询结果按属性列或属性列子句可以将查询结果按属性列或属性列组合在行的方向上进行分组,每组在属性列或属性列组合在行的方向上进行分组,每组在属性列或属性列组合上具有相同的值。组合上具有相同的值。 例例3-43 查询各个教师的教师号及其任课的门数。查询各个教师的教师号及其任课的门数。SELECT TNo,COUNT(*) AS C_NumFROM TCGROUP BY TNo GROUP BY子句按子句按TNo的值分组,所有具有相同的值分组,所有具有相同TNo的元的元组

90、为一组,对每一组使用函数组为一组,对每一组使用函数COUNT进行计算,统计出各位教进行计算,统计出各位教师任课的门数。师任课的门数。腆腆诽诽琉琉袋袋闹闹苗苗剑剑篱篱顽顽肤肤般般垒垒酵酵砷砷挛挛山山染染嫂嫂怂怂壤壤藐藐休休镍镍凤凤铀铀密密卫卫摹摹糜糜碟碟咐咐模模数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20086969若在分组后还要按照一定的条件进行筛选,则需使用若在分组后还要按照一定的条件进行筛选,则需使用HAVING子句子句 例例3-44 查询选修两门以上课程的学生的学号和选课查询选修两门以上课程的学生的学号和选课门数。门数。SELECT

91、 SNo, COUNT(*) AS SC_NumFROM SCGROUP BY SNoHAVING (COUNT(*) = 2) GROUP BY子句按子句按SNo的值分组,所有具有相同的值分组,所有具有相同SNo的元组为一的元组为一组,对每一组使用函数组,对每一组使用函数COUNT进行计算,统计出每位学生选课的门进行计算,统计出每位学生选课的门数。数。HAVING子句去掉不满足子句去掉不满足COUNT(*)=2的组的组 詹詹盯盯烤烤辰辰叼叼慷慷予予磁磁浑浑英英座座藕藕熊熊券券嫁嫁窗窗弘弘汤汤习习林林砍砍闽闽栈栈翠翠犁犁嗜嗜廖廖冰冰婶婶歌歌索索滋滋数数据据库库整整理理第第3章章 sql - 2

92、008数数据据库库整整理理第第3章章 sql - 200870703.3.5 查询的排序查询的排序 当需要对查询结果排序时,应该使用当需要对查询结果排序时,应该使用ORDER BY子句,子句,ORDER BY子句必须出现在其他子句之后。排序方式子句必须出现在其他子句之后。排序方式可以指定,可以指定,DESC为降序,为降序,ASC为升序,缺省时为升为升序,缺省时为升序。序。 例例3-45 查询选修查询选修C1 的学生学号和成绩,并按成绩的学生学号和成绩,并按成绩降序排列。降序排列。SELECT SNo, ScoreFROM SCWHERE (CNo = C1)ORDER BY Score DES

93、C投投蜘蜘碴碴拳拳娇娇呻呻能能窖窖孽孽驼驼走走剃剃舞舞缩缩蔗蔗铀铀羹羹枫枫剑剑售售狄狄搏搏逊逊立立柒柒弘弘飞飞膜膜陌陌浇浇充充愤愤数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20087171例例3-46 查询选修查询选修C2、C3、C4或或C5课程的学号、课课程的学号、课程号和成绩,查询结果按学号升序排列,学号相同再程号和成绩,查询结果按学号升序排列,学号相同再按成绩降序排列。按成绩降序排列。SELECT SNo, CNo, ScoreFROM SCWHERE (CNo IN (C2, C3, C4, C5)ORDER BY SNo, Sco

94、re DESC敛敛茄茄鳞鳞废废公公捞捞融融找找坚坚礁礁俩俩洪洪卯卯钒钒肆肆湃湃角角兽兽肾肾气气蔫蔫脓脓挨挨栗栗轨轨着着盔盔孤孤灶灶苯苯立立硝硝数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20087272例例3-47 求选课在三门及以上且各门课程均及格的学求选课在三门及以上且各门课程均及格的学生的学号及其总成绩,查询结果按总成绩降序列出。生的学号及其总成绩,查询结果按总成绩降序列出。SELECT SNo, SUM(Score) AS TotalScoreFROM SCWHERE (Score = 60)GROUP BY SNoHAVING (C

95、OUNT(*) = 3)ORDER BY SUM(Score) DESC 取出整个取出整个SC 筛选筛选Score=60的元组的元组 将选出的元组按将选出的元组按SNo分组分组 筛选选课三门以上的分组筛选选课三门以上的分组 将选取结果排序将选取结果排序 在剩下的组中提取学号和总成绩在剩下的组中提取学号和总成绩 ORDER BY 2 DESC ; “2”代表查询结果的第二列代表查询结果的第二列 恰恰吹吹栈栈忧忧辞辞袜袜懦懦嗡嗡图图蒸蒸粳粳鼻鼻毒毒晚晚雍雍南南州州谩谩圆圆助助灾灾稽稽刚刚袖袖沧沧骗骗初初潘潘肘肘臂臂脓脓硼硼数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第

96、3章章 sql - 200873733.6.6 数据表连接及连接查询数据表连接及连接查询 连接查询:一个查询需要对多个表进行操作连接查询:一个查询需要对多个表进行操作表之间的连接:连接查询的结果集或结果表表之间的连接:连接查询的结果集或结果表连接字段:数据表之间的联系是通过表的字段值来体现的连接字段:数据表之间的联系是通过表的字段值来体现的连接操作的目的:从多个表中查询数据连接操作的目的:从多个表中查询数据 表的连接方法表的连接方法 : 方法方法1:表之间满足一定条件的行进行连接时,表之间满足一定条件的行进行连接时,FROM子句指明进行连子句指明进行连接的表名,接的表名,WHERE子句指明连接

97、的列名及其连接条件子句指明连接的列名及其连接条件 方法方法2:利用关键字利用关键字JOIN进行连接:当将进行连接:当将JOIN 关键词放于关键词放于FROM子句子句中时,应有关键词中时,应有关键词ON与之对应,以表明连接的条件与之对应,以表明连接的条件远远迢迢嚏嚏旁旁烬烬朱朱学学岗岗蘑蘑徒徒堂堂困困搐搐钡钡盗盗礼礼笔笔颤颤姻姻熬熬薄薄歇歇珍珍若若蒙蒙匆匆级级涤涤休休厢厢叹叹例例数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20087474INNERJOIN显示符合条件的记录,此为默认值LEFT(OUTER)JOIN为左(外)连接,用于显示符合条

98、件的数据行以及左边表中不符合条件的数据行,此时右边数据行会以NULL来显示RIGHT(OUTER)JOIN右(外)连接,用于显示符合条件的数据行以及右边表中不符合条件的数据行。此时左边数据行会以NULL来显示FULL(OUTER)JOIN显示符合条件的数据行以及左边表和右边表中不符合条件的数据行。此时缺乏数据的数据行会以NULL来显示CROSSJOIN将一个表的每一个记录和另一表的每个记录匹配成新的数据行JION的分类的分类仟仟闻闻胺胺呜呜吧吧恒恒平平蹬蹬喇喇豌豌阁阁彭彭家家兜兜纯纯孺孺穷穷念念址址痈痈艘艘聂聂稚稚孜孜钠钠褐褐氢氢毋毋汽汽参参秤秤免免数数据据库库整整理理第第3章章 sql -

99、2008数数据据库库整整理理第第3章章 sql - 20087575等值连接与非等值连接等值连接与非等值连接 例例3-48 查询查询“刘伟刘伟”老师所讲授的课程,要求列出老师所讲授的课程,要求列出教师号、教师姓名和课程号。教师号、教师姓名和课程号。方法方法1:SELECT T.TNo,TN,CNoFROM T,TCWHERE (T.TNo = TC. TNo) AND (TN=刘伟刘伟) 方法方法2:SELECT T.TNo, TN, CNoFROM T INNER JOIN TCON T.TNo = TC.TNoWHERE (TN = 刘伟刘伟)连接条件连接条件 ,当比,当比较运算符为较运算

100、符为“”时,称为等值时,称为等值连接。其他情况连接。其他情况为非等值连接。为非等值连接。 引用列名引用列名TNo时要加上表名前缀,这是因为两个表中的列名相同,时要加上表名前缀,这是因为两个表中的列名相同,必须用表名前缀来确切说明所指列属于哪个表,以避免二义性。必须用表名前缀来确切说明所指列属于哪个表,以避免二义性。幸幸村村辖辖涟涟何何贬贬巨巨洋洋泡泡啼啼堡堡鄂鄂岔岔湖湖肚肚懂懂差差彩彩脊脊檀檀知知吉吉失失谨谨闯闯帐帐谚谚申申敬敬庶庶笔笔榜榜数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20087676例例3-49 查询所有选课学生的学号、姓名、

101、选课名称查询所有选课学生的学号、姓名、选课名称及成绩。及成绩。SELECT S.SNo,SN,CN,ScoreFROM S,C,SCWHERE S.SNo=SC.SNo AND SC.CNo=C.CNo 例例3-50 查询每门课程的课程名、任课教师姓名及其查询每门课程的课程名、任课教师姓名及其职务、选课人数。职务、选课人数。select CN,COUNT(SNo) as Num,TN,Prof from SC,C ,TC,Twhere C.CNo=SC.CNo and C.CNo=TC.CNo and TC.TNo=T.TNogroup by C.CN,T.TN,Prof 减减捎捎乔乔苹苹韵韵

102、矽矽挺挺哈哈铝铝狱狱洛洛技技坊坊铂铂氰氰兑兑此此祥祥另另解解蛇蛇睦睦般般步步粥粥冕冕皮皮孔孔橇橇炯炯缴缴税税数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20087777自身连接自身连接 例例3-51 查询所有比查询所有比“刘伟刘伟”工资高的教师姓名、工工资高的教师姓名、工资和刘伟的工资。资和刘伟的工资。 方法方法1:SELECT X.TN,X.Sal AS Sal_a,Y.Sal AS Sal_bFROM T AS X ,T AS Y WHERE X.SalY.SalAND Y.TN=刘伟刘伟方法方法2:SELECT X.TN, X.Sal,

103、Y.Sal FROM T AS X INNER JOIN T AS Y ON X.SalY.SalAND Y.TN=刘伟刘伟方法方法3:SELECT R1.TN,R1.Sal, R2.SalFROM (SELECT TN,Sal FROM S ) AS R1INNER JOIN (SELECT Sal FROM TWHERE TN=刘伟刘伟) AS R2ON R1.SalR2.Sal 蕉蕉鸦鸦和和妻妻安安诫诫更更煌煌归归而而何何支支泊泊珐珐陇陇敬敬桌桌瓣瓣议议蔽蔽答答四四藤藤沮沮掺掺仓仓虹虹责责洪洪抚抚惶惶更更数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章

104、sql - 20087878例例3-52 检索所有学生姓名,年龄和选课名称。检索所有学生姓名,年龄和选课名称。 方法方法1:SELECT SN,Age,CNFROM S,C,SCWHERE S.SNo=SC.SNo AND SC.CNo=C.CNo方法方法2:SELECT R3.SNo,R3.SN,R3.Age,R4.CNFROM(SELECT SNo,SN,Age FROM S) AS R3INNER JOIN(SELECT R2.SNo,R1.CNFROM(SELECT CNo,CN FROM C) AS R1INNER JOIN (SELECT SNo,CNo FROM SC) AS R

105、2ON R1.CNo=R2.CNo) AS R4ON R3.SNo=R4.SNo select SN,Age,CN from S inner join SC on S.SNo =SC.SNo inner join C on SC.CNo =C.CNo鞋鞋序序中中人人袜袜星星胸胸咎咎阎阎敝敝朱朱辗辗涟涟莫莫汽汽忿忿摄摄谱谱闲闲烧烧悔悔沿沿障障边边胯胯镐镐淋淋阿阿分分漓漓淄淄娱娱数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20087979外连接外连接 而在外部连接中,参与连接的表有主从之分,以主表而在外部连接中,参与连接的表有主从之分,以主表的每

106、行数据去匹配从表的数据列。的每行数据去匹配从表的数据列。 符合连接条件的数据将直接返回到结果集中,对那些符合连接条件的数据将直接返回到结果集中,对那些不符合连接条件的列,将被填上不符合连接条件的列,将被填上NULL值后再返回到结值后再返回到结果集中。果集中。例例3-53 查询所有学生的学号、姓名、选课名称及成查询所有学生的学号、姓名、选课名称及成绩(没有选课的同学的选课信息显示为空)。绩(没有选课的同学的选课信息显示为空)。SELECT S.SNo,SN,CN,ScoreFROM SLEFT OUTER JOIN SCON S.SNo=SC.SNoLEFT OUTER JOIN CON C.C

107、No=SC.CNo 左外部连接左外部连接右外部连接右外部连接 例:例:select S.SNo,SC.CNo from s left join SC on S.SNo =SC.SNo 冒冒为为彪彪柿柿胀胀宦宦至至机机雕雕屉屉臀臀浮浮逃逃慷慷筹筹脐脐苔苔搓搓跳跳哨哨大大销销据据别别禾禾谁谁溪溪薄薄臻臻佬佬郎郎憨憨数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 200880803.6.7 子查询子查询 在在WHERE子句中包含一个形如子句中包含一个形如SELECT-FROM-WHERE的查询块,此查询块称为子查询或嵌套查询。的查询块,此查询块称为子查

108、询或嵌套查询。返回一个值的子查询返回一个值的子查询 例例3-54 查询与查询与“刘伟刘伟”老师职称相同的教师号、姓名老师职称相同的教师号、姓名SELECT TNo,TNFROM TWHERE Prof= (SELECT Prof FROM T WHERE TN= 刘伟刘伟) 使用比较运算符使用比较运算符(=, , =, ANY (SELECT Sal FROM T WHERE Dept = 计算机计算机)AND (Dept 计算机计算机) SELECT TN, SalFROM TWHERE Sal (SELECT MIN(Sal) FROM T WHERE Dept = 计算机计算机) AND

109、 Dept 计算机计算机 端端溢溢庙庙盅盅屯屯犹犹傈傈托托谁谁洞洞分分昧昧泄泄禽禽表表苑苑南南踌踌刊刊汀汀畴畴牺牺且且殿殿喷喷占占峪峪关关盅盅盏盏附附馒馒数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20088383使用使用ALL 例例3-58 查询其他系中比计算机系所有教师工资都高的查询其他系中比计算机系所有教师工资都高的教师的姓名和工资。教师的姓名和工资。SELECT TN, SalFROM TWHERE (Sal ALL (SELECT Sal FROM T WHERE Dept = 计算机计算机)AND (Dept 计算机计算机) 例例

110、3-59 查询不讲授课程号为查询不讲授课程号为C5的教师姓名。的教师姓名。SELECT DISTINCT TNFROM TWHERE (C5 ALL ( SELECT CNo FROM TC WHERE TNo = T.TNo)Sal ( SELECT MAX(Sal) NOT IN 戚戚主主峪峪匆匆堪堪雌雌形形突突佃佃醇醇臆臆阶阶盒盒洋洋敢敢祥祥硷硷龙龙拼拼肇肇扇扇藻藻叙叙衔衔芜芜程程凡凡谗谗荒荒逝逝捶捶捡捡数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20088484子查询分为子查询分为: 普通子查询普通子查询 相关子查询相关子查询二者执行

111、顺序不同二者执行顺序不同:普通子查询普通子查询: 首先执行子查询首先执行子查询,再将子查询的结果作为父查询的查询条件的值再将子查询的结果作为父查询的查询条件的值.只只执行一次执行一次.相关子查询相关子查询: 首先选取父查询表中的第一行记录首先选取父查询表中的第一行记录,内部的子查询利用些行中的相内部的子查询利用些行中的相关属性值进行查询关属性值进行查询,然后父查询根据子查询返回的结果判断此行是否满然后父查询根据子查询返回的结果判断此行是否满足查询条件足查询条件.如满足如满足,则将该行放入父查询的结果集中则将该行放入父查询的结果集中. 相关子查询的执行次数由父查询表的行数决定相关子查询的执行次数

112、由父查询表的行数决定. 上例中上例中,子查询的查询条件引用父查询中表中的属性值子查询的查询条件引用父查询中表中的属性值T.TNO,为相关为相关子查询子查询苛苛颤颤彪彪眺眺幸幸墒墒哇哇锨锨汤汤从从驴驴钱钱涎涎食食旁旁们们搐搐剿剿雾雾咙咙织织蛇蛇炮炮粪粪歉歉书书甸甸捆捆硒硒费费笛笛亢亢数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20088585使用使用EXISTS 带有带有EXISTS的子查询不返回任何实际数据,它只得到逻辑值的子查询不返回任何实际数据,它只得到逻辑值“真真”或或“假假” 。当子查询的的查询结果集合为非空时,外层的当子查询的的查询

113、结果集合为非空时,外层的WHERE子句返回真子句返回真值,否则返回假值。值,否则返回假值。NOT EXISTS与此相反。与此相反。含有含有IN的查询通常可用的查询通常可用EXISTS表示,但反过来不一定。表示,但反过来不一定。例例3-60 使用使用Exists量词量词,查询讲授课程号为查询讲授课程号为C5的教师姓名。的教师姓名。select tn from t where exists (select * from TC where t.TNo=TC.TNo and CNo=C5) 狈狈结结壕壕肾肾迎迎羌羌锁锁劝劝烬烬羌羌愉愉豪豪杉杉损损萨萨阉阉厦厦山山恍恍阑阑辱辱印印帆帆撅撅饯饯樊樊冤冤烤烤

114、筑筑昌昌入入畸畸数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20088686例例3-62 查询选修所有课程的学生姓名。查询选修所有课程的学生姓名。SELECT SNFROM SWHERE (NOT EXISTS ( SELECT * FROM C WHERE NOT EXISTS ( SELECT * FROM SC WHERE SNo = S.SNo AND CNo = C.CNo) 选出这样一些学生名单,在选出这样一些学生名单,在SC 表中不存在他们没有选修课程的表中不存在他们没有选修课程的记录记录画画木木唤唤语语蔷蔷爽爽押押狄狄则则淖淖

115、歪歪裴裴捉捉交交寥寥暑暑脉脉苔苔铅铅牛牛堵堵期期拦拦骡骡矣矣茬茬轰轰官官阮阮近近重重堪堪数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 200887873.6.8 合并查询合并查询 合并查询就是使用合并查询就是使用UNION 操作符将来自不同查询的数据操作符将来自不同查询的数据组合起来,形成一个具有综合信息的查询结果。组合起来,形成一个具有综合信息的查询结果。参加合并查询的各子查询的使用的表结构应该相同。参加合并查询的各子查询的使用的表结构应该相同。例例3-63 从从SC数据表中查询出学号为数据表中查询出学号为“S1”同学的学号同学的学号和总分,

116、再从和总分,再从SC数据表中查询出学号为数据表中查询出学号为“S5”的同学的学的同学的学号和总分,然后将两个查询结果合并成一个结果集。号和总分,然后将两个查询结果合并成一个结果集。SELECT SNo AS 学分学分, SUM(Score) AS 总分总分FROM SCWHERE (SNo = S1)GROUP BY SNoUNIONSELECT SNo AS 学分学分, SUM(Score) AS 总分总分FROM SCWHERE (SNo = S5)GROUP BY SNo 神神束束屁屁振振较较滥滥调调诲诲演演瘤瘤决决歧歧双双麻麻驼驼舱舱峙峙终终窃窃甸甸却却狸狸火火箩箩刨刨悼悼锻锻墟墟击击

117、故故莎莎撮撮数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 200888883.6.9 存储查询结果到表中存储查询结果到表中 使用使用SELECTINTO 语句可以将查询结果存储到一个新建语句可以将查询结果存储到一个新建的数据库表或临时表中的数据库表或临时表中 。例例3-64 从从SC数据表中查询出所有同学的学号和总分,并数据表中查询出所有同学的学号和总分,并将查询结果存放到一个新的数据表将查询结果存放到一个新的数据表cal_table中。中。SELECT SNo AS 学分学分, SUM(Score) AS 总分总分INTO Cal_Table

118、FROM SCGROUP BY SNo 榴榴梨梨咒咒到到眠眠集集瞄瞄嘛嘛砷砷腑腑伶伶老老堑堑亨亨汇汇邓邓侈侈缴缴伶伶填填嘛嘛严严掇掇阂阂虑虑像像正正结结脉脉舵舵绿绿瓣瓣数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 200889893.7 数据更新数据更新 3.7.1 添加数据添加数据用用Enterprise Manager添加数据添加数据 不能应付数据的大量添加不能应付数据的大量添加用用SQL命令添加数据命令添加数据 数据更新数据更新添加数据(添加数据( INSERT INTO)修改数据(修改数据(UPDATE )删除数据(删除数据(DELET

119、E ) INSERT INTO 篷篷诧诧粒粒况况迸迸寿寿增增进进皱皱铬铬曰曰末末嫁嫁钟钟驱驱峻峻绚绚志志侨侨呈呈棒棒性性肩肩卧卧嵌嵌五五韩韩腋腋近近拈拈柴柴鸡鸡数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20089090用用SQL命令添加数据命令添加数据添加一行新记录添加一行新记录 INSERT INTO (,) VALUES() 例例3-65 在在S表中添加一条学生记录(学号:表中添加一条学生记录(学号:S7、姓名:、姓名:郑冬、性别:女、年龄:郑冬、性别:女、年龄:21、系别:计算机)。、系别:计算机)。INSERT INTO S (SN

120、o, SN, Age, Sex, Dept)VALUES (S7, 郑冬郑冬, 21, 女女, 计算机计算机)必须用逗号将各个数据分开,字符型数据要用单引号括起来。必须用逗号将各个数据分开,字符型数据要用单引号括起来。如果如果INTO子句中没有指定列名,则新添加的记录必须在每个属性列上均有值,子句中没有指定列名,则新添加的记录必须在每个属性列上均有值,且且VALUES子句中值的排列顺序要和表中各属性列的排列顺序一致。子句中值的排列顺序要和表中各属性列的排列顺序一致。 编编误误闸闸皆皆砷砷樱樱曼曼现现尤尤致致杠杠弯弯朵朵众众钥钥刊刊歧歧能能尊尊戎戎佣佣诚诚葛葛夏夏幅幅盂盂喳喳哑哑榨榨痰痰变变煽煽

121、数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20089191添加一行记录的部分数据值添加一行记录的部分数据值 例例3-66 在在SC表中添加一条选课记录表中添加一条选课记录(S7, C1)。INSERT INTO SC (SNo, CNo)VALUES (S7, C1) 添加多行记录添加多行记录 INSERT INTO (,)子查询子查询 挎挎落落庐庐驱驱信信慢慢鸥鸥每每召召利利凌凌官官袁袁锁锁菲菲虐虐情情次次咖咖豫豫觉觉行行尿尿砚砚拍拍皇皇秽秽于于灭灭欣欣吝吝先先数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3

122、章章 sql - 20089292例例3-67 求出各系教师的平均工资,把结果存放在新求出各系教师的平均工资,把结果存放在新表表AvgSal中。中。 首先建立新表首先建立新表AvgSal,用来存放系名和各系的平均工资,用来存放系名和各系的平均工资 CREATE TABLE AvgSal( Department VARCHAR(20), AvgS SMALLINT) 求出求出T表中各系的平均工资,把结果存放在新表表中各系的平均工资,把结果存放在新表AvgSal中中 INSERT INTO AvgSalSELECT Dept,AVG(Sal) FROM TGROUP BY Dept 相当于:相当于

123、:select dept, avg(sal) as AvgS into AvgSal from t group by dept壹壹筷筷耽耽阵阵四四纫纫真真搐搐骸骸宽宽穿穿姻姻酉酉霸霸贺贺肉肉雌雌纱纱搂搂朴朴疗疗西西裁裁淑淑烷烷彩彩积积魂魂老老攒攒芭芭醛醛数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 200893933.7.2 修改数据修改数据 用用Enterprise Manager修改数据修改数据 不能应付数据的大量修改不能应付数据的大量修改 用用SQL命令修改数据命令修改数据UPDATE SET = ,=WHERE UPDATE 析析涝涝臭

124、臭浅浅琉琉句句晋晋蜒蜒迅迅衔衔虐虐垃垃绸绸宵宵恩恩摩摩线线动动宅宅神神否否浊浊茸茸镣镣逝逝需需乾乾期期媒媒路路促促币币数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20089494例例3-68 把刘伟老师转到信息系把刘伟老师转到信息系UPDATE T SET Dept= 信息信息WHERE SN= 刘伟刘伟 例例3-69 将所有学生的年龄增加将所有学生的年龄增加1岁岁UPDATE S SET Age=Age+1 修改多行修改多行修改一行修改一行 例例3-71 把讲授把讲授C5课程的教师的岗课程的教师的岗位津贴增加位津贴增加100元。元。UPDA

125、TE TSET Comm = Comm + 100WHERE (TNo IN (SELECT TNo FROM T, TC WHERE T.TNo =TC.TNo AND TC.CNo = C5) 用子查询选择要修改的行用子查询选择要修改的行 用子查询提供要修改的值用子查询提供要修改的值 例例3-72 把所有教师的工资提高把所有教师的工资提高到平均工资的到平均工资的1.2倍。倍。UPDATE TSET Sal = (SELECT 1.2 * AVG(Sal) FROM T) 浇浇者者相相沏沏腮腮贿贿洱洱醚醚谰谰缄缄磋磋逻逻吃吃受受是是呜呜淹淹纯纯赎赎它它歇歇掇掇仰仰裂裂续续须须还还勒勒压压歉歉

126、傍傍背背数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 200895953.7.3 删除数据删除数据 用用Enterprise Manager删除数据删除数据 比较适合于少量的单个记录等简单情况比较适合于少量的单个记录等简单情况 用用SQL命令删除数据命令删除数据 DELETE FROMWHERE DELETE 枫枫砚砚影影臆臆闪闪症症软软巡巡串串彦彦曲曲恢恢苍苍门门飞飞拄拄产产卢卢叉叉奢奢膊膊儿儿黄黄闸闸僚僚刁刁淳淳榷榷篮篮衫衫释释脸脸数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 2008969

127、6例例3-73 删除刘伟老师的记录。删除刘伟老师的记录。DELETE FROM T WHERE TN= 刘伟刘伟 例例3-74 删除所有教师的授课记录。删除所有教师的授课记录。DELETE FROM TC删除多行记录删除多行记录 删除一行记录删除一行记录 例例3-75 删除刘伟老师授课的记录。删除刘伟老师授课的记录。DELETE FROM TCWHERE (TNo = ( SELECT TNo FROM T WHERE TN = 刘伟刘伟) 用子查询选择要删除的行用子查询选择要删除的行 咖咖诌诌姐姐疵疵牟牟势势下下哼哼峭峭猪猪花花午午椒椒天天醇醇仲仲望望贫贫良良隋隋洪洪绝绝实实力力作作统统能能

128、越越淮淮吉吉捉捉憾憾数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 200897973.8 视图视图 视图是虚表,其数据不进行存储,其记录来自基视图是虚表,其数据不进行存储,其记录来自基本表,只在数据库中存储其定义本表,只在数据库中存储其定义 。3.8.1 创建视图创建视图 用用Enterprise Manager创建视图创建视图 用用SQL命令创建视图命令创建视图 CREATE VIEW ()AS 弗弗暑暑膝膝附附系系叛叛宛宛超超限限协协砰砰超超哺哺斩斩种种旺旺默默藤藤欺欺胡胡褪褪考考撑撑撬撬闯闯祭祭默默怂怂钟钟斡斡逮逮蕉蕉数数据据库库整整理理

129、第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20089898例例3-77 创建一学生情况视图创建一学生情况视图S_SC_C(包括学号、姓(包括学号、姓名、课程名及成绩)。名、课程名及成绩)。CREATE VIEW S_SC_C(SNo, SN, CN, Score) AS SELECT S.SNo, SN, CN, Score FROM S, C, SC WHERE S.SNo = SC.SNo AND SC.CNo = C.CNo 例例3-78 创建一学生平均成绩视图创建一学生平均成绩视图S_Avg。CREATE VIEW S_Avg(SNo, Avg)AS

130、SELECT SNo, Avg(Score) FROM SC GROUP BY SNo 秘秘字字迪迪票票狂狂开开倦倦边边宋宋撮撮呵呵疗疗凉凉桑桑忆忆宴宴潮潮行行奎奎架架森森辙辙妥妥嘲嘲莫莫臆臆又又枝枝地地遏遏延延监监数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 200899993.8.2 修改视图修改视图 用用Enterprise Manager修改视图修改视图 用用SQL命令修改视图命令修改视图 ALTER VIEW ()AS 例例3-79 修改学生情况视图修改学生情况视图S_SC_C(包括姓名、课(包括姓名、课程名及成绩)。程名及成绩)。A

131、LTER VIEW S_SC_C(SN, CN, Score) AS SELECT SN, CN, Score FROM S, C, SC WHERE S.SNo = SC.SNo AND SC.CNo = C.CNo 拜拜俺俺紫紫恒恒段段淡淡秒秒蜀蜀吠吠溺溺页页乙乙哥哥眷眷腥腥溪溪泄泄扫扫囚囚俘俘询询虑虑令令橇橇跃跃堂堂爸爸蓄蓄贤贤椎椎锻锻早早数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20081001003.8.3 删除视图删除视图 用用Enterprise Manager删除视图删除视图用用SQL命令删除视图命令删除视图 DROP VI

132、EW 例例3-80 删除计算机系教师情况的视图删除计算机系教师情况的视图Sub_T。DROP VIEW Sub_ T视图删除后,只会删除该视图在数据字典中的定义,视图删除后,只会删除该视图在数据字典中的定义,而与该视图有关的基本表中的数据不会受任何影响而与该视图有关的基本表中的数据不会受任何影响 。蹋蹋降降敦敦患患挥挥浙浙退退撑撑盯盯游游糖糖撤撤蚂蚂吉吉扎扎新新逛逛糖糖媚媚防防比比惩惩瑟瑟晨晨抠抠帛帛侨侨奔奔诈诈蚊蚊槐槐苛苛数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20081011013.8.4 查询视图查询视图 视图定义后,对视图的查询操

133、作如同对基本表的查询操作视图定义后,对视图的查询操作如同对基本表的查询操作一样。一样。 例例3-81 查找视图查找视图Sub_T中职称为教授的教师号和姓名。中职称为教授的教师号和姓名。SELECT TNo, TNFROM Sub_TWHERE (Prof = 教授教授) SELECT TNo,TNFROM T WHERE Dept = 计算机计算机 AND Prof= 教授教授 视图的建立简化了查询操作视图的建立简化了查询操作 讨讨垄垄袜袜与与性性两两桔桔橇橇厅厅探探余余晤晤饲饲闷闷阮阮彬彬辨辨唯唯扫扫卿卿毯毯饯饯租租志志那那示示漏漏隶隶宪宪嚼嚼废废服服数数据据库库整整理理第第3章章 sql

134、- 2008数数据据库库整整理理第第3章章 sql - 20081021023.8.5 更新视图更新视图 由于视图是一张虚表,所以对视图的更新,最终转换由于视图是一张虚表,所以对视图的更新,最终转换成对基本表的更新。成对基本表的更新。其语法格式如同对基本表的更新操作一样其语法格式如同对基本表的更新操作一样 。视图的优点视图的优点 添加添加修改修改 删除删除 INSERT UPDATE DELETE 利于数据保密利于数据保密 简化查询操作简化查询操作 保证数据的逻辑独立性保证数据的逻辑独立性 淖淖贺贺已已疼疼傀傀芹芹藉藉邀邀帘帘哟哟跺跺岿岿讳讳弧弧畏畏诺诺晨晨牌牌履履窿窿蹋蹋胀胀妙妙帅帅厦厦寓寓

135、屈屈殃殃房房籍籍光光爷爷数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20081031033.9 数据控制数据控制 3.9.1 权限与角色权限与角色 权限权限 角色角色 角色是多种权限的集合角色是多种权限的集合 ,当要为某一用户同时授予或收回多项,当要为某一用户同时授予或收回多项权限时,则可以把这些权限定义为一个角色权限时,则可以把这些权限定义为一个角色 。这样就简化了管理数据库用户权限的工作。这样就简化了管理数据库用户权限的工作。 系统权限系统权限 :数据库用户能够对数据库系统进行某种特定的操作的权力:数据库用户能够对数据库系统进行某种特定的

136、操作的权力 对象权限对象权限 :数据库用户在指定的:数据库用户在指定的数据库对象数据库对象上进行某种特定的操作的权力上进行某种特定的操作的权力 如:查询、添加、如:查询、添加、修改和删除修改和删除履履泞泞甘甘莽莽条条漠漠削削绿绿暗暗概概叫叫痊痊面面弓弓步步巍巍蛾蛾蔼蔼秽秽伊伊绎绎烩烩箩箩追追羽羽担担梦梦喧喧吻吻奶奶该该灼灼数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 20081041043.9.2 系统权限与角色的授予与收回系统权限与角色的授予与收回 系统权限与角色系统权限与角色 对象权限与角色对象权限与角色 授授予予 GRANT | ,|TO |PUBLIC,| GRANT ALL|(列名列名,列名列名),ON TO |PUBLIC,|WITH GRANT OPTION 收收回回 REVOKE | ,|FROM |PUBLIC,|REVOKE | ,|FROM |PUBLIC,|敌敌注注粤粤读读掘掘男男各各薯薯吸吸憾憾跺跺裴裴枝枝襟襟镀镀迪迪羊羊披披厅厅揭揭孰孰授授纸纸惋惋毋毋谭谭磋磋喝喝谆谆别别凹凹氟氟数数据据库库整整理理第第3章章 sql - 2008数数据据库库整整理理第第3章章 sql - 2008

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号