收藏 分享(赏)

Select方法大集合(sql server).doc

上传人:hwpkd79526 文档编号:6490177 上传时间:2019-04-14 格式:DOC 页数:9 大小:67.50KB
下载 相关 举报
Select方法大集合(sql server).doc_第1页
第1页 / 共9页
Select方法大集合(sql server).doc_第2页
第2页 / 共9页
Select方法大集合(sql server).doc_第3页
第3页 / 共9页
Select方法大集合(sql server).doc_第4页
第4页 / 共9页
Select方法大集合(sql server).doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、关于 select 查询1. 输出表中的所有列 select * from 表名2. 输出表中的部分列 select 字段名表 from 表名3. 为结果集内的列指定列名 select 字段名 1 as 列的别名 ,n from 表名4. 消除取值重复的行,在 select 后面紧跟 distinct 5. 限制返回的行数 select top 行数 列名表 from 表名6. 查询满足条件的元组 select * from 表名 where 查询条件1) 比较:列表达式 1 比较运算符 列表达式 22) 确定范围:列表达式 NOT Between 起始值 And 终止值select *fro

2、m 学生where 出生日期 between 1980-05-01 and 1982-12-313) 确定集合:列表达式 NOT IN (列值 1,列值 2,)select *from 班级where 系部代码 in(01,02)4) 字符匹配:列表达式 NOT Like 匹配串 escape 匹配串中可以有:%、_、 select *from 课程where 课程名 like Delphi/_6.0 escape/5) 涉及空值的查询:列表达式 IS NOT NULL6) 多重条件查询:使用 AND、OR、NOT 连接多个查询条件7. 对查询的结果排序:select * from 表名 wh

3、ere 查询条件 ORDER BY ,nselect 学号,成绩from 课程注册where 课程号=0001order by 成绩 asc8. 对数据进行统计1) 使用集合函数:可以前带 DISTINCT 或 ALL统计记录个数 COUNT(*)统计一列中值的个数 COUNT(列名)计算一列中值的总和 SUM(列名)计算一列中值的平均值 AVG(列名)计算一列中值的最大值 MAX(列名)计算一列中值的最小值 MIN(列名)2) 对结果进行分组操作:select * from 表名 where 查询条件 GROUP BY 列名 HAVING 筛选条件表达式select 课程号,COUNT(*)

4、 AS 选课人数from 课程注册GROUP BY 课程号HAVING COUNT(*)=33) 使用 COMPUTE 子句:可以对查询结果集中的所有记录进行汇总统计,并显示所有参加汇总记录的详细信息。select * from 表名 where 查询条件 ORDER BY 列名 COMPUTE 集和函数 BY 列名select *from 课程注册ORDER BY 学号COMPUTE SUM(成绩) BY 学号9. 用查询结果生成新表:select * into 新表名 from 表名 where 查询条件10.合并结果集:相当于集合的并操作select 语句 union select 语句

5、,n11.连接查询(在一个查询中涉及多个表)1) 交叉连接查询交叉连接:又称非限制连接(广义笛卡尔积) ,它是将两个表不加约束地连接在一起,连接产生的结果集的纪录为两个表中记录的交叉乘积,结果集的列为两个表属性列的和。交叉连接产生的结果集一般没有什么实际应用的意义,实际使用很少。语法格式:SELECT FROM 表名 1 CROSS JOIN 表名 2中罗列的列名是结果集中出现的列名(取自表名 1 和表名 2 中的部分或全部)2) 等值与非等值连接查询连接查询中用来连接两个表的条件称为连接条件,连接条件的一般格式为;. .主要有:=,=, FROM 表名 1 INNER JOIN 表名 2 O

6、N .=.使用其它运算符的连接为非等值连接。 (还可以有其他条件符号)SELECT *FROM 产品 INNER JOIN 产品销售 ON 产品.产品编号=产品销售.产品编号ALTER TABLE 产品ADD 产量 INTUPDATE 产品SET 产量=28WHERE 产品编号=0001UPDATE 产品SET 产量=30WHERE 产品编号=0002UPDATE 产品SET 产量=40WHERE 产品编号=0003UPDATE 产品SET 产量=40WHERE 产品编号=0004SELECT *FROM 产品SELECT *通常为主键 通常为外键FROM 产品销售SELECT *FROM 产

