重庆需要网站建设,网站开发培训哪家好,网站建设制作设计优化兰州,wordpress搜索不了中文linux目录
1.DQL数据查询语言
1.1基本查询
1.2条件查询 where关键字 1.3分组查询
1.4排序查询
1.5分页查询
2.多表设计
3.多表查询——联查
4.多表查询——子查询
5.MySQL 事务
6.事务管理#xff08;事务进阶#xff09;
7.MySQL 索引 1.DQL数据查询语言
分为五大…目录
1.DQL数据查询语言
1.1基本查询
1.2条件查询 where关键字 1.3分组查询
1.4排序查询
1.5分页查询
2.多表设计
3.多表查询——联查
4.多表查询——子查询
5.MySQL 事务
6.事务管理事务进阶
7.MySQL 索引 1.DQL数据查询语言
分为五大基本查询语法 1.1基本查询
-- 查询特定字段
select name,entrydate from tb_emp;
-- 查询所有字段
select * from tb_emp;
-- 查询所有员工的 name,entrydate并起别名(姓名、入职日期)
select name 姓名,entrydate 入职日期 from tb_emp;
-- 查询已有的员工关联了哪几种职位(不要重复)
select distinct job from tb_emp;
1.2条件查询 where关键字 select * from tb_emp where name 陈友谅;
select * from tb_emp where job is null; 1.3分组查询
首先需要知道一个知识点聚合函数就是对某一列的数据所作的操作 select count(id) from tb_emp;
select count(job) from tb_emp;
-- 通配符*计算总数据量
select count(*) from tb_emp;
-- 统计最早入职的员工
select min(entrydate) from tb_emp; 例先査询入职时间在2015-01-01(包含)以前的员工并对结果根据职位job分组 获取员工数量大于等于2的职位
select job,count(*) from tb_emp where entrydate 2015-01-01
group by job having count(*) 2;
where与having区别
执行时机不同where是分组之前进行过滤不满足where条件不参与分组而having是分组之后对结果进行过滤。判断条件不同where不能对聚合函数进行判断而having可以
1.4排序查询 排序方式ASC升序(默认值)、DESC降序
-- 默认升序
select * from tb_emp order by entrydate;
-- 降序
select * from tb_emp order by entrydate desc ;
-- 多个排序字段
select * from tb_emp order by entrydate update_time desc;
1.5分页查询 -- 从 起始索引0 开始査询员工数据每页展示5条记录
select * from tb_emp limit 0, 5;
2.多表设计
项目开发中在进行数据库表结构设计时会根据业务需求及业务模块之间的关系分析并设计表结构由于业务之间相互关联所以各个表结构之间也存在着各种联系基本上分为三种
一对多(多对一)多对多一对一 但是目前上述的两张表在数据库层面并未建立关联所以是无法保证数据的一致性和完整性比如说我在部门表中把“教研部”删除员工表中教研部的员工依然存在这显然是不合理的所以就需要“外键约束”
3.多表查询——联查
如果单纯执行下面的指令会出现问题——笛卡尔积
-- 多表查询
select * from tb_emp, tb_dept; 要解决这个问题只需要令员工的部门id 部门主键id即可
select * from tb_emp, tb_dept where tb_emp.dept_id tb_dept.id; 左外连接完全包含左表数据右外连接完全包含右表数据
4.多表查询——子查询
5.MySQL 事务 -- 事务
-- 删除部门
delete from tb_dept where id 3;
-- 删除部门下的员工
delete from tb_emp where dept_id 3;
在上面的代码中删除部门成功了但是删除该部门下的员工失败了就是因为这两个操作分属两个事务解决办法是把这两个操作控制在一个事务内
-- 开启事务
start transaction ;
-- 删除部门
delete from tb_dept where id 3;
-- 删除部门下的员工
delete from tb_emp where dept_id 3;
-- 提交事务
commit ;
-- 回滚事务
rollback ; 6.事务管理事务进阶 如果在一个a事务中需要开启另一个事务那么这两个事务的关系是怎样的呢这就涉及到了事务的传播行为 7.MySQL 索引
使用普通的sql查询语言效率很低比如在600w的数据量里查询数据往往需要十几秒的时间索引能大幅提高查询效率
索引(index)是帮助数据库高效获取数据的数据结构底层实现是二叉搜索树 优点
提高数据查询的效率降低数据库的IO成本通过索引列对数据进行排序降低数据排序的成本降低CPU消耗
缺点
索引会占用存储空间索引大大提高了查询效率同时却也降低了insert、update、delete的效率