MySQL(3)

多表查询

多表查询: 指从多张表中查询数据。

笛卡尔积: 笛卡尔乘积是指在数学中,两个集合(A集合 和 B集合)的所有组合情况。

连接查询:

内连接:相当于查询A、B交集部分数据

外连接 左外连接:查询左表所有数据(包括两张表交集部分数据)

            右外连接:查询右表所有数据(包括两张表交集部分数据)

子查询

内连接

隐式内连接:

select  字段列表   from   表1 , 表2   where   条件 ... ;

显式内连接:

select  字段列表   from   表1  [ inner ]  join 表2  on  连接条件 ... ;

外连接

左外连接:

select  字段列表   from   表1  left  [ outer ]  join 表2  on 连接条件 ... ;

右外连接:

select  字段列表   from   表1  right  [ outer ]  join 表2  on  连接条件 ... ;

子查询

介绍:SQL语句中嵌套select语句,称为嵌套查询,又称子查询。

形式:

select  *  from   t1   where  column1 =  ( select  column1  from  t2  … );

子查询外部的语句可以是insert / update / delete / select 的任何一个,最常见的是 select。

标量子查询:子查询返回的结果为单个值

子查询返回的结果是单个值(数字、字符串、日期等),最简单的形式

常用的操作符:=   <>    >     >=     <    <=   

列子查询:子查询返回的结果为一列

子查询返回的结果是一列(可以是多行)

常用的操作符:in  、not in等

行子查询:子查询返回的结果为一行

子查询返回的结果是一行(可以是多列)

常用的操作符:=  、<> 、in 、not  in

表子查询:子查询返回的结果为多行多列

子查询返回的结果是多行多列,常作为临时表 常用的操作符:in

事务

介绍

事务 是一组操作的集合,它是一个不可分割的工作单位。事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作 要么同时成功,要么同时失败。

默认MySQL的事务是自动提交的,也就是说,当执行一条DML语句,MySQL会立即隐式的提交事务。

开启事务:

start transaction;  /  begin ;

提交事务:

commit;

回滚事务:

rollback;

四大特性:

原子性:事务是不可分割的最小单元,要么全部成功,要么全部失败

一致性:事务完成时,必须使所有的数据都保持一致状态

隔离性:数据库系统提供的隔离机制,保证事务在不受外部并发操作影响的独立环境下运行

持久性:事务一旦提交或回滚,它对数据库中的数据的改变就是永久的

索引

介绍

索引(index)是帮助数据库 高效获取数据 的 数据结构 

优点:

提高数据查询的效率,降低数据库的IO成本。 通过索引列对数据进行排序,降低数据排序的成本,降低CPU消耗。

缺点:

索引会占用存储空间。 索引大大提高了查询效率,同时却也降低了insert、update、delete的效率。

结构

MySQL数据库支持的索引结构有很多,如:Hash索引、B+Tree索引、Full-Text索引等。我们平常所说的索引,如果没有特别指明,都是指默认的 B+Tree 结构组织的索引

创建索引:

create  [ unique ]  index 索引名 on  表名 (字段名,... ) ;

查看索引:

show  index  from  表名;

删除索引:

drop  index  索引名  on  表名;

注意事项:

主键字段,在建表时,会自动创建主键索引。 添加唯一约束时,数据库实际上会添加唯一索引。

  • 104
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值