-- 创建普通索引 CREATE TABLE t_user1 ( id INT, userName VARCHAR (20), PASSWORD VARCHAR (20), INDEX (userName) );
-- 创建唯一性索引并为索引取别名 CREATE TABLE t_user2 ( id INT, userName VARCHAR (20), PASSWORD VARCHAR (20), UNIQUE INDEX usrn (userName) );
-- 创建多列索引 CREATE TABLE t_user3 ( id INT, userName VARCHAR (20), PASSWORD VARCHAR (20), INDEX index_user_pwd (userName,PASSWORD) );
在已有表中创建索引
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
-- 在已有表中创建普通索引 CREATE INDEX index_userName ON t_user4(userName);
-- 在已有表中创建唯一性索引 CREATE UNIQUE INDEX index_userName ON t_user4(userName);
-- 在已有表中创建多列索引 CREATE INDEX index_userName_pwd ON t_user4(userName,PASSWORD); // 或者采用下面的方式 ALTER TABLE students ADD INDEX idx_name_score (name, score);
-- 使用 ALTER 删除索引 ALTER TABLE t_user5 ADD INDEX index_user(userName)
查看索引
1 2 3
show index from table_name\G;
删除索引
1 2 3 4 5
-- 删除索引 -- DROP INDEX 索引名 ON 表名; DROP INDEX index_user ON t_user5;
CREATE TRIGGER 触发器名 BEFORE | AFTER 触发事件 ON 表名 FOR EACH ROW BEGIN 执行语句列表 END
-- 其中,因为 mysql 遇到分号(;)之后会认为语句终止(分号前面的语句为执行语句), 因此需要使用 delimiter 来手动定义在 | 符号中间的语句才为执行语句 eg:
delimiter | CREATE TRIGGER trig_book2 AFTER DELETE ON t_book FOR EACH ROW BEGIN UPDATE t_booktype SET bookNum=bookNum-1 WHERE old.bookTypeId=t_booktype.id; INSERT INTO t_log VALUES (NULL,NULL,'在book表里删除了一条数据'); DELETE FROM t_test WHERE old.bookTypeId=t_test.id; END | delimiter;