7、品 INNER JOIN 产品销售 ON 产品.产量产品销售.销量SELECT *FROM 产品 INNER JOIN 产品销售 ON 产品.产量产品销售.销量 AND 产品.产品编号=产品销售.产品编号或SELECT *FROM 产品 , 产品销售 where 产品.产量产品销售.销量 AND 产品.产品编号=产品销售.产品编号3) 自身连接查询(目的是为了在一个表中查找具有相同列值的行)一个表与其自身进行的连接(也可以理解为一个表的两个副本之间的连接) 。在进行自身连接查询时,必须为表指定两个别名,且对所有列的引用均要用别名限定。例:查找不同课程成绩相同的学生的学号、课程号和成绩selec

8、t a.学号,a.课程号from 课程注册 as a join 课程注册 as bon a.学号=b.学号 and a.课程号!=b.课程号4) 外连接查询不仅将满足条件的记录列出,而且还可以将不满足条件的记录的基本信息列出。外连接分为:左外连接:将左表作为主表,主表中所有记录分别与右表的每一条记录进行连接组合,结果集中除了满足条件的记录外,还有主表中不满足连接条件的记录并在右表的相应列上填充 NULL 值。语法如下,SELECT 列名表 FROM 表名 1 LEFT OUTER JOIN 表名 2ON 表名 1.列名=表名 2.列名例:将“产品”表左外连接“产品销售”表SELECT *FRO

9、M 产品 LEFT OUTER JOIN 产品销售ON 产品.产品编号=产品销售.产品编号右外连接:将右表作为主表,主表中所有记录分别与左表的每一条记录进行连接组合,结果集中除了满足条件的记录外,还有主表中不满足连接条件的记录并在左表的相应列上填充 NULL 值。语法如下,SELECT 列名表 FROM 表名 1 RIGHT OUTER JOIN 表名 2ON 表名 1.列名=表名 2.列名例:将“产品”表右外连接“产品销售”表SELECT *FROM 产品 RIGHT OUTER JOIN 产品销售ON 产品.产品编号=产品销售.产品编号全连接:讲左表所有记录分别与右表的每一条记录进行连接组

10、合,结果集中除了满足连接条件的记录外,还有左、右表中不满足连接条件的记录并在左、右表的相应列上填充 NULL 值。语法如下,SELECT 列名表 FROM 表名 1 FULL OUTER JOIN 表名 2ON 表名 1.列名=表名 2.列名例:用全连接的方法连接“产品”表与“产品销售”表SELECT *FROM 产品 FULL OUTER JOIN 产品销售ON 产品.产品编号=产品销售.产品编号5) 复合连接条件查询在 ON 连接表达式中可以有多个连接条件。例如:查询成绩在 75 分以上的学生的学号、姓名,选修课的课程号、课程名、专业代码、成绩,任课教师的教师编号、姓名。SELECT B.

11、课程号,D.课程名,C.教师编号,C.姓名,A.学号,A.姓名,B.专业代码,B.专业学级,B.学期,B.成绩FROM 学生 AS A JOIN 课程注册 AS BON A.学号=B.学号 AND B.成绩75JOIN 教师 AS CON B.教师编号=C.教师编号JOIN 课程 AS DON B.课程号=D.课程号或SELECT 课程注册.课程号,课程.课程名,教师.教师编号,教师.姓名,学生.学号,学生.姓名,课程注册.专业代码,课程注册.专业学级,课程注册.学期,课程注册.成绩FROM 学生, 课程注册,教师,课程WHERE 学生.学号 =课程注册.学号 AND 课程注册.成绩75 AN

12、D 课程注册 .教师编号=教师.教师编号 AND 课程注册.课程号=课程.课程号12.子查询SELECT 语句可以嵌套在其他许多语句中,这些嵌套的 SELECT 语句就称为子查询,子查询的 SELECT 查询总是使用圆括号括起来,且不能包括 COMPUTE 或 FOR BROWSE 子句。SQL Server 对嵌套查询的求解方法是由里向外处理,即每个子查询在上一级查询处理之前求解,子查询的结果用于建立父查询的查询条件。嵌套查询可以用多个简单的查询构造复杂的查询,但嵌套不能超过 32 层。1) 带有 IN 运算符的子查询子查询的结果是一个结果集,父查询通过 IN 运算符将父查询中的一个表达式与

