0


数据库实验报告一

第1关:创建数据库

实验要求:创建名为

TESTDB

的数据库。

相关SQL语句如下:

CREATE DATABASE TESTDB;

第2关:创建简单的数据表

实验要求:

TESTDB

数据库中创建教师表(

teacher

),表结构如下:
字段名数据类型(长度)备注tnoCHAR(4)工号tnameVARCHAR(12)姓名sexCHAR(3)性别titleVARCHAR(15)职称birthdayDATE出生日期
相关SQL语句如下:

CREATE TABLE teacher(
  tno CHAR(4),
  tname VARCHAR(12),
  sex CHAR(3),
  title VARCHAR(15),
  birthday DATE
);

第3关:创建带约束的数据表

实验要求:

TESTDB

数据库中创建课程表(

course

)和班级表(

class

),表结构如下:

course 表结构:
字段名数据类型(长度)完整性约束说明****备注cnoCHAR(4)主键课程号cnameVARCHAR(30)非空课程名creditTINYINT约束取值范围为110学分hoursINTEGER……学时examinationCHAR(6)……考核方式
class表结构
字段名数据类型(长度)完整性约束说明****备注gnoCHAR(7)主键班级号gnameVARCHAR(21)唯一键班级名gradeCHAR(5)……年级deptVARCHAR(12)……学院gnumTINYINT约束取值范围为15
40班级人数
相关SQL语句如下:

CREATE TABLE course(
  cno CHAR(4)  PRIMARY KEY,
  cname VARCHAR(30)  NOT NULL,
  credit TINYINT  CHECK(credit>=1 AND credit<=10),
  hours INTEGER,
  examination CHAR(6)
);

CREATE TABLE class(
  gno CHAR(7) PRIMARY KEY,
  gname VARCHAR(21) UNIQUE,
  grade CHAR(5),
  dept VARCHAR(12),
  gnum TINYINT  CHECK(gnum>=15 AND gnum<=40)
);

第4关:给教师表添加约束

实验要求:

TESTDB

数据库中给教师表(

teacher

)添加主键约束,工号(

tno

)作为主键,给教师表姓名(

tname

)列添加唯一约束。

相关SQL语句如下:

ALTER TABLE teacher ADD PRIMARY KEY(tno);

ALTER TABLE teacher ADD UNIQUE(tname);

第5关:在TESTDB中创建教师授课表

实验要求:

TESTDB

数据库中创建教师授课表

teaching

,及其对应的约束条件,表结构如下:
字段名****数据类型(长度)完整性约束说明备注cnoCHAR(4)外键,主键(cno+tno+gno)课程号tnoCHAR(4)外键,主键(cno+tno+gno)工号gnoCHAR(7)外键,主键(cno+tno+gno)班级号termTINYINT……开课学期classroomCHAR(7)……教室
相关SQL语句如下:

create table teaching(
cno char(4),
tno char(4),
gno char(7) ,
term tinyint,
classroom char(7),
PRIMARY KEY(cno,tno,gno),
foreign key(cno) references course(cno),
foreign key(tno) references teacher(tno),
foreign key(gno) references class(gno)
);

第6关:修改字段约束

实验要求:

TESTDB

数据库中修改教师表(

teacher

)姓名列(

tname

)的空/非空约束,改为非空,修改教师表性别列(

sex

)的默认值约束,默认值改为“男”。

相关SQL语句如下:

alter table teacher 
alter 
column tname set not null;

alter table teacher 
alter 
column sex set default '男';

第7关:删除约束

实验要求:

TESTDB

数据库中删除教师表(

teacher

)姓名列的唯一约束(约束名:TEACHER_TNAME_KEY)。

相关SQL语句如下:

alter table teacher drop constraint teacher_tname_key;

第8关:添加字段

实验要求:

TESTDB

数据库的教师表(

teacher

)中添加教师的电子邮箱(email,VARCHAR(6))和办公地点(address,VARCHAR(20))两列。

相关SQL语句如下:

alter table teacher add email VARCHAR(6);

alter table teacher add address VARCHAR(20);

第9关:修改字段

实验要求:

TESTDB

数据库中将教师表(

teacher

)中办公地点(

address

)的列名改为

office

,电子邮箱(

email

)的数据类型改为

VARCHAR(20)

相关SQL语句如下:

