MySQL其他操作
1 视图
视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里的数据进行查询和修改。视图是存储在数据字典里的一条SELECT语句。通过创建视图可以提取数据的逻辑上的集合。
视图的优点:
1.对数据库的访问,视图可以有选择性地选取数据库的一部分。
2.用户通过简单的查询可以从复杂查询中得到结果。
3.维护数据的独立性,视图可以从多个表检索数据。
4.对于相同的数据可以产生不同的视图。
1.1创建视图
语法如下:
CREATE VIEW 视图名称 AS 子查询
eg1: 创建一张基本工资大于2000元的员工信息视图
eg2: 创建一张可以统计部门编号,部门名称,部门人数,部门平均工资的视图
1.2查询视图
语法如下:
SELECT * FROM VIEW 视图名称
1.3修改视图
语法如下:
CREATE OR REPLACE VIEW 视图名称 AS 查询语句
或者
ALTER VIEW 视图名称 AS 查询语句
该语句用于修改已有视图的定义。当视图不存在时创建,存在时进行修改。
1.4删除视图
语法如下:
DROP VIEW 视图名称
1.5查看视图定义
语法如下:
DESC 视图名称
2 索引
索引用于加快数据的检索,类似于书籍的索引。在数据库中索引可以减少数据库程序查询结果时需要读取的数据量,类似于在书籍中利用索引可以不用翻阅整本书就可以查找到想要的信息。
2.1创建索引
语法如下:
ALTER TABLE 表名称 ADD INDEX 索引名称(字段名称)
eg: 给emp表中的sal字段添加索引
2.2删除索引
语法如下:
ALTER TABLE 表名称 DROP INDEX 索引名称
eg: 删除emp表中的索引字段index_sal
2.3说明
给字段添加索引是为了提高查询效率,但不是所有的西段都加上索引。
创建索引的特点:
1.在经常需要搜索的列上创建索引,可以加快搜索的速度;
2.在作为主键的列上创建索引,强制该列的唯一性和组织表中数据的排列结构;
3.在经常需要连接的列上创建索引,这些列主要是一些外键,可以加快连接的速度;
4.在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的;
5.在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序加快排序查询的时间;
6.在经常使用在WHERE语句的列上创建索引,加快判断速度。
3 触发器
触发器是指在MySQL中对某一个表的一定操作,触发了某种条件(INSERT,UPDATE,DELETE等),从而自动执行的一段程序,它和Web中的监听器很像。
3.1 创建触发器
语法如下:
CREATE TRIGGER 触发器名称
触发时机
触发事件 ON 表名称
FOR EACH ROW
触发器程序体
其中,触发时机的取值为BEFORE或AFTER;触发事件取值为INSERT,UPDATE或DELETE;表名称是指建立触发器的表名,即在哪张表上建立触发器;触发器程序体可以是一句SQL语句,或者用BEGIN和END包含的多条语句。
eg1: 创建两张表t1,t2,两张表中都有id和name字段,要求向t1表中添加记录后,t2表也会自动添加。
说明:
NEW是新值
OLD 是旧值
INSERT只有NEW
UPDATE有NEW和OLD
DELETE只有OLD
eg2: 创建t3表演示NEW和OLD的区别
3.2 查看触发器
语法如下:
SHOW TRIGGERS
3.3 删除触发器
语法如下:
DROP TRIGGER