索引和视图

索引和视图

一、实验目的

  1. 学会使用SQL语句CREATE INDEX创建索引。
  2. 学会使用SQL语句DROP INDEX删除索引。
  3. 学会使用SQL语句CREATE VIEW创建视图的用法。
  4. 掌握使用SQL语句ALTER VIEW修改视图的方法。
  5. 了解删除视图的SQL语句DROP VIEW的用法。
    二、实验内容
  6. SQL语句CREATE INDEX创建索引。
  7. SQL语句DROP INDEX删除索引。
  8. SQL语句CREATE VIEW创建视图的用法。
  9. SQL语句ALTER VIEW修改视图的方法。
  10. SQL语句DROP VIEW的用法。
    三、实验步骤
  11. 使用SQL语句ALTER TABLE分别删除studentsdb数据库的student_info表、grade表、curriculum表的主键索引。
    ALTER TABLE student_info DROP PRIMARY KEY;
    ALTER TABLE grade DROP PRIMARY KEY;
    ALTER TABLE curriculum DROP PRIMARY KRY;
    2.使用SQL语句为curriculum表的课程编号创建唯一性索引,命名为cno_idx。
    CREATE UNIQUE INDEX cno_idx
    ON curriculum(课程编号);
    在这里插入图片描述

3.使用SQL语句为grade表的“分数”字段创建一个普通索引,命名为grade_idx。
CREATE INDEX grade_idx
ON grade(分数);
在这里插入图片描述

4.使用SQL语句为grade表的“学号”和“课程编号”字段创建一个复合唯一索引,命名为grade_idx_cid_idx。
CREATE INDEX grade_idx_cid_idx
ON grade(学号,课程编号);
在这里插入图片描述

5.查看grade表上的索引信息。
SHOW INDEX FROM grade;
在这里插入图片描述

6.使用SQL语句删除索引grade_idx。再次查看grade表上的索引信息。
DROP INDEX GRADE_IDX ON grade;
SHOW INDEX FROM GRADE;
在这里插入图片描述

7.使用SQL语句CREATE VIEW建立一个名为v_stu_c的视图,显示学生的学号、姓名、所学课程的课程编号,并利用视图查询学号为0003的学生情况。
CREATE VIEW v_stu_c AS
SELECT s.学号,姓名,课程编号 FROM student_info s,grade g
WHERE s.学号=g.学号;
SELECT * FROM v_stu WHERE 学号=‘0003’;
在这里插入图片描述

8.基于student_info表、curriculum表和grade表,建立一个名为v_stu_g的视图,视图包括所有学生的学号、姓名、课程名称、分数。使用视图v_stu_g查询学号为0001的学生的课程平均分。
CREATE VIEW v_stu_g AS
SELECT s.学号,s.姓名, c.课程名称,g.分数
FROM student_info s,curriculum c,grade g
WHERE s.学号=g.学号 AND g.课程编号=c.课程编号;
SELECT AVG(分数) FROM v_stu_g
WHERE 学号=‘0001’;
在这里插入图片描述

9.使用SQL语句修改视图v_stu_g,显示学生的学号、姓名、性别。
ALTER VIEW v_stu_g AS
SELECT 学号,姓名,性别 FROM student_info;
在这里插入图片描述

10.利用视图v_stu_g为student_info表添加一行数据:学号为0010、姓名为陈婷婷、性别为女。
INSERT INTO v_stu_g VALUES(‘0010’,‘陈婷婷’,‘女’);
在这里插入图片描述

11.利用视图v_stu_g删除学号为0010的学生记录。
DELETE FROM v_stu_g WHERE 学号=‘0010’;
在这里插入图片描述

12.利用视图v_stu_g修改姓名为张青平的学生的高等数学的分数为87。
CREATE OR REPLACE VIEW v_stu_g AS
SELECT s.学号,s.姓名, c.课程名称 ,g.分数
FROM student_info s,curriculum c,grade g
WHERE s.学号=g.学号 AND g.课程编号=c.课程编号;
UPDATE v_stu_g
SET 分数=87
WHERE 姓名=‘张青平’ AND 课程名称=‘高等数学’;
在这里插入图片描述

