mysql常见命令
基础查询
select 查询列表 from 表名;
特点:
1、 查询列表可以是:表中的字段、常量值、表达式、函数
2、查询的结果是一个虚拟的表格
mysql中+号与Java中的对比
条件查询
模糊查询
between and的使用
相当于大于等于100小于等于120
去重
select distinct 字段名 from 表名;
+、concat函数 和ifnull函数
cancat函数
语法:
用于拼接字段
concat('a','b','c')
ifnull函数
例:
判断奖金是否为NULL,如为NULL,返回0
排序查询
补充:字符函数
一般只有length是算字节数(汉字是三个字节)
其他函数都是算长度(字符数)
trim 去掉前后字符串
数字函数
日期函数
now 返回当前系统日期+时间
cerdate 返回当前系统日期,不包含时间
curtime 返回当前时间,不包含日期
year()
month()返回年月
str_to_date('9-13-1999','%m-%d-%Y'):将日期格式的字符转换成指定格式的日期(转换符号见下表)
data_format():将日期转换成字符
流程控制函数——if、case
(等于时成立)
(范围内成立)
简单函数
分组查询
语法:
案例:
复杂的分组查询案例(先写“的”前面,后面的用Having加(分组后筛选的内容))
案例2:
连接查询——笛卡尔乘积
笛卡尔乘积现象:表1有m行,表2有n行,合成表有(m*n)行
select * from beauty;
select * from boys;
select name, boyname from boy,beauty
where beauty.boyfriend_id=boy_id;
添加有效的连接条件
等值连接
select job_title,COUNT(*)
FROM employees e, jobs j
where e.job_id=j.job_id
group by job_title
order by count(*) Desc;
非等值连接
自连接
在同一张表中需要在前面加上别名来区分查询的东西
外连接
应用场景:查询一个表中有另一个表中没有的记录