文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

数据库与MySQL实验一

2023-10-26 11:34

关注

目录

实验内容

(一)创建数据库的操作

(二)表数据的操作

(三)数据库的备份与恢复

实验思考


实验内容

(一)创建数据库的操作

1. 使用SQL语句创建数据库Stu_Course。

T-SQL语句为:

CREATE DATABASE Stu_Course

2. 使用SQL语句选择Stu_Course为当前使用数据库。

T-SQL语句为:

USE Stu_course;

(二)表数据的操作

1.在数据库Stu_Course中创建表

(1)使用图形界面工具创建Student表

Student表结构及其约束为:

表1-1 Student表结构和约束

列名

数据类型

宽度

允许空值

缺省值

主键

说明

Sno

char

9

学号

Sname

char

20

姓名

Ssex

char

2

性别

Sage

smallint

年龄

Sdept

char

20

所在系

操作步骤如下:

右键Stu_Course->依次对于列名,数据类型,宽度,允许空值,缺省值,主键进行输入->右键点击添加字段->重复此类操作直至完毕->点击保存->输入表名为Student

(2)使用T-SQL语句创建表

1)创建Course表

Course表结构及其约束为:

表1-2 Course表结构和约束

列名

数据类型

宽度

允许空值

缺省值

主键

外键

说明

Cno

char

4

课程号

Cname

char

40

课程名

Cpno

char

4

先行课

Ccredit

smallint

学分

创建Course表T-SQL语句如下:

CREATE TABLE Course(Cno char(4) NOT NULL PRIMARY KEY,Cname char(40),Cpno char(4),Ccredit SMALLINT,FOREIGN KEY(Cpno)REFERENCES Course(Cno));

2)创建表SC表

SC表结构及其约束为:

表1-3 SC表结构和约束

列名

数据类型

宽度

允许空值

缺省值

主键

外键

说明

Sno

char

9

学号

Cno

char

4

课程号

Grade

smallint

成绩

其中成绩为百分制。

创建SC表T-SQL语句如下:

CREATE TABLE SC(Sno char(9)NOT NULL,Cno char(4)NOT NULL,Grade SMALLINT,PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno) REFERENCES student(Sno),FOREIGN KEY(Cno) REFERENCES Course(Cno));

2.管理表

(1)添加和删除列

给Course表增加一列,字段名为Ctype(课程类型),类型为char,长度为10,允许为空值。

1)使用图形界面工具进行。

操作步骤如下:

右键course->设计表->插入字段->在名中输入Ctype,在类型中输入char,在长度中输入10->点击保存

插入该列后,在图形界面工具中删除该列的操作步骤。

右键course->设计表->选中Ctype行->删除字段->点击保存

2)使用T-SQL语句进行。

添加Ctype字段的T-SQL语句。

ALTER TABLE Course ADD Ctype char(10);

删除Ctype字段的T-SQL语句。

ALTER TABLE Course DROP Ctype;

(2)表的重命名及删除

1)使用图形界面工具重命名及删除表。

重命名操作步骤:

(如将Course表重命名为Course1表)

右键Course->点击重命名->输入Course1->点击空白区域即可

删除Course1表的操作步骤:

右键course->点击删除表->在“我已了解此操作是永久性的且无法撤销”前面的框内打对号->点击删除

2)使用T-SQL语句实现

在查询命令窗口中,重建Course表。

重命名Course表为Course1表的T-SQL语句。(提示:MySQL使用命令rename table)

ALTER TABLE Course RENAME Course1;

删除Course1表的T-SQL语句。

注意:SC表的建立是在Course表之后的,且以Course表为依据,SC表中的Cno参照与Course中的Cno,因此仅仅使用DROP是无法删除重命名后的Course表的(即Course1),因为SC中外键的存在。将SC中的外键删除即可,外键的名称可通过右键SC表->设计表->外键步骤查看,可以发现此外键名为sc_ibfk_2,将其删除之后,就可正常删除Course1表了

ALTER TABLE sc DROP FOREIGN KEY sc_ibfk_2;DROP TABLE course1;

3.对表添加、修改、删除数据

(1)插入数据简单操作

1)使用图形界面工具向Student表中插入数据。

表1-4 Student表

Sno

Sname

Ssex

Sage

Sdept

200215121

李勇

20

CS

200215122

刘晨

19

CS

200215123

王敏

18

MA

200215125

张立

19

IS

200215126

张红

19

CS

操作步骤:

依次对于每一行的数据进行输入->输入完毕点击左下角的对号保存->点击加号获取新的一行->重复进行直至数据输入完毕

其它数据可自行添加。

2)使用T-SQL语句向Course表中插入数据。

表1-5 Course表

Cno

Cname

Cpno

Ccredit

1

数据库

5

4

2

数学

2

3

