Mysql复习笔记--外键、索引和多联查询

Mysql复习笔记–外键、索引和多联查询

1.外键
定义:外键(foreign key)是用于建立和加强两个表数据之间的链接关系的。
作用:将表中主键值的一列或多列添加到另外一个表中,来创建两个表之间的链接,我们把这个列就称为第二张表的外键。
为何要使用外键:为了让数据库更加健壮而使用外键
具体格式:foreign key(本表主键名) reference 外键表名(主键名)

2.索引
定义:索引是一种排好序的快速查找的数组结构。
作用:它帮助数据库高效的进行数据的检索。
特性:索引本身也是一张表,所以会占用空间。
目前大多数索引采用的是BTree树方式构建。

索引共分为单值索引、唯一索引和复合索引三种。
单值索引:一个索引值包含一个列,一个表可以有多个列
复合索引:一个索引同时包含多列
唯一索引:索引列的值必须唯一,但允许空值;主键会自动创建唯一索引
代码案例:
查看索引:

#show index from 表明;
show index from dept;

创建普通索引:

#create index 索引名 on 表名(字段名);
 create index dept_index on dept(loc);

创建唯一索引:

#create unique index 索引名 on(字段名)
create unique index bindex on dept(loc)

创建符合索引:

#carete index 索引名 on 表明(字段名1,字段名2)
create index dept_index on dept(loc,dname)

删除索引:

alter talbe dept drop index dept_index

3.多表联查
多表查询是指基于两个和两个以上的表的查询

笛卡尔积

select * from dept,emp

上面这种查询两个表的方式称为:笛卡尔积(Cartesian product),又称直积

连接查询

select * from dept join emp

内连接:inner join,两边都对应有记录的才展示,其他去掉
左外连接:left join,左边表中的数据都出现,右边没有数据以NULL填充
右外连接:right join,右边表中的数据都出现,左边没有数据以NULL填充
三种方式中内连接最常使用,其次是左外链接,最后是右外连接

子查询:子查询是指嵌入在其他select语句中的select语句,也叫嵌套查询
案例:
–列出tony所在部门的所有人员

select deptno from emp where ename='tony';
select * from emp where deptno = (select deptno from emp where ename='tony');

多行子查询使用 in
代码案例:

select * from emp where job in ('经理','员工'); 
select * from emp where job in (select distinct job from emp);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值