1.索引:不要刻意使用索引,是为了加快查询速度时,才使用索引。而且一个表至少可以建立16个索引,切记:索引过多不可,索引要建立在那些经常使用的查询字段上,才能发挥效果。
语法:
@1.在创建表的时候创建索引:
CREATE TABLE table_name(
-- ...
INDEX|KEY index_name(field1[(长度)] [DESC|ASC],field2..);
);
-- UNIQUE |FULLTEXT INDEX|KEY index_name(field1[(长度)] [DESC|ASC],field2..);
-- -- 全文索引,Myisam 存储引擎中
-- @2.表创建完毕后,创建:
CREATE INDEX index_name ON table_name(field1,field2..)
-- 修改表结构:
ALTER TABLE table_name ADD INDEX|KEY index_name(field1,field2..)
-- 删除索引
DROP INDEX index_name ON table_name
2.视图:@1.隐藏敏感数据 @2.select语句复用 ,但是不可在视图上进行add,update,delete,否则基表会受影响。
语法:
CREATE VIEW view_name AS
-- select 语句
SHOW TABLES -- 可以看到创建视图
SHOW TABLE STATUS FROM db_name -- 查看数据库里的视图信息
SHOW CREATE VIEW view_name -- 查看视图创建语句
DESC|DESCRIBE VIEW view_name -- 查看视图数据类型设计
infomation_schemas库中也可以看到
-- @2.修改视图:
CREATE OR REPLACE VIEW view_name AS
-- 语句
ALTER VIEW view_name AS
-- @3.删除视图:
drop view view_name
3.触发器:在表事件发生时,进行某些操作。
语法:
-- 一条语句 trigger
CREATE TRIGGER trigger_name
BEFORE|AFTER UPDATE|INSERT|DELETE
ON table_name FOR EACH ROW
-- trigger sql
-- 多条语句 trigger
DELIMITER $$ -- 改变sql 语句结尾符号
CREATE TRIGGER trigger_name
BEFORE|AFTER UPDATE|INSERT|DELETE
ON table_name FOR EACH ROW
BEGIN
-- trigger sql
END$$
DELIMITER ; -- sql 语句结尾符号切换回来
-- @2.删除:
drop trigger trigger_name
-- @3. 查看 trigger
show trigger