实验一 DBMS操作、数据定义及数据更新
一、实验目的:
- 熟悉DBMS实验环境;
- 熟悉SQL语言对数据库进行操作的方法,判断SQL语句运行的结果的正确性;
- 掌握图形化交互工具的基本操作,学会数据库及表的创建与管理;
- 理解和掌握SQL语言: 能够熟练地使用create/alter/drop语句创建、修改和删除数据库、基本表;能够使用insert/update语句。
- 完成范例数据库的定义,包括数据库的定义,表的创建、修改、删除,以及更新。
二、实验要求:
- 熟悉系统数据库的结构
- 理解和掌握create, alter, drop, insert语句的语法,特别是各种参数的具体含义和使用方法;使用SQL语句创建、修改和删除数据库和基本表。掌握SQL语句常见语法错误的调试方法。
- 熟悉样例数据库的内容。
三、实验重点和难点:
实验重点:创建数据库、基本表,进行基本的数据更新操作。
实验难点:Create,Alter, Insert, Update语句的使用和理解。
四、实验内容:
1. 数据库管理工具的配置和使用
1.1. DBMS的安装与配置;
1.2. 开启、关闭DBMS;
1.3. 命令行以及图形化工具的使用。
2.表空间的创建与管理
2.1. 创建一个新的表空间,命名为“TmptDB”,进行更名及删除数据库;
2.2. 创建一个新的表空间“StudentDB”.
3.数据定义与更新
3.1.在studentDB中创建三张数据表
3.2. 向表中添加记录
(1)STUDENT(学生信息表)
|
SNO(学号) |
SNAME(姓名) |
SEX(性别) |
SAGE(年龄) |
SDEPT(所在系) |
|
95001 |
李勇 |
男 |
20 |
CS |
|
95002 |
刘晨 |
女 |
19 |
IS |
|
95003 |
王名 |
女 |
18 |
MA |
|
95004 |
张立 |
男 |
19 |
IS |
|
95005 |
李明 |
男 |
22 |
CS |
|
95006 |
张小梅 |
女 |
23 |
IS |
|
95007 |
封晓文 |
女 |
20 |
MA |
注意:如果SQL中不接受中文,可以将相关属性值改成相应的英文。在SQL代码中注意要使用英文的标点符号。
(2)COURSE(课程表)
|
CNO(课程号) |
CNAME(课程名) |
CPNO(先行课) |
CCREDIT(学分) |
|
1 |
数据库 |
5 |
4 |
|
2 |
数学 |
2 | |
|
3 |
信息系统 |
1 |
4 |
|
4 |
操作系统 |
6 |
3 |
|
5 |
数据结构_EN |
7 |
4 |
|
6 |
数据处理 |
2 | |
|
7 |
PASCAL语言 |
6 |
4 |
(3)SC(选修表)
|
SNO(学号) |
CNO(课程号) |
Grade(成绩) |
|
95001 |
1 |
92 |
|
95001 |
2 |
85 |
|
95001 |
3 |
88 |
|
95002 |
2 |
90 |
|
95002 |
3 |
80 |
|
95003 |
1 |
78 |
|
95003 |
2 |
80 |
|
95004 |
1 |
90 |
|
95004 |
4 |
60 |
|
95005 |
1 |
80 |
|
95005 |
3 |
89 |
|
95006 |
3 |
80 |
|
95007 |
4 |
65 |
3.3.查看和修改表的定义
3.4. 数据更新和删除
4. 综合训练
通过实验,理解关系表的特性,并融合贯通关系代数理论与SQL。
五、实验步骤与结果:
说明:每一部分实验内容,请描述实验过程,并搭配实验结果截图
1.数据库管理工具的配置和使用
1.1 DBMS安装与配置
//简述DBMS的安装与配置过程,可搭配重要步骤截图
点击ios安装包,通过光驱进行安装

1.2 开启、关闭DBMS
//简述操作DBMS的方法
双击DM数据库配置助手打开


1.3 命令行以及图形化工具的使用
//总结命令行及图形化工具使用的要点,可搭配截图
命令行:熟悉命令行指令
图形化工具:熟悉图形化界面

2.数据库的创建与管理
//结合截图阐述过程和结果
创建数据库实例



3.数据定义与更新
3.1 表的创建
(1)STUDENT
//给出SQL语句的截图,并简述每个关系的内容;阐述主键、外键及相应约束的设置
主键:SNO
外键:无

COURSE
主键:CNO
外键:CPNO(COURSE(CNO))

(2)SC
主键:(SNO,CNO)
外键:SNO(STUFENT(SNO)),CNO(COURSE(CNO))

3.2 向表中添加记录
//请分别给出截图(SQL示例)展示添加完整记录,以及添加部分非空记录的方法,并说明两者的区别
部分非空记录相比完整记录要额外遵守





3.3 查看和修改表的定义
//分别通过命令和图形化工具的操作来查看和修改表的定义,结合截图阐述过程和结果。完成以下任务,结合截图阐述操作命令以及其结果。
(1)用SQL语言的方式建立一张基本表:tmp(aa char(2),bb int, cc varchar(10)) ;


(2)修改tmp表,增加2个字段,dept char(30),demo char(10),并将 bb 的属性改为smallint;


(3)删除tmp表中的一列demo;
![]()

(4)向tmp中添加10条记录。


3.4 数据更新和删除
//完成以下任务,并结合截图阐述过程和结果。
(1)对tmp中某个属性对应的值进行无条件更新;

(2)对tmp中的数据进行无条件删除;
![]()

(3)删除表tmp;
(4)将Course表中“数据库”的学分修改为5.
![]()

(5)将SC中课程号为1的所有成绩都减5分。


4. 综合训练
(1)向Student中插入一条新的记录,其中学号为“95003”。插入操作是否能够成功执行?请结合执行结果阐述原因。
不能,因为SNO是student表的主键,学号重复。
![]()
(2)将Course中课程号为1的课程删除。删除操作是否能够成功执行?请结合执行结果阐述原因。
![]()

能成功执行,因为课程号没设置成主键,允许删除
(3)将Course中“PASCAL语言”的课程号修改为8。是否可以执行成功?继续将course中“PASCAL语言”的课程号修改为1。是否可以执行成功?请结合执行结果阐述原因。
![]()


能成功执行
(4)执行以下语句,查看结果,并结合结果理解语句的功能。同时讨论通过使用哪些关系代数运算符可以获得类似的结果,为什么?
语句1:select * from student;
功能:查询student表
类似:π,select相当于投影

语句2:select * from student, course;
功能:查询student表与course表×积后的结果
类似:π、×,select相当于投影、select两张表相当于做笛卡尔积


语句3:select * from student where sage = 19;
功能:查询student表中年龄为19的学生
类似:π、σ,select相当于投影、where相当于选择

语句4:select sno, sname from student;
功能:查询student表中的学号和姓名
类似:π,select相当于投影

六、实验总结(收获及不足)
通过这次实验,我重新复习了DBMS的一些基本操作,熟练了创建表和插入数据的操作。
该实验详细介绍了如何使用DBMS进行数据库和表的操作,包括安装配置、创建与管理表空间、定义数据表、添加记录、修改表结构以及数据更新和删除。实验重点在于理解和应用SQL的CREATE,ALTER,INSERT语句,并通过实例演示了数据表的创建、记录插入以及更新操作。实验还涉及到了主键和外键的概念,以及如何处理数据完整性。

7271

被折叠的 条评论
为什么被折叠?



