数据库原理(操纵,视图,索引)
1
- 熟悉数据表结构及使用特点;
- 熟悉使用Management Studio界面方式管理数据表数据;
- 熟悉和掌握数据表中数据的插入、修改、删除操作和命令的使用;
- 加深理解视图的定义和数据更新的作用;
- 熟悉和掌握索引的创建和使用
以学生管理数据库为例,并依据数据表的结构创建相对应的数据表(student、course、sc),练习对表中数据的插入、修改和删除的SQL语言命令及视图和索引的创建与管理。
1.将学生、课程、选课三张表中的全部记录复制到student、course、xuanke三张表中;
select *into student from 学生
select *into course from 课程
select *into xuanke from 选课
2.用SQL语句将适量数据分别插入student、course、xuanke三张表中;
insert into student values('012','陈晓楠','20','女','计算机')
insert into course values ('c06','专业英语','大学英语')
insert into xuanke values ('012','c06','90')
3.将平均成绩低于70的学生信息存放在低于70分平均成绩表中;
select * into 低于70分平均成绩表 from student
where 学号 in (select 学号 from xuanke
group by 学号 having avg(成绩)<70 )
4.借助student、course、xuanke三张表,删除“计算机”系全体学生的选课记录及学生记录
delete from xuanke
where 学号 in (select 学号 from student
where 所在系 = '计算机')
delete from student
where 学号 in (select 学号 from student
where 所在系 = '计算机')
5.借助student、course、xuanke三张表,删除学号为“001”的相关信息(包括选课信息及学生信息);
delete from xuanke
where 学号 = '001'
delete from student
where 学号 = '001'
6.将student表中学号为“002”的学生的学号修改为“S002”;
update student set 学号 = 's002' where 学号 = '002'
7.把平均成绩大于80分的男同学的学号和平均成绩存入另一个表S_Grade
(Sno,AVG_Grade);
select student.学号,avg(成绩) 平均成绩 into S_grade
from student,xuanke
where student.学号=xuanke.学号 and 性别 = '男'
group by student.学号 having AVG(成绩)>80
select * from S_grade
8.把选修了课程名为“数据结构”的学生的成绩提高10%;
update xuanke set 成绩 = 成绩 * 1.1
where 课程号 in (select 课程号 from course
where 课程名 = '数据结构')
9.把选修了“c02”号课程,且成绩低于该门课程的平均成绩的学生的成绩提高5%;
update xuanke set 成绩 = 成绩 * 1.05
where 成绩<(select avg(成绩) from 选课 where 课程号 = 'c02')
select 课程号,成绩 from xuanke where 课程号 = 'c02'
10.把选修了“c02”号课程,且成绩低于该门课程的平均成绩的学生成绩删除掉;
delete from xuanke
where 成绩<(select avg(成绩) from 选课 where 课程号 = 'c02')
select 课程号,成绩 from xuanke where 课程号 = 'c02'
11.求C01和C04课程成绩为80分以上的学生的学号及姓名;
select 学号,姓名 from student where 学号
in (select 学号 from xuanke
where 课程号 in ('c02','c04') and 成绩 > 80)
12.求选修了C1课程又选修了C2课程的学生的学号;
select 学号 from xuanke where
课程号 = 'c01' and 学号 in (select 学号 from xuanke where 课程号 = 'c02')
13.求每个系的平均年龄,并要求将结果存入数据库中;
select 所在系,AVG(年龄) 平均年龄 into 平均年龄数据库
from student
group by 所在系
select *from 平均年龄数据库
–1
create view StulowGrade
as
select 学号,avg(成绩) as 平均成绩 from 选课 a where exists
(select * from 选课 b where 成绩<60 group by 学号 having count(学号)>2 and b.学号=a.学号)
group by 学号
select * from StulowGrade--2
create view Cstud
as
(select 学号,姓名,性别 from 学生)
insert into Cstud values('019','梨花','男')
select * from Cstud
–14.建立“计算机系”的学生基本情况视图ies_student_view,该视图包括计算机系所有学生的相关信息;
create view ies_student_view1
as
(select * from 学生 where 所在系='计算机')
select * from ies_student_view1
–16.建立课程C01(课编号)的学生名册的视图,该名册包括学生的学号、姓名、所在系名称和这门课的成绩;并查询结果;
create view c01
as
(select 学生.学号,姓名,所在系,成绩 from 学生,选课 where 学生.学号=选课.学号)
select * from c01
–17.建立统计不及格情况的视图,列出不及格学生的学号、姓名和不及格的课程代码。执行视图并观察结果;
create view 不及格视图
as
(select 学生.学号,姓名,课程号,成绩 from 学生,选课 where 成绩<60 and 学生.学号=选课.学号)
select * from 不及格视图
–18.修改视图ies_student_view,使该视图包括所有学生的学号、姓名、所在系。执行ies_student_view视图并观察结果;
alter view ies_student_view1
as
(select * from 学生 )
select * from ies_student_view1
–19.删除视图ies_student_view。并查询结果;
drop view ies_student_view1
select * from ies_student_view1
–20.在student_course表(学生选课表)的学生学号(s_no)列上创建索引sc_sno_index;通过SQL语句查看运行结果。
create INDEX sc_sno_index ON 选课 (学号)
sp_helpindex 选课
数据库原理(操纵,视图,索引)相关推荐
- 数据库原理与应用(SQL Server)笔记 第五章 索引和视图
目录 前言 一.索引 (一)索引的概念 (二)索引的分类 (三)索引的操作 1.创建 2.查看 2.修改 3.删除 二.视图 (一)视图的概念 (二)视图的分类 (三)视图的操作 1.创建 2.查询 ...
- 《数据库原理》实验报告DB4——视图与索引
一. 实验内容.步骤以及结果 1. 在Student数据库中,用SQL语句创建一个选修了数据库课程并且是2001年出生的学生的视图,视图中包括学号,姓名,性别,成绩.(5分) create view ...
- 数据库原理及应用(索引为什么快,数据在磁盘上如何存储)
引子: 1.数据库有三级模式. 2.物理独立性:数据在磁盘上存储. 3.逻辑独立性:表的逻辑设计. 4.两级映射,表的逻辑不会其物理存储逻辑. 5.视图层:dba给用户展示的部分内容. 一 数据模型 ...
- 从千万级数据查询来聊一聊索引结构和数据库原理
在日常工作中我们不可避免地会遇到慢SQL问题,比如笔者在之前的公司时会定期收到DBA彪哥发来的Oracle AWR报告,并特别提示我某条sql近阶段执行明显很慢,可能要优化一下等.对于这样的问题通常大 ...
- Oracle数据库之对象视图、索引、序列、同义词
Oracle数据库总结: Oracle数据库之集合运算 Oracle数据库之数据处理 Oracle数据库之建表和管理表 Oracle数据库之对象视图.索引.序列.同义词 视图: 语法: create ...
- 千万级别数据查询优化_从千万级数据查询来聊一聊索引结构和数据库原理
在日常工作中我们不可避免地会遇到慢SQL问题,比如笔者在之前的公司时会定期收到DBA彪哥发来的Oracle AWR报告,并特别提示我某条sql近阶段执行明显很慢,可能要优化一下等.对于这样的问题通常大 ...
- 从视图索引说Notes数据库
作用和代价 上文介绍了关系型数据库里的索引.Notes数据库里的索引隐藏在视图概念里(本文的讨论只针对Notes的视图索引,不包含全文索引.).开发人员创建的视图仅仅是存放在数据库里的一条设计文档,数 ...
- 索引视图是否物理存储在数据库中以及使用索引视图的一些见解
索引视图是否物理存储在数据库中以及使用索引视图的一些见解 前言 这个话题我本来是写在文章里没有写在随笔里的,不过赶脚不写在随笔里其他人就看不到了,因为小弟对视图的认识不深 希望写在随笔里让大家也讨论一 ...
- rds mysql 视图 索引_数据库 视图 索引
SQL2K数据库开发二十二之索引操作在视图上创建索引 1.在企业管理器中,右击要创建索引的视图,在弹出的菜单中选择"设计视图"命令进入视图设计器. 2.在视图设计器中显示了视图所包 ...
- Linux || 数据库事务 视图 索引
文章目录 事务 什么是事务 事务四大特性 ACID 隔离级别 事务命令 视图 定义视图 使用视图 更新视图 索引 定义 创建索引 联合索引(复合索引) 最左原则 聚簇索引 innoDB表的聚簇索引 非 ...
最新文章
- leetcode python 032 识别最长合法括号
- JAVA线程池的分析和使用
- AOP、注解实现日志收集
- JavaScript设计模式之发布-订阅模式(观察者模式)-Part1
- iTerm2 for MacOS(终端模拟器/终端仿真器/命令终端工具)设置详解
- ARP:地址解析协议
- fastadmin添加定时任务
- RHEL 7.2 + Oracle 12cR2 + RAC
- 使用phonegap,进行页面跳转
- 在软件测试中UT,IT,ST,UAT分别是什么意思
- 计算机做游戏软件视频,电脑录屏工具D3DGear录制游戏视频教程
- 7-1 厘米换算英尺英寸 (15分)
- 滤波电容值得选取-ESR
- 考研可以跨计算机专业吗,食品安全的本科生考研,可以跨考计算机专业吗?
- Event-B建模(三)——控制桥上汽车,初始模型
- 关于全概率和贝叶斯公式的使用场景说明
- 通过网络地址下载图片示例
- 不用找 手机壁纸素材合集在这
- 开放式视觉伺服平台源代码_上位机(初步版本,未对细节做修订)
- 【Java编程】调用方法判断一个数是否是素数
热门文章
- 工业园区减污降碳与数字赋能(附下载)
- (python)变量和简单数据类型
- curl 一句命令查看公网出口IP、地址 地址识别还算准确
- python 虚拟环境 django.db 报错_django连接mysql数据库
- 升级 gmp linux,升级gcc,安装依赖库gmp-4.3.2出现错误,求大神指点
- 自学51单片机 - 独立按键实验
- dcat-admin扩展开发详细教程
- 优梵艺术完成近亿元A轮融资,打造时尚家具品牌
- 释放C盘空间,优化电脑性能:如何正确清理和管理C盘文件?
- 高德+关键字搜索+java_利用高德地图关键字检索POI-实现仿微信发朋友圈搜索附近位置...