第五章数据库语言SQL

上传人:cl****1 文档编号:592034188 上传时间:2024-09-19 格式:PPT 页数:97 大小:162KB
返回 下载 相关 举报
第五章数据库语言SQL_第1页
第1页 / 共97页
第五章数据库语言SQL_第2页
第2页 / 共97页
第五章数据库语言SQL_第3页
第3页 / 共97页
第五章数据库语言SQL_第4页
第4页 / 共97页
第五章数据库语言SQL_第5页
第5页 / 共97页
点击查看更多>>
资源描述

《第五章数据库语言SQL》由会员分享,可在线阅读,更多相关《第五章数据库语言SQL(97页珍藏版)》请在金锄头文库上搜索。

1、氓贱执淄许仔饰魁歼湾酮壕儡填盐此婿牺意闯驱舔村弗蓝逻艘衬稀帕寞士第五章数据库语言SQL第五章数据库语言SQL第五章第五章 数据库语言数据库语言SQL菠件雁谱搭犹辞看刁彰潞疹辞扳惑裔屉讼饲哇蓖繁缚膨阻备被标聪尤梭欢第五章数据库语言SQL第五章数据库语言SQL概述概述nSQL的发展的发展n1974年,由年,由Boyce和和Chamberlin提出提出n19751979,IBM San Jose Research Lab的的关系数据库管理系统原型关系数据库管理系统原型System R实施了实施了这种语言这种语言nSQL-86是第一个是第一个SQL标准标准nSQL-89、SQL-92(SQL2)、SQ

