dql
DQL(Data Query Language)数据查询语言查询是使用频率最高的一个操作,可以从一个表中查询数据,也可以从多个表中查询数据。
- 基础查询
语法:
- select 查询列表 from 表名;
特点:
- 查询列表可以是:表中的字段、常量、表达式、函数
- 查询的结果是一个虚拟的表格
查询结果处理
- 查询常量值 SELECT 100;
- 查询表达式:select 100*98;
- 查询函数:select 函数; / 例如version()
- 特定列查询:select column1,column2 from table
- 全部列查询: select * from table
- 排除重复行: select distinct column1,column2 from table
- 算数运算符:+ - * /
函数:类似于java中的方法,将一组逻辑语句事先在数据库中定义好,可以直接调用
好处:
- 隐藏了实现细节
- 提高代码的重用性
调用:select 函数名(实参列表) [from 表];
分类: - 单行函数:如concat、length、ifnull等
- 分组函数:做统计使用,又称为统计函数、聚合函数、组函数
字符函数
- length():获取参数值的字节个数
- char_length()获取参数值的字符个数
- concat(str1,str2,…):拼接字符串
- upper()/lower():将字符串变成大写/小写
- substring(str,pos,length):截取字符串 位置从1开始
- instr(str,指定字符):返回子串第一次出现的索引,如果找不到返回0
- trim(str):去掉字符串前后的空格或子串,trim(指定子串 from 字符串)
- lpad(str,length,填充字符):用指定的字符实现左填充将str填充为指定长度
- rpad(str,length,填充字符):用指定的字符实现右填充将str填充为指定长度
- replace(str,old,new):替换,替换所有的子串
逻辑处理
case when 条件 then 结果1 else 结果2 end; 可以有多个when
ifnull(被检测值,默认值)函数检测是否为null,如果为null,则返回指定的值,否则返回原本的值
if函数:if else的效果 if(条件,结果1,结果2)
数学函数
- round(数值):四舍五入
- ceil(数值):向上取整,返回>=该参数的最小整数
- floor(数值):向下取整,返回<=该参数的最大整数
- truncate(数值,保留小数的位数):截断,小数点后截断到几位
- mod(被除数,除数):取余,被除数为正,则为正;被除数为负,则为负
- rand():获取随机数,返回0-1之间的小数
日期函数
- now():返回当前系统日期+时间
- curdate():返回当前系统日期,不包含时间
- curtime():返回当前时间,不包含日期
可以获取指定的部分,年、月、日、小时、分钟、秒 YEAR(日期),MONTH(日期),DAY(日期) ,HOUR(日期) ,MINUTE(日期) SECOND(日期)
- str_to_date:将日期格式的字符转换成指定格式的日期
SELECT STR_TO_DATE(‘1998-3-2’, ‘%Y-%m-%d’); - date_format:将日期转换成字符串
SELECT DATE_FORMAT(NOW(), ‘%y年%m月%d日)’) AS output ; - datediff:返回两个日期相差的天数