sql数据查询基础

1. 按指定列名查询

  • USE 要使用的数据库
  • SELECT 要查询的列,跟*表示查询所有列,

    后跟 TOP n 表示只显示结果的前n项, TOP n PERCENT 获取结果集的前百分之n

    后跟 DISTINCT 可去除重复结果,但是大大降低查询效率

  • FROM 要查询的表


2.按条件查询

2.1. 关键字用法

WHERE 语句应当在 ORDER BY 语句之前使用

2.2.运算符

  1. BETWEEN 运算符包含开始值和结束值
  2. INEXIST 相似,当子表较小时用 IN ,反之用 EXIST

2.3.日期比较

SQL Sever默认的日期格式为 ‘月/日/年’

如:2004年3月16日之后出生

WHERE birth>'03/16/2004'

2.4.与 like 运算符混用的通配符

2.4.1. % 包含

2.4.2. _ 代表任意一个字符

WHERE Cname LIKE '_文_'

严格筛选中间一个字是文的三字名的学生

2.4.3. [] 范围

2.5. 转义字符

SQL Sever使用 ESCAPE 关键字定义转义字符

LIKE '%5#%' ESCAPE '#'

定义了转义字符 # ,如此一来紧跟 # 后面的 % 就变为普通字符,而不是通配符


3. 排序查询的顺序

3.1 设置排序方向且多列排序

  • ORDER BY 默认升序排列;后跟关键字ASC 指定升序, DESC 指定降序
USE ShopDB
SELECT *
FROM Customer
ORDER BY Cno DESC,Cname ASC

示例中会先按Cno降序排列,如果值相等,那么相等的这些又按照Cname升序排列(比如先按总分排列,总分一样的看谁英语低谁排前面🤣)

3.2 按照字段位置排序

字段名太难写或者是表达式,那么 ORDER BY n ,表示SELECT后的第n个字段

USE ShopDB
SELECT Cno,Cname,DATEDIFF(year,birthday,getdate())年龄
FROM dbo.customer
ORDER BY 3 DESC,Address ASC

查询全体客户的客户账号,姓名和年龄并按年龄降序排列,同一年龄的客户,按家庭地址升序排列。

DATEDIFF(时间单位,开始时间,结束时间)

此函数可以返回两段之间的时间

3.3 仅显示前3行数据

SELECT TOP 3 name 姓名, birth 生日
FROM stu
ORDER BY birth

查询生日最大的前五名学生,且列名是中文

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LeavesWebber

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值