创建、查看、删除索引的方法
创建索引
创建普通索引
格式:CREATE INDEX <索引的名字> ON 表名(字段);
示例:
mysql> create index salary_index on IT_salary(薪资);
创建唯一性索引
格式:CREATE UNIQUE INDEX <索引的名字> ON 表名(字段);
示例:
mysql> create unique index salary_unique_index on IT_salary(姓名);
创建主键索引
格式:CREATE TABLE 表名([…],PRIMARY KEY(字段));
ALTER TABLE 表名 ADD PRIMARY KEY(字段);
示例:
mysql> create table IT_salary(岗位类别 char(20) not null,姓名 char(30)
not null,年 龄 int(3),
若在新建表时忘记创建主键,可以进行如下操作:
mysql> alter table IT_salary add primary key(员工ID);
查看索引
格式:SHOW INDEX FROM 表名;
SHOW KEYS FROM 表名;
示例:
mysql> show index from IT_salary \G;
删除索引
格式:DROP INDEX <索引的名称> ON 表名;
ALTER TABLE 表名DROP INDEX <索引的名称>;
ALTER TABLE 表名DROP PRIMARY KEY;
示例:
mysql> drop index salary_index on IT_salary;
mysql> alter table IT_salary drop index salary_unique_index;
mysql> alter table IT_salary drop primary key;
事务的ACID特点:
事务具有四个属性:ACID
·原子性(Atomicity)
·一致性(Consistency)
·隔离性(Isolation)
·持久性(Durability)
事务处理命令控制事务
begin 开始一个事务
commit 提交一个事务
rollback 回滚一个事务(撤销)
示例:
mysql> use auth;
Database changed
mysql> begin; //事务开始
mysql> insert into users values(‘lisi’,password(‘123123’));
mysql> commit; //事务结束并提交
mysql> select * from users;(查看)
mysql> rollback; //回滚(撤销操作),从begin开始的所有命令都将被撤销
使用set命令进行控制
mysql> set autocommit = 0; //禁止自动提交
mysql> set autocommit = 1; //开启自动提交
锁定类型:不同的存储引擎支持不同级别的锁定
表锁定:MyISAM、MEMORY
行锁定:InnoDB
页锁定:BDB
查看数据库可配置的存储引擎
[root@mysql ~]# mysql -uroot -p123123
mysql> show engines \G;
查看表使用的存储引擎
方法一:SHOW TABLE STATUS FROM 库名 WHERE name = ‘表名’;
mysql> show table status from client where name=‘user_info’ \G;
方法二:SHOW CREATE TABLE 表名;
mysql> show create table client.user_info \G;
配置存储引擎为所选择的类型
方法一:ALTER TABLE 表名 ENGINE=引擎;
示例:
mysql> alter table client.user_info engine=innodb;
方法二:修改my.cnf的default-storage-engine为引擎
示例:
[root@mysql ~]# vim /etc/my.cnf
[mysqld]
default-storage-engine = InnoDB
[root@mysql ~]# /etc/init.d/mysqld restart
[root@mysql ~]# mysql -uroot -p123123 -e ‘show engines \G;’
方法三:CREATE TABLE 建立表时使用 engine=引擎
示例:
mysql> use auth;
mysql> create table id(id int) engine=myisam;
mysql> show create table auth.id;
方法四:mysql_convert_table_format --user=root --password=密码 --sock=文件路径/mysql.sock --engine=引擎 库名 表名
示例:
mysql> show create table client.user_info\G;
[root@mysql ~]# mysql_convert_table_format --user=root --password=123123 --sock=/var/lib/mysql/mysql.sock --engine=myisam client user_info
[root@mysql ~]# mysql -uroot -p123123 -e ‘show create table client.user_info\G;’
使用此方法从InnoDB改为MyISAM没有问题,但从MyISAM改成InnoDB不行。
若忘记了命令的选项,可以通过–help来查看帮助信息
[root@mysql ~]# mysql_convert_table_format --help