sql-第09章 数据查询
1. 按指定列名查询
USE
要使用的数据库
SELECT
要查询的列,跟*
表示查询所有列,后跟
TOP n
表示只显示结果的前n项,TOP n PERCENT
获取结果集的前百分之n后跟
DISTINCT
可去除重复结果,但是大大降低查询效率FROM
要查询的表
2.按条件查询
2.1. 关键字用法
WHERE
语句应当在 ORDER BY
语句之前使用
2.2.运算符
BETWEEN
运算符包含开始值和结束值IN
和EXIST
相似,当子表较小时用IN
,反之用EXIST
2.3.日期比较
SQL Sever默认的日期格式为 ‘月/日/年’
如:2004年3月16日之后出生
1 | WHERE birth>'03/16/2004' |
2.4.与 like
运算符混用的通配符
2.4.1. %
包含
2.4.2. _
代表任意一个字符
1 | WHERE Cname LIKE '_文_' |
严格筛选中间一个字是文的三字名的学生
2.4.3. []
范围
2.5. 转义字符
SQL Sever使用 ESCAPE
关键字定义转义字符
1 | LIKE '%5#%' ESCAPE '#' |
定义了转义字符
#
,如此一来紧跟#
后面的%
就变为普通字符,而不是通配符
3. 排序查询的顺序
3.1 设置排序方向且多列排序
ORDER BY
默认升序排列;后跟关键字ASC
指定升序,DESC
指定降序
1 | USE ShopDB |
示例中会先按Cno降序排列,如果值相等,那么相等的这些又按照Cname升序排列(比如先按总分排列,总分一样的看谁英语低谁排前面🤣)
3.2 按照字段位置排序
字段名太难写或者是表达式,那么 ORDER BY n ,表示SELECT后的第n个字段
1 | USE ShopDB |
查询全体客户的客户账号,姓名和年龄并按年龄降序排列,同一年龄的客户,按家庭地址升序排列。
1 | DATEDIFF(时间单位,开始时间,结束时间) |
此函数可以返回两段之间的时间
3.3 仅显示前3行数据
1 | SELECT TOP 3 name 姓名, birth 生日 |
查询生日最大的前五名学生,且列名是中文
- 标题: sql-第09章 数据查询
- 作者: 三葉Leaves
- 创建于 : 2024-05-06 00:00:00
- 更新于 : 2024-11-21 16:56:20
- 链接: https://leavesblog.netlify.app/1d05b2c06d78/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论