03 SQL查询数据 实验报告
03 SQL查询数据 实验报告
广州大学学生实验报告
开课学院及实验室:计算机科学与工程实验室418B室 2018年05月 17 日
学院 |
计算机科学与教育软件 |
年级、专业、班 |
网络*** |
姓名 |
卟咚君 |
学号 |
1606100*** |
|
实验课程名称 |
数据库原理实验 |
成绩 |
||||||
实验项目名称 |
SQL查询数据 |
指导老师 |
*** |
|||||
实验目的
插入、删除、修改是数据库中更新数据的基本方法,对数据库进行数据更新操作必须满足数据的完整性
要求。通过本次实验,掌握数据库中插入数据、修改数据、删除数据的基本语法,理解和掌握完整性约
束条件的作用和使用方法。
实验要求
熟悉实验室实验环境,阅读实验预备知识,掌握本实验内容涉及知识点的基本用法,了解实验中故障排
除的基本方法。实验中根据实验步骤进行,根据步骤要求撰写实验报告。
实验环境
Oracle 10g,windows 2003;
实验内容和步骤
1.列出Teacher表的所有约束,并说明每个约束的具体含义及其对表列取值的影响;
select table_name,constraint_name,constraint_type from user_constraints where table_name like 'TEACHER';
约束条件:
table_name constraint_name constraint_type
TEACHER FK_TEACHER_TSEX C
TEACHER SYS_C0011387 C
TEACHER SYS_C0011388 C
TEACHER SYS_C0011389 C
TEACHER SYS_C0011390 C
TEACHER SYS_C0011391 C
TEACHER PK_TEACHER P
TEACHER FK_TEACHER_BELONGTO_DEPARTME R
C:check on a table
P:primary key
R:referential AKA foreign key
2.书写SQL语句,在Teacher表中插入2条元组,元组内容任意设置,要求能取空值的列均设置为空(提示
:如果插入失败,则查看是否满足基本表的约束条件);
insert into teacher(tno, tname, tsex, tsalary, tbirthday, dno) values('t010', '刘小备', '男', null, To_date('7-7月-1977', 'DD-mon-yyyy'), 'd001');
insert into teacher(tno, tname, tsex, tsalary, tbirthday, dno) values('t011', '曹小操', '男', null, To_date('7-7月-1977', 'DD-mon-yyyy'), 'd001');
3.利用“create table teacher2 as select * from teacher”语句创建表teacher2,并列出Teacher2表的所有约束,比较Teacher2表与Teacher表的约束差异;
create table teacher2 as select * from teacher;
- 任取teacher表中的一条元组,把这条元组分别插入到teacher2和Teacher表中,比较两次插入操作的运行结果并分析原因(要求插入失败时必须指出违反了哪类完整性约束条件);
insert into teacher(tno, tname, tsex, tsalary, tbirthday, dno) values('t002', '李四', '女', 3600, To_date('21-10月-1979', 'DD-mon-yyyy'), 'd001');
--插入teacher表时会失败,违反了实体完整性(主码取唯一值)
nsert into teacher2(tno, tname, tsex, tsalary, tbirthday, dno) values('t002', '李四', '女', 3600, To_date('21-10月-1979', 'DD-mon-yyyy'), 'd001');
5.使用带子查询的插入语句把teacher表中的所有男教师插入到teacher2表中;
insert into teacher2(tno, tname, tsex, tsalary, tbirthday, dno)select tno, tname, tsex, tsalary, tbirthday, dno from teacher where tsex='男' ;
6.为表Teacher添加check约束,使性别的取值只能为“男”或者“女”;
alter table teacher add constraint fk_teacher_tsex check(tsex in ('男','女') );
7.删除teacher2表中工资等于6000的教师信息;
delete teacher2 where tno in(select tno from teacher2 where tsalary=6000);
8.删除teacher2表中“计算机科学系”的所有教师;
delete teacher2 where tno in(select teacher2.tno from teacher2, department where teacher2.dno=department.dno and department.dname like '计算机科学系');
select *from department;
9.删除teacher2表中的所有教师;
delete teacher2;
10.修改teacher2表,使列tno为主码,主码约束名字为PK_teacher2;
alter table teacher2 add constraint PK_teacher2 primary key(tno);
11.为teacher2表添加唯一约束,使tname的取值不能重复;
alter table teacher2 add constraint un_teacher2_tname unique(tname);
12.修改teacher2表,使列dno成为外码,引用department表的主码dno,当删除department表中的元组时,级联删除Teacher2表中的元组(提示:删除并重新创建外码约束,使用ON DELETE CASCADE选项);
alter table teacher2 add constraint fk_teacher2_to_department foreign key (dno)references department (dno) on delete cascade;
13.在department表中插入一个新系,系号为“xyz”,在Teacher2表中为该新系添加两个教师信息;
insert into department(dno,dname) values('xyz', '网络安全');
insert into teacher2(tno, tname, tsex, tsalary, tbirthday, dno) values('t012', '张小飞', '男', 3000, To_date('7-7月-1977', 'DD-mon-yyyy'), 'xyz');
insert into teacher2(tno, tname, tsex, tsalary, tbirthday, dno) values('t013', '关小羽', '男', 3600, To_date('21-10月-1979', 'DD-mon-yyyy'), 'xyz');
14.分别写出删除department表中系号为d001和xyz的记录的SQL语句并执行,比较并分析执行结果(提示:在Teacher表和Teacher2表中的外码定义是不同的);
delete department where dno='d001';
--删除department表中系号为d001会报错,违反完整约束条件
delete department where dno='xyz';
15.在tm中插入一条元组,只设置tno、pno的值;
insert into tm(tno, pno) values('t010', 'p0001');
16.给teacher表中的所有教师的工资增加100;
update teacher set tsalary= tsalary+100;
17.给teacher表中的“计算机科学系”教师的工资增加100;
update teacher set tsalary=tsalary+100 where tno in(select teacher.tno from department,teacher where teacher.dno=department.dno and department.dname like '计算机科学系');
18.创建两个视图VT、VT2,两个视图均为包含所有teacher表的男教师的信息,但视图VT2的定义带有with check option选项,设置一条女教师信息记录,指出通过哪个视图可以成功插入记录,并说明with check option选项的作用;
create view VT as select *from teacher where tsex='男';
create view VT2 as select *from teacher where tsex='男' with check option;
insert into VT2(tno,tname,tsex,tsalary,tbirthday,dno) values('t014','貂小蝉','男',3000,To_date('17-10月-1985', 'DD-mon-yyyy'), 'd001');
--在定义视图的时候加上with check option 子句,这样在视图上插入,删除,修改数据时,RDBMS会检查视图定义的条件,若不满足条件则拒绝执行该操作。
实验总结
总结实验过程中涉及到的知识点、实验过程中遇到的问题及解决方法。
通过本次实验,掌握数据库中插入数据、修改数据、删除数据的基本语法,理解和掌握完整性约束条件的作用和使用方法。在select table_name,constraint_name,constraint_type from user_constraints where table_name like '表名称' 使用语句进行查询的时候,需要注意的是,表名称需要英文大写的字符串,查询的结果会出现的一些约束条件的缩写,其他的比如not null,not quite语句的约束条件不会出现,通过sqldevelpor的查询用户中的表的约束条件时可以很明显的查询出来。
在创建视图的时候,如果创建的时候带有with check option的选项,可以通过对视图的修改来修改基本表的信息。
03 SQL查询数据 实验报告相关推荐
- 数据库实验三 SQL查询数据
实验三 SQL查询数据 实验目的 熟练掌握使用SQL查询语言.完成各类查询操作(单表查询,连接查询,嵌套查询,集合查询). 实验内容 现有一个单位内部的小型图书借阅系统,假设每本图书的数量无限制,并且 ...
- 实验三 SQL查询数据
SQL查询数据 一.实验目的 熟练掌握使用SQL查询语言.完成各类查询操作(单表查询,连接查询,嵌套查询,集合查询). 二.实验原理 基于数据库系统概论,熟悉实验环境,熟悉SQL查询数据等本次实验的基 ...
- sql 查询手动创建的表_学习SQL:使用SQL查询手动创建报告
sql 查询手动创建的表 In the previous two articles, we've practiced SQL queries and went through a few more e ...
- c语言飞机票实验报告格式,c语言航班信息查询系统实验报告
<c语言航班信息查询系统实验报告>由会员分享,可在线阅读,更多相关<c语言航班信息查询系统实验报告(21页珍藏版)>请在人人文库网上搜索. 1.希昌丸會软件学院大作业任务书题目 ...
- c语言课设航班信息管理软件管理系统,c语言航班信息查询系统实验报告.doc
c语言航班信息查询系统实验报告.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3 ...
- c语言程序设计航空查询系统,c语言航班信息查询系统实验报告.doc
c语言航班信息查询系统实验报告 PAGE 13 - 软件学院大作业任务书 题 目:航班信息查询系统 专 业: 班 级: 姓 名: 学 号: 完成人数: 起讫日期: 任课教师: 职称: 讲师 部分管主任 ...
- SQL查询数据并插入新表
SQL查询数据并插入新表 --如果接受数据导入的表已经存在 insert into 表 select * from tablename--如果导入数据并生成表 select * into 表 from ...
- 大数据实验报告【全集】
所用教材↑,配套PPT和厦门大学林子雨配套MOOC内容和书里的内容差不多. [意味着课上不好好听,课下你还能看教科书补(╹ڡ╹ )]建议先实验再听课或看书. 若对你有帮助的话,记得点赞.关注我哦!实验 ...
- pythonpandas用sql查询数据表_pandas从数据库读取数据
因为本周有一个是需要使用pandos做一个数据分析的需求,所以在这里做一下记录. Python中用Pandas进行数据分析,最常用的就是Dataframe数据结构, 这里我们主要介绍Pandas如何读 ...
最新文章
- 激光打标软件_走向工业自动化生产之路——激光飞行打标
- 超图桌面开发VC++ 入门程序
- java中super()_Java 泛型中 extends 和 super 的区别是什么?
- TreeView Checkbox选中
- 声学、音乐计算常用工具总结(soundfile、librosa、pydub、madmom、spleeter)
- 二维数组各行分别求和_【PyTorch入门】之十分钟看懂二维卷积层的运算、实现及应用...
- 国科大高级人工智能-总结
- 在Ubuntu中搭建.NET开发环境
- UPSNet论文笔记
- 全向移动机器人参数校准方法思路
- 守护你一生-守护线程(Java)
- junit4同一时候測试多个測试类
- jQuery 实现点击页面其他地方隐藏菜单
- Navicat数据传输
- 国际短信平台的收费标准是什么?
- 软件系统 - 网址大全
- 目标检测算法之AAAI2019 Oral论文GHM Loss
- 第一课.极大似然估计与有偏性无偏性
- 实验:使用SSMS创建并管理数据库及其基本表
- DelayQueue,网吧记时