头歌实训之DDL语言的使用

 各位看官好,我是maomi_9526

 种一棵树最好是十年前,其次是现在!

 今天来学习C语言的相关知识。

 如果觉得这篇文章有帮助,欢迎您一键三连,分享给更多人哦

目录

第1关:创建数据库

第2关: 创建数据表

第3关:添加字段

第4关:删除字段

第5关:修改字段

第6关:添加唯一性约束


第1关:创建数据库

任务描述
本关任务:创建一个名为 teachingdb 的教学数据库。

相关知识
create database <数据库名>

编程要求
在右侧窗口编写 SQL,并创建一个名为 teachingdb 的教学数据库。

连接数据库的用户名为:root,密码为:123123。

请注意:数据库名区分大小写。

teachingdb 的教学数据库共有四张表,所有实验项目都在此基础上完成,参考建表语句如下:

-- 创建学生表的SQL;
CREATE TABLE student(
sno CHAR(5) PRIMARY KEY,
sname VARCHAR(20) NOT NULL,
sdept VARCHAR(20) NOT NULL,
sclass CHAR(2) NOT NULL,
ssex CHAR(1) ,
birthday DATE,
totalcredit DECIMAL(4,1)
);

-- 创建课程表的SQL;
CREATE TABLE course(
cno CHAR(3) PRIMARY KEY,
cname VARCHAR(50),
ctime DECIMAL(3,0),
credit DECIMAL(3,1)
);

-- 创建教师表的SQL;
CREATE TABLE teach(
tno CHAR(6) PRIMARY KEY,
tname VARCHAR(20),
tsex CHAR(1),
tdept VARCHAR(20)
);

-- 创建成绩表的SQL;
CREATE TABLE score (
sno CHAR(5),
cno CHAR(3),
tno  CHAR(6),
grade DECIMAL(5,1),
PRIMARY KEY(sno,cno,tno),
CONSTRAINT fk_sno FOREIGN KEY(sno)  REFERENCES student(sno),
CONSTRAINT fk_cno FOREIGN KEY(cno)  REFERENCES course(cno),
CONSTRAINT fk_tno FOREIGN KEY(tno)  REFERENCES teach(tno)
);


开始你的任务吧,祝你成功! 

 /****请在此编写代码,操作完毕之后点击评测******/
 
 /**********Begin**********/
  
  create database teachingdb;
 /**********End**********/

第2关: 创建数据表

任务描述
本关任务:在 teachingdb 中创建学生表的 student;

相关知识
创建表的规则:

CREATE TABLE 表名
(
    字段名 数据类型 约束,
    字段名 数据类型 约束,
    .....
)

添加主键约束

有两种方式可以添加主键约束:

  • 1.在定义列的同时指定主键;
  • 2.在定义完字段之后再指定主键。

编程要求
在右侧窗口中操作,teachingdb;表结构分别如下:

--学生情况表 student

字段名称  

 数据类型  

 约束

sno  

 char(5)  

 PRIMARY KEY

sname  

 varchar(20)  

 NOT NULL

sdept  

 varchar(20)  

 NOT NULL

sclass  

 char(2)  

 NOT NULL

ssex  

 char(1)  

birthday  

 DATE  

totalcredit  

 decimal(4,1)  

测试说明
编写代码后,点击测评即可。


开始你的任务吧,祝你成功!

use teachingdb;
 /****请在此编写代码,操作完毕之后点击评测******/
 
 /**********Begin**********/
  create table student(sno char(5) PRIMARY KEY,sname varchar(20) NOT NULL,sdept varchar(20) NOT NULL,sclass char(2) NOT NULL,ssex char(1),birthday date,totalcredit decimal(4,1));
  
 /**********End**********/

第3关:添加字段

任务描述
本关任务: 在 student 表中增加籍贯字段:nativeplace varchar(20)。

相关知识
为了完成本关任务,你需要掌握:
1.如何在指定位置添加新的字段,
2.如何删除指定的字段。

添加字段
因为甲方的业务需求是不停变化的,所以在数据库操作中,添加字段可是常有的事。一个完整的字段包括:字段名数据类型完整性约束

