数据库—建立数据表

基本表的定义、删除和修改

定义基本表

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: 表示删除该表没有限制

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值