1.Mysql基础知识
SQL介绍
SQL分类
数据查询语言(DQL-Data Query Language)代表关键字:select
数据操纵语言(DML-Data Manipulation Language)代表关键字:insert,delete,update
数据定义语言(DDL-Data Definition Language)代表关键字:create ,drop,alter,
事务控制语言(TCL-Transactional Control Language)代表关键字:commit ,rollback;
数据控制语言(DCL-Data Control Language)代表关键字:grant,revoke.
数据库设计三范式
第一范式
数据库表中不能出现重复记录,每个字段是原子性的不能再分
第二范式
在第一范式基础上的,另外要求所有非主键字段完全依赖主键,不能产生部分依赖
第三范式
在第二范式基础上的,非主键字段不能传递依赖于主键字段
数据库设计尽量遵循三范式,但是还是根据实际情况进行取舍,有时可能会拿冗余换速度,最终用目的要满足客户
需求。
数据处理函数/单行处理函数
Lower 转换小写
upper 转换大写
substr 取子串(substr( 被截取的字符串, 起始下标, 截取的长度))
length 取长度
trim 去空格
str_to_date 将字符串转换成日期
date_format 格式化日期
format 设置千分位
round 四舍五入
rand() 生成随机数
select lower(ename) from emp;
select * from emp where job=upper('manager');
select * from emp where substr(ename, 1, 1)=upper('m');
select length(ename), ename from emp where length(ename)=5;
select * from emp where job=trim(upper('manager '));
select * from emp where HIREDATE=str_to_date('1981-02-20','%Y-%m-%d');
select empno, ename, date_format(hiredate, '%Y-%m-%d %H:%i:%s') as hiredate from emp;
select empno, ename, Format(sal, 2) from emp;
select round(123.56);
select rand();
select empno, ename, job, sal, case job when 'MANAGER' then sal*1.1 when 'SALESMAN' then sal*1.5 end as
newsal from emp;
分组函数/ 聚合函数/ 多行处理函数
count 取得记录数
sum 求和
avg 取平均
max 取最大的数
min 取最小的数
注意:分组函数自动忽略空值,不需要手动的加 where 条件排除空值;
组合聚合函数
可以将这些聚合函数都放到 select 中一起使用
select count(*),sum(sal),avg(sal)