达梦数据库实验一:DBMS操作、数据定义及数据更新

实验一 DBMS操作、数据定义及数据更新

一、实验目的:

1.熟悉DBMS实验环境;
2.熟悉SQL语言对数据库进行操作的方法,判断SQL语句运行的结果的正确性;
3.掌握图形化交互工具的基本操作,学会数据库及表的创建与管理;
4.理解和掌握SQL语言: 能够熟练地使用create/alter/drop语句创建、修改和删除数据库、基本表;能够使用insert/update语句。
5.完成范例数据库的定义,包括数据库的定义,表的创建、修改、删除,以及更新。

二、实验要求:

1.熟悉系统数据库的结构
2.理解和掌握create, alter, drop, insert语句的语法,特别是各种参数的具体含义和使用方法;使用SQL语句创建、修改和删除数据库和基本表。掌握SQL语句常见语法错误的调试方法。
3.熟悉样例数据库的内容。

三、实验重点和难点:

实验重点:创建数据库、基本表,进行基本的数据更新操作。
实验难点: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的安装与配置过程,可搭配重要步骤截图

在这里插入图片描述

1.2 开启、关闭DBMS

//简述操作DBMS的方法

在这里插入图片描述

1.3 命令行以及图形化工具的使用

//总结命令行及图形化工具使用的要点,可搭配截图
在这里插入图片描述

2.数据库的创建与管理

//结合截图阐述过程和结果

在这里插入图片描述

3.数据定义与更新

3.1 表的创建

(1)STUDENT
//给出SQL语句的截图,并简述每个关系的内容;阐述主键、外键及相应约束的设置

RENAME TABLE `studentdb`.`sheet1$` TO `studentdb`.`student`;

(2)COURSE

RENAME TABLE `studentdb`.`sheet2$` TO `studentdb`.`course`; 

(3)SC

RENAME TABLE `studentdb`.`sheet3$` TO `studentdb`.`sc`; 

3.2 向表中添加记录

//请分别给出截图(SQL示例)展示添加完整记录,以及添加部分非空记录的方法,并说明两者的区别

ALTER TABLE `studentdb`.`student` CHANGE `SNO` `SNO` DOUBLE NOT NULL, ADD PRIMARY KEY (`SNO`); 

3.3 查看和修改表的定义

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

tmp(aa char(2),bb int, cc varchar(10))CREATE TABLE `studentdb`.`temp`( `aa` CHAR(2), `bb` INT, `cc` VARCHAR(10) ); 

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

 ALTER TABLE `studentdb`.`temp` CHANGE `bb` `bb` SMALLINT(11) NULL, ADD COLUMN `dept` CHAR(30) NULL AFTER `cc`, ADD COLUMN `demo` CHAR(10) NULL AFTER `dept`;

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

 ALTER TABLE `studentdb`.`temp` DROP COLUMN `demo`; 

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

INSERT INTO `studentdb`.`temp` (`aa`, `bb`, `cc`, `dept`) VALUES ('1', '1', '2', '1'); 

3.4 数据更新和删除

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

UPDATE `studentdb`.`temp` SET `dept` = '4' WHERE `aa` = '9' AND `bb` = '1' AND `cc` = '5' AND `dept` IS NULL; 

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

DELETE FROM `studentdb`.`temp` WHERE `aa` = '10' AND `bb` = '1' AND `cc` = '5' AND `dept` IS NULL; 

(3)删除表temp;

DROP TABLE `studentdb`.`temp`; 

(4)将Course表中“数据库”的学分修改为5.

UPDATE `studentdb`.`course` SET `CCREDIT` = '5' WHERE `CNO` = '1' AND `CNAME` = '数据库' AND `CPNO` = '5' AND `CCREDIT` = '4'; 

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

UPDATE sc SET Grade = Grade-5 WHERE `sc`.`CNO`=1
SELECT * FROM sc WHERE `sc`.`CNO`=1

4. 综合训练

(1)向Student中插入一条新的记录,其中学号为“95003”。插入操作是否能够成功执行?请结合执行结果阐述原因。
答:不能插入,因为学号是主键,而主键唯一,已经有了学号95003.

(2)将Course中课程号为1的课程删除。删除操作是否能够成功执行?请结合执行结果阐述原因。
可以删除

(3)将Course中“PASCAL语言”的课程号修改为8。是否可以执行成功?继续将course中“PASCAL语言”的课程号修改为1。是否可以执行成功?请结合执行结果阐述原因。

可以修改

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

语句2: Select * from student, course;

语句3:select * from student where sage = 19;

语句4:select sno, sname from student;

猜你喜欢

转载自blog.csdn.net/david2000999/article/details/122504567