1.索引是对数据库表中一列或多列的值进行排序的一种结构。索引类型;主键索引(primary key)、唯一索引(unique)、普通索引(index)、全文索引(fulltext)。
2.添加索引:create [unique] index index_name on tab_name (col_name [(lenght)] [asc | desc],...); 或 alter table table_name add index [index_name] (index_col_name,...);
CREATE TABLE t21(
id INT,
`name` VARCHAR(32));
-- 添加唯一索引
CREATE UNIQUE INDEX id_index ON t21(id);
-- 添加普通索引方式1
CREATE INDEX id_index ON t21(id);
-- 添加普通索引方式2
ALTER TABLE t21 ADD INDEX id_index (id);
3.添加主键(索引):alter table 表名 add primary key (列名,...);
CREATE TABLE t22(
id INT,
`name` VARCHAR(32));
ALTER TABLE t22 ADD PRIMARY KEY (id);
SHOW INDEX FROM t22;
4.删除索引:drop index index_name on tab_name;或 alter table table_name drop index index_name;
DROP INDEX id_index ON t22;
5.删除主键索引:alter table t_b drop primary key;
ALTER TABLE t22 DROP PRIMARY KEY;
6.查询索引(三种方式):show index(es) from table_name; show keys from table_name; desc table_Name;
-- 1.方式
SHOW INDEX FROM t22;
-- 2.方式
SHOW INDEXES FROM t22;
-- 3.方式
SHOW KEYS FROM t22;
-- 4.方式
DESC t22;
7.事务用于保证数据的一致性,它由一组相关的dml(增,删,改)语句组成,该组的dml语句要么全部成功,要么全部失败。事务和锁:当执行事务操作时(dlm语句),mysql会在表上加锁,防止其它用户改表的数据。mysql数据库控制台事务的几个重要操作:start transaction:开始一个事务;savepoint:设置保存点;rollback to:回退事务;rollback:回退全部事务;commit:提交事务,所有的操作生效,不能回退。
CREATE TABLE t23(
id INT,
`name` VARCHAR(32));
START TRANSACTION;
SAVEPOINT a;
INSERT INTO t23 VALUES(100,'tom');
SELECT * FROM t23;
SAVEPOINT b;
INSERT INTO t23 VALUES(200,'jack');
ROLLBACK TO b;
ROLLBACK TO a;
ROLLBACK;
COMMIT;
innodb存储引擎支持事务,myisam不支持。可以在这个事务中(还没有提交时),创建多个保存点。可以在事务没有提交前,选择回退到哪个保存点。
如果不开始事务,默认情况下,dml操作是自动提交的,不能回滚。
INSERT INTO t23 VALUES(300,'milan');
SELECT * FROM t23;
如果开始一个事务,没有创建保存点。可以执行rollback,默认就是回退到你事务开始的状态。开始一个事务start transaction;或set autocommit=off;
START TRANSACTION; --开始一个事务
SET autocommit=off; --开始一个事务
INSERT INTO t23 VALUES(300,'king');
INSERT INTO t23 VALUES(300,'scott');
ROLLBACK;
COMMIT;