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  表名;

注意事项:

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

  • 82
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要安装MySQL集群,可以使用Docker来简化部署和管理。下面是一种常见的方法: 1. 首先,确保你已经安装了Docker和Docker Compose。 2. 创建一个新的目录,用于存放MySQL集群的配置文件和数据。在该目录下创建一个名为docker-compose.yml的文件,并添加以下内容: ``` version: '3' services: mysql1: image: mysql:latest restart: always ports: - 3306:3306 environment: MYSQL_ROOT_PASSWORD: your_password MYSQL_DATABASE: your_database MYSQL_USER: your_user MYSQL_PASSWORD: your_password volumes: - ./mysql1:/var/lib/mysql mysql2: image: mysql:latest restart: always ports: - 3307:3306 environment: MYSQL_ROOT_PASSWORD: your_password MYSQL_DATABASE: your_database MYSQL_USER: your_user MYSQL_PASSWORD: your_password volumes: - ./mysql2:/var/lib/mysql mysql3: image: mysql:latest restart: always ports: - 3308:3306 environment: MYSQL_ROOT_PASSWORD: your_password MYSQL_DATABASE: your_database MYSQL_USER: your_user MYSQL_PASSWORD: your_password volumes: - ./mysql3:/var/lib/mysql ``` 在上面的配置中,我们创建了三个MySQL容器(mysql1、mysql2和mysql3),每个容器都映射到不同的端口(3306、3307和3308)。你可以根据需要进行调整。 3. 在终端中,进入到docker-compose.yml所在的目录,并运行以下命令启动MySQL集群: ``` docker-compose up -d ``` 这将会下载MySQL镜像并启动三个容器。 4. 等待一段时间,直到容器启动完成。你可以使用以下命令检查容器的状态: ``` docker-compose ps ``` 如果所有的容器都处于"Up"状态,说明MySQL集群已经成功启动。 至此,你已经成功安装了MySQL集群。你可以使用任意MySQL客户端连接到其中一个容器的端口(例如3306),并使用配置文件中指定的用户名和密码进行登录。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值