常用函数
MySQL服务内置命令
语法:函数名(表头名) 可以单独用,也可以镶嵌
select day(now())
select格式:
- SELECT 函数(表头名) FROM 库名.表名;
- SELECT 函数(表头名) FROM 库名.表名 WHERE 条件;
departments 部门表 employees 员工表
salary 工资表
字符函数
LENGTH(str) 返字符串长度,以字节为单位
mysql> select name , length(name) as 字节个数from tarena.user where name = "root" ;
CHAR_LENGTH(str) 返回字符串长度,以字符为单位
数学函数
日期函数
聚集函数
(对数值类型表头下的数据做统计) 独立使用
输出3号员工2018每个月的基本工资
select basic from tarena.salary where employee_id=3 and year(date)=2018;
数学计算
select sum(basic+bonus) as 年薪 from salary where employee_id=3 and month(date) <=6 and year(date)=2018;
select name,shell ,if(shell="/bin/bash","交互用户","非交互用户") from user;
mysql> select employee_id , name from tarena.employees
where employee_id between 1 and 10 and employee_id % 2 = 0 ;输出员工编号1-10之间偶数员工编号及对应的员工名
判断函数
if(条件,v1,v2) 如果条件是TRUE则返回v1,否则返回v2
ifnull(v1,v2) 如果v1不为NULL,则返回v1,否则返回v2
select name,shell ,if(shell="/bin/bash","交互用户","非交互用户") from user;
select id,name,ifnull(homedir,"no-home")as 家目录 from user;
case函数 可以有多个判断函数
- CASE
- WHEN 判断条件1 THEN 输出结果
- WHEN 判断条件2 THEN 输出结果
- WHEN 判断条件3 THEN 输出结果
- ELSE 输出结果
- END
- mysql> select dept_id,dept_name,
- -> case
- -> when dept_name in ("运维部","开发部","测试部") then "技术部"
- -> else "非技术部"
- -> end as 部门类型 from tarena.departments;
查询结果处理
对select 命令查询找到的数据在作处理
给查找到的数据 排序` order by asc升序 desc降序
select name,uid from tarena.user where uid is not null order by uid desc;
select name,uid from tarena.user where uid is not null order by uid asc;
SELECT 表头名 FROM 库名.表名 [WHERE条件] order by 表头名 asc/desc
给查找到的数据,按照指定列分组 group by
SELECT 表头名 FROM 库名.表名 [WHERE条件] group by 表头名
group by 可以同聚集函数一起使用 avg sum min max count
group by 不能和单个表头一起显示
mysql> select dept_id as 部门编号 ,count(name) as 总人数 from employees group by dept_id;
在查找的数据里,再找符合条件的数据 having 筛选条件
SELECT 表头名 FROM 库名.表名 [WHERE条件] having 筛选条件;
mysql> select dept_id as 部门编号 ,count(name) as 总人数 from employees group by dept_id having 总人数>30 ;
分页 : select 查询结果的行号
SELECT 表头名 FROM 库名.表名 [WHERE条件] limit 数字 (输出结果的前几行)
SELECT 表头名 FROM 库名.表名 [WHERE条件] limit 数字1 (起始行,0表示第一行) 数字2 (总行号)
管理表记录
练习插入表记录 insert into 增
insert into tarena.user(name,uid)values("tom",188);
注意:存储的数据要和表头的
练习修改表记录 update 改
update 库.表 set 表头名=值 表头名=值 ... ; 批量修改
update 库.表 set 表头名=值 表头名=值 ... where 筛选条件;
练习删除表记录 delete from 删
select from 库.表 where 筛选条件;
select 查
desc 库.表 查看表的字段