DQL语言
DQL(Data Query launage)语言
加*查询所有字段
- 基础查询
#查询单个字段: select 查询列表 from 表名; #查询列表:表中字段,常量值,表达式,函数(查看函数返回值) #查询结果是一个虚拟表格 #查询多个字段: select 列名,列名 .... from 表名; #起别名 select 查询列表 as 别名 from 表名; select 查询列表 别名 from 表名;(select last_name 姓 from student); #去重: select DISTINCT 查询列表 as 别名 from 表名;
- 条件查询
- 语法:
select 查询列表 from 表名 where 筛选条件
- 分类
- 按条件表达式筛选:条件运算符:> < = != <> >= <=
- 按逻辑表达式筛选
- 模糊查询
-
like /* 一般与通配符搭配使用 通配符:%任意多个字符 _一个字符 使用转义\打印字母 使用escape使某个字符为转义符 */ between and #包含临界值 in /* 判断某字段的值是否属于in 列表的某一项 in列表的值类型必须一致或兼容 */ is null | is not null
-
- 语法:
- 排序查询
-
select 查询列表 from 表名 【where 筛选条件】 order by 排序列表 【asc|desc】
#默认升序
#排序列表支持别名
#支持单个字段,多个字段,表达式,函数,别名
-
- 常见函数:select 函数名(实参列表)
- 字符函数
- length:获取参数值字节个数
- concat:拼接字符串
- upper/lower:大小写
- substr,substring:从指定索引处截取后面所有字符/截取指定长度字符
- instr:返回子串第一次出现的位置
- trim:去除前后选取的字符
- lpad/rpad:用指定的字符实现左/右填充指定长度
- 数学函数
- ceil:向上取整
- floor:向下取整
- truncate:截断
- 日期函数
- now:返回当前系统日期+时间
- curdate:返回当前系统日期
- curtime:返回当前系统时间
![]()
- str_to_date:将字符通过指定的格式转换为日期
- date_format:将日期转换成字符
- 其他函数
-
使用1 case 要判断的字段或表达式 when 常量1 then 要显示的值1或语句1; when 常量2 then 要显示的值2或语句2; .... else 要显示的值n或语句n; end
-
- 分组函数
- 分组查询
- 连接查询
select 查询列表 from 表1 【连接类型】 join 表2 on 连接条件 【where 筛选条件】 【group by】 【having 筛选条件】 【order by 筛选条件】
- 内连接:inner
- 等值连接
- 非等值连接
- 自连接
- 外连接:从表补充
- 左外连接:left 【outer】
- 右外连接:right 【outer】
- 全外连接:full 【outer】
- 交叉连接:cross
- 内连接:inner
- 子查询:出现在其他语句中的select语句,称为子查询或内查询。外部的查询语句,称为主查询或外查询。
- 按子查询出现的位置:
- select后:仅支持标量子查询
- from后: 支持表子查询
- where或having后:标量子查询与列子查询,行子查询
- exists后
- 按结果集的行列数不同
- 标量子查询:结果集只有一行一列
- 列子查询:结果集只有一列多行
- in/not in:等于列表中的任意一个
- any/some:和子查询返回的某一个值比较
- all:和子查询返回的所有值比较
- 行子查询:结果集只有一行多列
- 表子查询:结果集一般有多行多列
- 特点
- 子查询放在小括号类
- 一般放在条件的右侧
- 标量子查询一般搭配单行操作符使用
- 列子查询一般搭配多行操作符使用
- 按子查询出现的位置:
- 分页查询 : 当要显示的数据,一页显示不全,需要分页提交sql请求
select 查询列表 from 表 【join type join 表2 on 连接条件 where 筛选条件 group by 分组字段 having 分组后筛选 order by 排序后的字段】 limit offset, size; offset 要显示条目的起始索引(从0开始) size 要显示的条目个数
- union联合查询

浙公网安备 33010602011771号