SQL语句:

1、select------显示表格中一个或者数个栏位所有资料

MySQL高级SQL语句_字符串

 2、distinct----不显示重复的资料

MySQL高级SQL语句_字符串_02

 3、where----有条件查询

MySQL高级SQL语句_字段_03

 4、and  or -------且   或

MySQL高级SQL语句_聚合函数_04

 5、in-----显示已知的值的资料

MySQL高级SQL语句_聚合函数_05

 6、between----显示两个值范围内的资料

MySQL高级SQL语句_字符串_06

 通配符:

通常跟like一起使用

  • %:百分号表示零个、一个或者多个字符
  • _:下划线表示单个字符

7、like----匹配一个模式来找出我们要的资料

MySQL高级SQL语句_字段_07

 MySQL高级SQL语句_sql语句_08

 8、order by ----按关键字排序

MySQL高级SQL语句_sql语句_09

 MySQL高级SQL语句_字符串_10

 函数:

数学函数:

abs(x) 返回x的绝对值
rand() 返回0到1的随机数
mod(x,y) 返回x除以y以后的余数
power(x,y) 返回x的y次方
round(x) 返回离x最近的整数
round(x,y) 保留x的y位小数四舍五入后的值

sqrt(x)

返回x的平方根
truncate(x,y) 返回数字x截断为y为的小数的值
ceil(x) 返回大于或等于x的最小整数
floor(x) 返回小于或者等于x的最大整数
greatest(x1,x2...) 返回集合中最大的值
least(x1,x2...) 返回集合中最小的值

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

聚合函数:

avg() 返回指定列的平均值
count() 返回指定列中非NULL值的个数
min() 返回指定列的最小值
max() 返回指定列的最大值
sum() 返回指定列的所有值之和

 

 

 

 

 

 

MySQL高级SQL语句_字段_11

 

 MySQL高级SQL语句_连接查询_12

 MySQL高级SQL语句_字符串_13

 

 字符串函数:

trim() 返回去除指定格式的值
concat(x,y) 将提供的参数x和y拼接成一个字符串
substr(x,y)

获取从字符串x中的第y个位置开始的字符串,跟substring()函数作用相同

substr(x,y,z) 获取从字符串x中的第y个位置开始长度为z的字符串
length(x) 返回字符串x的长度
replace(x,y,z) 将字符串z替代字符串x中的字符串y
upper(x) 将字符串x的所有字母变成大写字母
lower(x) 将字符串x的所有字母变成小写字母
left(x,y) 返回字符串x的前y个字符串
right(x,y) 返回字符串x的后y个字符
repeat(x,y) 将字符串x重复y次
space(x) 返回x和空格
strcmp(x,y) 比较x和y,返回的值可以为-1,0,1
reverse(x) 将字符串x反转

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MySQL高级SQL语句_字符串_14

 

 MySQL高级SQL语句_sql语句_15

 MySQL高级SQL语句_聚合函数_16

 9、group by-----对group by后面的栏位的查询结果进行汇总分组,通常是结合聚合函数一起使用

group by有一个原则,就是select后面的所有列中,没有使用聚合函数的列,必须出现在

group by后面

MySQL高级SQL语句_字符串_17

 10、having-----用来由group by语句返回的记录集,通常与group by语句联合使用

having语句的存在弥补了where关键字不能与聚合函数联合使用的不足,如果被select的只有函数栏,那就不需要group by子句

MySQL高级SQL语句_字符串_18

 11、别名-----栏位别名  表格别名

MySQL高级SQL语句_字段_19

 

 12、子查询-----连接表格,在where子句或having子句中插入另一个SQL语句

MySQL高级SQL语句_sql语句_20

 

 13、exists----用来测试内查询有没有产生任何结果,类似布尔值是否为真

如果有的话,系统就会执行外查询中的SQL语句。若是没有的话,那整个SQL语句就不会产生任何结果

MySQL高级SQL语句_连接查询_21

 

 连接查询:

  • inner join(内连接):只返回两个表中联结字段相等的行
  • left join(左连接):返回包括左表中的所有记录和右表中联结字段相等的记录
  • right join(右连接):返回包括右表中的所有记录和左表中联结字段相等的记录

 MySQL高级SQL语句_字段_22

 

 MySQL高级SQL语句_字段_23

 

 MySQL高级SQL语句_字段_24

 

 14、create view----视图,可以被当作是虚拟表或存储查询

视图跟表格不同的是,表格中有实际存储资料,而视图是建立在表格之上的一个架构,它本身并不实际储存资料

临时表在用户退出或同数据库的连接断开后就自动消失了,而视图不会消失

视图不含有数据只存储它的定义,它的用途一般可以简化复杂的查询。比如你要对几个表进行连接查询,而且还要进行统计排序等操作,写SQL语句会很麻烦,用视图将几个表联结起来,然后对这个视图进行查询操作,就和对一个表查询一样

视图表本身并不实际存储数据,只是保存一个sekect语句执行后的表结构

MySQL高级SQL语句_字符串_25

 

 MySQL高级SQL语句_字符串_26

 

 15、union-----联集,将两个SQL语句的结构合并起来,两个SQL语句所产生的栏位需要是同样的资料种类

union:生成的结果的资料值将没有重复,且按照字段的顺序进行排序

union all:将生成的结果的资料值都列出来,无论有无重复

MySQL高级SQL语句_字段_27

 

 16、交集值----取两个SQL语句结果的交集

MySQL高级SQL语句_连接查询_28

 

 MySQL高级SQL语句_聚合函数_29

 

 ###两表中的一个表没有指定的行,而另一个表的这个行有重复不适用,要求两个表确实有交集的时候用

MySQL高级SQL语句_sql语句_30

 

 MySQL高级SQL语句_连接查询_31

 

 MySQL高级SQL语句_sql语句_32

 

 17、无交集值----显示第一个SQL语句的结果,且与第二个SQL语句没有交集的结果,且没有重复

MySQL高级SQL语句_字段_33

 

 MySQL高级SQL语句_sql语句_34

 

 MySQL高级SQL语句_连接查询_35

 

 18、case-----是SQL用来做为if-then-else之类逻辑的关键字

MySQL高级SQL语句_字段_36