数据库系统SSD7 实验1 《数据库与表的基本操作》
一、实验目的
1、熟练掌握一种DBMS的使用方法,完成数据库的创建、删除和连接;数据表的建立、删除;表结构的修改。 2、加深对表的实体完整性、参照完整性和用户自定义完整性的理解。
二、实验内容
在以下实验中,使用学生-课程数据库,它描述了学生的基本信息、课程的基本信息及学生选修课程的信息。用SQL语句分别完成。
1、创建学生-课程数据库,数据文件名为student_data、大小10M,日志文件名为student_log、大小5M的新数据库,该数据库名为student_xxxxxx,xxxxxx表示班级学号。1801班12号,数据库名为student_180112。 2、创建学生关系表S
学号 | 姓名 | 性别 | 年龄 | 所在系 |
---|
Sno | Sname | Ssex | Sage | sdept |
3、创建课程关系表C
课程号 | 课程名 | 先行课 | 学分 |
---|
Cno | Cname | Cpno | ccredit |
4、创建学生-课程表SC
5、将以上创建表S、C、SC的SQL命令以 .sql文件的形式保存在磁盘上。在表中加入至少4个元组,第一个为本人信息。 6、在表S上增加“出生日期”与“身高”属性列。 7、删除表S的“身高” 属性列。 8、备份数据库,再还原。
三、实验方法与实验步骤
使用Navicat Premium 12进行MySQL数据库的操作,点击新建查询打开查询控制界面输入对应的SQL语句并运行,得到相应结果(这里也可使用MySQL自带的命令行)。
1、创建数据库或连接已建立的数据库。 在控制界面输入如下SQL语句并点击运行进行MySQL数据库的创建:
CREATE DATABASE `student_190222` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
2、在当前数据库上建立新表,同时确定表的结构。 在控制界面输入如下SQL语句并点击运行创建相应的三个表
CREATE TABLE S(
Sno VARCHAR(10),
Sname VARCHAR(10),
Ssex VARCHAR(5),
Sage INT(5),
sdept VARCHAR(20),
PRIMARY KEY(Sno)
);
CREATE TABLE C(
Cno VARCHAR(10),
Cname VARCHAR(10),
Cpno VARCHAR(10),
ccredit INT(5),
PRIMARY KEY(Cno)
);
CREATE TABLE SC(
Sno VARCHAR(10),
Cno VARCHAR(10),
grade INT(5),
PRIMARY KEY(Sno, Cno),
FOREIGN KEY(Sno) REFERENCES s(Sno),
FOREIGN KEY(Cno) REFERENCES c(Cno)
);
这里指定了相应的主键与外键。
3、插入测试数据。 在控制界面输入如下SQL语句并点击运行各自插入4个测试的元组:
INSERT INTO S(Sno, Sname, Ssex, Sage, sdept)
VALUES
('1234567890', '李华', '男', 19, '英语系'),
('1234567891', '王五', '男', 21, '土木工程系'),
('1234567892', '赵秋明', '女', 20, '城乡规划系'),
('1234567893', '刘畅', '男', 19, '软件工程系');
INSERT INTO C(Cno, Cname, Cpno, ccredit)
VALUES
('2-1', '数据结构', '线性代数', 2),
('5-6', '编译原理', '汇编语言', 3),
('1-3', '操作系统', '离散数学', 5),
('8-5', '计算机网络原理', '高等数学', 3);
INSERT INTO SC(Sno, Cno, grade)
VALUES
('1234567890', '2-1', 98),
('1234567891', '8-5', 95),
('1234567892', '5-6', 93),
('1234567893', '1-3', 100);
4、修改表的结构。
ALTER TABLE S ADD `birthday` DATE;
ALTER TABLE S ADD `height` DOUBLE;
ALTER TABLE S DROP COLUMN `height`;
5、转储.sql文件。 右击数据库,可以看到有一个“转储SQL文件”的选项,点击该选项,选择sql文件存储位置,点击“保存”完成sql文件的转储。对应的命令是mysqldump -u root -p dbName > sqlFilePath (dbName: 数据库名;sqlFilPath: 导出的.sql文件路径)。
6、备份数据库并还原。 通过Navicat内置的备份功能完成数据另存:点击新建备份,选择需要备份的三个表S、C、SC,点击开始,完成备份。使用Navicat备份的数据进行恢复,打开备份区,选取上述备份,点击还原备份,开始还原,等到还原完成即可。对应的命令仍是mysqldump 。
四、实验结果
1、建库
2、建表
3、插入数据
4、新加属性
5、删除属性
五、实验小结
主要是学会了如何利用create语句创建数据库、利用create语句创建关系实例(表)、利用insert语句插入数据、利用alter table语句增加或者删除属性,以及合理利用Navicat这个MySQL的可视化工具进行备份与恢复,以及上述语句的一些基本语法和使用场景。MySQL的建库无法像SQL Server一样指定相关文件的存储位置和分配空间。建库的时候顺便把一些完整性约束也加进去了,比如指定sc表的Sno和Cno分别为外键。
SQL是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。 结构化查询语言SQL语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。
|