去重
# 查询员工表涉及到的部门编号
SELECT DISTINCT department_id FROM employees
示例:
concat 连接字段
逻辑运算符
or
in
判断某字段的值是否属于in列表中的某一项
#查询员工表jobid等于AD_VP,AD_PRES的员工姓名
SELECT last_name,job_id FROM employees WHERE job_id='AD_VP' OR job_id='AD_PRES'
#使用in 等价于or
SELECT last_name,job_id FROM employees WHERE job_id IN('AD_VP','AD_PRES')
模糊查询like
查询不区分大小写
%匹配符号
_占位符号
#查询姓名中带有a的
SELECT first_name FROM employees WHERE first_name LIKE '%a%'
#查询姓名中首字母带有d的
SELECT first_name FROM employees WHERE first_name LIKE 'a%'
#查询第三个字母带有v的
SELECT first_name FROM employees WHERE first_name LIKE '__v%'
示例:
between and
包含临界值
#查询员工编号在100-150之间的
SELECT * FROM employees WHERE employee_id BETWEEN 100 AND 150
is null
查询空值,mysql不支持=null,is null取反就是is not null
#查询没有奖金的员工名和奖金率
SELECT commission_pct ,last_name FROM employees WHERE commission_pct IS NULL
排序查询
降序查询desc
升序查询asc 默认值
order后支持单个字段,多个字段,表达式,函数,别名
order一般放在查询语句的最后面,limit语句除外
语法:
select 查询列表
from 表
where
order by 【desc|asc】
单行函数
concat 拼接字符串
upper 大写
lower 小写
length 长度
substr 截取字符长度
instr 返回子串第一次出现的索引
trim 去除空格
instr
返回子串第一次出现的索引
聚合函数(分组函数)
avg 平均值
sum 求和
max
min
count 个数
内连接,左外
select 字段名 from 表一 【连接类型】 join 表二 on 等值条件
where 条件
group by
having 条件
order by
连接类型:inner,left
SELECT g.name, b.boyName
FROM beauty g
LEFT JOIN boys b
ON g.boyfriend_id=b.id
子查询
概念:出现在其他语句内部的select语句,称为子查询或内查询
分页查询
联合查询union
应用场景:要查询的结果来自于多个表,且多个表没有直接的连接关系,但查询的信息一致时
插入语句
insert into 表名(列名...) values(值)
修改语句
update 表名 set 列=新值 ,列=新值... where 筛选条件
删除语句
delete from 表名 where 条件
double float decimal
M代表小数点前后相加的长度,D代表保留几位小数
如果超过范围,则加入临界值