语法规则为: ALTER TABLE 表名 ADD 新字段名 数据类型 [约束条件] [FIRST|AFTER] 已存在字段名; 。

以下是在 MySQL 中常用的约束。

NOT NULL 约束:确保某列不能有 NULL 值。

DEFAULT 约束:当某列没有指定值时,为该列提供默认值。

UNIQUE 约束:确保某列中的所有值是不同的。

PRIMARY Key 约束:唯一标识数据库表中的各行/记录。

CHECK 约束:CHECK 约束确保某列中的所有值满足一定条件。

在表的最后一列添加字段
只要不做 [FIRST|AFTER] 的位置说明,在添加字段时 MySQL 会默认把新字段加入到表的最后一列。

删除字段
有添加的需求就会有删除的需求。删除一个字段就是将数据表中的某个字段从表中移除。

编程要求
根据提示,在右侧编辑器补充代码:

在 student 表中增加籍贯字段:nativeplace varchar(20)。

测试说明
编写代码后,点击测评即可。


开始你的任务吧,祝你成功!

use teachingdb;
 /****请在此编写代码,操作完毕之后点击评测******/
 
 /**********Begin**********/
  
 alter table student add nativeplace varchar(20); 
 /**********End**********/

第4关:删除字段

任务描述
本关任务:删除 student 表中籍贯字段。

相关知识
见上一关

编程要求
根据提示,在右侧编辑器补充代码,删除 student 表中籍贯字段。

测试说明


开始你的任务吧,祝你成功!

use teachingdb;
 /****请在此编写代码,操作完毕之后点击评测******/
 
 /**********Begin**********/
  
alter table student drop nativeplace;
 /**********End**********/

第5关:修改字段

任务描述
本关任务:将 student 表中的 ssex 字段定义改为 varchar(3) 。

相关知识
为了完成本关任务,你需要掌握:1.如何修改字段名;2.如何修改字段的数据类型。

修改字段名
有时,在我们建好一张表后会突然发现,哎呀!字段名貌似写错了!怎么办?要删了表再重新建一个新表吗?还是要删了这个字段再新建一个新的字段?
都不用,MySQL 中修改字段名称也有专门的语句,接近于自然语言,很好记忆。

语法规则为: ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型; 。

修改字段数据类型
随着存储的数据越来越多,数据库新人可能会发现,哎呀,当初预留的数据类型已经不能满足要求了,或者当初预留的字符太少了,怎么办?怎么修改?规则来了。

语法规则为: ALTER TABLE 表名 MODIFY 字段名 数据类型; 。

编程要求
根据提示,在右侧编辑器补充代码:

将 student 表中的 ssex 字段定义改为 varchar(3) 。

测试说明
编写代码后,点击测评即可。


开始你的任务吧,祝你成功!

use teachingdb;
 /****请在此编写代码,操作完毕之后点击评测******/
 
 /**********Begin**********/
  alter table student modify ssex varchar(3);
  
 /**********End**********/

第6关:添加唯一性约束

任务描述
本关任务:在 course 表中 cname 上添加唯一性约束 uk_cno。

相关知识
为了完成本关任务,你需要掌握:
1.什么是唯一性约束;
2.如何在修改表时添加唯一性约束。

唯一性约束定义

  •  唯一约束(Unique Key)是指所有记录中字段的值不能重复出现。
  • 唯一约束与主键约束相似的是它们都可以确保列的唯一性。
  • 唯一约束与主键的区别:
  • 唯一约束在一个表中可有多个,并且设置唯一约束的列允许有空值,但是只能有一个空值。
  • 而主键约束在一个表中只能有一个,且不允许有空值。

添加唯一性约束

语法规则为:ALTER TABLE <数据表名> ADD CONSTRAINT <唯一约束名> UNIQUE(<列名>)

编程要求
根据提示,在右侧编辑器补充代码,在 course 表中 cname 上添加唯一性约束 uk_cno。

测试说明
编写代码后,点击测评即可。


开始你的任务吧,祝你成功!

use teachingdb;
 /****请在此编写代码,操作完毕之后点击评测******/
 
 /**********Begin**********/
alter table course
add constraint uk_cno unique (cname);

 /**********End**********/

你可能感兴趣的:(数据库课后习题,oracle,数据库,sql)