SQL分类
DQL:数据查询语言(select)
DML:数据操作语言(增删改,针对表中的数据)
DDL:数据定义语言(带有create,drop,alter的,针对表结构)
TCL:事务控制语言(事务提交commit、回滚rollback)
DCL:数据控制语言(授权grant、撤销权限revoke)
DQL语句
1.查询一个字段:select 字段名 from 表名;
2.查询多个字段:select 字段1,字段2,字段3 from 表名;
3.查询所有字段:select * from 表名;
4.起别名:使用as关键字:select dept as des from depts;
5.条件查询
大于,小于,等于,不等于,小于等于,大于等于
eg:select empno,sal,ename from emp where sal<2000;
between...and...两个值之间(左小右大)
eg:select empno,ename,sal from emp where sal between 2540 and 5000;
and 并且
eg:select empno,ename,job,sal from emp where job="" and sal>2500;
or 或者
eg:select empno,ename,job,sal from emp where job="" or sal>2500;
注意:and和or同时出现,and优先级比较高
in 包含
eg:select empno,ename,job,sal from emp where job in ("","");
like模糊查询,支持%和下划线-匹配(%任意多个 _任意一个)
select ename from emp where ename like "%o%;
select ename from emp where ename like "%\_%;注意\转义字符
6.排序 order by
select ename,sal from emp order by sal desc;#降序
7.数据处理函数/单行处理函数
lower转换小写,upper转换大写,substr取子串,length取长度,trim去空格,
str-to-date字符串转换为日期
8.分组函数
count,sum,arg,max ,min
注意:分组函数不能直接使用在where子句中
分组查询:group by
having和group by进行二次过滤
9.distinct关键字去重
10.连接查询
分类:①内连接:等值连接 非等值连接 自连接
②外连接:左连接 右连接
11.内连接之非等值连接
select e.ename,e.sal,s.grade from emp e join sal.grades on e.sla between s.local and s.hisal;
12.外连接(右连接)
eg: select e.ename,d.dname from emp e right join dept d on e.deptno =d.deptno;
子查询
1.where中的子查询
eg:select ename,sal from emp where sal>(select min(sal) from emp);
2 union 合并的用法
select ename ,job from where job="MADFK"
union
select ename,job from where job="KAHF";
注意:union效率要高一些,union可以减少匹配的次数,还可以完成两个结果集的拼接
4.limit通常使用在分页查询中
eg:select ename ,sal from emp order by sal desc limit 5;
取出工资排名在3-5之间的员工
eg: select ename,sal from emp order by sal desc limit 2,3;
5.表的创建
create table 表名(
字段名1 数据类型,
字段名2 数据类型
);
常见数据类型:varchar,char ,int ,bigint,float,date...
6.删除表
drop table if exists 表名;
注意:delect 删除表中的数据,但是磁盘上的真是存储空间是不会被释放的,支持回滚数据,
7.插入数据
insert into 表名(字段1,字段2,,,)values (值1,值2,,,);
8 .修改表 updata
9.约束 constraint
作用:保证表中数据的有效
常见约束:非空约束,唯一性约束,主键约束,外键约束,检查约束
存储引擎
一个表存储/组织数据的方式
常见的存储引擎:MyISAM,InnoDB,MEMoRY
事务
一个事务其实就是一个完整的业务逻辑,是一个最小的工作单元,不可再分
事务四大特性:①原子性:事务是最小的工作单元,不可再分
②一致性:在同一事务中,要么同时成功,要么同时失败
③隔离性:事务A与事务B之间具有一定的隔离
④持久性:事务是用来结束的一个保障,相当于将没有保存在硬盘上的数据保存到硬盘上
索引
创建和删除:create index emp_ename_index on emp(ename);
drop index emp_ename_index on emp;
注:索引是数据库进行优化的手段
视图
站在不同的角度看待同一份数据
create view emp_view as select * from emp;
只有DQL才能以view方式创建
对视图对象增删改,会导致原来的表被操作
数据库三范式
第一范式:要求在任何一张表中必须要有主键,每一个字段原子性不可再分
第二范式:在第一范式的基础上,要求所有的非主键字段完全依赖主键,不要产生部分依赖
第三范式:在第二范式基础上,要求所有的非主键字段直接依赖主键,不产生传递依赖
公式
第二范式:多对多,三张表,关系表两个外键
第三范式:一对多,二张表,多的表加外键