MySQL高级SQL语句
时间:2021-09-02 16:47:08
收藏:0
阅读:15
SQL语句:
1、select------显示表格中一个或者数个栏位所有资料

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

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

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

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

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

通配符:
通常跟like一起使用
- %:百分号表示零个、一个或者多个字符
- _:下划线表示单个字符
7、like----匹配一个模式来找出我们要的资料


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


函数:
数学函数:
| 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() | 返回指定列的所有值之和 |



字符串函数:
| 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反转 |



9、group by-----对group by后面的栏位的查询结果进行汇总分组,通常是结合聚合函数一起使用
group by有一个原则,就是select后面的所有列中,没有使用聚合函数的列,必须出现在
group by后面

10、having-----用来由group by语句返回的记录集,通常与group by语句联合使用
having语句的存在弥补了where关键字不能与聚合函数联合使用的不足,如果被select的只有函数栏,那就不需要group by子句

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

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

13、exists----用来测试内查询有没有产生任何结果,类似布尔值是否为真
如果有的话,系统就会执行外查询中的SQL语句。若是没有的话,那整个SQL语句就不会产生任何结果

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



14、create view----视图,可以被当作是虚拟表或存储查询
视图跟表格不同的是,表格中有实际存储资料,而视图是建立在表格之上的一个架构,它本身并不实际储存资料
临时表在用户退出或同数据库的连接断开后就自动消失了,而视图不会消失
视图不含有数据只存储它的定义,它的用途一般可以简化复杂的查询。比如你要对几个表进行连接查询,而且还要进行统计排序等操作,写SQL语句会很麻烦,用视图将几个表联结起来,然后对这个视图进行查询操作,就和对一个表查询一样
视图表本身并不实际存储数据,只是保存一个sekect语句执行后的表结构


15、union-----联集,将两个SQL语句的结构合并起来,两个SQL语句所产生的栏位需要是同样的资料种类
union:生成的结果的资料值将没有重复,且按照字段的顺序进行排序
union all:将生成的结果的资料值都列出来,无论有无重复

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


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



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



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

原文:https://www.cnblogs.com/zhangyupengzuishuai/p/15212005.html
评论(0)