熟练掌握使用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博客
作者:哆啦一泓