MySQL创建视图yggl_建立索引和创建视图(结合YGGL.sql)

本文介绍了如何在MySQL中创建和管理索引,包括使用create index和alter table语句创建普通索引、唯一索引和主键,同时展示了删除索引的方法。此外,还详细讲解了创建视图的过程,并给出了创建emp_view视图及查询其工作年限在两年以上员工的例子。
摘要由CSDN通过智能技术生成

一.请按要求对YGGL库建立相关索引

(1)使用create index 语句创建索引

1.对employees表中的员工部门号创建普通索引depart_ind.

mysql> create index depart_ind

-> on employees(员工编号);

Query OK, 12 rows affected (0.04 sec)

Records: 12  Duplicates: 0  Warnings: 0

2.对 employees表中的姓名和地址创建复合索引 ad_ind.

mysql>create index ad_ind on employees(姓名,地址);

Query OK, 12 rows affected (0.00 sec)

Records: 12  Duplicates: 0  Warnings: 0

3.对 departments表中的部门名称创建唯一索引.

mysql> create uniqueindex department_index

-> on departments(部门名称);

Query OK, 5 rows affected (0.04 sec)

Records: 5  Duplicates: 0  Warnings: 0

(2) 使用alter table 语句添加索引

1.对employees表中的出生日期添加一个唯一索引date_ind,姓名和性别添加一个复合索引na_ind.

mysql> alter table employeesadd unique index date_ind(出生日期),

->add index na_ind(姓名,性别);

Query OK, 12 rows affected (0.03 sec)

Records: 12  Duplicates: 0  Warnings: 0

2.对 departments 表中的部门编号创建主键索引.

mysql>alter table departments

-> add primary key 部门编号_index(部门编号);

Query OK, 5 rows affected (0.00 sec)

Records: 5  Duplicates: 0  Warnings: 0

(3) 创建表的同时创建索引

创建表cpk(产品编号,产品名称,单价,库存量),并对产品编号创建主键,在库存量和单价上创建复合索引cpk_fh.

mysql> create table cpk(

-> 产品编号 char(20)not null ,产品名称 varchar(30),单价 decimal(10,2),库存量 int(10),

-> primary key (产品编号),

-> index cpk_fh(库存量,单价));

Query OK, 0 rows affected (0.03 sec)

二.显示employees表的索引情况

三.删除索引

(1)使用drop 方式删除索引

1.删除employees表中的员工部门号的索引

mysql>drop index depart_index on employees;

Query OK, 12 rows affected (0.00 sec)

Records: 12  Duplicates: 0  Warnings: 0

(2)使用alter 方式删除索引

2.删除employees表中姓名和性别的复合索引na_ind

mysql> drop index na_ind on employees;

Query OK, 12 rows affected (0.00 sec)

Records: 12  Duplicates: 0  Warnings: 0

四、简述索引的优缺点

优:(1)通过创建唯一性索引,可以保证数据记录的唯一性。

(2)可以大大加快数据的检索速度。

(3) 可以加快表与表之间的连接,这一点在实现数据的参照完整性方面有特别的意义。

(4)在使用ORDEY BY 和GROUP BY子句进行数据检索时,可以显著减少查询中分组和排序的时间。

(5)使用索引可以在检索数据的过程中使用优化隐藏器,提高系统性能。

缺:检索引带来的查找速度的提高也是有代价的,因为索引要占用存储空间,而且为了维护索引的有效性,向表中插入数据或者更新数据时,数据库还要执行额外的操作来维护索引

五、创建视图

1.创建视图emp_view,包含所有男员工的员工编号,姓名,工作年限和学历.

mysql> create or replace view emp_view

-> as

-> select 员工编号,姓名,工作年限,学历

-> from employees

-> where 性别=1;

Query OK, 0 rows affected (0.00 sec)

2.从emp_view视图中查询工作年限在两年以上的员工信息。

mysql> select * from emp_view

-> where 工作年限>2;

+--------------+-----------+--------------+--------+

| 员工编号     | 姓名      | 工作年限     | 学历   |

+--------------+-----------+--------------+--------+

| 000001       | 王林      |            8 | 大专   |

| 010008       | 伍容华    |            3 | 本科   |

| 102201       | 刘明      |            3 | 本科   |

| 302566       | 李玉珉    |            3 | 本科   |

+--------------+-----------+--------------+--------+

4 rows in set (0.00 sec)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值