数据库一:创建表

1.图书表 书店表 图书销售表

create table 图书表(
	书号 char(6) primary key,
	书名 varchar(30) not null,
	第一作者 char(10) not null,
	出版日期 smalldatetime,
	价格 decimal(4,1)
)

create table 书店表(
	书店编号 char(6) primary key,
	店名 varchar(30) not null,
	电话 char(8) check(电话 like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
	地址 varchar(40),
	邮政编码 char(6)
)

create table 图书销售表(
	书号 char(6) not null,
	书店编号 char(6) not null,
	销售日期 smalldatetime not null,
	销售数量 smallint check(销售数量>=1),
	primary key(书号,书店编号,销售日期),
	foreign key (书号) references 图书表 (书号),
	foreign key (书店编号) references 书店表 (书店编号)
)

#为图书表添加"印刷数量"列 整型并添加约束
alter table 图书表 add 印刷数量 int check(印刷数量>=1000)

#删除书店表的"邮政编码"列
alter table 书店表 drop column 邮政编码

#将图书销售表的"销售数量"列修改为整型 但由于出错 错误原因见下图
alter table 图书销售表 alter column 销售数量 int

alter table 图书销售表 drop constraint CK__图书销售表__销售数量__4F7CD00D

alter table 图书销售表 add constraint CK__图书销售表__销售数量 check(销售数量>=1)

下图是修改数据类型的报错原因:因为存在约束,所以初步解决办法是先把约束删掉,然后执行修改数据类型的命令,再将约束加上。
在这里插入图片描述

2.学生表 课程表 学生修课表

create table Student(
  Sno char(7) primary key,
  Sname char(10) not null,
  Ssex char(2) check(Ssex='男' or Ssex='女'),
  Sage smallint check(Sage>=15 or Sage<=25),
  Sdept varchar(100) default '生命科学学院'
)

create table Course(
  Cno char(6) not null,
  Cname char(20) not null,
  Credit tinyint,
  Semester tinyint,
  primary key(Cno)
)

create table SC(
  Sno char(7) not null,
  Cno char(6) not null,
  Grade smallint,
  primary key(Sno,Cno),
  foreign key(Sno) references Student(Sno),
  foreign key(Cno) references Course(Cno)
)

alter table Student add Subject char(10) null

alter table Student alter column Subject char(20)

3.雇员表 工作表

create table 雇员表(
	雇员编号 char(7) not null,
	雇员名 char(10),
	工作编号 char(8),
	工资 int,
	电话号码 char(8) not null
)

create table 工作表(
	工作编号 char(8) not null,
	最低工资 int,
	最高工资 int
)

alter table 雇员表 add constraint PK_EMP primary key(雇员编号)
alter table 工作表 add constraint PK_JOB primary key(工作编号)

alter table 雇员表 add constraint UK_SID unique(电话号码)

alter table 雇员表 add constraint FK_job_id 
  foreign key(工作编号) references 工作表(工作编号)

alter table 雇员表 add constraint DF_salary default 1600 for 工资

alter table 雇员表 add constraint CHK_salary check(工资>=1000)
alter table 工作表 add constraint CHK_Job_salary check(最低工资>最高工资)



create table 工作表(
	工作编号 char(8) primary key,
	最低工资 int,
	最高工资 int,
	check(最低工资>=最高工资)
)

create table 雇员表(
	雇员编号 char(7) primary key,
	雇员名 char(10),
	工作编号 char(8) references 工作表(工作编号),
	工资 int default 1600 check(工资>1000),
	电话号码 char(8) not null unique
)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值