一.请按要求对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  unique index 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 employees add 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)

建立索引和创建视图(结合YGGL.sql)的更多相关文章

  1. Navicat创建视图与美化SQL

    数据库-->视图-->新建视图,点击视图创建工具,将需要用到的表拖入到右侧,然后再底部填写具体的字段等,示意图如下: 注意:视图的字段别名或者列名是不能重复的,否则创建失败: 当视图语句非 ...

  2. clickhouse创建视图SQL 错误 [47]: ClickHouse exception, code: 47

    使用clickhouse创建视图时报错 SQL 错误 [47]: ClickHouse exception, code: 47, host: localhost, port: 8123; Code: ...

  3. MySQL视图的优缺点以及如何创建视图

    视图,虚拟表,从一个表或多个表中导出来的表,作用和真实表一样,包含一系列带有行和列的数据 视图中,用户可以使用SELECT语句查询数据,也可以使用INSERT,UPDATE,DELETE修改记录,视图 ...

  4. SQL Server创建视图——视图的作用

    视图简介: 视图可以看作定义在SQL Server上的虚拟表.视图正如其名字的含义一样,是另一种查看数据的入口. 常规视图本身并不存储实际的数据,而仅仅是由SELECT语句组成的查询定义的虚拟表 . ...

  5. SQL 数据优化之不建立索引的情况

    索引可以提高数据的检索效率,也可以降低数据库的IO成本,并且索引还可以降低数据库的排序成本.排序分组操作主要消耗的就是CPU资源和内存,所以能够在排序分组操作中好好的利用索引将会极大地降低CPU资源的 ...

  6. SQL Server 索引(index) 和 视图(view) 的简单介绍和操作

    --索引(index)和视图(view)-- --索引(index)----概述: 数据库中的索引类似于书籍的目录,他以指针形式包含了表中一列或几列组合的新顺序,实现表中数据库的逻辑排序.索引创建在数 ...

  7. Oracle 建立索引及SQL优化

    数据库索引: 索引有单列索引,复合索引之说,如果某表的某个字段有主键约束和唯一性约束,则Oracle 则会自动在相应的约束列上建议唯一索引.数据库索引主要进行提高访问速度. 建设原则: 1.索引应该经 ...

  8. SQL创建视图

    1.视图的理解 从用户角度来看,一个视图是从一个特定的角度来查看数据库中的数据 .从数据库系统内部来看,一个视图是由SELECT语句组成的查询定义的虚拟表 .从数据库系统内部来看,视图是由一张或多张表 ...

  9. SQL Server 2008中如何为XML字段建立索引

    from:http://blog.csdn.net/tjvictor/article/details/4370771 SQL Server中的XML索引分为两类:主XML 索引和辅助XML索引.其中辅 ...

随机推荐

  1. CSS基础-列表

    列表字体和间距 当创建样式列表时,需要调整样式,使其保持与周围元素相同的垂直间距和相互间的水平间距.   示例代码 /* 基准样式 */ html { font-family: Helvetica, ...

  2. H5相关知识点整理

    01-HTML5基础 了解HTML5 ☞HTML5属于上一代HTML的新迭代语言,设计HTML5最主要的目的是为了在移动设备上支持多媒体!!! 例如: video 标签和 audio 及 canvas ...

  3. Codeforces Edu Round 60 A-E

    A. Best Subsegment 显然,选择数列中的最大值当做区间(长度为\(1\)).只要尝试最大值这个区间是否能扩展(左右两边值是否跟它一样就行了) #include <cstdio&g ...

  4. 2020/12月最新WinSpy/WinSpy++下载exe

    >>>下载地址 https://wws.lanzous.com/iFUsVj931xa 密码:5hp7 解压密码:yunmuq 夹带私货:在这里希望大家分享文件别再用百度云了,不用百 ...

  5. 本地安装yum源脚本

    rpm -qa|grep yum   //检查是否安装了yum. 如果没有安装就执行下面的文件 创建一个以xxx.sh结尾的文件 #!/bin/bash #创建两个文件用于挂载文件 mkdir /mn ...

  6. uniapp图片转base64

    直接上代码了,网上也很多一样的,这里记录下,因为仅仅第二种在真机微信小程序上我这里测试转换失败,所以就一并写在这里了: //图片转base64 urlTobase64(url){ // #ifdef ...

  7. 如何用Python 制作词云-对1000首古诗做词云分析

    公号:码农充电站pro 主页:https://codeshellme.github.io 今天来介绍一下如何使用 Python 制作词云. 词云又叫文字云,它可以统计文本中频率较高的词,并将这些词可视 ...

  8. matplotlib的学习2-基本用法

    import matplotlib.pyplot as plt import numpy as np x = np.linspace(-1, 1, 50)#范围-1 到 1,个数是50 y = 2*x ...

  9. C++模板元编程----快速排序

    目录 目录 简介 实现 数据结构定义 在数组前添加一个元素 判断 分堆 合并 快速排序的实现 总结 简介 上一篇使用C++模板模板实现了一个选择排序.这一次,更进一步的,实现了一个快速排序算法.关于快 ...

  10. 死磕以太坊源码分析之downloader同步

    死磕以太坊源码分析之downloader同步 需要配合注释代码看:https://github.com/blockchainGuide/ 这篇文章篇幅较长,能看下去的是条汉子,建议收藏 希望读者在阅读 ...