多表查询

表用逗号隔开,查询结果相当于笛卡尔积,可以通过增加条件来消除无效的结果

select * from tb_emp,tb_dept where tb_emp.dept_id=tb_dept.id;

连接查询

内连接:相当于查询交集部分的数据

外连接:

​ 左外链接:查询左表数据

​ 右外链接:查询右表数据

内连接

语法

//隐式内链接
select 字段列表 from 表一,表二 where 条件;
//显式内连接
select 字段列表 from 表一 [inner] join 表二 on 连接条件;

例子

# 查询员工姓名及其所属部门,隐式(经常)
select tb_emp.name,tb_dept.name
from tb_dept,tb_emp where tb_emp.dept_id=tb_dept.id;

# 查询员工姓名及其所属部门,显式
select tb_emp.name,tb_dept.name
from tb_emp inner join tb_dept on tb_emp.dept_id=tb_dept.id;

外连接

左外连接:
select 字段列表 from 表一 left [outer] join 表二 on 连接条件;
右外连接:
select 字段列表 from 表一 right [outer] join 表二 on 连接条件;
select tb_emp.name,tb_dept.name
from tb_emp left join tb_dept on tb_emp.dept_id=tb_dept.id;


select tb_emp.name,tb_dept.name
from tb_dept right join tb_emp on tb_emp.dept_id=tb_dept.id;

子查询

SQL语句中嵌套select语句,称为嵌套查询或者子查询,其外部语句可以是select/delete/insert/update等,最常用的外部语句是select

分类

标量子查询 子查询返回的结果为单个值
列子查询 子查询返回的值为一列
行子查询 子查询返回的值为一行
表子查询 子查询返回的值为多行多列

标量子查询

# 标量子查询
# 查询教研部的所有员工信息
select * from tb_emp where dept_id=(select id from tb_dept where name ='教研部');
# 查询在方东白入职之后的员工信息
select *
from tb_emp where entrydate > (select entrydate from tb_emp where name ='方东白');

列子查询

#列子查询
# 查询教研部和咨询部的所有员工信息
select *
from tb_emp where dept_id in (select id from tb_dept where name='教研部' or name='咨询部');

行子查询

#行子查询
#常见的操作符:=,<>,in,not in
# 查询与韦一笑的入职日期及职位都相同的员工信息
select *
from tb_emp where (entrydate,job)=(select entrydate,job from tb_emp where name='韦一笑');

表子查询

# 表子查询
# 查询入职日期是2006-01-01之后的员工信息,及部门名称
# 1.查询入职日期2006-01-01之后的员工信息
select * from tb_emp where entrydate >'2006-01-01';
# 2.查询这部分员工信息和部门
select e.*,d.name from (select * from tb_emp where entrydate >'2006-01-01') e,tb_dept d where e.dept_id=d.id;

事务

开启事务:start transaction; / begin;

提交事务:commit;

回滚事务:rollback;

索引

索引****是帮助数据库高校获取数据数据结构**

语法:

#创建索引
create [unique] index 索引名 on 表名(字段名,...)
#查看索引
show index from 表名;
#删除索引
drop index 索引名 on 表名;

注意事项:

主键字段,在建表的时候,会自动创建主键索引

添加唯一约束时,数据库实际上会添加唯一索引

posted on 2024-02-07 22:01  许七安gyg  阅读(1)  评论(0编辑  收藏  举报
$(document).ready(function() { // 禁止右键 $(document).bind("contextmenu", function(){return false;}); // 禁止选择 $(document).bind("selectstart", function(){return false;}); // 禁止Ctrl+C 和Ctrl+A $(document).keydown(function(event) { if ((event.ctrlKey&&event.which==67) || (event.ctrlKey&&event.which==86)) { //alert("对不起,版权所有,禁止复制"); return false; } }); });