- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Select方法大集合〔sqlserver〕
关于select查询
输出表中的所有列 select * from 表名
输出表中的部分列 select 字段名表 from 表名
为结果集内的列指定列名 select {字段名1 [ as 列的别名] [,…n]} from 表名
消除取值重复的行,在select 后面紧跟 distinct
限制返回的行数 select top 行数 列名表 from 表名
查询满足条件的元组 select * from 表名 where 查询条件
比较:列表达式1 比较运算符 [列]表达式2
确定范围:列表达式 [NOT] Between 起始值 And 终止值
select *
from 学生
where 出生日期 between 1980-05-01 and 1982-12-31
确定集合:列表达式 [NOT] IN (列值1,列值2,……)
select *
from 班级
where 系部代码 in(01,02)
字符匹配:列表达式 [NOT] Like ‘匹配串’ [escape’换码字符’]
匹配串中可以有:%、_、[…]、[^…]
select *
from 课程
where 课程名 like Delphi/_6.0 escape/
涉及空值的查询:列表达式 IS [NOT] NULL
6) 多重条件查询:使用AND、OR、NOT连接多个查询条件
7. 对查询的结果排序:select * from 表名 [where 查询条件] ORDER BY 列名 [ASC|DESC] [,…n]
select 学号,成绩
from 课程注册
where 课程号=0001
order by 成绩 asc
对数据进行统计
使用集合函数:可以前带DISTINCT或ALL
统计记录个数 COUNT(*)
统计一列中值的个数 COUNT(列名)
计算一列中值的总和 SUM(列名)
计算一列中值的平均值 AVG(列名)
计算一列中值的最大值 MAX(列名)
计算一列中值的最小值 MIN(列名)
对结果进行分组操作:select * from 表名 [where 查询条件] GROUP BY 列名 [HAVING 筛选条件表达式]
select 课程号,COUNT(*) AS 选课人数
from 课程注册
GROUP BY 课程号
HAVING COUNT(*)=3
使用COMPUTE子句:可以对查询结果集中的所有记录进行汇总统计,并显示所有参加汇总记录的详细信息。select * from 表名 [where 查询条件] ORDER BY 列名 COMPUTE 集和函数 [BY 列名]
select *
from 课程注册
ORDER BY 学号
COMPUTE SUM(成绩) BY 学号
用查询结果生成新表:select * into 新表名 from 表名 [where 查询条件]
合并结果集:相当于集合的并操作
select 语句
{union select 语句}
[,…n]
连接查询(在一个查询中涉及多个表)
1) 交叉连接查询
交叉连接:又称非限制连接(广义笛卡尔积),它是将两个表不加约束地连接在一起,连接产生的结果集的纪录为两个表中记录的交叉乘积,结果集的列为两个表属性列的和。交叉连接产生的结果集一般没有什么实际应用的意义,实际使用很少。
语法格式:SELECT 列名表 FROM 表名1 CROSS JOIN 表名2
列名表中罗列的列名是结果集中出现的列名(取自表名1和表名2中的部分或全部)
等值与非等值连接查询
连接查询中用来连接两个表的条件称为连接条件,连接条件的一般格式为;
[表名1.]列名 比较运算符 [表名2.]列名
比较运算符主要有:=,,,=,=,!=。
当比较运算符主要为=时,成为等值连接,其语法格式为:
SELECT 列名表 FROM 表名1 [INNER] JOIN 表名2 ON [表名1.]列名=[表名2.]列名
使用其它运算符的连接为非等值连接。(还可以有其他条件符号)
SELECT *
FROM 产品 INNER JOIN 产品销售 ON 产品.产品编号=产品销售.产品编号
ALTER TABLE 产品
ADD 产量 INT
UPDATE 产品
SET 产量=28
WHERE 产品编号=0001
UPDATE 产品
SET 产量=30
WHERE 产品编号=0002
UPDATE 产品
SET 产量=40
WHERE 产品编号=0003
UPDATE 产品
SET 产量=40
WHERE 产品编号=0004
SELECT *
FROM 产品
SELECT *
FROM 产品销售
SELECT *
FR
文档评论(0)