13.使用SQL语句删除视图v_stu_c和v_stu_g。
DROP VIEW v_stu_c,v_stu_g;
四、实验思考

  1. 建立索引的目的。什么情况下不适于在表上建立索引。
    通过唯一性索引(unique)可确保数据的唯一性;
    加快数据的检索速度;
    加快表之间的连接;
    减少分组和排序时间;
    使用优化隐藏器提高系统性能。
    对于在查询过程中很少使用或参考的列,不应该创建索引。
    对于那些只有很少数据值的列,不应该创建索引。
    对于那些定义为image,text和bit数据类型的列,不应该创建索引。
    当修改性能远大于检索性能,不应该建立索引。
  2. 能否在视图上建立索引。
    不可以,视图是不可以创建索引。索引是要占用存储空间的,也只能创建在占有存储空间的对象上。永久表和临时表都是占用存储空间,所以可以创建索引。而视图是select语句的结果集,是放在内存中的数据,所以不能在视图上创建索引。
    3.想通过视图修改表中数据,视图应具备哪些条件。
    是简单表或者是一对一的表
    不能带聚合函数
    没有with read only
    4.视图的作用是什么?
    1.数据库视图隐藏了数据的复杂性。
  3. 数据库视图有利于控制用户对表中某些列的访问。
  4. 数据库视图使用户查询变得简单。
    五、实验总结
    1、收获
    通过本次实验,我掌握了索引、统计信息和视图等数据对象的基本概念,并且熟悉了各种基本操作。
    2、存在的问题
    对语句不熟悉,有些问题并不能及时发现。
    在视图和索引的应用不能很好的区分VIEW和INDEX关键字。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/239516.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

谷粒商城-缓存使用分布式锁SpringCache(5天)

缓存使用 1.1.1 哪些数据适合放入缓存 即时性、 数据一致性要求不高的 访问量大且更新频率不高的数据(读多, 写少) 例如:电商类应用, 商品分类, 商品列表等适合缓存 本地缓存 使用Map进行本地缓存 本地缓存…

基于JavaWeb+BS架构+SpringBoot+Vue智慧党建系统设计与实现

基于JavaWebBS架构SpringBootVue智慧党建系统设计与实现 文末获取源码Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 文末获取源码 Lun文目录 1 概 述 1 1.1 课题研究背景 1 1.2 课题研究意义 1 1.3 课题研究内容 2 2 系统开…

MySQL 基于 GTID 主从复制

GTID 定义 GTID 是 MySQL 事务标识,为每一个提交的事务都生成一个标识,并且是全局唯一的,这个特性是从 MySQL5.6 引进的。 组成 GTID 是由 UUID TID,UUID 是MySQL的唯一标识,每个MySQL实例之间都是不同的。TID是代表…

速度之巅-位图算法

1:简单通俗来讲就是速度非常之快 以字节为单位,用一位一位寻找 #include <iostream> using namespace std; //加载数据 //就是将能被3整除的位设置为:1 void init(char* data, int len) {unsigned int n len * 8;for (unsigned i 0; i < n; i){if (i%30){//判断能被…

DNS从入门到精通

DNS从入门到精通 Dns从入门到精通 DNS从入门到精通一、DNS原理二、企业高速缓存dns的搭建三、DNS相关名词解释四、权威DNS搭建编辑子配置文件&#xff08;主要写我们维护的域zone)开始解析 五、权威dns中的数据记录种类及应用编辑子配置文件&#xff08;主要写我们维护的域zone…

图像提取大师:轻松从指定时长中获取某帧的图片,视频剪辑方法

在数字媒体时代&#xff0c;视频和图像已成为生活中不可或缺的部分。要从视频中提取某一帧作为图片&#xff0c;或者在视频剪辑时要采用其他的方法来达到需求的效果。下面来看云炫AI智剪如何轻松地从指定时长的视频中获取某帧的图片&#xff0c;视频剪辑的新方法。 视频中按指定…

JMeter定时器之同步定时器

JMeter定时器之同步定时器 1. 背景2. 目的3. 介绍4. 例子4.1单个请求4.2多个请求 1. 背景 在实际生活中大家肯定遇到过一种场景&#xff0c;就是在某一时间或某一时刻&#xff0c;某件商品进行抢购&#xff0c;相当于秒杀&#xff1b;但是用JMeter进行测试的时候&#xff0c;如…

tcpdump常用命令

tcp首部解析&#xff1a; tcp-首部_tcp首部-CSDN博客 ref&#xff1a; Home | TCPDUMP & LIBPCAP https://www.cnblogs.com/onlyforcloud/p/4396126.html tcpdump 详细使用指南&#xff08;请尽情食用&#xff09;_tcpdump指定ip和端口-CSDN博客 【博客192】抓取报文查…

【Python机器学习】SVM——线性模型与非线性特征

SVM&#xff08;核支持向量机&#xff09;是一种监督学习模型&#xff0c;是可以推广到更复杂模型的扩展&#xff0c;这些模型无法被输入空间的超平面定义。 线模型在低维空间中可能非常受限&#xff0c;因为线和平面的灵活性有限&#xff0c;但是有一种方式可以让线性模型更加…

