建立索引和创建视图(结合YGGL.sql)
一.请按要求对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)的更多相关文章
- Navicat创建视图与美化SQL
数据库-->视图-->新建视图,点击视图创建工具,将需要用到的表拖入到右侧,然后再底部填写具体的字段等,示意图如下: 注意:视图的字段别名或者列名是不能重复的,否则创建失败: 当视图语句非 ...
- clickhouse创建视图SQL 错误 [47]: ClickHouse exception, code: 47
使用clickhouse创建视图时报错 SQL 错误 [47]: ClickHouse exception, code: 47, host: localhost, port: 8123; Code: ...
- MySQL视图的优缺点以及如何创建视图
视图,虚拟表,从一个表或多个表中导出来的表,作用和真实表一样,包含一系列带有行和列的数据 视图中,用户可以使用SELECT语句查询数据,也可以使用INSERT,UPDATE,DELETE修改记录,视图 ...
- SQL Server创建视图——视图的作用
视图简介: 视图可以看作定义在SQL Server上的虚拟表.视图正如其名字的含义一样,是另一种查看数据的入口. 常规视图本身并不存储实际的数据,而仅仅是由SELECT语句组成的查询定义的虚拟表 . ...
- SQL 数据优化之不建立索引的情况
索引可以提高数据的检索效率,也可以降低数据库的IO成本,并且索引还可以降低数据库的排序成本.排序分组操作主要消耗的就是CPU资源和内存,所以能够在排序分组操作中好好的利用索引将会极大地降低CPU资源的 ...
- SQL Server 索引(index) 和 视图(view) 的简单介绍和操作
--索引(index)和视图(view)-- --索引(index)----概述: 数据库中的索引类似于书籍的目录,他以指针形式包含了表中一列或几列组合的新顺序,实现表中数据库的逻辑排序.索引创建在数 ...
- Oracle 建立索引及SQL优化
数据库索引: 索引有单列索引,复合索引之说,如果某表的某个字段有主键约束和唯一性约束,则Oracle 则会自动在相应的约束列上建议唯一索引.数据库索引主要进行提高访问速度. 建设原则: 1.索引应该经 ...
- SQL创建视图
1.视图的理解 从用户角度来看,一个视图是从一个特定的角度来查看数据库中的数据 .从数据库系统内部来看,一个视图是由SELECT语句组成的查询定义的虚拟表 .从数据库系统内部来看,视图是由一张或多张表 ...
- SQL Server 2008中如何为XML字段建立索引
from:http://blog.csdn.net/tjvictor/article/details/4370771 SQL Server中的XML索引分为两类:主XML 索引和辅助XML索引.其中辅 ...
随机推荐
- web安全~文件包含总结
文章来自freebuf,作者总结的很好,所以拿来做笔记用!!! 0×01 文件包含简介 服务器执行PHP文件时,可以通过文件包含函数加载另一个文件中的PHP代码,并且当PHP来执行,这会为开发者节省大 ...
- 颜色直方图(Color Histogram)
数字成像中的颜色直方图是对给定图像中具有相同颜色的像素的频率进行计算的一种方法.这种方法通常被转换成一个图形,以帮助分析和调整图像中的平衡.几乎所有的照片编辑软件和大量的数码相机都具有颜色直方图的查看 ...
- P5327 [ZJOI2019]语言
一边写草稿一边做题吧.要看题解的往下翻,或者是旁边的导航跳一下. 草稿 因为可以开展贸易活动的条件是存在一种通用语 \(L\) 满足 \(u_i\) 到 \(v_i\) 的最短路径上都会 \(L\) ...
- 【学习笔记】使用 bitset 求解较高维偏序问题
求解五维偏序 给定 \(n(\le 3\times 10^4)\) 个五元组,对于每个五元组 \((a_i, b_i, c_i, d_i, e_i)\),求存在多少个 \(1\le j\le n\) ...
- 验证pdf文件的电子章签名
pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...
- C++11新特性 变参模板、完美转发(简述)
变参模板 (Variadic Template) - 使得 emplace 可以接受任意参数,这样就可以适用于任意对象的构建 完美转发 - 使得接收下来的参数 能够原样的传递给对象的构造函数,这带来另 ...
- 从用SwiftUI搭建项目说起
前言 后续这个SwiftUI分类的文章全部都是针对SwiftUI的日常学习和理解写的,自己利用Swift写的第二个项目也顺利上线后续的需求也不是特着急,最近正好有空就利用这段时间补一下自己对Swift ...
- SpringBoot + SpringSecurity + Quartz + Layui实现系统权限控制和定时任务
1. 简介 Spring Security是一个功能强大且易于扩展的安全框架,主要用于为Java程序提供用户认证(Authentication)和用户授权(Authorization)功能. ...
- 简洁404页面源码 | 自适应404页面HTML好看的404源码下载
description:源码 源码下载 源码网 源码自适应 源码图片 页面源码 页面源码下载 错误页源码 php源码 html源码 动漫 源码 演示图如下: HTML代码片段: 1 <!DOCT ...
- Flink批处理读写Hive
import org.apache.flink.table.api.*; import org.apache.flink.table.catalog.hive.HiveCatalog; /** * @ ...