alter table teacher rename column address to office;

alter table teacher alter column email type VARCHAR(20);

第10关:删除字段

实验要求:

TESTDB

数据库中删除教师表(

teacher

)中的办公地点(

office

)和电子邮箱(

email

)两个列。

相关SQL语句如下:

alter table teacher drop column office;

alter table teacher drop column email;

第11关:添加单条记录

实验要求:

TESTDB

数据库中给班级表(

class

)添加一条记录,班级号为

'0051807'

,班级名为

'电气18级7班'

,年级为

'18 级'

,学院为

'电气'

,班级人数为

'38'

相关SQL语句如下:

INSERT INTO class VALUES ('0051807','电气18级7班','18级','电气','38');

第12关:添加部分数据

实验要求:

TESTDB

数据库中给教师表(

teacher

)中,添加一条教师记录,其中教师工号为

'0250'

,姓名为

'任远'

,性别为

'男'

相关SQL语句如下:

INSERT INTO teacher(tno,tname,sex) VALUES ('0250','任远','男');

第13关:添加多条记录

实验要求:

TESTDB

数据库中分别给教师表(

teacher

),班级表(

class

),课程表(

course

),教师授课表(

teaching

)中添加多条记录。

teacher 表所需数据如下:
工号姓名性别职称出生日期0014李欣男教授1969-07-250078张云女副教授1975-11-250118王立男高级工程师1985-04-280193赵玲女讲师1992-09-260213杨梅女副教授1986-06-070030覃刚男副教授1980-02-15
course 表所需数据如下:
课程号课程名学分学时考核方式G001线性代数348考试R003数据结构348考试R009离散数学348考试S023嵌入式系统与编程实验132考察G012大学物理464考试
class 表所需数据如下:
班级号班级名年级学院班级人数0211801软件18级1班18级软件370211903软件19级3班19级软件350211705软件17级5班17级软件380131901机械19级1班19级机械37
teaching 表所需数据如下:
课程号工号班级号开学日期教室G001007802119031A101G001007801319011A101R003011802118012S001R009021302119032S002S023019302118011S001G012003001319012B003
相关SQL语句如下:

INSERT INTO teacher VALUES
('0014','李欣','男','教授','1969-07-25'),
('0078','张云','女','副教授','1975-11-25'),
('0118','王立','男','高级工程师','1985-04-28'),        
('0193','赵玲','女','讲师','1992-09-26'), 
('0213','杨梅','女','副教授','1986-06-07'),
('0030','覃刚','男','副教授','1980-02-15');

INSERT INTO course VALUES
('G001','线性代数','3','48','考试'),
('R003','数据结构','3','48','考试'),
('R009','离散数学','3','48','考试'),        
('S023','嵌入式系统与编程实验','1','32','考察'), 
('G012','大学物理','4','64','考试');

INSERT INTO class VALUES
('0211801','软件18级1班','18级','软件','37'),
('0211903','软件19级3班','19级','软件','35'),
('0211705','软件17级5班','17级','软件','38'),
('0131901','机械19级1班','19级','机械','37');

INSERT INTO teaching VALUES
('G001','0078', '0211903','1','A101'),
('G001','0078', '0131901','1','A101'),
('R003','0118', '0211801','2','S001'),
('R009','0213', '0211903','2','S002'),
('S023','0193', '0211801','1','S001'),
('G012','0030', '0131901','2','B003');

第14关:修改数据

实验要求:

1.大学物理课程的考核方式发生了改变,从原先“考试”改为“考察”,请修改课程表(

course

)中对应的数据。

2.新学年开始,有

3

名同学转专业进入

软件19级3班

,更新班级表(

class

)中班级人数。

相关SQL语句如下:

UPDATE course 
SET examination = '考察' 
WHERE cname = '大学物理';

UPDATE class 
SET gnum = '38'
WHERE gname = '软件19级3班';

第15关:删除数据

实验要求:

新学年开始,17级班级已毕业,从班级表(

class

)中删除17级班级的信息。

相关SQL语句如下:

DELETE FROM class where grade = '17级';
标签: 数据库 sql

本文转载自: https://blog.csdn.net/qq_63647625/article/details/127197627
版权归原作者 枫月入梦 所有, 如有侵权,请联系我们删除。

“数据库实验报告一”的评论:

还没有评论