头歌数据库原理与技术 实验报告一

第1关 创建数据库

---------- BEGIN ---------- 
CREATE DATABASE TESTDB;
CREATE TABLE teacher(
  tno CHAR(4),
  tname VARCHAR(12),
  sex CHAR(3),
  title VARCHAR(15),
  birthday DATE
);
---------- END ---------- 

第2关 创建简单的数据表

---------- BEGIN ---------- 
CREATE DATABASE TESTDB;
CREATE TABLE teacher(
  tno CHAR(4),
  tname VARCHAR(12),
  sex CHAR(3),
  title VARCHAR(15),
  birthday DATE
);
---------- END ---------- 

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

---------- BEGIN ---------- 
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)
);
---------- END ---------- 

第4关 给教师表添加约束

---------- BEGIN ---------- 
ALTER TABLE teacher ADD PRIMARY KEY(tno);
ALTER TABLE teacher ADD UNIQUE(tname);
---------- END ---------- 

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

---------- BEGIN ---------- 
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)
);
---------- END ---------- 

第6关 修改字段约束

---------- BEGIN ---------- 
alter table teacher 
alter 
column tname set not null;
alter table teacher 
alter 
column sex set default '鐢 ';
---------- END ---------- 

第7关 删除约束

---------- BEGIN ---------- 
alter table teacher drop constraint teacher_tname_key;
---------- END ---------- 

第8关 添加字段

---------- BEGIN ---------- 
alter table teacher add email VARCHAR(6);
alter table teacher add address VARCHAR(20);
---------- END ---------- 

第9关 修改字段

---------- BEGIN ---------- 
alter table teacher rename column address to office;
alter table teacher alter column email type VARCHAR(20);
---------- END ---------- 

第10关 删除字段

---------- BEGIN ---------- 
alter table teacher drop column office;
 
alter table teacher drop column email;
---------- END ---------- 

第11关 添加单条记录

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

第12关 添加部分数据

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

第13关 添加多条记录

---------- BEGIN ---------- 
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');
---------- END ---------- 

第14关 修改数据

---------- BEGIN ---------- 
UPDATE course 
SET examination = '考察' 
WHERE cname = '大学物理';
 
UPDATE class 
SET gnum = '38'
WHERE gname = '软件19级3班';
---------- END ---------- 

第15关 删除数据

---------- BEGIN ---------- 
DELETE FROM class where grade = '17级';
---------- END ---------- 

个人总结

通过这次数据库设计关卡的训练,让我进一步掌握和熟练了SQL语言的各种操作语句,包括创建表、设置约束、插入数据、更新数据、删除数据等语句的使用,同时加深了我对关系数据库的理解,也让我对数据库的概念有了更直观的感受,比如主键、外键、不同类型字段的设定等,这些理论知识通过实践都变得更加具体。这次的数据库实验报告让我受益匪浅,让我懂得了自主学习,和向他人学习的好处,加深了我对于人大金仓数据库的应用,能够更加熟练的掌握数据库的基本语法和使用方法。

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值