"这篇文档是针对SQL查询语句的一个全面指南,特别适合SQL初学者和经验丰富的用户。它涵盖了从属性列操作、条件项操作、结果集操作到合并查询和连接查询等多个方面,旨在帮助读者掌握SQL的核心技能。" (一. 属性列操作) 1. 去除重复行:可以使用`DISTINCT`关键字来去除结果集中重复的行,例如 `SELECT DISTINCT column1, column2 FROM table_name`。 2. 获取置顶行:在SQL Server中,可以使用`TOP`关键字获取指定数量的顶部行,如 `SELECT TOP 10 * FROM table_name`。 3. 获取函数值:可以使用内置函数,如`AVG`, `COUNT`, `SUM`, `CASE`等来计算特定列的平均值、总数、求和或进行条件判断。 (二. 条件项操作) 1. 模糊查询:使用`LIKE`关键字进行模糊匹配,如 `SELECT * FROM table_name WHERE column LIKE '%pattern%'`。 2. 范围查询:利用`BETWEEN`关键字来选择特定范围内的数据,例如 `SELECT * FROM table_name WHERE column BETWEEN value1 AND value2`。 3. 空值查询:使用`IS NULL`或`IS NOT NULL`来查找列值为空或不为空的记录,如 `SELECT * FROM table_name WHERE column IS NULL`。 4. 子查询:嵌套查询以满足更复杂的条件,如 `SELECT * FROM table_name WHERE column IN (SELECT column FROM another_table)`。 (三. 结果集操作) 1. 汇总查询:通过`GROUP BY`对数据进行分组并应用聚合函数,如 `SELECT column, COUNT(*) FROM table_name GROUP BY column`。 2. 排序查询:使用`ORDER BY`对结果集进行升序(`ASC`)或降序(`DESC`)排序,例如 `SELECT * FROM table_name ORDER BY column ASC`。 3. 分页查询:结合`LIMIT`(在MySQL中)或`OFFSET`和`FETCH NEXT`(在SQL Server中)实现分页,例如 `SELECT * FROM table_name ORDER BY column LIMIT offset, limit`。 (四. 合并查询:UNION) 1. 条件:UNION操作用于合并两个或多个`SELECT`语句的结果,要求所有列的类型必须匹配。 2. 特点:UNION会自动去除重复行,如果需要保留重复行,可以使用`UNION ALL`。 3. 注意:所有`SELECT`语句中的列数必须相同,且每个列的数据类型也要兼容。 (五. 连接查询:JOIN) 1. 自身连接:当一个表与自身进行连接时,通常用于找出具有特定关系的记录,如 `SELECT * FROM table_name AS T1 JOIN table_name AS T2 ON T1.key = T2.key`。 2. 内连接:连接两个表中满足连接条件的记录,如 `SELECT * FROM table1 INNER JOIN table2 ON table1.key = table2.key`。 3. 外连接:包括左连接(`LEFT JOIN`)、右连接(`RIGHT JOIN`)和全连接(`FULL JOIN`),返回所有匹配或非匹配的记录。 这篇文档详细介绍了SQL查询的基本操作,通过实例讲解了各种查询方式,对于学习和提升SQL技能非常有帮助。无论是初学者还是熟练者,都能从中受益匪浅。
(一.属性列操作:)
1.去除重复行:distinct
select distinct <表名>.<列名> from <[表名]> order by <列名>
2.获取置顶行 :top
select top 10 * from <[表名]>
3.获取函数值:
select avg<列名> from <[表名]>
select count(*) as '总人数' from <[表名]>
select sum(列名) as '总年龄' from <[tstudentinfo]>
select case 列名 where '值' then '值' else 列名 end from <表名>-----替换
select top 10 * from humanresources.employee order by hiredate
select top 10 percent * from humanresources.employee order by hiredate
(二.条件项操作:)
1.模糊查询:like
select * from <表名> where <列名> like '%%'
2.范围查询:between...and..
select * from <表名> where <列名> between 29 and 31
3.空值查询:is null
select * from <表名> where <列名> is null
select * from <表名> where <列名> is not null
4.子查询:in或exists
select * from <表名> where <列名> in(
select * from <表名> s where exists (select * from [表名] u where s.列名=u.列名)
select usertname from [tstudentinfo] x,[tuserse] y where x.usertidcard=y.id and y.usersex='女'
select usertname from [tstudentinfo] x where x.usertidcard in(select id from [tuserse] y where y.usersex='女')
下载后可阅读完整内容,剩余2页未读,立即下载
- 粉丝: 339
- 资源: 11
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- WebLogic集群配置与管理实战指南
- AIX5.3上安装Weblogic 9.2详细步骤
- 面向对象编程模拟试题详解与解析
- Flex+FMS2.0中文教程:开发流媒体应用的实践指南
- PID调节深入解析:从入门到精通
- 数字水印技术:保护版权的新防线
- 8位数码管显示24小时制数字电子钟程序设计
- Mhdd免费版详细使用教程:硬盘检测与坏道屏蔽
- 操作系统期末复习指南:进程、线程与系统调用详解
- Cognos8性能优化指南:软件参数与报表设计调优
- Cognos8开发入门:从Transformer到ReportStudio
- Cisco 6509交换机配置全面指南
- C#入门:XML基础教程与实例解析
- Matlab振动分析详解:从单自由度到6自由度模型
- Eclipse JDT中的ASTParser详解与核心类介绍
- Java程序员必备资源网站大全