[数据库] 合肥工业大学—SQL Server数据库实验三:SQL语句创建和删除基本表

182 0
Honkers 2025-5-11 08:48:51 来自手机 | 显示全部楼层 |阅读模式


1. 编写6个基本表

设有简单教学管理的6个关系模式如下:

系(系编号,系名称、系主任、联系电话、地址)

专业(专业编号、专业名称、所属系)

教师(教师编号、姓名、所在系、电话、电子信箱)

学生(学号、姓名、性别、出生日期、所学专业)

课程(课程号、课程名、学分、先修课)

学生选课(学号、课程号、成绩)

要求:在数据库EDUC中,创建对应的6个基本表,基本表的名称和属性名称由同学自行确定。

基本表的数据结构及完整性要求:

1. 系 (系编号,系名称、系主任、联系电话、地址)

  1. 系编号:字符型(定长),长度为4,主码
  2. 系名称:字符型(变长),长度20,非空
  3. 系主任:字符型(定长),长度为10
  4. 联系电话:字符型(变长),长度20
  5. 地址:字符型(变长),长度40
复制代码

2. 专业 (专业编号、专业名称、所属系)

  1. 专业编号:字符型(定长),长度为2,主码
  2. 专业名称:字符型(变长),长度40,非空
  3. 所属系:字符型(定长),长度为4,外码
复制代码

3. 教师 (教师编号、姓名、所在系、电话、电子信箱)

  1. 教师编号:字符型(定长),长度为10,主码
  2. 姓名:字符型(定长),长度10,非空
  3. 所在系:字符型(定长),长度为4,外码
  4. 电话:字符型(变长),长度20
  5. 电子信箱:字符型(变长),长度30
复制代码

4. 学生 (学号、姓名、性别、出生日期、所学专业)

  1. 学号:字符型(定长),长度为10,主码
  2. 姓名:字符型(变长),长度20,非空,唯一
  3. 性别:字符型(定长),长度为2,性别只能为‘男‘ 或‘女’
  4. 出生日期:日期型(datetime)
  5. 所学专业:字符型(定长),长度为2,外码
复制代码

5. 课程 (课程号、课程名、学分、先修课)

  1. 课程号:字符型(定长),长度为4,主码
  2. 课程名:字符型(变长),长度30
  3. 学分:数值型(长度为2,含1位小数)
  4. 先修课:字符型(定长),长度为4,外码
复制代码

6. 学生选课 (学号、课程号、成绩)

  1. 学号:字符型(定长),长度为10,外码
  2. 课程号:字符型(定长),长度为4,外码
  3. 成绩:数值型(长度为4,含1位小数),成绩必须在:0~100分之间。
  4. 本表的主码为:(学号,课程号)。
复制代码
  1. -- 创建系表
  2. create table department(
  3. dpt_id char(4) primary key,
  4. dpt_name varchar(20) not null,
  5. dpt_head char(10),
  6. dpt_phone varchar(20),
  7. dpt_address varchar(40)
  8. )
  9. -- 创建专业表
  10. create table major(
  11. mj_id char(2) primary key,
  12. mj_name varchar(40) not null,
  13. mj_dpt char(4) foreign key references department(dpt_id)
  14. )
  15. -- 创建教师表
  16. create table teacher(
  17. tc_id char(10) primary key,
  18. tc_name char(10) not null,
  19. tc_dpt char(4) foreign key references department(dpt_id),
  20. tc_phone varchar(20),
  21. tc_email varchar(30)
  22. )
  23. -- 创建学生表
  24. create table student(
  25. st_id char(10) primary key,
  26. st_name varchar(20) not null unique,
  27. st_sex char(2) check(st_sex in('男','女')),
  28. st_born datetime,
  29. tc_mj char(2) foreign key references major(mj_id)
  30. )
  31. -- 创建课程表
  32. create table course(
  33. cs_id char(4) primary key,
  34. cs_name varchar(30),
  35. cs_credit numeric(2,1),
  36. cs_prerequisite char(4) foreign key references course(cs_id)
  37. )
  38. -- 创建学生选课表
  39. create table select_course(
  40. sc_id char(10) foreign key references student(st_id),
  41. sc_num char(4) foreign key references course(cs_id),
  42. sc_grade numeric(4,1) check (sc_grade>0 and sc_grade<100)
  43. primary key(sc_id,sc_num)
  44. )
复制代码




2. 修改基本表结构,完整性约束条件

用 Alter table 语句修改基本表的结构,以及完整性约束条件

1. 为学生表增加属性:班级,字符型(变长),长度20

  1. -- 为学生表增加属性:班级,字符型(变长),长度20
  2. alter table student add st_class varchar(20)
复制代码

2. 为课程表添加一条完整性约束条件:课程名不允许为空值

  1. -- 为课程表添加一条完整性约束条件:课程名不允许为空值
  2. alter table course alter column cs_name varchar(30) not null
复制代码

3. 删除学生表中的班级属性

  1. -- 删除学生表中的班级属性
  2. alter table student drop column st_class
复制代码

4. 删除学生表中对学生姓名的唯一值限制

  1. -- 删除学生表中对学生姓名的唯一值限制
  2. alter table student drop constraint 约束名 --约束名通过图形化界面查看
复制代码


3. 用Drop table 语句删除基本表

  1. -- 创建一个新的基本表
  2. create table test(
  3. id char(10) primary key,
  4. name varchar(10) not null
  5. )
  6. -- 删除该表。
  7. drop table test
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行