软件测试|Python数据可视化神器——pyecharts教程(十四)

使用pyecharts绘制极坐标系图 简介 极坐标系图是一种用于可视化数据的坐标系&#xff0c;与常见的直角坐标系图&#xff08;笛卡尔坐标系&#xff09;不同&#xff0c;它使用角度和半径来表示数据点的位置。极坐标系图非常适合展示数据的循环性和周期性关系&#xff0c;以及数…

VSCode 正则表达式 匹配多行

VS Code 正则表达式匹配多行 (.|\n)*? //test.js const test {str: VS Code 正则表达式匹配多行VS Code 正则表达式匹配多行VS Code 正则表达式匹配多行VS Code 正则表达式匹配多行VS Code 正则表达式匹配多行VS Code 正则表达式匹配多行VS Code 正则表达式匹配多行VS Code …

【Rust】get_local_info 0.2.4发布

发布0.2.4&#xff0c;修正0.2.3&#xff08;[我的Rust库更新]get_local_info 0.2.3-CSDN博客&#xff09;中存在的峰值算法bug&#xff0c;现已提交力扣并通过&#xff0c;耗时0ms

C++学习笔记——SLT六大组件及头文件

目录 一、C中STL&#xff08;Standard Template Library&#xff09; 二、 Gun源代码开发精神 三、 实现版本 四、GNU C库的头文件分布 bits目录 ext目录 backward目录 iostream目录 stdexcept目录 string目录 上一篇文章&#xff1a; C标准模板库&#xff08;STL&am…

为什么自动测试要发现缺陷?

Q:为什么你做了那么多自动测试&#xff0c;却很少能发现缺陷&#xff1f; A:为什么自动化测试要发现缺陷&#xff1f; 在讨论问题时&#xff0c;首先要对问题是否存在达成一致&#xff0c;而不是直接跳到解决方案。 前一阵子&#xff0c;笔者在某个高端测试群里面丢了一个小…

FFmpeg 入门

1. 编译 参考文档&#xff1a;FFmpeg编译和集成(FFmpeg开发基础知识)&#xff0c;重点注意这句话&#xff1a; 在MSYS2 Packages可以查到云仓库有哪些包&#xff0c;直接安装可节约大量时间。 注意&#xff1a;这个路径可自定义 吐槽 在看到这篇文章之前&#xff0c;花了大…

rke2 Online Deploy Rancher v2.8.0 latest (helm 在线部署 rancher v2.8.0)

文章目录 1. 简介2. 预备条件3. 安装 helm4. 安装 cert-manager4.1 yaml 安装4.2 helm 安装 5. 安装 rancher6. 验证7. 界面预览 1. 简介 Rancher 是一个 Kubernetes 管理工具&#xff0c;让你能在任何地方和任何提供商上部署和运行集群。 Rancher 可以创建来自 Kubernetes 托…

爬虫入门学习(二)——response对象

大家好&#xff01;我是码银&#xff0c;代码的码&#xff0c;银子的银&#x1f970; 欢迎关注&#x1f970;&#xff1a; CSDN&#xff1a;码银 公众号&#xff1a;码银学编程 前言 在本篇文章&#xff0c;我们继续讨论request模块。从上一节&#xff08;爬虫学习(1)--reque…

亚马逊店飞飞ERP系统,跟卖+铺货+物流发货模式综合一体的ERP系统

跨境电商亚马逊&#xff0c;目前为止电商行业比较靠前的电商平台&#xff01;那么有人做电商&#xff0c;就会有人出单&#xff0c;有人出单就会有中转仓需求&#xff0c;代打包&#xff0c;代贴单&#xff01;那么这一切都是有一套逻辑完善的ERP来完成&#xff01;前端通过授权…

基于Python的汽车信息爬取与可视化分析系统

介绍 这款汽车信息网站是基于多项技术和框架设计的全面的汽车信息展示及查询系统。其中&#xff0c;采用了Python Django框架和Scrapy爬虫技术实现数据的抓取和处理&#xff0c;结合MySQL数据库进行数据存储和管理&#xff0c;利用Vue3、Element-Plus、ECharts以及Pinia等前端…

【目标检测】评价指标:mAP概念及其计算方法(yolo源码/pycocotools)

本篇文章首先介绍目标检测任务中的关键评价指标mAP的概念&#xff1b;然后介绍其在yolo源码和pycocotools工具中的实现方法&#xff1b;最后比较两种mAP的计算方法的不同之处。 目标检测中的评价指标&#xff1a; mAP概念及其计算方法(yolo源码/pycocotools) 混淆矩阵概念及其…