当前位置:   article > 正文

实验一 数据库、表的创建与维护_给tno字段增加约束,要求教师编号必须是形如a001,b002这样的形式,即由一个大写字母

给tno字段增加约束,要求教师编号必须是形如a001,b002这样的形式,即由一个大写字母

本篇记录数据库、表的创建与维护相关操作,有客户端界面操作方法也有命令操作方法

实验环境:MySQL 5.7 、DataGrip

目录

本篇记录数据库、表的创建与维护相关操作,有客户端界面操作方法也有命令操作方法

实验环境:MySQL 5.7 、DataGrip

一、实验目的

二、实验内容(请完成以下操作)

1.创建关系数据库S_T###,

2. 在S_T数据库中,创建学生表students

3.在S_T数据库中,创建教师表Teachers

4. 在S_T数据库中,创建课程表Courses

5. 在S_T数据库中,创建选课表STC

6.用语句修改Students表,

7.用语句修改把STC表中的score改为smallint型;

8.将Course表中的Cno属性设置为主码。

9.为STC表中的cno添加参照完整性约束,参照Courses表中的Cno属性。

10.将下表中的数据依次输入到已经创建的四个表中。


一、实验目的

1.掌握数据库的创建与维护

2.熟练掌握数据表的创建和维护

3.熟悉数据的更新操作。

二、实验内容(请完成以下操作)

1.创建关系数据库S_T###,

要求数据库字符集为utf8,字符集校对规则默认。

说明:数据库名称中的###代表本人学号的后三位。如张华的学号为20160714121,其数据库名为“S_T121”

具体操作:

右键MySQL,选择新建-架构

 

 

2. 在S_T数据库中,创建学生表students

该表的存储引擎为InnoDB,采用数据库默认字符集。该表主要包括学号(sno)、姓名(sname)、出生日期(sbirth)和年级(grade)四个属性,每个属性的数据类型、长度及其约束要求如下:

Sno:char(10),主码;

Sname:char(4),不允许为空

sbirth:date,

Grade:smallint。

 具体操作:

右键数据库,选择新建-表

第一步,自定义表名

第二步,添加新列

第三步,自定义列

 

最终显示

 

 红框语法是该表的存储引擎为InnoDB,采用数据库默认字符集。不写也行,因为默认就是InnoDB储存引擎

注意:主键不能为空

 所用语法:

  1. CREATE TABLE `students` (
  2. `Sno` char(10) NOT NULL,
  3. `Sname` char(4) NOT NULL,
  4. `sbirth` date DEFAULT NULL,
  5. `Grade` smallint(6) DEFAULT NULL,
  6. PRIMARY KEY (`Sno`)
  7. ) ENGINE=InnoDB DEFAULT CHARSET=utf8

3.在S_T数据库中,创建教师表Teachers

主要包括教师号(Tno)、教师姓名(Tname)、性别(sex)和工资(salary)四个属性,每个属性的数据类型、长度及其约束要求如下:

Tno:CHAR(8) ,主码;

Tname:char(4) 非空约束,

sex:复合型,取值为‘男’或‘女’,

Salary:float。

 具体操作

同创建students表一样

注意,sex复合型的定义

 所用语法

  1. CREATE TABLE `teachers` (
  2. `Tno` char(8) NOT NULL,
  3. `Tname` char(4) NOT NULL,
  4. `sex` enum('男','女') DEFAULT NULL,
  5. `Salary` float DEFAULT NULL,
  6. PRIMARY KEY (`Tno`)
  7. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

4. 在S_T数据库中,创建课程表Courses

主要包括课号(Cno)、课名(Cname)和学时(Chour)三个属性,每个属性的数据类型、长度及其约束要求如下:

Cno:char(8) 非空约束 ,

cname:varchar(10) 非空约束,

Chour:tinyint。

 具体操作

 所用语法

  1. create table Courses
  2. (
  3. Cno char(8) not null,
  4. cname varchar(10) not null,
  5. Chour tinyint null
  6. );
类型大小范围(有符号)范围(无符号)用途
TINYINT1 Bytes(-128,127)(0,255)小整数值

 

类型大小用途
CHAR0-255 bytes定长字符串
VARCHAR0-65535 bytes变长字符串

5. 在S_T数据库中,创建选课表STC

包括学号(Sno)、教师号(Tno)、课号(Cno)和成绩(score)四个属性,每个属性的数据类型、长度及其约束要求如下:

Sno:char(10),

Cno:CHAR(8),

Tno:CHAR(8),

Score:int。

设置(Sno,cno)为主码,STC表中的Sno属性为外码,参照students表中的学号sno。

具体操作

 在设置两个属性组合成主键时,要进入键的操作里添加属性

设置外键时:进入外键操作

1.选择目标表

2.添加外键列

 

6.用语句修改Students表,

增加性别Ssex属性置于sname属性之后,该属性为enum类型,只能取“男”或“女”;

具体操作

右键students表,进入查询控制台

  1. ALTER TABLE students
  2. ADD Ssex enum('男','女') AFTER Sname;

执行完成后成功显示

 

7.用语句修改把STC表中的score改为smallint型;

看操作

  1. ALTER TABLE stc
  2. MODIFY Score smallint;

修改已有属性时,要用MODIFY关键字


8.将Course表中的Cno属性设置为主码。

看操作

  1. ALTER TABLE courses
  2. ADD PRIMARY KEY (Cno);

给已有属性添加主键,使用ADD关键字


9.为STC表中的cno添加参照完整性约束,参照Courses表中的Cno属性。

 看操作

  1. alter table stc
  2. add foreign key (Cno)references courses(Cno);

语法解释:修改表stc,添加一个主键Cno,参照courses表中的Cno


10.将下表中的数据依次输入到已经创建的四个表中。

Students表:

  sno

sname

Ssex

sbirth

grade

201615121

李丽

1999-1-1

2016

201615122

汪洋

1998-12-21

2016

201615123

刘晨

1998-6-5

2016

201715121

王小晨

1999-4-16

2017

201715122

张放

1997-6-1

2017

201715123

乔云萍

1999-8-12

2017 


Teachers表:

Tno

Tname

Sex

salary

101

李大伟

6200

102

刘云

4500

103

王军

3600

104

张红霞

4100

课程表Courses

Cno

Cname

Chour

B001

高等数学

80

B002

计算机导论

48

B003

C程序设计

64

B004

数据结构

72

B005

数据库系统

56

B006

模糊数学

56

课程表STC

Sno

Cno

Tno

score

201615121

B001

101

78

201615121

B002

102

85

201615121

B003

103

69

201615121

B004

104

201615122

B002

102

98

201615122

B003

103

89

201615123

B001

101

65

201615123

B003

103

56

201615123

B004

104

201715121

B002

102

68

201715121

B004

104

78

201715123

B001

101

81

201715123

B002

102

60

具体操作

我选择的方法是,把数据复制到Excel表格

加号,添加行,选择第一个格

然后在复制Excel表格中的数据,粘贴到第一个格

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/696438
推荐阅读
相关标签
  

闽ICP备14008679号