安徽工业大学数据库实验:SQL入门与表结构管理

需积分: 9 1 下载量 163 浏览量 更新于2024-07-18 1 收藏 60KB DOCX 举报
本资源是一份关于学校数据库实验的文档,针对的是计算机科学与信息技术专业学生学习数据库系统概论的课程。实验旨在帮助初学者熟悉Oracle数据库的上机环境,并通过实践操作来掌握数据定义语言(DDL)和数据操纵语言(DML)。以下是一些关键知识点: 1. 实验目的: - 熟悉Oracle数据库的环境设置和基本操作,这对于理解数据库系统的工作原理至关重要。 - 掌握DDL(Data Definition Language),即数据定义语句,如CREATE TABLE用于创建数据库表,ALTER TABLE用于添加、删除或修改表结构,包括添加主键、外键约束等。这涉及到数据库设计的基本规则,如表结构设计、字段类型选择以及完整性约束的设置。 2. 实验内容: - 示例1-1展示了如何使用DDL创建四个核心表:Student、Course、Teach和Score。每个表都有特定的字段,如Student表中的SNO为主键,而Teach表包含了对学生、教师和课程之间的关联关系的处理,通过外键约束确保数据的一致性。 - 示例1-2演示了如何在已有的Student表中修改字段,先删除不必要的字段(如SSEX),然后添加新字段(SSEX,字符类型,长度2)。这体现了对表结构动态调整的能力。 - 示例1-3强调了表结构的灵活性,通过ALTER TABLE命令将SNAME字段类型改为VARCHAR2(20),并设置为非空,确保数据的完整性和一致性。 - 示例1-4可能是关于创建索引或视图的练习,但具体操作未在提供的内容中给出,通常索引是优化查询性能的重要手段。 这些实验不仅锻炼了学生的编程技能,也让他们了解到数据库管理的基础知识,如数据模型的选择、数据操作的规范性以及数据库设计的最佳实践。对于那些对数据库有兴趣或正在学习数据库技术的人来说,这份实验报告提供了宝贵的学习材料和实践经验。
2023-02-27 上传
SQL 语句 数据库第一次实验 2010/11/26 1. 建立基本表 [1] 创建学生表Student, 由以下属性组成: 学号SNO (INT型, 主键) , 姓名SNAME (CHAR 型,长度为8,非空),性别SEX(CHAR型,长度为2),所在系DEPTNO(INT型)。 [2] 创建课程表Course,由以下属性组成:课程号CNO(INT型),课程名CNAME(CHAR 型, 长度为20, 非空) , 授课教师编号TNO (INT型) , 学分CREDIT (INT型) 。 其中 (CNO, TNO)为主键。 [3] 创建学生选课表SC,由以下属性组成:学号SNO,课程号CNO,成绩GRADE。所有属 性均为INT型,其中(SNO,CNO)为主键。 [4] 创建教师表Teacher, 由以下属性组成: 教师编号TNO (INT型, 主键) , 教师姓名TNAME (CHAR型,长度为8,非空),所在系DEPTNO(INT型)。 [5] 创建系表Dept, 由以下属性组成: 系号DEPTNO (INT型, 主键) , 系名DNAME (CHAR 型,长度为20,非空)。 create table Student(SNO smallint not null primary key, SNAME char(8) not null, SEX char(2) not null, DEPTNO smallint); create table Course(CNO smallint, CNAME char(20) not null, TNO smallint, CREDIT smallint); create table SC(SNO smallint, CNO smallint, GRADE smallint); create table Teacher(TNO smallint not null primary key, TNAME char(8) not null, DEPTNO smallint); create table Dept(DEPTNO smallint not null primary key, DNAME char(20) not null); 2. 修改基本表 [1] 在Student表中加入属性AGE(INT型)。 [2] 将Student表中的属性AGE类型改为SMALLINT型。 Alter table Student add column AGE smallint; 据资料说,列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增 加varchar类型的长度。而且正好一开始新建的就是smallint类型,于是没有修改。 3. 建立索引 [1] 在Student表上建立关于SNO的唯一索引stusno。 [2] 在Course表上建立关于CNO升序的唯一索引coucno。 create unique index stusno on Student(SNO); create unique index coucno on Course(CNO); 4. 插入数据 [1] 向Student表插入下列数据: (1001,张天,m,10,20)、(1002,李兰,f,10,21)、 (1003,陈铭,m,10,21)、(1004,刘茜,f,20,21)、 (1005,马阳,m,20,22)。 [2] 向Course表插入下列数据: (1,数据结构,101,4)、(2,数据库,102,4)、 (3,离散数学,103,4)、(4,C语言程序设计,101,2)。 [3] 向SC表插入下列数据: (1001,1,80)、(1001,2,85)、(1001,3,78)、 (1002,1,78)、(1002,2,82)、(1002,3,86)、 (1003,1,92)、(1003,3,90)、 (1004,1,87)、(1004,4,90)、 (1005,1,85)、(1005,4,92)。 [4] 向Teacher表插入下列数据: (101,张星,10)、(102,李珊,10)、 (103,赵应,10)、(104,刘田,20)。 [5] 向Dept表插入下列数据: (10,计算机)、(20,信息)。 insert into Student values('1001','张天','m','10','20'); …… (这一段忘记复制了,请看过程图,上面有截取) 5. 修改数据 将张星老师数据结构课的学生成绩全部加2分。 update SC set GRADE=GRADE+2 where SC.cno=(select cno from Course where Course.CNAME='数据结构' a