数据库实验3---索引和视图

这篇具有很好参考价值的文章主要介绍了数据库实验3---索引和视图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实验内容

  1. 使用SQL语句ALTER TABLE分别删除studentsdb数据库的student_info表、grade表、curriculum表的主键索引。

  2. 使用SQL语句为curriculum表的课程编号创建唯一性索引,命名为cno_idx。

  3. 使用SQL语句为grade表的“分数”字段创建一个普通索引,命名为grade_idx。

  4. 使用SQL语句为grade表的“学号”和“课程编号”字段创建一个复合唯一索引,命名为grade_sid_cid_idx。

  5. 查看grade表上的索引信息。

  6. 使用SQL语句删除索引grade_idx。再次查看grade表上的索引信息。

  7. 使用SQL语句CREATE VIEW建立一个名为v_stu_c的视图,显示学生的学号、姓名、所学课程的课程编号,并利用视图查询学号为0003的学生情况。

  8. 基于student_info表、curriculum表和grade表,建立一个名为v_stu_g的视图,视图包括所有学生的学号、姓名、课程名称、分数。使用视图v_stu_g查询学号为0001的学生的课程平均分。

  9. 使用SQL语句修改视图v_stu_g,显示学生的学号、姓名、性别。
    10.利用视图v_stu_g为student_info表添加一行数据:学号为0010、姓名为陈婷婷、性别为女。
    11.利用视图v_stu_g删除学号为0010的学生记录。
    12.利用视图v_stu_g修改姓名为张青平的学生的高等数学的分数为87。
    13.使用SQL语句删除视图v_stu_c和v_stu_g。

实验要求

1. 粘贴SQL代码(小四号,宋体)及运行结果图,截图清晰。
2. 学习通平台提交实验报告。
3. 文件名:姓名+学号+实验几+班级

实验步骤及处理结果

粘贴SQL代码(小四号,宋体)及运行结果图,截图清晰。
文章来源地址https://www.toymoban.com/news/detail-445521.html

思考体会

参考资料


# 附 代码
#1. 使用SQL语句ALTER TABLE分别删除studentsdb数据库的student_info表、grade表、curriculum表的主键索引。
USE studentsdb;
ALTER TABLE student_info DROP PRIMARY KEY;
ALTER TABLE curriculum DROP PRIMARY KEY;
ALTER TABLE grade DROP PRIMARY KEY;

#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_sid_cid_idx。
CREATE INDEX grade_sid_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_c
WHERE 学号 = '0003';

#8. 基于student_info表、curriculum表和grade表,建立一个名为v_stu_g的视图,视图包括所有学生的学号、姓名、课程名称、分数。使用视图v_stu_g查询学号为0001的学生的课程平均分。
CREATE VIEW v_stu_g
AS
SELECT s.学号,姓名,课程名称,分数
FROM student_info s,grade g,curriculum c
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;
SELECT * FROM v_stu_g

#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。
UPDATE grade SET 分数=87
WHERE 学号=(SELECT 学号 FROM v_stu_g WHERE 姓名='张青平')AND
课程编号=(SELECT 课程编号 FROM curriculum WHERE 课程名称='高等数学');

#13.使用SQL语句删除视图v_stu_c和v_stu_g。
DROP VIEW v_stu_c,v_stu_g;

到了这里,关于数据库实验3---索引和视图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SQL Server数据库 -- 索引与视图

    一、索引 聚集索引 非聚集索引 二、视图 三、自定义函数 标量函数 表值函数 四、游标 五、总结 在学习完创建库表、查询等知识点后,为了更加方便优化数据库的存储和内容,我们需要学习一系列的方法例如索引与视图等等,从而使我们更加熟练和使用数据库,突破表面,

    2024年02月14日
    浏览(33)
  • 详解数据库中的索引和视图

    摘要: 索引就是数据表中数据和相应的存储位置的列表,利用索引可以提高在表或视图中的查找数据的速度。 本文分享自华为云社区《数据库开发指南(六)索引和视图的使用技巧、方法与综合应用》,作者: bluetata 。 索引就是数据表中数据和相应的存储位置的列表,利用

    2024年02月11日
    浏览(40)
  • 数据库 实验8 视图

    实验8  视图 一、实验目的: (1) 理解视图的概念。 (2) 掌握创建、更改、删除视图的方法。 (3) 掌握使用视图来访问数据的方法。 二、实验要求 1、学生提前准备好实验报告,预习并熟悉实验步骤; 2、遵守实验室纪律,在规定的时间内完成要求的内容; 3、1~2人为1小组,实验

    2024年02月06日
    浏览(49)
  • 数据库实验:SQL的数据视图

    视图是由数据库中的一个表或多个表导出的虚拟表,其作用是方便用户对数据的操作 视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,数据库中只存放了视图的定义,而并没有存放视图中的数据,这些数据存放在原来的

    2024年02月05日
    浏览(37)
  • mysql数据库实验实训6,数据视图(详细)

    1、掌握视图功能和作用 2、掌握视图创建和管理办法 对YGGL数据库完成以下视图操作: 1、在员工管理数据库YGGL中创建视图Emp_view1,包含所有男员工的员工编号、姓名、工作年限和学历: 代码: mysql create or replace view Emp_view1 - as select 员工编号,姓名,工作年限,学历 - from employee

    2024年02月07日
    浏览(52)
  • 数据库原理及应用实验报告-实验4-SQL的视图

    实验目的 熟悉SQL支持的有关视图的操作,能够熟练使用SQL语句来创建需要的视图,对视图进行查询和删除视图。 实验内容 定义常见的视图形式,包括: 行列子集视图 WITH CHECK OPTION的视图 基于多个基表的视图 基于视图的视图 带表达式的视图 分组视图 通过实验考察WITH CHEC

    2023年04月26日
    浏览(34)
  • MySQL数据库中的索引(含SQL语句)

    假设有一张表,表中有100万条数据,这100万条数据在硬盘上是存储在数据页上的,一页数据大小为16k。存储100万条数据那么就需要数据页,假设其中有一条数据是“id为7900”的,那么如果要查询这条数据,其中SQL是SELECT * FROM 表名 WHERE id = 7900。在执行这条SQL语句的时候,MyS

    2024年02月02日
    浏览(60)
  • 数据库 实验四 select查询语句

    实验四 一、实验目的 (1) 掌握SELECT语句在多表查询中的应用。 (2) 掌握多表连接的几种连接方式及应用。 二、实验要求 1、学生提前准备好实验报告,预习并熟悉实验步骤; 2、遵守实验室纪律,在规定的时间内完成要求的内容; 3、1~2人为1小组,实验过程中独立操作、相互学

    2023年04月20日
    浏览(30)
  • 数据库系统原理及MySQL应用教程实验六视图创建与管理

    1.理解视图的概念。 2.掌握创建、更改、删除视图的方法。 3.掌握使用视图来访问数据的方法。 1.验证性实验:在job数据库中,有聘任人员信息表:Work_lnfo表对其视图的操作。 2.设计性试验:在学生管理系统中,有学生信息表studentinfo表对其视图的操作。 (一)验证性实验 在

    2024年02月04日
    浏览(63)
  • android 将数据库中的 BLOB 对象动态加载为 XML,并设置到 Android Activity 的内容视图上

    以下是一个示例代码,演示如何将数据库中的 BLOB 对象动态加载为 XML,并设置到 Android Activity 的内容视图上: ```java import android.app.Activity; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; im

    2024年02月07日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包