信息系统

1

4

4

操作系统

6

3

5

数据结构

7

4

6

数据处理

2

7

PASCAL语言

6

4

在查询命令窗口中,运行重建Course表。

T-SQL命令为:

CREATE TABLE Course(Cno char(4) NOT NULL PRIMARY KEY,Cname char(40),Cpno char(4),Ccredit SMALLINT,FOREIGN KEY(Cpno)REFERENCES Course(Cno));INSERT INTO Course(Cno,Cname,Cpno,Ccredit) VALUES('6','数据处理',NULL,2),('7','PASCAL语言','6',4),('5','数据结构','7',4),('1','数据库','5',4),('4','操作系统','6',3),('2','数学',NULL,2),('3','信息系统','1',4);

注意:在Course中,Cpno为Cno的外键,因此Cpno相应的数据应在Cno数据存在之后插入

其它数据可自行添加。

3)使用T-SQL语句向SC表中插入数据。

表1-6 SC表

Sno

Cno

Grade

200215121

1

92

200215121

2

85

200215121

3

88

200215122

2

90

200215122

3

80

T-SQL命令为:

INSERT INTO SC(Sno,Cno,Grade)VALUES('200215121','1',92),('200215121','2',85),('200215121','3',88),('200215122','2',90),('200215122','3',80);

其它数据可自行添加。

(完成以上操作后,保存所有命令文本sql文件并将Stu_Course数据库备份,得到Stu_Course.sql备份文件,保存起来以备后面实验用)

(2)修改数据简单操作。

1)在图形界面工具中,将Student表中的学号为“200215125”的同学的姓名改为“李双”。

操作步骤:

双击student表->选择200212125的同学姓名->删除并改为李双->点击左下角对号保存

2)使用T-SQL语句,将Course表中的课程号为“2”的学分改为4。

T-SQL语句为:

UPDATE Course SET Ccredit = '4' WHERE Cno = '2'; 

3)使用T-SQL语句,将SC表中的选修了“2”课程的同学的成绩*80%。

T-SQL语句为:

UPDATE SC SET Grade = Grade * 0.8 WHERE Cno = '2'; 

(3)删除数据简单操作(请注意外键约束的限制)

1)假设学号为“200215123”的同学已离开学校,则需要删除该记录,请在图形界面工具中将Student表中将该记录删除。

操作步骤:

选中该列->右键删除记录->点击确定->点击左下角对号保存

2)删除选修了“信息系统”的学生选课记录。

T-SQL语句:

DELETE FROM SC WHERE Cno IN (SELECT Cno FROM CourseWHERE Cname = '信息系统');

3)使用T-SQL语句,删除所有的学生选课记录。

T-SQL语句:

DELETE FROM SC;

(三数据库的备份与恢复

1. 使用mysqldump命令备份数据库Stu_Course的所有表,存于D:\下,文件名为all_tables.sql。写出执行代码并将结果界面截图粘贴。

cmd进入MySQL之后输入:

mysqldump -u root -h localhost -p stu_course > d:\all_tables.sql

2. 在MySQL服务器上创建数据库student1,使用mysql命令将备份文件all_tables.sql恢复到数据库student1中。写出执行代码并将结果界面截图粘贴。(提示:恢复数据库前要先创建数据库)

再在CMD命令提示符窗口中执行命令。

CREATE DATABASE student1;

cmd进入MySQL之后输入:

mysql -uroot -p student1 < d:\all_tables.sql

3. 使用mysqldump命令备份数据库Stu_Course中的指定表SC,存于D:\下,文件名为s_c.sql。写出执行代码并将结果界面截图粘贴。

cmd进入MySQL之后输入:

mysqldump -u root -p stu_course sc > d:\s_c.sql

4. 在MySQL服务器上创建数据库student2,使用mysql命令将备份文件s_c.sql恢复到数据库student2中。写出执行代码并将结果界面截图粘贴。(提示:恢复数据库前要先创建数据库)

CREATE DATABASE student2;

cmd进入MySQL之后输入:

mysql -uroot -p student2 < d:\s_c.sql

实验思考

1. 能通过一个CREATE DATABASE语句创建两个及以上的数据库吗?

不可以

2. 删除了的数据库还极可能恢复吗?

可以恢复,不过要提前对于数据库进行备份,并在之后创建一个新的数据库来导入原来备份的内容

3. 对于Stu_Course数据库的Student表而言,如果输入相同学号的记录将出现什么现象?为什么?

会出现报错无法正常保存的情况,因为Student表中的学号Sno为主键,其值能够唯一的确定某一个学生的信息,主键是用来唯一表示一条数据的值,不能重复的

4. 已经打开的表能删除吗?

能够删除

来源地址:https://blog.csdn.net/couchpotatoshy/article/details/130590016

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