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之类逻辑的关键字