2.DML语言(数据库操作语言)(database manipulation language) --数据的操作
CRUD是指在做计算处理时的增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete)几个单词的首字母简写。主要被用在描述软件系统中DataBase或者持久层的基本操作功能。
语法:
插入数据1:insert into 表名 (字段1,字段2…)values (值1,值2)
插入数据2:insert into 表名 values (值1,值2)
删除表数据:delete from 表名称 【where 条件】
更新表数据:update 表名称 set 字段名=新值 where 字段名=旧值
DQL (database query language)select
一、基础查询
查询常量函数表达式: select 常量(字符型、日期型、数值型)、函数(version())、表达式(加、减、乘、除)
语法:
select 字段名 from 表名 where 条件
查询单个字段:select 字段名 from 表名;
查询多个字段:select 字段名1,字段名2 from 表名;
查询所有字段:select * from 表名;
起别名:(as 或者 空格替代 ) select 查询列表 as 别名 from 表名;
返回唯一值:select distinct 字段名 from 表名;
函数:
【concat(字段1,字段2,…)】拼接字符
【ifnull(commission_pct,指定的值)】判断某字段或表达式是否为null,如果为null 返回指定的值,否则返回原本的值
【isnull(expr)】判断某字段或表达式是否为null,如果是,则返回1,否则返回0
concat(str1,str2,…)ifnull(expr1,expr2) isnull(expr)
二、条件查询
select 查询列表 from 表名 where 筛选条件
筛选条件:
1.条件表达式
简单条件运算符:> < = != <> >= <=
2.逻辑表达式
and、or、not
3.模糊查询
between and 、in 、like、is null、is not null)
三、排序查询
语法:
select 查询列表 from 表名 where 筛选条件 order by 排序列表【asc desc】
特点:
1、asc代表的是升序,可以省略,desc代表的是降序
2、order by子句可以支持 单个字段、别名、表达式、函数、多个字段
3、order by子句在查询语句的最后面,除了limit子句
补充:
常见函数
单行函数:
拼接函数 :concat(拼接字段1,拼接字段2,。。。)
截取函数:substr(截取字段,截取开始位置,截取长度)
大写、小写 :upper(大写字段)lower(小写字段)
替换函数:replace(替换字段,替换字符,替换后的字符)
获取字段长度:length(获取长度的字段)
移除字段:trim、ltrim、rtrim
左右填充:lpad、rpad
获取字符串出现的索引:instr
数学函数——向上取整:ceil、向下取整:floor、四舍五入:round、取模:mod、截断:truncate、获取随机数:rand 返回0-1之间的小数
日期函数:now、year、month、day、hour、minute、second、cutdate、cuttime、datediff、mounthname
其他函数:version、user、password、md5
流程控制函数:if、case
分组函数:count、max、min、sum、avg
四、分组查询
语法:
select 查询字段 from 表名 where 分组前筛选条件 group by 分组字段 having 分组后的筛选条件 order by 排序字段;
特点:
1、和分组函数一同查询的字段必须是group by后出现的字段
2、筛选分为两类:分组前筛选和分组后筛选
3、分组可以按单个字段也可以按多个字段
4、可以搭配着排序使用