mysql数据库操作(三)

mysql 事务

:mysql事务应用于数据处理操作量大,处理过程复杂的情况,mysql的事务只在使用innodb数据库引擎的数据库或表下才使用,事务用来管理 insert,update,delete 语句,一条操作语句既是一个事务。
事务有四个必须满足的条件:原子性,隔离性,一致性,持久性。具体可查看菜鸟教程
事务的控制语句:1、begin或start transaction -->显示开启一个事务
2、commit提交事务,使所有的数据库操作成为永久性的
3、rollback事务回滚,结束事务,撤销正在进行的未提交的修改
常用的事务操作就是以上三个。
mysql中默认事务是自动提交,即执行完sql语句commit马上执行。但是我们也可以设置mysql的提交模式:set autocommit = 0 禁止自动提交;set autocommit = 1 允许自动提交(默认选项)

mysql 索引

mysql索引对于mysql的高效运行是非常重要的,索引可以大大加快mysql的索引速度。实际上索引也就是一张表,表中包含主键和索引
索引分为单列索引和组合索引。

  1. 单列索引:一个列有一个索引,一个表可以有多列都有索引,但这不是组合索引。
  2. 组合索引:一个索引包含了好多列。

索引虽然可以提高表的检索速度,但是滥用索引就会导致表的更新速度大大降低,因为在更新数据时,不仅仅是更新表中的数据信息,也要更新索引文件。

普通索引:最基本的索引,没有任何限制

三种创建索引方法:
创建索引:create INDEX 索引名 on 表名(字段名)
已有表添加索引:alter table 表名 add INDEX 索引名(字段名)
创建表时创建索引:create table 表名 (字段名 字段类型,…,INDEX [索引名] (字段名))
删除索引:drop INDEX[索引名] on 表名

唯一索引:与基本索引相同,但是索引列的值必须唯一,不能重复。

唯一索引的创建和普通索引相同,只是它的关键字为UNIQUE

alter命令添加/删除索引

  1. alter table 表名 add primary key(字段名) -->添加一个主键,索引为唯一索引,且不能为空
  2. alter table 表名 add unique 索引名(字段名)–>创建唯一索引,索引值必须唯一,可以为空
  3. alter table 表名 add index 索引名(字段名)–>普通索引,索引值可以为多次
  4. alter table 表名 add fulltext 索引名(字段名)–>索引为fulltext,全文索引
  5. alter table 表名 drop 索引 字段名

显示一张表中的索引:show 索引类型 from 表名

mysql 临时表:创建临时表关键字 temporary ,临时表不存在数据库中,如果客户端关闭,则临时表消失。

例:create temporary table taoche(tao varchar(100) not null,che varchar(100) not null)
此张表即为临时表show tables时不可见。但是可以插入数据,查询数据,客户端关闭后自动删除。

mysql复制表

  1. 获取表结构:show create table 要复制的表名;
  2. 复制打印出来的数据:复制每一行的数据,修改表名,即可复制表结构。
  3. 如果需要表中数据即可用insert into将select 出来的结果插入新表。

获取mysql元数据

命令 描述
select version() 获取服务器版本信息
select database 获取当前数据库信息
select user() 获取当前用户
show status 获取服务器状态
show variables 获取服务器配置变量

mysql序列

最简单的就是AUTO_INCREMENT,自增列,每个表只有一列可以实现自增。一般自增列设为id,在创建表时就设置好,在插入时,我们不用管id的插入值,此列会默认从1逐渐自增。
如果在一个表中由于删除了一些数据后,希望数据重新排列,那么我们可以先删除自增的列,然后在重新插入自增列。该操作必须要非常小心,这样可能会导致数据混乱。
例:

1.删除自增列:alter table 表名 drop 字段名
2.重新添加自增列:alter table 表名 add 字段名 字段类型,add primary key (字段名)
以上两步即可完成自增列重新排序

猜你喜欢

转载自blog.csdn.net/anaerobic_me/article/details/88418837
今日推荐