mysql之索引 应用于事物 内连接、左(外)连接、右(外)连接
什么是索引
索引就像是一本书的目录一样,能够快速找到所需要的内容
索引的作用
加快查询速率,降低IO成本加快表与表之间的连接,减少分组和排序时间
索引类型
普通索引:没有唯一性的基本索引
唯一索引:有唯一性,但可以为空
主键索引:有唯一性且不能够为空
全文索引:
单列索引与多列索引
创建索引的依据
表的主键,外键必须有索引
数量超过300行的必须有索引
经常与其他表连接大表,在连接字段应该有索引
唯一性差,频繁更新的不适合建索引
将常出现在where字段的应该建索引
索引应该建在选择性高的小字段上
创建查看删除索引
1.普通
create index 索引名字 on 表名(把谁设为索引);
create index sy on wk(年龄);
2.查看索引
show index from 库名.表名\G; 查看并以竖列形式显示出来
show keys from 库名.表名\G;
3.唯一索引
create unique index 索引名字 on 表名(把谁设为唯一索引);
create unique index wysy on wk(姓名);
4.主键索引
1.在create建表时创建
2.若忘记在建表时创建
alter table 表名 add primary key(把谁建为主键索引);
5.删除索引
非主键
drop index 索引名字 on 表名;
alter tables 表名 drop index 索引名字;
主键索引
alter table 表名 drop primary key;
事物处理控制命令
begin 开始一个事务
commit 提交一个事务
rollback 回滚一个事物
set 命令进行控制
set autocommit=; #禁止自动提交
set autocommit=; #开启自动提交
MySQL 内连接、左(外)连接、右(外)连接
内连接
就是找两个表之间的交集
关键字:inner join on

select * from 表名1 自定义的表1的别名 inner join 表名2 自定义的表2的别名 on 表一的别名.a_id = 表2的别名.b_id;
select * from a_table a inner join b_table b on a.a_id = b.b_id;
查看表内所有 表a_table 定义别名a 两个表之间的交集 表b_table 定义别名b 通过格式上的b_id作对比找出b_id的并集



左(外)连接
以左边表为基准,找右边表里和左边一样的列出来
关键字:left join on 或 left outer join on #两种写法都行,没区别,前者是后者的简写
select * from a_table a left join b_table b on a.a_id = b.b_id;

右(外)连接
跟左连接差不多,以右边表为基准,右边的都列出来,找左边表里和右边一样的列出来
关键字:right join on 或 right outer join on
select * from a_table a right join b_table b on a.a_id = b.b_id;

mysql之索引 应用于事物 内连接、左(外)连接、右(外)连接的更多相关文章
- 我说MySQL联合索引遵循最左前缀匹配原则,面试官让我回去等通知
面试官: 我看你的简历上写着精通MySQL,问你个简单的问题,MySQL联合索引有什么特性? 心想,这还不简单,这不是问到我手心里了吗? 听我给你背一遍八股文! 我: MySQL联合索引遵循最左前缀匹 ...
- mysql 内连接 左连接 右连接 外连接
mysql> desc student;+-------+-------------+------+-----+---------+-------+| Field | Type | Null | ...
- MySQL 进阶6: 连接查询 (多表连接) : 等值连接/非等值连接 /左右全连接/内连接
#进阶6: 连接查询 (多表连接) : 等值连接/非等值连接 /左右全连接/内连接 /* 含义: 当查询的字段来自于多个表时, 就会用到连接查询 一: sql 92标准 :等值连接 ,(#内连接) 1 ...
- 细说MySQL连接查询:内连、左连和右连
转: 细说MySQL连接查询:内连.左连和右连 简介: MySQL 的连接查询,通常都是将来自两个或多个表的行结合起来,基于这些表之间的共同字段,进行数据的拼接.首先,要确定一个主表作为结果集,然后将 ...
- 第七章 mysql 事务索引以及触发器,视图等等,很重要又难一点点的部分
[索引] 帮助快速查询 MyISAM ,InnoDB支持btree索引 Memory 支持 btree和hash索引 存储引擎支持 每个表至少16个索引 总索引长度至少256字节 创建索引的优 ...
- 【夯实Mysql基础】MySQL性能优化的21个最佳实践 和 mysql使用索引
本文地址 分享提纲: 1.为查询缓存优化你的查询 2. EXPLAIN 你的 SELECT 查询 3. 当只要一行数据时使用 LIMIT 1 4. 为搜索字段建索引 5. 在Join表的时候使用相当类 ...
- python/MySQL(索引、执行计划、BDA、分页)
---恢复内容开始--- python/MySQL(索引.执行计划.BDA.分页) MySQL索引: 所谓索引的就是具有(约束和加速查找的一种方式) 创建索引的缺点是对数据进行(修改.更新.删除) ...
- mysql数据库索引类型和原理
索引初识: 最普通的情况,是为出现在where子句的字段建一个索引.为方便讲述,我们先建立一个如下的表. CREATE TABLE mytable ( id serial primary key, c ...
- Mysql创建索引
1.索引作用 在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率.特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍. 例如,有 ...
随机推荐
- IDEA springboot maven 项目部署
- redis编译和安装出现错误
redis编译到时候出现错误,记录一下原因 1.下载redis,https://redis.io/download ,一般选择稳定版本,稳定版的版本号是偶数,当前最新版本是5.0.4,Linux可直接 ...
- Solr——Java应用
Solr有一个客户端SolrJ 创建一个Java Project 引入Jar包 添加test类 package com.solr.test; import java.io.IOException; i ...
- BZOJ 2119: 股市的预测 (Hash / 后缀数组 + st表)
转博客大法好 自己画一画看一看,就会体会到这个设置关键点的强大之处了. CODE(sa) O(nlogn)→1436msO(nlogn)\to 1436msO(nlogn)→1436ms #inclu ...
- MySQL-InnoDB锁(一)
本文主要记录InnoDB存储引擎中锁的关键点,下篇文章通过实例确认加锁的范围. InnoDB中的锁 1. 锁提供数据完整性和一致性 2. InnoDB行级锁:共享锁(S)和排他锁(X). 为了支持多粒 ...
- CodeFroces 758C - Unfair Poll
题意: 老师点名,顺序是1 -- n -- 1 排为一个循环,每列为1 -- m的顺序, 问点到最多次数和最少次数的人的次数以及(x,y)被点的次数. 分析: 由于点名有循环,故可先判断出每一个循环每 ...
- 【Wince-自定义控件】ImageButton 带图片、文字
1.看图 可以实现MouseDown改变背景颜色或背景图片. 遗憾是没有实现键盘触发按钮事件. 2.选择继承自Control基类 public class ImageButton : Control ...
- Ion-select and ion-option list styling 自定义样式
https://forum.ionicframework.com/t/ion-select-and-ion-option-list-styling/117028
- Unicode规范中的BOM 和 ISO8891-1编码
Unicode规范中的BOM Unicode规范中有一个BOM的概念.BOM——Byte Order Mark,就是字节序标记.在这里找到一段关于BOM的说明: 在UCS 编码中有一个叫做" ...
- windows查看服务的状态
方法一:运行窗口操作 按下win+r键,在运行窗口中输入services.msc,点击[确定]按钮,即可打开服务. 如下图所示: 方法二:按部就班 1)此电脑—右键—管理 2)点击[服务和应用程序]按 ...