一、前期准备工作
1.1 登陆mysql,检查数据库
1.2 登录到heihei下,创建新的数据表
1.3 为新的数据表插入值
二、Mysql高级SQL语句
2.1 ORDER BY
2.1.1 按分数升序排序
2.1.2 按分数降序排序
2.2 区间判断及查询不重复记录
2.2.1 AND且
2.2.2 OR或
2.2.3 多条件嵌套
2.3 distinct 查询不重复记录
语法:select distinct 字段 from 表名;
2.4 限制结果条目limit
在使用 MySQL SELECT 语句进行查询时,结果集返回的是所有匹配的记录(行)。有时候仅需要返回第一行或者前几行,这时候就需要用到 LIMIT子句
语法:SELECT column1, column2, ... FROM table_name LIMIT [offset,] number
大白话解释:select 列1,列2,... from 表名 limit 数字
注意:limit的第一个参数是位置偏移量,第一条记录的位置偏移量是0,接下来依次类推。
2.4.1 查询所有信息显示前4行记录
2.4.2 从第4行开始,往后显示3行内容
2.4.3 按id升序排列前三行
2.4.4 按id降序排列最后两行
2.5 通配符
通配符主要用于替换字符串中的部分字符,通过部分字符的匹配将相关结果查询出来。
通常通配符都是跟 LIKE 一起使用的,并协同 WHERE 子句共同来完成查询任务。
常用的通配符有两个:
%:百分号表示零个、一个或多个字符
_:下划线表示单个字符
2.5.1 查询名字是g开头的
2.5.2 查询名字里是g和o中间有一个字符的记录
2.5.3 查询名字中间有u的记录
2.5.4 查询gu后面4个字符的名字记录
2.5.5 查询名字以x开头的记录
2.6 select
对 MySQL 数据库的查询,除了基本的查询外,有时候需要对查询的结果集进行处理。
三、alias
语法:对于列的别名:SELECT column_name AS alias_name FROM table_name;
对于表的别名:SELECT column_name(s) FROM table_name AS alias_name;
四、group by
4.1 按hobbid相同的分组,计算相同分数的学生个数
4.2 筛选分数大于等于85的分组
4.3 按学生个数升序排列,筛选分数大于等于75的分组
五、函数
5.1 聚合函数
5.1.1 计数(COUNT)
5.1.2 求和(SUM)
5.1.3 求平均数(AVERAGE)
5.1.4 最大值(MAX)
5.1.5 最小值(MIN)
5.2 数学函数
数学函数 | 描述 |
---|---|
abs(x) | 返回x的绝对值 |
rand() | 返回0-1之间的随机数 |
mod(x,y) | 返回x除以y的余数 |
power(x,y) | 返回x的y次方 |
round() | 返回离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…) | 返回集合中的最小值 |
5.2.1 返回x的绝对值
5.2.2 返回0-1之间的随机数
rand()还可以用于运算
5.2.3 返回x除以y的余数
5.2.4 返回x的y次方
5.2.5 返回离x最近的整数
5.2.6 保留 x 的 y 位小数四舍五入后的值
5.2.7 返回x的平方根
5.2.8 返回数字 x 截断为 y 位小数的值(没有进位)
5.2.9 返回大于或等于 x 的最小整数
5.2.10 返回小鱼或等于x的最小整数
5.2.11 返回集合中的最大值
5.2.12 返回集合中的最小值
5.3 字符串函数
字符串函数 | 函数 |
---|---|
length(x) | 返回字符串 x 的长度 |
trim() | 返回去除指定格式的值 |
concat(x,y) | 将提供的参数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个空格 |
replace(x,y,z) | 将字符串z替代字符串x中的字符串y |
strcmp(x,y) | 比较x和y,返回的值可以为-1,0,1 |
substring(x,y,z) | 获取从字符串x中的第y个位置开始长度为z的字符串 |
reverse(x) | 将字符串x反转 |
5.3.1 length(x)返回字符串x的长度
5.3.2 返回去除指定格式的值
5.3.3 将提供的参数x和y拼接成一个字符串
concat还可以结合其他函数,例如下图中的trim()
5.3.4 将字符串x的所有字母变成大写字母
5.3.5 将字符串x的所有字母变成小写字母
5.3.6 返回字符串x的前y个字符
5.3.7 返回字符串x的后y个字符
5.3.8 将字符串x重复y次
5.3.9 返回x个空格
5.3.10 将字符串z替代字符串x中的字符串y
5.3.11 比较x和y,返回的值可以为-1,0,1
5.3.12 获取从字符串x中的第y个位置开始长度为z的字符串
5.3.13 将字符串x反转
5.4 日期时间函数
字符串函数 | 描述 |
---|---|
curdate() | 返回当前时间的年月日 |
curtime() | 返回当前时间的时分秒 |
now() | 返回当前时间的日期和时间 |
month(x) | 返回日期x中的月份值 |
week(x) | 返回日期x是年度第几个星期 |
hour(x) | 返回x中的小时值 |
minute(x) | 返回x中的分钟值 |
second(x) | 返回x中的秒钟值 |
dayofweek(x) | 返回x是星期几 |
dayofmonth(x) | 计算日期x是本月的第几天 |
dayofyear(x) | 计算日期x是本年的第几天 |