基本表的定义、删除和修改
定义基本表
create table <表名>
(
[<列名><数据类型>[列级完整性约束条件]]
[,<列名><数据类型>[列级完整性约束条件]]
[,[表级完整性约束条件]]
);
完整性约束
not null:限制列取值非空
default:指定列的默认值
unique:限制列取值不重复
check:限制列的取值范围
primary key:指定本码为主码
foreign key:定义本列为引用其他表的外码
建立学生基本信息表
任务描述
本关任务:按照以下表结构建立数据表。
学生表(student) ( 学号(sno) ,char,长度 10,主码,
姓名(sname),varchar,长度 50,NOT NULL, 性别(ssex),char,长度 2, 出生日期(sbirth),date, 所在系(sdept),varchar,长度20 )
相关知识
为了完成本关任务,你需要掌握: 1.如何使用create命令建立数据表,并正确的设置字段类型和长度; 2.如何在建立数据表时指定主键。
注意事项
MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:
- 数据库名与表名是严格区分大小写的;
- 表的别名是严格区分大小写的;
- 列名与列的别名在所有的情况下均是忽略大小写的;
- 变量名也是严格区分大小写的;
use DB1;
########## 按照要求建立数据表:student ##########
########## 注意字段名、数据类型、主键需要与实验要求一致 ##########
#请在此处添加实现代码
########## Begin ##########
CREATE table student
(
sno char(10) PRIMARY KEY,
-- 列级完整性约束条件,主码约束
sname varchar(50) NOT NULL,
ssex char(2),
sbirth date,
sdept varchar(20)
);
########## End ##########
建立课程基本信息表
任务描述
本关任务:按照以下表结构建立数据表。
课程表(course) ( 课程号(cno) ,char,长度 4,主码,
课程名(cname) ,varchar,长度 50,NOT NULL, 先行课(cpno) ,char,长度 4,外码, 学分(credit) ,decimal,长度3,小数位1, 学期(semester) ,decimal,长度1,小数位0 )
相关知识
为了完成本关任务,你需要掌握: 1.如何使用create命令建立数据表,并正确的设置字段类型和长度; 2.如何在建立数据表时指定主键。
注意事项
MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:
- 数据库名与表名是严格区分大小写的;
- 表的别名是严格区分大小写的;
- 列名与列的别名在所有的情况下均是忽略大小写的;
- 变量名也是严格区分大小写的;
Use DB1;
########## 按照要求建立数据表:course ##########
########## 注意字段名、数据类型、主键、外键需要与实验要求一致 ##########
#请在此处添加实现代码
########## Begin ##########
create table course
(
cno char(4) primary key,
cname varchar(50) not null,
cpno char(4),
credit decimal(3,1),
semester decimal(1,0),
foreign key (cpno) references course(cno)
);
########## End ##########
建立选课信息表
任务描述
本关任务:按照以下表结构建立数据表。
修课表(sc)( 学号(sno) ,char,长度 10,外码
课程号(cno) ,char,长度 4,外码 成绩(grade) ,decimal,长度3,小数位0, 主码:学号、课程号 )
相关知识
为了完成本关任务,你需要掌握: 1.如何使用create命令建立数据表,并正确的设置字段类型和长度; 2.如何在建立数据表时指定主键。
注意事项
MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:
- 数据库名与表名是严格区分大小写的;
- 表的别名是严格区分大小写的;
- 列名与列的别名在所有的情况下均是忽略大小写的;
- 变量名也是严格区分大小写的;
Use DB1;
########## 按照要求建立数据表:sc ##########
########## 注意字段名、数据类型、主键、外键需要与实验要求一致 ##########
#请在此处添加实现代码
########## Begin ##########
create table sc
(
sno char(10),
cno char(4),
grade decimal(3,0),
primary key(sno,cno),
foreign key(sno) references student(sno),
foreign key(cno) references course(cno)
);
########## End ##########
建立贷款数据库中的数据表
任务描述
本关任务:按照以下表结构建立数据表。
银行表(bankt)( 银行代码(bno),char,长度12,主码 银行名称(bname),varchar,长度100 电话(tel),varchar,长度20 贷款总额(bamount),int )
法人表(let)( 法人代码(eno),char,长度7,主码 法人名称(ename),varchar,长度100 经济性质(enature),varchar,长度20 注册资金(ecapital),int 法定代表人(erep),varchar,长度20 贷款总额(eamount),int )
贷款表(loant)( 银行代码(bno),char,长度12,外码 法人代码(eno),char,长度7,外码 贷款日期(lsdate),date 贷款金额(lamount),int,NOT NULL 贷款期限(lterm),int,NOT NULL 还款日期(ledate),date 主码:银行代码、法人代码、贷款日期 )
注意:
贷款表中,主码中字段的先后顺序请不要更改,外码的顺序也不要更改,否则都可能导致检查不通过。
相关知识
为了完成本关任务,你需要掌握: 1.如何使用create命令建立数据表,并正确的设置字段类型和长度; 2.如何在建立数据表时指定主键。
注意事项
MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:
- 数据库名与表名是严格区分大小写的;
- 表的别名是严格区分大小写的;
- 列名与列的别名在所有的情况下均是忽略大小写的;
- 变量名也是严格区分大小写的;
Use BANKDB;
########## 按照要求建立数据表:bankt、let、loant ##########
########## 注意字段名、数据类型、主键、外键需要与实验要求一致 ##########
#请在此处添加实现代码
########## Begin ##########
create table bankt
(
bno char(12) primary key,
bname varchar(100),
tel varchar(20),
bamount int
);
create table let
(
eno char(7) primary key,
ename varchar(100),
enature varchar(20),
ecapital int,
erep varchar(20),
eamount int
);
create table loant
(
bno char(12),
eno char(7),
lsdate date,
lamount int not null,
lterm int not null,
ledate date,
primary key(bno,eno,lsdate),
foreign key(bno) references bankt(bno),
foreign key(eno) references let(eno)
);
########## End ##########
修改数据表
alter table <表名>
[alter column <列名> <新数据类型>]
...........
删除基本表
drop table <表名>[restrict|cascade];
//restrict:表示限制
//cascade: 表示删除该表没有限制