Mysql数据库—高价语句一(各种判断/函数)
一、查询要求字段的记录-select
select 字段 from 表名;
二、查询不重复记录-distinct
select distinct 字段 from 表名;
三、有条件查询-where
select 字段 from 表名 where 条件;
四、且/或的运用
select 字段 from 表名 where 条件1 and/or 条件2;
五、显示已知的值的记录-in
select 字段 from 表名 where 字段 in(值1,值2);
六、显示两个值范围内的记录-between
select 字段 from 表名 where 字段 between 值1 and 值2;
七、通配符
1.通配符主要用于替换字符串中的部分字符,通过部分字符的匹配将相关结果查询出来
2.通常通配符都是和 like(模糊查询)一起使用的,并协同 where子句共同来完成查询任务
3.常用的通配符有两个:
%:百分号表示任意个数的任意字符
_:下划线表示单个字符
八、按关键字排序-order by
select 字段 from 表名 order by 字段 ASC|DESC
默认不写/ASC:升序
DESC:降序
九、函数
9.1 数学函数
1.abs(x) 返回x的绝对值
2.rand() 返回0到1的随机数
3.mod(x,y) 返回x除以y以后的余数
4.power(x, y) 返回x的y次方
5.round(x) 返回离x最近的整数
6.round(x, y) 保留x的y位小数四舍五入后的值
7.sqrt(x) 返回x的平方根
8.truncate(x, y) 返回数字x截断为y位小数的值
9.ceil(x) 返回大于或等于x的最小整数
10.floor(x) 返回小于或等于x的最大整数
11.greatest(x1, x2...) 返回集合中最大的值
12.least(x1, x2...) 返回集合中最小的值
9.2 聚合函数
1.avg() 返回指定列的平均值
2.count () 返回指定列中非NULL值的个数
注:count (字段):会自动忽略字段值为null的行
count(*):包括所有行,不会忽略null
3.min() 返回指定列的最小值
4.max () 返回指定列的最大值
5.Sum(x) 返回指定列的所有值之和
9.3 字符串函数
1.trim() 返回去除指定格式的值
2.concat (x, y) 将提供的参数x和y拼接成一个字符串
3.substr (x,y) 获取从字符串x中的第y个位置开始的字符串,跟substring()函数作用相同
4.substr(x,y,z) 获取从字符串x中的第y个位置开始长度为z的字符串
5.length(x) 返回字符串x的长度
6.replace(x, y, z) 将字符串z替代字符串x中的字符串y
7.upper(x) 将字符串x的所有字母变成大写字母
8.lower(x) 将字符串x的所有字母变成小写字母
9.left(x,y) 返回字符串x的前y个字符
10.right (x, y) 返回字符串x的后y个字符
11.repeat (x, y) 将字符串x重复y次
12.space (x) 返回x个空格
13.strcmp (x, y) 比较x和y,返回的值可以为-1,0,1
14.reverse(x) 将字符串x反转
十、对查询结果进行汇总分组,通常结合聚合函数-group by
select后的所有列中,没有使用聚合函数的列,必须出现在group by后面
select 字段,聚合函数 from 表名 group by 字段名;
十一、过滤group by语句返回的记录,与group by连用-having
select 字段,聚合函数 from 表名 group by 字段名 having 函数条件;
十二、字段别名、表格别名-as
列的别名
select 字段 [as] 字段别名 from表名;
表的别名
select 字段 from 表名 [as] 别名;
十三、子查询-连接表格,在where或having中插入另一个sql语句
13.1 定义
1.子查询也被称作内查询或者嵌套查询,是指在一个查询语句里面还嵌套着另一个查询语句
2.子查询语句是先于主查询语句被执行的,其结果作为外层的条件返回给主查询进行下一步的查询过滤
3.子语句可以与主语句所查询的表相同,也可以不同
12.2 语法
select 字段1 from 表格1 where 字段2 [比较运算符] #外查询
(select 字段1 from 表格2 where 条件); #内查询
[比较运算符]指=、>、<、>=、<=,也可指文字的运算符,例如like、in、between
十四、测试查询有无结果-exists
select 字段 from 表格1 where exists (select 字段 from 表格2 where 条件);