MySQL数据库之——SQL语句(简易部分)
Posted 丁CCCCC
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL数据库之——SQL语句(简易部分)相关的知识,希望对你有一定的参考价值。
简单语法
一、创建模板表格
二、语法实例
2.1 SELECT
显示表格中一个或者多个选项的所有内容
语法:SELECT 选项 FROM 表名;
select id from cc02;
2.2 DISTINCT
不显示重复的内容
语法:SELECT DISTINCT 选项 FROM 表名;
select distinct age from cc02
2.3 WHERE
条件查询
语法:SELECT DISTINCT 选项 FROM 表名 WHERE 条件;
select height from cc02 where height > 170;
2.4 AND OR
AND:且
OR:或
语法:SELECT 选项 FROM 表名 WHERE 条件1 (AND/OR 条件2);
select name from cc02 where height < 180 OR (height > 150 AND height < 170)
2.5 IN
显示已知的值的内容
语法:SELECT 选项 FROM 表名 WHERE 选项 IN (‘值1’,‘值2’,…);
select * from cc02 where age in ('18','34');
2.6 BETWEEN
显示两个值范围内的内容
语法:SELECT 选项 FROM 表名 WHERE 选项 BETWEEN ‘值1’ AND ‘值2’;
select * from cc02 where height between '150' and '165';
2.7 LIKE
通配符
通常通配符和 LIKE 一起使用
通配符 | 解释 | 举列 |
---|---|---|
% | 零个、一个或者多个字符 | A、AB、ABC、ABCD |
_ | 下划线表示单个字符 | A |
A_Z | 所有以 A 起头,另一个任何值的字符,且以 Z 为结尾的字符串 | ABZ、ACZ、A5Z |
ABC% | 所有以 ABC 起头的字符串 | ABCD、ABC123、ABCABC |
%XYZ | 所有以 XYZ 结尾的字符串 | ABCWYZ、123WYZ、aaWYZ |
%AN% | 所有含有 AN 这个模式的字符串 | 12AN12、abcANaaa、aAN bbb |
_ AN% | 所有第二个字母为 A 和第三个字母为 N 字符串 | aAN123、AANBBB、1ANabcd |
LIKE
匹配一个模式来找出需求的内容
语法:SELECT 选项 FROM 表名 WHERE 选项 LIKE 模式;
select * from cc01 where food like '烤%';
2.8 ORDER BY
按照关键字排序
语法:SELECT 选项 FROM 表名 {WHERE 选项} ORDER BY 选项 [ ASC / DESC ];
- ASC 是按照升序排序,默认排序方式
- DESC 按照降序方式排序
select * from cc02 order by height desc;
select * from cc02 order by height asc;
三、函数
3.1 数学函数
函数 | 解释 |
---|---|
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…) | 返回集合中最小的值 |
select round(1.12345,2), truncate(1.1234,2), ceil(1.2), floor(3.3);
3.2 聚合函数
函数 | 解释 |
---|---|
avg () | 返回指定列的平均值 |
count () | 返回指定列中非NULL值的个数 |
min() | 返回指定列的最小值 |
max () | 返回指定列的最大值 |
sum(x) | 返回指定列的所有值之和 |
举列
#返回cc02 height列平均值
select avg(height) from cc02;
#返回最大值
select max(height) from cc02;
#返回最小值
select min(height) from cc02;
count
count(*) 表示包括所有列的行数,不会忽略null值
count(列名) 表示只包括这一列,统计时会忽略null值的行
3.3 字符串函数
函数 | 解释 |
---|---|
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 反转 |
案列
#两个选项拼接一个,并且输出180行
select concat(name,height) from cc02 where height = 180;
3.4 GROUP BY
对GROUP BY 后面的查询结果进行汇总分组,通常是结合聚合函数一起使用
GROUP BY有个原则,select 后面的所有列中,没用用聚合函数的列,必须出现在GROUP BY后面
语法:SELECT 选项1,SUM(选项2) FROM 表名 GROUP BY 选项1;
select height,sum(age) from cc02 group by height;
3.5 HAVING
用来过滤由GROUP BY语句返回的记录集,通常与GROUP BY语句联合使用
HAVING的存在弥补了WHERE关键字不能和聚合函数联合使用的不足,如果被select的只有函数栏,那就不需要GROUP BY子句
语法:SELECT 选项1,SUM(选项2) FROM 表名 GROUP BY 选项1 HAVING 函数条件;
select height,sum(age) from cc02 group by height having sum(age) > 25;
HAVING只是条件过滤,用来筛选前面GROUP BY的结果
以上是关于MySQL数据库之——SQL语句(简易部分)的主要内容,如果未能解决你的问题,请参考以下文章