2、L-99(SQL3)纱哇徐叉走直芝俭傲它脸聚核上浩烷酚艺弄杖源烤惠四遣掉穗嗡椰久吨米第五章数据库语言SQL第五章数据库语言SQL2概述概述n现状现状n大部分大部分DBMS产品都支持产品都支持SQL,成为操作,成为操作数据库的标准语言数据库的标准语言n有方言,支持程度不同有方言,支持程度不同殖涂腆逆到烬宠褥耶涛奄噬析坎啪寨幅浮贫丢唤村咋肆缨圃鹅棵啪齐美革第五章数据库语言SQL第五章数据库语言SQL3n数据定义(数据定义(DDL)n定义、删除、修改关系模式(基本表)定义、删除、修改关系模式(基本表)n定义、删除视图(定义、删除视图(View)n定义、删除索引(定义、删除索引(Index)n数据操纵

3、(数据操纵(DML)n数据查询数据查询n数据增、删、改数据增、删、改n数据控制(数据控制(DCL)n用户访问权限的授予、收回用户访问权限的授予、收回概述概述SQL的功能的功能勘携炮管棕敢镍免攻妓文懊硼鹿事鳃澈捐河瞎养埔闰亿畜粕扮楚妒肉饵踪第五章数据库语言SQL第五章数据库语言SQL4n交互式交互式SQLn一般一般DBMS都提供联机交互工具都提供联机交互工具n用户可直接键入用户可直接键入SQL命令对数据库进行操作命令对数据库进行操作n由由DBMS来进行解释来进行解释概述概述SQL的形式的形式肮炼棋菱亥阮形梧嘴陵媳樟仿琼诈大著牧淋报馏尔倒丰束探懦佯建钡帝伟第五章数据库语言SQL第五章数据库语言SQ

4、L5嵌入式嵌入式SQLn能将能将SQL语句嵌入到高级语言(宿主语言)语句嵌入到高级语言(宿主语言)n使应用程序充分利用使应用程序充分利用SQL访问数据库的能力、访问数据库的能力、宿主语言的过程处理能力宿主语言的过程处理能力n一般需要预编译,将嵌入的一般需要预编译,将嵌入的SQL语句转化为语句转化为宿主语言编译器能处理的语句宿主语言编译器能处理的语句概述概述SQL的形式的形式殖浊风仅栏卜肖价喂渊厚城紊似驼毫挽惊使凤逊率鸵深墟弱势吉醋淑冰恶第五章数据库语言SQL第五章数据库语言SQL6n数据定义数据定义nCreate、Drop、Altern数据操纵数据操纵n数据查询:数据查询:Selectn数据修

5、改:数据修改:Insert、Update、Deleten数据控制数据控制nGrant、Revoke概述概述SQL的动词的动词真音灼孤新谨胞给鄂叠快借尺傲秋枕础捌考谈寺陌痒衙耀狈描袭揩芯吏吸第五章数据库语言SQL第五章数据库语言SQL7数据查询是数据库应用的核心功能数据查询是数据库应用的核心功能n基本结构基本结构Select A1, A2, ., AnFrom r1, r2, ., rmWhere PA1, A2, ., An( p(r1r1.rm)数据查询数据查询SelectWhereFrom烙玄枕朋孵迹徊园修猛镶搅阁盎闷央怯途答捆瓢沧妈掖奋苗兰峰匪围泄侩第五章数据库语言SQL第五章数据库语言

6、SQL8Select语句的含义语句的含义n对对 From 子句中的各关系,作笛卡儿子句中的各关系,作笛卡儿积(积()n对对 Where 子句中的逻辑表达式进行选子句中的逻辑表达式进行选择(择()运算,找出符合条件的元组)运算,找出符合条件的元组n根据根据 Select 子句中的属性列表,对上子句中的属性列表,对上述结果作投影(述结果作投影( )操作)操作惭凌临秉谷咱设犹办绸冤考劲催陈航瞎镍吉呜且毗空呈凭薄芬欲诞廊媚芋第五章数据库语言SQL第五章数据库语言SQL9Select语句的含义语句的含义n结果集结果集查询操作的对象是关系,结果还是一个关查询操作的对象是关系,结果还是一个关系,是一个结果集

7、,是一个动态数据集系,是一个结果集,是一个动态数据集奏摹硕窒钵梗寇矢象恰彰丝霉专撬萧槽垄败底犀沿督涛匀职桨咱北娜跪于第五章数据库语言SQL第五章数据库语言SQL10Select子句子句n对应于关系代数的投影()运算,用以列出查询结果集中的期望属性顿雅果调蔽耗婆造锗撮挤锤菊媳肆吹赊须题纲冬肘盒犁官庙韩气觅搬耳贯第五章数据库语言SQL第五章数据库语言SQL11nSQL具有包的特性nSelect 子句的缺省情况是保留重复元组( ALL ),可用 Distinct 去除重复元组Select Distinct sdept From StudentSelect All sdept From Student

8、n去除重复元组:费时n需要临时表的支持Select子句子句重复元组重复元组然辽蛆淀番跑裴绽渍好娥或毕墟冷劳挡弧娃厉锁崖爷华议榨往艰子开灯客第五章数据库语言SQL第五章数据库语言SQL12Select子句子句 *与属性列表与属性列表n星号星号 * * 表示所有属性表示所有属性n星号星号 * * :按关系模式中属性的顺序排列,:按关系模式中属性的顺序排列,并具有一定的并具有一定的逻辑数据独立性逻辑数据独立性n显式列出属性名:按用户顺序排列显式列出属性名:按用户顺序排列Select * From StudentSelect Student.*,cno,gradeFrom Student,SCWher

9、e Student.sno = SC.sno骏亡偏撤滦遣荷醉顶诈壹昭臭极搜恋踊嫉挝翻母借呐圣券努碍雪炊燕宵弃第五章数据库语言SQL第五章数据库语言SQL13Select子句子句更名更名n为结果集中的某个属性改名为结果集中的某个属性改名n使结果集更具可读性使结果集更具可读性Select sno as stu_no,cno as course_no, gradeFrom SCSelect sno,sname,2001 - sage as birthdayFrom Student谬涵羔衷硒撞雀匙垫贵恒改拳牛李滦馒阶芹拜挤汤莫板蹲卤显族昔魔调调第五章数据库语言SQL第五章数据库语言SQL14Where

10、 子句子句nwhere子句对应与关系代数中的子句对应与关系代数中的选择选择()n查询满足指定条件的元组可以通过查询满足指定条件的元组可以通过Where子句来实现子句来实现n使使where子句中的逻辑表达式返回子句中的逻辑表达式返回True值值的元组,是符合要求的元组,将被选择的元组,是符合要求的元组,将被选择出来出来衬积撮催异勤直扳构囊谆疯露匆市接伺谁赤震豺憾频跌巩烈陇株芬捏手奥第五章数据库语言SQL第五章数据库语言SQL15Where 子句子句运算符运算符n比较:比较:、=、=、not + n确定范围:确定范围:Between A and B、Not Between A and Bn确定集合

11、:确定集合:IN、NOT INn字符匹配:字符匹配:LIKE,NOT LIKEn空值:空值:IS NULL、IS NOT NULLn多重条件:多重条件:AND、OR、NOT宦珠忿汞停鬼农凡盼繁蜜捧田纂村仅沟茧靳几缝量摘躇袄诣虽缔笑擦逝雹第五章数据库语言SQL第五章数据库语言SQL16Where 子句子句Liken字符匹配:字符匹配:Like、Not Liken通配符通配符n% 匹配任意字符串匹配任意字符串n_ 匹配任意一个字符匹配任意一个字符n大小写敏感大小写敏感苔昧砾攘独硕傍尊镐虞蚊统友鞍嚎匣琶身竖琐敦悠酣围葡忧溺死冀迈丈仇第五章数据库语言SQL第五章数据库语言SQL17Where 子句子句

12、Like例:列出姓张的学生的学号、姓名。例:列出姓张的学生的学号、姓名。Select sno,snameFrom StudentWhere sname LIKE 张张%朝詹表店按故行喳西施庄介馆辉剖占倪碉必掖冶今倡扛噪顷瓤削携漳呢钢第五章数据库语言SQL第五章数据库语言SQL18Where 子句子句Like例:列出张姓且单名的学生的学号、姓名。例:列出张姓且单名的学生的学号、姓名。Select sno,snameFrom StudentWhere sname LIKE 张张_ _牌塑槐构秉卤昧针矽情聊坞式穆秒足膜洋楷掀很吭貉腰距叠丫腊婶贮鼠戏第五章数据库语言SQL第五章数据库语言SQL19Wh

13、ere 子句子句转义符转义符 escape n例:列出课程名称中带有例:列出课程名称中带有_的课号及课的课号及课名名。Select cno,cnameFrom CourseWhere cname LIKE %_% escape 丝蔷吓奄拂纵返仲庭殃抑秆侈缀欲庆稳哨年钝煤情退沦程融乒董揣腑勒偷第五章数据库语言SQL第五章数据库语言SQL20From 子句子句nFrom子句对应与关系代数中的笛卡儿积子句对应与关系代数中的笛卡儿积()n列出将被扫描的关系(表)列出将被扫描的关系(表)例:列出所有学生的学号、姓名、课号、成绩。例:列出所有学生的学号、姓名、课号、成绩。Select Sudent.sno

14、,sname,SC.cno,gradeFrom Student,SCWhere Student.sno = SC.sno陇灾抿侵竭卢秉犯巢谎岔厕栗种郸肺姻窝徽撩朋讽起偷胶贤何卉赘顿裕篮第五章数据库语言SQL第五章数据库语言SQL21From 子句子句元组变量元组变量n为为 From 子句中的关系定义子句中的关系定义元组变量元组变量n方便关系名的引用方便关系名的引用n在同一关系的笛卡儿积中进行辨别在同一关系的笛卡儿积中进行辨别例:列出与例:列出与95001同岁的同学的学号同岁的同学的学号,姓名姓名,年龄年龄SelectT.sno,T.sname,T.sageFromStudent as T,St

15、udent as SWhereS.sno = 95001 ANDT.sage = S.sage锰歪匝紫拓皮罪倚错翌竞迢照锈殆钠畴谣纠修区麓做萧薄掷部拼晤蚊碳狸第五章数据库语言SQL第五章数据库语言SQL22Order By子句子句n指定结果集中元组的排列次序指定结果集中元组的排列次序n耗时耗时nASC(缺省)、(缺省)、DESC、未选中的属性、未选中的属性n例:列出例:列出CS系中的男生的学号、姓名、年龄,并按系中的男生的学号、姓名、年龄,并按年龄进行排列(升序)年龄进行排列(升序)Select sno, sname,sageFrom StudentWhere sdept = CSOrder

16、By sage ASC 壶寨鲸毡蔡鬼盐谁氦申野时掖绑饰撕骤钳贩宇仪桶待忱庙滴丈泰虹话拨胖第五章数据库语言SQL第五章数据库语言SQL23SQL的集合操作的集合操作nSQL的结果集是的结果集是“包包”n多个多个 Select 语句的结果可以进行集合操语句的结果可以进行集合操作,使结果为作,使结果为“集合集合”(default)nSQL-92支持支持n参加集合操作的关系(结果集)必须是参加集合操作的关系(结果集)必须是相容相容的的晰咬右症额帐列臭脆匡敬接毕尤帚坞盈慨耽龙耀棘煤设似迸殊钢煽迸梢菜第五章数据库语言SQL第五章数据库语言SQL24SQL的集合操作的集合操作相容相容n属性个数必须一致属性个

17、数必须一致n对应的类型必须一致对应的类型必须一致n属性名无关属性名无关n最终结果集采用第一个结果的属性名最终结果集采用第一个结果的属性名n缺省为自动去除重复元组缺省为自动去除重复元组n除非显式说明除非显式说明ALLnOrder By放在整个语句的最后放在整个语句的最后租仕忙寇冻撵状漠掠阻数猿舍剐鹅湍耶庞移镁恍衍汹镀绢沫狱恰型秧恤妹第五章数据库语言SQL第五章数据库语言SQL25SQL的集合操作的集合操作并并nunion(并,对应与关系代数的(并,对应与关系代数的),标准),标准SQL都支持的都支持的n采用集合的观点,合成多个查询的结果采用集合的观点,合成多个查询的结果select - with

18、out - order by . UNION ALL select - without - order by . UNION ALL select - without - order by . ORDER BY integer ASC | DESC , . 讲蚤锹锄拥蛔兹陷纺非君盒合盟疲给琶猎赔板哭汤肿颠蛔眨揪衣涨莫臆矿第五章数据库语言SQL第五章数据库语言SQL26例:查询计算机系的学生例:查询计算机系的学生或者或者年龄不大于年龄不大于1919岁岁的学生,并按年龄倒排序。的学生,并按年龄倒排序。SQL的集合操作的集合操作并并箔萍带潍故锥哟标噎驮拭挡疹捻抓伎彬甭搪社声兜厅巳桓判涎香澳炯历当第五

19、章数据库语言SQL第五章数据库语言SQL27nintersect(交,对应与关系代数的(交,对应与关系代数的),并不),并不是所有的是所有的DBMS都支持都支持n例:查询计算机系的学生例:查询计算机系的学生并且并且年龄不大于年龄不大于1919岁岁的学生,并按年龄倒排序。的学生,并按年龄倒排序。SQL的集合操作的集合操作交交卢振她沪策女逗竣酿道回敏圃棠七呐疤夺示湍乃扯潦颜稠键彤丑搔辑瑚闷第五章数据库语言SQL第五章数据库语言SQL28nexcept(差,对应与关系代数的(差,对应与关系代数的 -),并不是),并不是所有的所有的DBMS都支持都支持n例:查询计算机系的男生。例:查询计算机系的男生。

20、SQL的集合操作的集合操作差差懂粹粹境磋蓄母莲贪荤居审炕辟百促轴辰籍疗芦尹焦九炔莲社臂酶碱社费第五章数据库语言SQL第五章数据库语言SQL29n数据定义语言数据定义语言(Data Definition Language)nCreate、Drop、Altern定义一组关系(基本表)、说明各关系的信息定义一组关系(基本表)、说明各关系的信息n各关系的模式各关系的模式n各属性的值域各属性的值域n完整性约束完整性约束n索引索引n安全性和权限安全性和权限数据定义语言(数据定义语言(DDL)抵剂角湍裂良却悟宁据涕种纵渔鞠颠到润仑录烈哦咋堡泳防京棵如具毗苞第五章数据库语言SQL第五章数据库语言SQL30n字

21、符型字符型nchar(n) 、varchar(n)n数值型数值型ninteger、smallintnnumeric(p,d)nreal、double、float(n)n日期日期/时间型时间型ndatentimeDDLSQL中的域类型中的域类型胯稻求励魔凡瑰慎绅靴混鸡愿恒轨嗡呢野凿立院屑硬刁词扳迭手篓坷茹啼第五章数据库语言SQL第五章数据库语言SQL31n域定义语句(域定义语句(SQL-92支持)支持)n需重复使用的需重复使用的nCreate Domain stu_name varchar(20)nCreate Domain zip_code char(6)DDLSQL中的域类型中的域类型兼塑椅

22、佐匡担住跺磁顷惜家栈田极莱譬桩男佰哩季眼撬赃沟戴辗廉素习然第五章数据库语言SQL第五章数据库语言SQL32Create Table r (A1D1, A2D2, AnDn,)其中:其中:r 关系名(表名)、关系名(表名)、 Ai 关系关系 r 的一个属性名的一个属性名Dn 属性属性Ai域值的域类型域值的域类型主键声明:主键声明: primary key (Aj1 ,Aj2 ,Ajvm )DDLSQL的模式定义的模式定义龙迈阿纲奎姐牺司斯赃硬齿剁堂星鸦垄郁夺栗鳞循堑滤撩友国婪翼突捡宵第五章数据库语言SQL第五章数据库语言SQL33Create Domain stu_name varchar(20

23、)Create Table Student (sno char(10) primary key(sno) ,sname stu_name ,sage smallint,ssex char(1),sdept char(2)DDLSQL的模式定义的模式定义处圭错盯癣腹晋产还允睦毖溶奥之茸羊耙揍杰阁硕彤遇完挨绽码颁低想册第五章数据库语言SQL第五章数据库语言SQL34Create Table Course (cno char(10) primary key (cno) ,cname varchar(20) ,credit smallint )Create Table SC (sno char(10)

24、 not null ,cno char(10) not null ,grade smallint,primary key (sno, cno)DDLSQL的模式定义的模式定义儡牢赵终曰管伸贤瞳缺嫡上赖霉球讶瑶些糖撞兴催错档者袜敷篷昨蹭便芝第五章数据库语言SQL第五章数据库语言SQL35n用用SQL删除关系(表)删除关系(表)n将整个关系模式(表结构)彻底删除将整个关系模式(表结构)彻底删除n表中的数据也将被删除表中的数据也将被删除Drop Table rDrop Table student;DDL删除表结构删除表结构 Drop领休走慰登锯咙抠埠谨蛋国蔓踌焦丢莽咕靶苟云砰酿愧磐砷茎院岂罚鳃最第五

25、章数据库语言SQL第五章数据库语言SQL36n删除表中的某属性删除表中的某属性n去除属性及相应的数据去除属性及相应的数据Alter Table r Drop ADDL修改模式修改模式 Alter擞嚏膛帝旁电科丰肋磊八渭信葛堕耸计纷巴剑绸串览茁旭震庭挤紊湛芳麻第五章数据库语言SQL第五章数据库语言SQL37n增加表中的属性增加表中的属性n向已经存在的表中添加属性向已经存在的表中添加属性nallow nulln已有的元组中该属性的值被置为已有的元组中该属性的值被置为NullAlter Table r Add A DAlter Table student phone char(16);DDL修改模式

26、修改模式 Alter裔窿岗锁脚陌桔游里苯佯嘶躇凶拧鸯苛汇轧冻贰穆漠援攀粤喊铡桩曰溪坷第五章数据库语言SQL第五章数据库语言SQL38n属性的默认值属性的默认值n用户不提供某属性的值时,默认值被使用用户不提供某属性的值时,默认值被使用n初始值初始值nTimeStampnDDL中:中:ModifyDate char(30) Default TimeStamp;Alter Table student Add ID integer Default AutoIncrement;DDL Default Value配牺奖乔孙达嚼矽编豹诚贫兰嚏丑卡缺徐况忻倚嗜豹蔬葵弓布害队扦嘛届第五章数据库语言SQL第五章数

27、据库语言SQL39n定义一个新的域(用户定义的域)定义一个新的域(用户定义的域)n需要重复使用的域需要重复使用的域n必须具有相同类型的属性必须具有相同类型的属性Create Domain As ;Create Domain datelog As char(30) default timestampn域的删除域的删除nDrop Domain datelogn各各DBMS的方法是不同的的方法是不同的Restrict/Cascaden使用该域的属性的处理使用该域的属性的处理DDL 域定义域定义隶赴涅片亦怪协肪丧粳珊翱砧绅介裕夫座有邓揩耗侧工焦狼么栋磅归煎熄第五章数据库语言SQL第五章数据库语言SQL

28、40n索引是一种数据结构,是对照表、指针表索引是一种数据结构,是对照表、指针表n索引是为了索引是为了加速加速对表中元组的检索而创建的一种分散对表中元组的检索而创建的一种分散存储结构(存储结构(B树)树)n索引是对表而建立的,由除存放表的数据页面以外的索引是对表而建立的,由除存放表的数据页面以外的索引页面组成索引页面组成n索引是把双刃剑,减慢更新的速度索引是把双刃剑,减慢更新的速度n索引不是索引不是SQL标准的要求标准的要求DDL 索引索引 Index系窥党连怎脱踪焊内魔疚琵隧铸好颠疾蕊换赢谢米棉赌三光逛袒是豪固以第五章数据库语言SQL第五章数据库语言SQL41n索引的种类索引的种类n聚簇索引(

29、聚簇索引(Clustered Index)n非聚簇索引(非聚簇索引(Non-Clustered Index)DDL 索引索引 Index桅讽鄙址吐憨做磨守炯此临驴扼闭悦龙讶侣静啊烛萝讳源塑持澜蓉姐酣副第五章数据库语言SQL第五章数据库语言SQL42n聚簇索引(聚簇索引(Clustered Index)n表中的元组按聚簇索引的顺序物理地存放表中的元组按聚簇索引的顺序物理地存放n根级页面根级页面-中间层页面中间层页面-叶级页面(叶级页面(数据页面数据页面)n一个表中只能有一个聚簇索引一个表中只能有一个聚簇索引n更新的复杂性,需要大量的临时空间更新的复杂性,需要大量的临时空间DDL 索引索引 Ind

30、ex留胜旦墙贡韩米叼笔诸踊厚乓向拜赠须雷止琼饶盔季肖料祟茨话伸呢讳毁第五章数据库语言SQL第五章数据库语言SQL43n非聚簇索引(非聚簇索引(Non-Clustered Index)n表中元组存储的物理顺序与索引的顺序无关表中元组存储的物理顺序与索引的顺序无关n叶级索引页面是指向数据页面的指针叶级索引页面是指向数据页面的指针n每个表可有多个非聚簇索引每个表可有多个非聚簇索引DDL 索引索引 Index嚎尖墩诣爷赶永频惕姥吱焉霉职牺捧畴庶矮郁洒柞峨患够乙艰杀皿铬茹榜第五章数据库语言SQL第五章数据库语言SQL44CREATE UNIQUE CLUSTERED | NONCLUSTEREDINDE

31、X index-name On TableName(Column,Column,)Create Index YearIndex On Movie(year);Create Clustered Index SnoIndex On student(sno) ;Drop Index YearIndex;DDL 索引索引 Index删扩首岗矣婴呆衡综晕叠强迪矛轧瑚袁捡勘冗哺书亿操刃扎弦蛙台毡畅腆第五章数据库语言SQL第五章数据库语言SQL45n查询与更新的评估查询与更新的评估n查询多?查询多?n更新多?更新多?n索引的覆盖索引的覆盖nWhere表达式表达式nWhere表达式的顺序表达式的顺序n索引越多

32、越好吗?索引越多越好吗?n了解优化器了解优化器DDL 索引的使用索引的使用糊逮魄检备莉筋掠栗钠晨蹬酷稻故躯抨聂猫暗帆砸瘩霍惹纬蔷嚣焰若湖瀑第五章数据库语言SQL第五章数据库语言SQL46n数据添加数据添加n用用SQL的插入语句,向数据库表中添加数据的插入语句,向数据库表中添加数据n按关系模式的属性顺序按关系模式的属性顺序Insert Into Student Values ( 95001, 张三张三,27, M, CS )n按指定的属性顺序,也可以只添加部分属性(非按指定的属性顺序,也可以只添加部分属性(非Null属性为必需)属性为必需)Insert Into Student ( sno, s

33、name, sage)Values ( 95002, 李四李四, 26 )汉该通侵鲍版韧邻浓后扰腿尔童嫉甥类姆去核莹透北扫雷靡双后烹戈缴侯第五章数据库语言SQL第五章数据库语言SQL47n把一列中的值进行聚合运算,返回单值的函数把一列中的值进行聚合运算,返回单值的函数n五个预定义的聚合函数五个预定义的聚合函数n平均值:平均值:AvgAvgn总和:总和: Sum Sumn最小值:最小值:MinMinn最大值:最大值:MaxMaxn计数:计数: Count CountnCount(*)Count(*)、Count(Distinct)Count(Distinct)数值数值聚合函数聚合函数摧涪多诚摸藻

34、铬蔓旦沛捻乓擦娇桌结悬厂芜嘿顶半颧毛云稻琅式瘁枕界矛第五章数据库语言SQL第五章数据库语言SQL48nGroup Byn将查询结果集按某一列或多列的将查询结果集按某一列或多列的值值分组,值相等分组,值相等的为一组,一个分组以一个元组的形式出现的为一组,一个分组以一个元组的形式出现n只有出现在只有出现在Group By子句中的属性,才可出现在子句中的属性,才可出现在Select子句中子句中例:统计各系学生的人数。例:统计各系学生的人数。Select sdept,count(*) as stu_countFrom StudentGroup By sdept聚合函数聚合函数识苑衅吠养铺乡浴曳蕾福喝茧

35、吱烫喝契的陡夹粪孟谐穆硒知紧咱治寓连蚊第五章数据库语言SQL第五章数据库语言SQL49nHavingn针对聚合函数的结果值进行筛选(选择),它作用于针对聚合函数的结果值进行筛选(选择),它作用于分组计算结果集分组计算结果集n跟在跟在Group By子句的后面,子句的后面,没有没有Group By则针对全表则针对全表例:列出具有两门(含)以上不及格的学生的学号、不及格的课目数。Select sno,count(sno) From SCWhere grade = 2聚合函数聚合函数十增仍亿征烙砰痊悔缄陌尺紫肋郊波袁燕毁偷沉肚媚巢屿皖宣蚁哺冤床惠第五章数据库语言SQL第五章数据库语言SQL50nHa

36、ving 与与 Where的区别的区别nWhere 决定哪些元组被选择参加运算,作用于关系中的元组nHaving 决定哪些分组符合要求,作用于分组n聚合函数的条件关系必须用Having,Where中不应出现聚合函数聚合函数聚合函数铱热狰厌药贪纵焚练弦品胡豪趣宿臭惨瓢芜国芝咒衡哪簿婶犁弛策囤茧按第五章数据库语言SQL第五章数据库语言SQL51n聚合函数忽略聚合函数忽略NullnCount:不计不计nSum:不将其计入不将其计入nAvg:具有 Null 的的元组元组不参与不参与nMax / Min:不参与不参与例:例:Select count(sdept) From StudentSelect A

37、vg(sage) From Student聚合函数聚合函数 Null组惩储验帮菩徽苏逊致暗镁龙椽嫩砂辩趟龋亥皿又纷较仲惜演逢缄卑早耗第五章数据库语言SQL第五章数据库语言SQL52n子查询是子查询是嵌套嵌套在另一查询中的在另一查询中的 Select-From- Select-From-Where Where 表达式(表达式(Where/HavingWhere/Having)nSQLSQL允许多层嵌套,由允许多层嵌套,由内而外地内而外地进行分析,子进行分析,子查询的结果作为父查询的查找条件查询的结果作为父查询的查找条件n可以用多个简单查询来构成复杂查询,以增强可以用多个简单查询来构成复杂查询,以

38、增强SQLSQL的查询能力的查询能力n子查询中不使用子查询中不使用 Order By Order By 子句,子句,Order ByOrder By子子句只能对最终查询结果进行排序句只能对最终查询结果进行排序子查询(子查询(Subquery )菲乱逊朱昨迎仅雕融傣阎角迄殿砖靛刃侩错舒升出桅燎时萍嚷袍播拄喘恤第五章数据库语言SQL第五章数据库语言SQL53n返回单值的子查询,只返回返回单值的子查询,只返回一行一列一行一列n父查询与父查询与单值单值子查询之间用比较运算符进行连接子查询之间用比较运算符进行连接n运算符运算符:、=、=、=、 例:找出与例:找出与95001同龄的学生同龄的学生Selec

39、t *From StudentWhere sage = ( Select sage From Student Where sno = 95001 )子查询子查询单值比较单值比较陇溜萝祥黍于漠寥怖死伴涸敞夺备曝暗蜂膜级纪玲赚苦雷僚啊免误团陋颓第五章数据库语言SQL第五章数据库语言SQL54n子查询返回子查询返回多行一列多行一列n运算符:运算符:In、All、Some(Any)、Exists子查询子查询多值多值委蓬爬挽峙厚蒙氏娩额篷锤骤通验刃反蒂跑泳羚蕉翅帝客科贮谨焙议沁植第五章数据库语言SQL第五章数据库语言SQL55n标量值与子查询返回集中的某一个相等,truen IN 被用来测试多值中的成员

40、被用来测试多值中的成员例:查询选修例:查询选修C01课程的学生的学号、姓名。课程的学生的学号、姓名。Select sno,snameFrom StudentWhere sno IN (Select sno From SCWhere cno = C01 )子查询子查询多行一列多行一列子查询子查询多值成员多值成员In怂秸贾擦壹更蕾灰糠祟伺慷子辩铆粘沤肄沛铅厩冀搭姆搂膜兼占唱擎木益第五章数据库语言SQL第五章数据库语言SQL56例:例: 查询选修了查询选修了 数据库数据库的学生的学号和姓名的学生的学号和姓名Select sno,snameFrom StudentWhere sno IN ( Sele

41、ct sno From SC Where cno IN ( Select cnoFrom CourseWhere cname = 数据库)子查询子查询多值成员多值成员In舞驶互烛疡快捏痘色嗣慷糯业乒汐剃席驴榜搅囊偏窃腊粗滴字嫌柑困免充第五章数据库语言SQL第五章数据库语言SQL57n多值比较:多值比较:多行一列多行一列n父查询与多值子查询之间的比较需用父查询与多值子查询之间的比较需用All来连接来连接n标量值标量值s比子查询返回集比子查询返回集R中的每个都大时,中的每个都大时,sAll R 为为True nAll表示所有表示所有n all、 all、=all、 alln all 等价于等价于

42、not in例:找出年龄最小的学生例:找出年龄最小的学生Select * From Student Where sage Some R为为True 或或 ns Any R为为True nSome(早期用早期用Any)表示某一个表示某一个,只要有一个即返回真只要有一个即返回真n some、 some、=some、 somen= some 等价于等价于 in、 some 不等价于不等价于 not in 子查询子查询多值比较多值比较Some/Any尽莲哇宗受鹿波疮膘黄肾与恐侨讹扭咆斋咳灭柴踞哼羹灼虽碧呈摧筒敝蔑第五章数据库语言SQL第五章数据库语言SQL59例:找出不是最小年龄的学生例:找出不是最小

43、年龄的学生Select * From studentWhere sage some ( Select sage From Student )子查询子查询多值比较多值比较填芯阁累县吓孝彪磋夹闺克炼整拇掌烁爷单质鲸抖拇煎砰俊值遇亮育账醋第五章数据库语言SQL第五章数据库语言SQL60例:找出具有最高平均成绩的学号及平均成绩例:找出具有最高平均成绩的学号及平均成绩Select sno ,avg(grade)From SC Group By sno Having avg(grade) = all (Select avg(grade) From SC Group By sno) 子查询子查询多值比较多值

44、比较誓酥扼失象弹劝斩源梨痒镣均屉二明重片蔫妻唇俯冲换擂冲泵顽值返厄噪第五章数据库语言SQL第五章数据库语言SQL61nExists + 子查询用来判断该子查询是否返回元组子查询用来判断该子查询是否返回元组n当子查询的结果集非空时,当子查询的结果集非空时,Exists为为Truen当子查询的结果集为空时,当子查询的结果集为空时,Exists为为Falsen不关心子查询的具体内容,因此用不关心子查询的具体内容,因此用 Select *子查询子查询存在判断存在判断Exists康罚阮摊设梢炭枯适啃澡淤鸯都屏梅咳舔殴俗狰彻偷臂言其闷于阶冯嗜羌第五章数据库语言SQL第五章数据库语言SQL62n具有外部引用

45、的子查询,称为相关子查询(Correlated Queries)n外层元组的属性作为内层子查询的条件子查询子查询相关子查询相关子查询蚀翌懂险挑桓肃怒赞钻丁值伤效眼武绽浆坑竿矿跨玛枕滩札温据罐蜂藉桐第五章数据库语言SQL第五章数据库语言SQL63 例:列出选修了例:列出选修了C01课程的学生的学号、姓名课程的学生的学号、姓名Select sno,snameFrom StudentWhere Exists ( Select * From SC Where SC.sno = Student.sno And cno = C01)子查询子查询Correlated & Exists成涛怠诬际疥糯配阶伶淀皑

46、眯足司邢居秋真引失镭稻憎础阉电嘶儡棕埃正第五章数据库语言SQL第五章数据库语言SQL64 例:列出得过例:列出得过100分的学生的学号、姓名分的学生的学号、姓名Select sno,snameFrom StudentWhere Exists ( Select * From SCWhere SC.sno = Student.sno Andgrade = 100)子查询子查询Correlated & Exists绿拯螺恒未练冗值寥洒袱柜赃血威佃抗钩述扭瓶侗泻遂样域养荷俯膘邪株第五章数据库语言SQL第五章数据库语言SQL65例:查询选修了例:查询选修了C01课程的学生的系主任课程的学生的系主任Sel

47、ect managerFrom departmentWhere Exists ( Select * From studentWhere sdept = department.depid And Exists ( Select *From SCWhere SC.sno = student.sno Andcno = C01)子查询子查询Correlated & Exists婴黍刃掐女瀑楔掇额挂秧歧恍跳毙骄咬响龚车驻琼蚌试专景噪抱迈谦羡郑第五章数据库语言SQL第五章数据库语言SQL66 例:列出没有选例:列出没有选C01课程的学生的学号、姓名课程的学生的学号、姓名Select sno,snameFr

48、om StudentWhere Not Exists ( Select * From SCWhere SC.sno = Student.sno Andcno = C01)子查询子查询Correlated & Not Exists号祷妊磁雾讫售臆斡隆祥牺弄披丑找届桌抽熬卤粥阳珍驮鲍肿南僧脱篆剪第五章数据库语言SQL第五章数据库语言SQL67例:查询选修了所有课程的学生的姓名例:查询选修了所有课程的学生的姓名(ForAll)Select snameFrom StudentWhere Not Exists ( Select * From CourseWhere Not Exists ( Select

49、 *From SCWhere Student.sno = SC.sno AndSC.cno = Co)这门课他没选这门课他没选这样的课是不存在的这样的课是不存在的子查询子查询Correlated & Not Exists娠馈肉腺淌厂咳瞻颧舌昧聚丫澜头周瓷纸怎既苟外售誉祟谤抗募蚂督煌彝第五章数据库语言SQL第五章数据库语言SQL68nSQL-92SQL-92支持多列的成员资格测试(支持多列的成员资格测试(ASA7.0ASA7.0不支持)不支持)例:找出同系、同年龄、同性别的学生例:找出同系、同年龄、同性别的学生Select *Select *from Student as Tfrom Stude

50、nt as TWhere Where (T.sdept,T.sage,T.ssexT.sdept,T.sage,T.ssex) IN ) IN ( Select ( Select sdept,sage,ssexsdept,sage,ssexsdept,sage,ssexsdept,sage,ssexFrom student as SFrom student as SWhere S.sno T.sno ) Where S.sno T.sno ) 子查询子查询多列元组的比较第奥里洪卫疡适染衅荡椎喜诀丛梁翼溜铸扭突济剔矽议要憨启王酗跋啼较第五章数据库语言SQL第五章数据库语言SQL69nSQL-92

51、允许在允许在 From中使用查询表达式中使用查询表达式n必须为其取名必须为其取名例:查询平均成绩大于例:查询平均成绩大于75分的学号、姓名、平均成绩分的学号、姓名、平均成绩 Select stu_no,sname,avg_gradeFrom Student, (Select sno,avg(grade)From SCGroup By sno ) as S (stu_no,avg_grade)Where Student.sno = S.stu_no Andavg_grade 75派生关系派生关系懈顽涣困廷彭硅湍寻怔当困变嚼狞滥舱族恩狠驶留憾唁冻慧恕虞燕套皑畦第五章数据库语言SQL第五章数据库语言

52、SQL70nNULLn表示数据的缺失n一个确实存在,但我们不知道的值n对本实体此数值无意义,可能是设计上的失误n是SQL的关键字,用于任何类型描述缺失的值nUNKONWn是三值逻辑的一个真值(True/False/Unkonw)空值和连接空值和连接钳瓦嘻个越获脱许役督遂抬寺障膏蓉锑猾帽执琢棠挞永阴唐怨搽拎啄卞谈第五章数据库语言SQL第五章数据库语言SQL71nNULL的运算法则n对对NULL值和其他任何值作算术运算时,值和其他任何值作算术运算时,结果为结果为NULLn对对NULL值和其他任何值作比较时,结果值和其他任何值作比较时,结果为为UNKOWNnIs Null / Is Not Null

53、空值和连接空值和连接君盼主恨食犁驾愚疙盘陨贸炭君颁荷填宰楔脯蛋点亡铆泥笼啦锅昧诬乒渗第五章数据库语言SQL第五章数据库语言SQL72nUnkownn视视True为为1,False为为0,Unkown为为1/2nAND:取小取小nOR:取大取大nNOT:取取1的补的补n真值表不必死记硬背真值表不必死记硬背空值和连接空值和连接札蔽途旬壬肩婚马训驴患耙驱惩贾启某祥隐看鸦魁蚁射愈狭峡邵盅早姑肖第五章数据库语言SQL第五章数据库语言SQL73n关系的连接关系的连接n连接操作是以两个关系为输入、将另一个关系作为结连接操作是以两个关系为输入、将另一个关系作为结果返回果返回n笛卡儿积、条件连接、自然连接、外连

54、接笛卡儿积、条件连接、自然连接、外连接n自然连接(自然连接( Natural ):):n连接条件是两个关系中具有公共名字的所有属性连接条件是两个关系中具有公共名字的所有属性对均相等,不需要其他条件对均相等,不需要其他条件n对每个相等属性对之一进行投影(去除重复属性)对每个相等属性对之一进行投影(去除重复属性)nStudent Natural Join SCnStudent SC册伊灵叛幼觉姚鞭祝红椿运半重义概九船览晶棵赘坡瓢逼须辕赎锨捷消石第五章数据库语言SQL第五章数据库语言SQL74n关系的连接关系的连接n内连接(内连接(Inner Join):):n它是条件连接,要求参加连接的关系中至少

55、有一它是条件连接,要求参加连接的关系中至少有一对元组对元组满足连接满足连接要求,才能生成连接关系要求,才能生成连接关系n可以是等值连接,也可以是不等值连接可以是等值连接,也可以是不等值连接n新的关系的属性集是参加连接的关系的属性的组新的关系的属性集是参加连接的关系的属性的组合,不去除重复属性合,不去除重复属性nInner是缺省的连接方式是缺省的连接方式n也可以用笛卡儿积也可以用笛卡儿积 + 选择的方法实现选择的方法实现nStudent Inner Join SC on Student.sno = SC.sno算掸羔尖墅伎晨洁仑冉值怂刃薯冈饭侍刷翌床恰旺真爽浇帐雌凰扁落毖毛第五章数据库语言SQL

56、第五章数据库语言SQL75n关系的连接关系的连接n外连接(外连接(Outer Join ):):n它是条件连接,且条件是必需的。它是条件连接,且条件是必需的。n若一个关系中的元组在另一个关系中没有相匹配的若一个关系中的元组在另一个关系中没有相匹配的元组,则这些元组会在连接结果中出现,并在另一元组,则这些元组会在连接结果中出现,并在另一个关系的其他属性位置上放上个关系的其他属性位置上放上Null,而不是像,而不是像Inner 那样被忽略。那样被忽略。n新的关系的属性集是参加连接的关系的属性的组合,新的关系的属性集是参加连接的关系的属性的组合,不去除重复属性不去除重复属性n有左外连接、右外连接、全

57、外连接有左外连接、右外连接、全外连接惜受煽休蒙旺缅尿性悯孺岛贩庄酒锭嫩厄厂谩眉粥士旨焚晕辟盲耘缕捷花第五章数据库语言SQL第五章数据库语言SQL76n关系的连接关系的连接n左外连接(左外连接(Left Outer Join ):):Select *From ( Student Left Outer Join SCon Student.sno = SC.sno) n右外连接(右外连接(Right Outer Join ):):Select *From ( Student Right Outer Join SCon Student.sno = SC.sno) n全外连接(全外连接(Full Out

58、er Join ):):Select *From ( Student Full Outer Join SCon Student.sno = SC.sno) 贿硫栖湘餐靠贤锐衡昼绵宾船这醛蜀最俊营驼邪琳副菏腺摧试勤梢蜕拴蝶第五章数据库语言SQL第五章数据库语言SQL77 数据库的修改数据库的修改数据库修改包括插入数据、修改数据、删除数据数据库修改包括插入数据、修改数据、删除数据数据删除(数据删除(Delete)只能对整个元组操作,不能只删除某些属性上的值只能对整个元组操作,不能只删除某些属性上的值只能对一个关系起作用,若要从多个关系中删除元组,只能对一个关系起作用,若要从多个关系中删除元组,则必

59、须对每个关系分别执行删除命令则必须对每个关系分别执行删除命令Delete From r Where P从关系从关系 r 中删除满足中删除满足P的元组,只是删除数据,而不的元组,只是删除数据,而不是定义是定义杏谨迟职秩跃雇贴倚寓证匪宏韭窘益蓖芜依静甥烁然警徐撇帆族襟杉冠修第五章数据库语言SQL第五章数据库语言SQL78n删除单个元组删除单个元组例:删除学号为例:删除学号为95001的学生的选课信息的学生的选课信息Delete From SCWhere sno = 95001n删除多个元组删除多个元组例:删除选课而未参加考试的学生的选课信息例:删除选课而未参加考试的学生的选课信息Delete Fr

60、om SCWhere grade is nulln删除整个关系中的所有数据删除整个关系中的所有数据例:删除所有学生的选课信息例:删除所有学生的选课信息Delete From SC挪婚踏秤典竣靳瑶来耪歪气谬键帅症担淌柏陵蹋碧忘榔陛遥掣择闪绘太学第五章数据库语言SQL第五章数据库语言SQL79n数据插入(数据插入(Insert)n单行插入:一次只插入一个元组单行插入:一次只插入一个元组例:新增一个学生信息例:新增一个学生信息Insert Into StudentValues ( 98001, Gloria,25, F, CS)n多行插入:插入一个集合多行插入:插入一个集合例例:给给CS系的学生开设

61、必修课系的学生开设必修课C05,建立选课信息,建立选课信息Insert Into SCSelect sno,cno,nullFrom Student,CourseWhere sdept = CS andcno = C05蚊铱古纂乡忆嫂沸器榨辐挣答修坚藏伏嗣椽掇胜箍莱赣店缝逢语利概抢农第五章数据库语言SQL第五章数据库语言SQL80n数据更新(数据更新(Update)n改变符合条件的某个(某些)元组的改变符合条件的某个(某些)元组的属性值属性值例:将例:将95001学生转入学生转入MA系系Update StudentSet sdept = MAWhere sno = 95001例:所有学生年龄加

62、例:所有学生年龄加1Update StudentSet sage = sage + 1斯泥匡刻位刊粟闽苫难墓狼瞅债娱晨陌僧擞稻垮滨垮淀录谓孝巧耀且痈泣第五章数据库语言SQL第五章数据库语言SQL81n数据更新(数据更新(Update)例:将选修例:将选修C05课程的学生的成绩改为该课的平均课程的学生的成绩改为该课的平均成绩成绩Update SCSet grade = (Select avg(grade)From SCWhere cno = C05)Where cno = C05先计算先计算avg,再做,再做Update抚梢致躬挡店感奥汰寿瓣孟堑恢遮镰锭炭驰熏厕盾屿嘎撤戌屈秩飘砧策兑第五章数据库

63、语言SQL第五章数据库语言SQL82n视图(视图(View)n是从一个或几个基本表(或视图)中导出的虚表是从一个或几个基本表(或视图)中导出的虚表n数据库中只保存它的定义数据库中只保存它的定义n是是RDBMS提供给用户以多种角度观察数据库中提供给用户以多种角度观察数据库中数据的重要机制数据的重要机制n创建视图、删除创建视图、删除Create View v as Drop View v例:计算机系的花名册例:计算机系的花名册Create View CS_Stu asSelect sno,sname,ssexFrom StudentWhere sdept = CS巍犬嗅憨荚琶闰乳傍裸厢撇春矽栓财密

64、芋阀徘咒沥霖秀谋苇匪艇辽币湛赖第五章数据库语言SQL第五章数据库语言SQL83n视图(视图(View)n视图名可以出现在任何关系名可以出现的地方视图名可以出现在任何关系名可以出现的地方例:列出计算机系的男生例:列出计算机系的男生Select sno,snameFrom CS_StuWhere ssex = M 例:建立学生平均成绩视图例:建立学生平均成绩视图Create View avg_grade(sno,avg) asSelect sno,avg(grade)From SCGroup By sno铆育足区咖通寡窝楼佬槛袱皂羚保螺级沤填剃穷同梯养搜掺遇灾诊潮硷用第五章数据库语言SQL第五章数

65、据库语言SQL84n视图(视图(View)例:找出平均成绩大于等例:找出平均成绩大于等75的学生的学生Select *From avg_gradeWhere avg = 75注意:此例的使用方法是非标准的。注意:此例的使用方法是非标准的。签息炙休捷障法几淄逞重推键倔陀骆漳袍翼侄糖鸥着筐娘奉文俊脚塔橱噪第五章数据库语言SQL第五章数据库语言SQL85n视图(视图(View)n视图的更新:单表、原始属性构成的视图可以更视图的更新:单表、原始属性构成的视图可以更新(像基本表那样更新)新(像基本表那样更新)n由多表构成的视图由很大的限制由多表构成的视图由很大的限制n视图中的非原始属性也不能更新视图中的

66、非原始属性也不能更新例:例:Update avg_gradeSet avg = 100Where sno = 95001avg不是原不是原始属性始属性凡齐沏勘硼姓毕丽且觉杰滓仔晃贷峨苗搽邑豁粒击起逐蛛涝脾略贰孝丽沧第五章数据库语言SQL第五章数据库语言SQL86n视图(视图(View)视图的作用视图的作用n简化用户的操作简化用户的操作n不同的用户可从不同的角度看待同一数据不同的用户可从不同的角度看待同一数据n支持一定的逻辑数据独立性支持一定的逻辑数据独立性n数据的安全性数据的安全性刷不鳞病拐驴晶篆粕目期刮佳丘虾坑帚冈相懒颓件骗腑班漫挎皑献左按耕第五章数据库语言SQL第五章数据库语言SQL87n

67、数据定义语言数据定义语言(Data Definition Language)nCreate、Drop、Altern定义一组关系(基本表)、说明各关系的信息定义一组关系(基本表)、说明各关系的信息n各关系的模式各关系的模式n各属性的值域各属性的值域n完整性约束完整性约束n索引索引n安全性和权限安全性和权限n各关系在磁盘上的物理存储结构各关系在磁盘上的物理存储结构数据定义语言(数据定义语言(DDL)学助兰跨饭细刘稠径启诣掸伐艳蓉圆旧括灶德莉楷紧紧碑缴蔷失怎蚊伶地第五章数据库语言SQL第五章数据库语言SQL88nSQL中的域类型中的域类型n字符型字符型nchar(n)nvarchar(n)n数值型数

68、值型nintnsmallintnnumeric(p,d)nreal、doublenfloat(n)n日期日期/时间型时间型ndatentime举誉谩杂闯垄浚徒他忍雇圈卫丁茶脏剃捂奥郡轨侥艳缩端饰掂襟钻赴阴铝第五章数据库语言SQL第五章数据库语言SQL89n域定义语句(域定义语句(SQL-92支持)支持)n需重复使用的需重复使用的nCreate Domain stu_name varchar(20)nCreate Domain zip_code char(6)浑毁湖剂浦故档脯筛眼成扭馏捅捣妨烬偿京杀悼灾迈完泉馁拆吼焊赌含缚第五章数据库语言SQL第五章数据库语言SQL90nSQL的模式定义的模式定

69、义Create Table r (A1D1, A2D2, AnDn,)其中:其中: r 关系名(表名)关系名(表名) Ai 关系关系 r 的一个属性名的一个属性名 Dn 属性属性Ai域值的域类型域值的域类型主键声明:主键声明: primary key (Aj1 ,Aj2 ,Ajvm )校验声明:校验声明: check (逻辑表达式逻辑表达式 )眶疮窗握冗麻柠怯蝶疲套幌透汐展裕簇分县仕禁啄就郊售菇瞥褥融荔巨陕第五章数据库语言SQL第五章数据库语言SQL91nExamplesCreate Domain stu_name varchar(20)Create Table Student (sno ch

70、ar(10) not null ,sname stu_name ,sage smallint,ssex char(1),sdept char(2),primary key (sno),check(ssex in (M, F)退树微驮极髓囚垂韵两佰脉酌直蛾翅桔树星妮俞咨酿镐冒煮缚浆卒张仓恳第五章数据库语言SQL第五章数据库语言SQL92Create Table Course (cno char(10) not null ,cname varchar(20) ,credit smallint,primary key (cno)Create Table SC (sno char(10) not nu

71、ll ,cno char(10) not null ,grade smallint,primary key (sno, cno),check(grade =0 and grade =100)炳咙勾滦朱晾散拉陡恕谐谩挥榨铆蔷继佬婪眉趟云英命眷疙用填娜蒜呵憋第五章数据库语言SQL第五章数据库语言SQL93n用用SQL删除关系(表)删除关系(表)n将整个关系模式(表结构)彻底删除将整个关系模式(表结构)彻底删除nDrop Table rn用用SQL删除表中的某属性删除表中的某属性n去除属性及相应的数据去除属性及相应的数据nAlter Table r Drop An用用SQL增加表中的属性增加表中的属

72、性n向已经存在的表中添加属性向已经存在的表中添加属性n已有的元组中该属性的值被置为已有的元组中该属性的值被置为NullnAlter Table r Add A D斧鞍囚贴闻寄户垂丙肃蚤柳呜座烹敖括逢拙客郴蚕部潘忌示吐允拴傀糟葵第五章数据库语言SQL第五章数据库语言SQL94n数据添加数据添加n用用SQL的插入语句,向数据库表中添加数据的插入语句,向数据库表中添加数据n按关系模式的属性顺序按关系模式的属性顺序Insert Into Student Values ( 95001, 张三张三,27, M, CS )n按指定的属性顺序,也可以只添加部分属性(非按指定的属性顺序,也可以只添加部分属性(非

73、Null属性为必需)属性为必需)Insert Into Student ( sno, sname, sage)Values ( 95002, 李四李四, 26 )尽值涌烩谴禽贴疑灿爽点僻舵初漳颇萤揣靠讫蝶脱位顽耕彰昂羞留帛鼓纬第五章数据库语言SQL第五章数据库语言SQL95nNullnNull是是unknownn与与Null的比较都返回的比较都返回unknownn(unknown or unknown) unknownn(true and unknown) unknownn(false and unknown) = falsen(unknown and unknown) = unknown懊壁胺聪客扁瑚裴斤二巢贫抹痊扶溢猴假庞丧率属话尝翌停缕项响带绳继第五章数据库语言SQL第五章数据库语言SQL96练习练习n针对学生-课程体系,作SQL查询n列出各系的学生数(人数多的排在前面)n找出各科成绩均在85分以上(含)的学生的学号、姓名n找出有三门课程的成绩在75分以下的学生的学号、姓名n列出数据库成绩的前五名学生的学号、姓名、成绩恩据咽爵鞍钱挤毡继血衅刀水未宋家妨衍险恢贾址刁嫌薯日楷店犀肘十酚第五章数据库语言SQL第五章数据库语言SQL97

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

最新文档


当前位置:首页 > 办公文档 > 工作计划

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