实验一 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的一些基本操作,熟练了创建表和插入数据的操作。