SQL必知必会笔记

1、distinct  去重/返回唯一值

作用于所有的列,不仅仅是跟在其后的那一列,不能部分使用distinct。

distinct 后不能出现*

2、limit 

limit 4 offset 3   从第三行开始返回四行    offset与0相比偏移几行

相当于limit 3,4

3、order by

应当保证它是select 语句中最后一条字句

后面可跟非检索/非返回的列,可以用非检索字段进行排序

4、where 子句操作符

<>  !=   不等于

!<  不小于 !> 不大于

between 5 and 10  大于等于5且小于等于10

is null    0、空字符串、空格都不是null,null表示为空

5、操作符优先级 and 大于or

如果想要先算or可以使用圆括号把or的部分扩起来

in 与or的功能相同,in比or执行得更快且可以包含其他select字句

6、通配符 --可以在任何位置,可以使用多个  like后跟

⚠️ 不要过度使用,不要放在搜索模式的开始处,不然会很慢

%  表示任意(0个、1个、多个)字符出现任意次数 ,不匹配null

_  表示单个字符

[]  字符集  ^ 否定  例如 where name like '[^JM]%'   过滤首字母不是J或M的人名

7、拼接字段 + 和 ||  和 concat函数

mysql中使用concat()  例如 select concat(name,' (',country,')') from 表名,返回:小王 (中国)

8、trim函数 --去掉两边空格

ltrim () 去掉字符串左边的空格.  左边的空格woshi woshwoshi

rtrim() 去掉字符串右边的空格。 的空格ç√ç

9、sql算术操作符

+ - * /  加减乘除,()来区分优先顺序 例如select 2*3.  返回6

10、mysql中的部分函数

substring()  提取字符串的组成部分

convert() 数据类型转换

curdate() 取当前日期

 11、常用文本处理函数

left() (或使用子字符串函数)--返回字符串左边的字符

right()(或使用子字符串函数)--返回字符串右边的字符

upper() --将字符串转换为大写

lower()--将字符串转换为小写

length()(也使用datalength()或len())--返回字符串的长度

ltrim()--去掉字符串左边的空格

rtrim()--去掉字符串右边的空格

soundex() --返回字符串的soundex值 发音相似的值

例如 where soundex(name)=soundex(rose)

12、日期和时间处理函数

各种dbms中都有自己特殊形式,可移植性最差

返回日期的某一部分

datepart(yy,date)   datepart('yyyy',date)   date_part('year',date)

to_char() 提取日期的成分

to_number() 将提取出的成分转换为数值

例如 where to_number(to_char(date,'yyyy'))=2023

to_date() 将字符串转换成日期 也可以使用convert()

13、数值处理函数

不常用,但统一

ABS()  返回一个数的绝对值

EXP()  返回一个数的指数值

SQRT() 返回一个数的平方根

PI() 返回圆周率

SIN()  返回一个角度的正弦

COS() 返回一个角度的余弦

TAN() 返回一个角度的正切

14、聚集函数

所有聚集函数可于算数操作符搭配使用,也客户组合使用,执行多个列上的计算,例如 sum(price*quantity) 一个select语句可以包含多个聚集函数

avg() 返回某列的平均值  --忽略列值为null的行

max() 返回某列的最大值

--要求指定列名

--忽略列值为null的行 

--用于文本数据时,max()返回该列排序后的最后一列,默认升序

min() 返回某列的最小值 同max

sum() 返回某列值的和

--忽略列值为null的行 

count() 返回某列的行数

--使用count(*) 空值也计算在内

--count(column) 对某一列计数时,忽略null值

聚集不同的值 distinct 参数 默认为all

distinct 不能用于count(*),必须使用列名,不能用于计算或表达式,例如count(distinct num)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值