13、子查询结果集中的每一个值进行比较,如果表达式的值与子查询结果集中的任何一个值相等,父查询中的“表达式 IN (子查询) ”条件表达式返回 TRUE,否则返回 FALSE。NOT IN 运算符与 IN 运算符结果相反。父查询(子查询)例如:查询有产品销售记录的产品信息。查询选修了课程名为“大学语文”的学生学号和姓名。SELECT 学号,姓名FROM 学生WHERE 学号 IN(SELECT 学号SELECT 列名表FROM 表名WHERE 表达式 INSELECT 列名FROM 表名WHERE 条件式FROM 课程注册WHERE 课程号 IN(SELECT 课程号FROM 课程WHERE 课程名

14、=大学语文)2) 带有比较运算符的子查询父查询通过比较运算符将父查询中的一个表达式与子查询结果(单值)进行比较,如果比较运算的结果是TRUE,父查询中的“表达式 比较运算符(子查询) ”条件表达式返回 TRUE,否则返回 FALSE。例如:列出高于平均分的学生的信息。SELECT *FROM 学生WHERE 学号 IN(SELECT 学号FROM 课程注册WHERE 成绩(SELECT AVG(成绩)FROM 课程注册 )3) 带有 ANY 或 ALL 运算符的子查询子查询中返回单值是可以用比较运算符,当返回的是一个结果集时,可以使用 ANY 或 ALL 运算符(必须同时使用比较运算符) 。A

15、NY 或 ALL 与比较运算符一起使用的语义运 算 符 语 义ANY 大于子查询结果中的某个值ALL 大于子查询结果中的所有值=ANY 大于等于子查询结果中的某个值=ALL 大于等于子查询结果中的所有值010101001查询比“010101001”班中所有学生年龄都小的其他班的学生学号与姓名。SELECT 学号,姓名FROM 学生WHERE 出生日期 ALL(SELECT 出生日期FROM 学生WHERE 班级代码=010101001)AND 班级代码010101001Sql 语句资料1. 查询表内所有内容Select * from 表名2命令建库Create database 库名 on(n

16、ame = 库名_dat,filename = “ 路径 库名.mdf ” size = ?mb)3命令插入数据Use 库名Insert into 表名 values( 数据 )备注:字符型加单引号,数据时间用逗号分开4命令建表Create table 库名.dbo.表名 (not null 非空 null 为空 primary key 主键 中间用逗号分开)5命令更新数据Update 表名 set 列名 新数据 where 条件6命令查询排序Select * from 表名 order by 列名备注:一般情况配列顺序为正序排列 由小到大 倒序排列:由大到小 加关键字 desc7求平均数 a

17、vgSelect 年龄合计 sum(字段名) from 表名8显示相同数据的总数 countSelect count(*) from 表名 where 条件9查询一个字段的最大值 maxSelect max(字段名) from 表名 10同一数据库中表数据插入新表Insert into 表名(字段名)select 字段名 from 表名 where 条件11命令修改数据类型Alter table 表名 alter column 字段名 新数据类型12别名查询Select a.姓名,b.电话 from java a,java.bWhere a.ID = b.IDFrom 后面定义表的别名Wher

18、e 条件Select 字段名 from 表名 UnionSelect 字段名 from 表名15补充主键Alter table 表名 add primary key 字段名16查看表信息Exce sp_help 表名17命令建立索引 非簇索引Create index 索引名 on 表名 字段名18删除索引Drop index 表名 字段名19建立备份设备Exce sp_add umpdevice disk,备份的文件名,备份地址备注:disk 为 备份设备的类型20删除备份设备Exce sp_dropdevice 备份文件名21备份数据库Backup database 库名 to 备份的文件名

19、22恢复数据库Restore database 库名 to 备份的文件名23建立视图 单表视图Create view 视图名(字段名,字段名)AsSelect 字段名.字段名 from 数据来源表24多表视图别名建立Create ciew 视图名(字段名,字段名)AsSelect a.字段,a. 字段,b.字段,b.字段From 表名 a,表名 bWhere 条件25创建触发器Insert 事件Create trigger 触发器名On 表名For insertAsInsert into 表名 select name,age from insertedupdate 事件Insert 事件Cre

20、ate trigger 触发器名On 表名For insertAsDeclare 变量名 数据类型(长度)Select 变量名 字段 from deletedSelect 变量名 字段 from insertedUpdate 表名 set 字段 变量26创建单一查询的存储过程Create procedure 名称 变量名称 数据类型(长度)AsSelect * from 表名 where 条件字段名 like 变量名称执行 exce 存储名称27增加约束(默认约束)Alter table add constraint 约束名 default 默认值For 字段名28检查约束Alter table add constraint 约束名 check 检查条件

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 小学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报