- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQL Server中常用的SQL语句1、概述2、查询概述3、单表查询4、连接查询5、带有exists的相关子查询6、SQL的集合操作7、插入操作8、删除操作9、修改操作10、数据定义11、视图1、概述名词笛卡尔积、主键、外键数据完整性实体完整性:主属性不能为空值,例如选课表中学号和课程号不能为空参照完整性:表中的外键取值为空或参照表中的主键用户定义完整性:取值范围或非空限制,例如:性别(男女),年龄(0-130) 表连接自然连接:与等值连接(a.id=b.id)相比,连接后的表只有一列id,而不是两列(a.id和b.id)。半连接:与等值连接(a.id=b.id)相比,连接后的表只有A表的列,被B表“多次匹配”列会显示为一行。左外连接:left join右外连接:right join全外连接:full join全内连接:inner joinSQL语言的构成DDL语言:数据定义,定义基本表、视图、索引;DML语言:数据操纵,查询、增加、修改、删除DCL语言:权限 2、查询概述查询包括:单表查询、连接查询、带有exists的相关子查询、集合操作四中。select...from常用语句执行过程select… ⑤投影from… ① table→内存where… ②选取元组group… ③分组having… ④选择分组[{union|…} ⑥查徇结果的集合运算select… ] ①~⑤order by… ⑦排序输出3、单表查询group by 只有出现在group by子句中的属性,才可出现在select子句中。用order by子句对查询结果按照一个或多个列的值进行升/降排列输出,升序为ASC;降序为desc,空值将作为最大值排序having 与 where的区别where 决定哪些元组被选择参加运算,作用于关系中的元组having 决定哪些分组符合要求,作用于分组4、连接查询连接查询包括:多表连接查询、单表连接查询(自连接)、外连接查询、嵌套查询4种连接条件一[表名1.] 列名1 比较运算符 [表名2.]列名2连接条件二[表名1.]列名1 between [表名2.]列名2 and [表名2.]列名3连接条件中的列名称为连接字段,对应的连接字段应是可比的。执行过程:采用表扫描的方法,在表1中找到第一个元组,然后从头开始扫描表2,查找到满足条件的元组即进行串接并存入结果表中;再继续扫描表2,依次类推,直到表2末尾。再从表1中取第二个元组,重复上述的操作,直到表1中的元组全部处理完毕。4.1 单表连接(自连接)用表别名把一个表定义为两个不同的表进行连接。例:查找至少选修了2号和4号课程的学生的学号select FIRST.snofrom SC as FIRST, SC as SECOND where FIRST.Sno=SECOND.Sno and FIRST.cno=s2 and SECOND.cno=44.2 外连接查询外连接查询包括:Left join、right join、full join4.3 嵌套查询在select … from … where语句结构的where子句中可嵌入一个select语句块其上层查询称为外层查询或父查询,其下层查询称为内层查询或子查询SQL语言允许使用多重嵌套查询在子查询中不允许使用order by子句嵌套查询的实现一般是从里到外,即先进行子查询,再把其结果用于父查询作为条件4.3.1 返回单个值的子查询例:求与“刘力”同一个系的学生名,年龄方法一:select Sname, Sage from student where Sdept = (select sdept from student where Sname = 刘力);方法二:select FIRST.Sname, FIRST.Sage from Student FIRST, Student SECONDwhere FIRST.Sdept = SECOND.Sdept AND SECOND.Sname = 刘力;4.3.2 返回一组值的子查询例:求选修“C6”课程且成绩超过90分的学生方法一:select * from student where sno IN (select sno from SC where Cno=C6 AND Grade90);方法二(连接查询):select student.*from student,SCwhere Student.Sno=SC.Sno AND Cno=C6 AND Grade90;例:求比计算机系中某一学生年龄
文档评论(0)