《数据库系统原理》实验3:表的创建和管理

一、实验目的

熟练掌握使用Navicat和Transact-SQL语言两种方法创建、修改和删除表。掌握管理表的有关系统存储过程。

二、实验内容

1、利用Navicat创建满足以下要求的数据库:①数据库存在于连接MySQL中;②数据库名称为xsgl; ③字符集选择utf8 -- UTF-8 Unicode;排序规则选择utf8_general_ci。

2、在数据库xsgl中,利用Navicat创建以下表格:

1)表格名为xs(学生基本情况表);

2)表格中各个属性的定义如下:

列名

含义

数据类型

长度

能否取空值

备注

xh

学号

int

no

主码

xm

姓名

char

8

yes

xb

性别

char

2

yes

nl

年龄

tinyint

yes

zy

专业

char

16

yes

jtzz

家庭住址

char

50

yes

具体步骤如下:打开新建的数据库“xsgl”–右键点击“表”--“新建表”。按照上表内容输入个属性的定义,填写“列名”、“数据类型”,并取消或选择“允许NULL值”前的选项,并右键点击“xh”,选择将其设为主键,如下图所示:

点击“保存”,输入表名:xs。结果如下图所示:

3、按照以下步骤向表格xs中添加如下记录:

xh

(学号)

xm

(姓名)

xb

(性别)

nl

(年龄)

zy

(专业)

jtzz

(家庭住址)

200809412

庄小燕

24

计算机

上海市中山北路12号

200809415

洪波

25

计算机

青岛市解放路105号

200109102

肖辉

23

计算机

杭州市凤起路111号

200109103

柳嫣红

22

计算机

上海市邯郸路1066号

200307121

张正正

20

应用数学

上海市延安路123号

200307122

李丽

21

应用数学

杭州市解放路56号

1)打开Navicat;

2)打开连接MySQL找到数据库xsgl中的表格xs;

3)在表格xs上右击鼠标,选择“打开表”;

4)在接着出现的记录录入界面上添加记录。(方向键下增加新纪录)

添加完后如下图所示:

4、向表xs中增加“入学时间”属性列,其列名为rxsj,数据类型为datetime型。

步骤:右键单击xs表—设计表—加入列rxsj,设置数据类型为datetime。如下图所示:

5、将表xs中nl(年龄)列的数据类型改为int型。

步骤:与第4项类似

6、在数据库xsgl中,利用Transact-SQL语言创建以下表格:

1)表格名为kc(课程情况表);

2)表格中各个属性的定义如下:

列名

含义

数据类型

长度

能否取空值

备注

kch

课程号

char

4

no

主码

kcm

课程名

char

20

yes

xss

学时数

int

yes

xf

学分

int

yes

步骤:点击“新建查询”,输入以下代码,点击运行

USE xsgl;  
create table kc  
(  
    kch char(4) not null,  
    kcm char(20) null,  
    xss int null,  
    xf int null,  
    primary key(kch)  
)engine=innodb default charset=utf8 auto_increment=1;  

命令成功完成后,在 “xggl”数据库中右键点击“表”,选择“刷新”,结果如下图所示:

7、利用Transact-SQL语言修改kc表。

①增加“成绩”一列cj,int型,允许为空值,默认为0。

步骤:点击“新建查询”,输入以下代码,点击运行

ALTER TABLE kc ADD COLUMN cj INT DEFAULT 0;

②修改cj列的类型为char。

步骤:点击“新建查询”,输入以下代码,点击运行

ALTER TABLE kc CHANGE COLUMN cj cj CHAR(4);

③修改cj列的列名为mark。

步骤:点击“新建查询”,输入以下代码,点击运行

ALTER TABLE kc CHANGE cj mark CHAR(4) DEFAULT 0;

④删除mark列。

步骤:点击“新建查询”,输入以下代码,点击运行

ALTER TABLE kc DROP COLUMN mark;

7、利用Navicat和Transact-SQL语言两种方式删除表kc。

①步骤:右键点击表“kc”,选择删除。

②步骤:点击“新建查询”,输入以下代码,点击执行

DROP TABLE kc

8、利用Transact-SQL将表xs重命名为Students。

步骤:点击“新建查询”,输入以下代码,点击执行

RENAME TABLE xsgl.xs TO xsgl.Students;

三、课后练习题

1、创建一个名为cpxs的数据库,在该数据库中分别通过Navicat和查询分析器创建一个名为cp的表(产品表),表格中各个属性的定义如下:

列名

含义

数据类型

长度

能否取空值

备注

cpbh

产品编号

char

6

no

主码

cpmc

产品名称

char

30

no

jg

价格

float

yes

kcl

库存量

int

yes

(1)通过Navicat创建表:

(2)通过查询分析器创建表(代码如下图):

比较用Navicat创建的表cp和用查询分析器创建的表cp2,内容一致:

2、思考以下问题:

1)如果要在一个已经存在的表格上删除一列并增加一列,能不能用一个ALTER TABLE语句来完成?

答:

不能用一个ALTER TABLE语句来完成。

如需在表中添加列,需使用下面的语法:

ALTER TABLE table_name  
ADD column_name datatype  

如需删除表中的列,需使用下面的语法:

ALTER TABLE table_name  
DROP COLUMN column_name  

四、出现的问题及解决方案

问题:

ORDER BY关键字降序排序问题

SQL AND & OR 运算符与优先级问题

WHERE语句的特殊条件——例如is null、between and、like模糊查询等问题

解决方案:

参考《数据库系统概论课本》、菜鸟教程(https://www.runoob.com/sql)和CSDN博客

发布了79 篇原创文章 · 获赞 93 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/lee1hong/article/details/105762369