基本查询
首先我们先复习一下上次的内容,建表以及在表中插入数据
一次插入多条数据,中间用逗号隔开
- 根据数学成绩进行排序
排序:order by 默认为从小到大排序
- 对总分进行排序后,按从高到低输出
从高到低排序:order by ... desc
- 获得学生总人数
获得某一列的个数:count(列名);
- 获得数学总成绩
获得某一列的总大小:sum(列名)
注意:使用该函数时,列中不能有NULL,否则结果为NULL(只针对数字)
- 获得数学平均值
若想限制小数的位数,用format()函数
- 获得姓孙的同学的成绩
'like' :模糊查询
- 获得数学成绩在80-90之间的同学信息
between A and B : 在A到B这个范围内
- 分组
group by ... having ...
注意:where是直接从磁盘中获得数据,所以分组后的数据(在内存中)不能用where筛选,而应该用having
常用函数
日期函数
- 获得当前时间(年月日 时分秒)
- 获得当前日期(年月日)
- 获得当前时间(时分秒)
- 获得当前时间戳(年月日 时分秒)
- 获得与某日期相隔一段时间的日期
当前日期的两天后的日期
当前日期的两天前的日期
date(now()),将now()返回的当前时间截断为日期型
time(now()),将now()返回的当前时间截断为时间型
- 获得两日期的相隔天数
字符串函数
- 获得字符串的字符集
- 拼接两字符串
- 返回子串在字符串中第一次出现的位置
注意:若存在返回子串在原字符中第一次出现的位置,若不存在,返回0。(字符串第一个字符下标为1)
- 转换大小写
注意:只是进行字符串的字母间的大小写转换。
- 求字符串长度
- 替换字符串中的某字符
- 字符串比较
注意:strcmp(str1,str2)
返回值有三种可能 : "1":表示str1>str2 ; "-1":表示str1<str2; "0":表示str1=str2
- 截取字符串
substring(str,m,n): 将字符串str从第m个字符开始截取n个
注意:字符串的第一个字符下标为1
- 去空格
去左空格:ltrim(str) 去右空格:rtrim(str) 去左右空格:trim(str)
数学函数
- 取绝对值
- 向上取整
- 向下取整
- 转换为十六进制数
- 精确小数点后的位数
注意:会进行四舍五入
- 产生随机数
注意:rand()函数随机产生0到1之间的数。
例:随机产生0到100间的整数
- 模(取余)
其他常用函数
- user() 查询当前用户
- md5() 可以对一个字符传进行加密,加密后的长度固定为32。(一般用于网页加密)
- password() 对mysql用户加密
- ifnull()
注意:ifnull(str1,str2) 若str1结果为null,函数返回str2,否则返回str1