实验六 约束与索引

  • 数据结构说明
    • 第1关:添加约束一
    • 第2关:添加约束二
    • 第3关:添加约束三
    • 第4关:创建索引

数据结构说明

表结构如下:

学生表:Student

字段名 类型 主码 备注
Sno char(10) Y 学号
Sname varchar(20) 姓名
Ssex char(2) 性别
Sage smallint 年龄
Sdept varchar(20) 所在系

课程表:Course

字段名 类型 主码 备注
Cno char(10) Y 课程号
Cname varchar(20) 课程名
Cpno char(10) 先行课号
Ccredit smallint 课程学分

学生选课表:SC

字段名 类型 主码 备注
Sno char(10) Y 学号
Cno char(10) Y 课程号
Grade smallint 成绩

第1关:添加约束一

任务描述

本关任务:为表中的列添加约束

相关知识

使用SQL语句中的alter table语句。
SQL语句中关键字大小写不区分。
性别用’m’表示男,’f’表示女

实验完成要求

根据代码区的提示,将SQL语句书写在对应的代码区中。
注:请务必按要求为约束命名
1、为Student表的Sage列添加约束,使其取值小于30岁(约束名:stu_chk_sage)
2、为student表的Ssex列添加约束,使其只能取值‘m’或‘f’(约束名:stu_chk_ssex)
3、为Student表的ssex列添加缺省约束,缺省值为‘m’(约束名:stu_def_ssex)

测试说明
书写查询语句后,直接测试。

sql语句
sql1:

USE CS_yx_DB
GO
SET NOCOUNT ON-- ********** Begin ********** --
-- ********** 此处写“1、为Student表的Sage列添加约束,使其取值小于30岁(约束名:stu_chk_sage)”的SQL语句 ********** --
alter table Student add constraint stu_chk_sage check(sage<30);
-- ********** End ********** --GO

sql2:

USE CS_yx_DB
GO
SET NOCOUNT ON-- ********** Begin ********** --
-- ********** 此处写“2、为student表的Ssex列添加约束,使其只能取值‘m’或‘f’(约束名:stu_chk_ssex)”的SQL语句 ********** --
alter table student add constraint stu_chk_ssex check(ssex='m'or ssex='f');-- ********** End ********** --GO

sql3:

USE CS_yx_DB
GO
SET NOCOUNT ON-- ********** Begin ********** --
-- ********** 此处写“3、为Student表的ssex列添加缺省约束,缺省值为‘m’(约束名:stu_def_ssex)”的SQL语句 ********** --
alter table student add  constraint stu_def_ssex default 'm' for ssex;-- ********** End ********** --GO

第2关:添加约束二

任务描述

本关任务:为表中的列添加约束

相关知识

使用SQL语句中的alter table语句。
SQL语句中关键字大小写不区分。
性别用’m’表示男,’f’表示女

实验完成要求

根据代码区的提示,将SQL语句书写在对应的代码区中。
注:请务必按要求为约束命名
1、为SC表的sno列添加外码(约束名:stu_ref_sno)
2、为SC表的cno列添加外码(约束名:stu_ref_cno)
3、为SC表的grade列添加检查约束(1到100分)(约束名:stu_chk_grade)

测试说明
书写查询语句后,直接测试。

sql语句
sql1:


USE CS_yx_DB
GO
SET NOCOUNT ON-- ********** Begin ********** --
-- ********** 此处写“1、为SC表的sno列添加外码(约束名:stu_ref_sno)”的SQL语句 ********** --
alter table Sc
add constraint stu_ref_sno  foreign key(sno) references student(sno);-- ********** End ********** --GO

sql2:


USE CS_yx_DB
GO
SET NOCOUNT ON-- ********** Begin ********** --
-- ********** 此处写“2、为SC表的cno列添加外码(约束名:stu_ref_cno)”的SQL语句 ********** --
alter table Sc
add constraint stu_ref_cno  foreign key(cno) references Course(cno);-- ********** End ********** --GO

sql3:

USE CS_yx_DB
GO
SET NOCOUNT ON-- ********** Begin ********** --
-- ********** 此处写“3、为SC表的grade列添加检查约束(1到100分)(约束名:stu_chk_grade)”的SQL语句 ********** --
alter table sc
add constraint stu_chk_grade check(grade between 1 and 100);-- ********** End ********** --GO

第3关:添加约束三

任务描述

本关任务:为表中的列添加约束

相关知识

使用SQL语句中的alter table语句。
SQL语句中关键字大小写不区分。
性别用’m’表示男,’f’表示女

实验完成要求

根据代码区的提示,将SQL语句书写在对应的代码区中。
注:请务必按要求为约束命名
1、为Course表的cname列添加唯一约束(约束名:Course_un_cname)
2、为Course表的ccredit列添加检查约束,使其值为(1到10之间)(约束名:Course_chk_ccredit)
3、为Course表的cpno列添加外码约束(约束名:Course_ref_cpno)

测试说明
书写查询语句后,直接测试。

sql语句
sql1:

USE CS_yx_DB
GO
SET NOCOUNT ON-- ********** Begin ********** --
-- ********** 此处写“1、为Course表的cname列添加唯一约束(约束名:Course_un_cname)”的SQL语句 ********** --
alter table Course
add constraint Course_un_cname unique(cname);-- ********** End ********** --GO

sql2:

USE CS_yx_DB
GO
SET NOCOUNT ON-- ********** Begin ********** --
-- ********** 此处写“2、为Course表的ccredit列添加检查约束,使其值为(1到10之间)(约束名:Course_chk_ccredit)”的SQL语句 ********** --
alter table Course
add constraint Course_chk_ccredit check(ccredit between 1 and 10);-- ********** End ********** --GO

sql3:

USE CS_yx_DB
GO
SET NOCOUNT ON-- ********** Begin ********** --
-- ********** 此处写“3、为Course表的cpno列添加外码约束(约束名:Course_ref_cpno)”的SQL语句 ********** --
alter table Course
add constraint Course_ref_cpno foreign key(cpno) references Course(cno);-- ********** End ********** --GO

第4关:创建索引

任务描述

本关任务:创建索引

相关知识

使用SQL语句中的 create index 语句。
SQL语句中关键字大小写不区分。
性别用’m’表示男,’f’表示女

实验完成要求

根据代码区的提示,将SQL语句书写在对应的代码区中。
注:请务必按要求为索引命名
1、为Student表的sname列创建唯一索引(索引名:idx_student_sname)
2、为sc表的grade列创建降序索引(索引名:idx_sc_grade)
3、为course表的ccredit列创建升序索引(索引名:idx_course_cname)

测试说明
书写查询语句后,直接测试。

sql语句

sql1:

USE CS_yx_DB
GO
SET NOCOUNT ON-- ********** Begin ********** --
-- ********** 此处写“1、为Student表的sname列创建唯一索引(索引名:idx_student_sname)”的SQL语句 ********** --
create unique index idx_student_sname on Student(sname);
-- ********** End ********** --GO

sql2:

USE CS_yx_DB
GO
SET NOCOUNT ON-- ********** Begin ********** --
-- ********** 此处写“2、为sc表的grade列创建降序索引(索引名:idx_sc_grade)”的SQL语句 ********** --
create index idx_sc_grade on sc(grade desc);-- ********** End ********** --GO

sql3:

USE CS_yx_DB
GO
SET NOCOUNT ON-- ********** Begin ********** --
-- ********** 此处写“3、为course表的ccredit列创建升序索引(索引名:idx_course_cname)”的SQL语句 ********** --
create index idx_course_cname on course(ccredit Asc);-- ********** End ********** --GO

注:答案不唯一,仅供参考。

educoder 数据库原理与应用 实验六 约束与索引相关推荐

  1. 数据库原理及应用实验报告-实验10-触发器

    数据库原理及应用实验报告 实验题目  实验10触发器 10.1 实验目的 通过实验使学生加深对数据完整性的理解,学会理解.创建和使用触发器. 10.2 实验内容  (用实验9的Teacher表) (1 ...

  2. 数据库原理与应用实验指导书 实验四:数据查询

    数据库原理与应用 实验指导书 实验四:数据查询 一.实验目的 掌握SELECT语句的基本语法: 熟练掌握模糊查询的用法: 熟练掌握连接查询的用法: 熟练掌握子查询的用法. 二.实验内容 表数据的查询 ...

  3. 数据库原理与应用实验指导书 实验一:熟悉SQL Server 2012数据库管理系统

    数据库原理与应用实验指导书 实验一:熟悉SQL Server 2012数据库管理系统 实验类型: 综合性 实验要求: 必修 适用对象: 信息管理与信息系统.计算机科学与技术.软件工程.物联网工程 一. ...

  4. 数据库原理及应用实验报告-实验8-参照完整性

    数据库原理及应用实验报告 实验题目  实验8参照完整性 实验目的 学习建立外键,以及利用FOREIGN KEY-REFERENCES子句以及各种约束保证参照完整性. 实验内容 为演示参照完整性,建立表 ...

  5. 数据库原理及应用实验二参考答案

    一.实验内容及要求 1.创建数据库和数据表(在相应位置贴上SQL语句) (1)利用资源管理器,在D盘建立以自己的姓名为名称的文件夹,以便保存数据库. (2)登录并连接到SQL Server 服务器. ...

  6. 单片机原理及应用 实验六 双机通信与PCB设计

    单片机原理及应用(C51版) 实验目的及要求: 1.掌握串口通信工作原理及程序开发方法,熟悉ARES软件PCB设计过程: 2.按照P241图A.72绘制电路原理图1,将第6章实例2中2#机的查询法收发 ...

  7. 数据库原理及应用实验三参考答案

    本题中所用的数据库是上次实验中所建立的Study数据库.请写出相应的查询语句.并将查询结果贴在下方. 查询所有同学的基本信息,包括:学号s_no.班级号class_no.姓名s_name.性别s_se ...

  8. 【数据库原理与应用 - 第六章】T-SQL 在SQL Server的使用

    目录 一.数据库定义语言DDL 1.数据库的定义 (1)创建数据库 (2)管理数据库 2.基本表的定义 (1)创建基本表 (2)修改基本表 3.索引的定义 (1)创建索引 (2)管理索引 4.视图的定 ...

  9. 数据库原理及应用【六】数据库设计

    数据依赖 函数依赖FD:一个属性或者一组属性的值可以决定另一个属性的值 多值依赖MVD:一个属性或者一组属性的值可以决定另一个属性的值的集合.FD是MVD的特例 符号表示:Name->-> ...

最新文章

  1. Java反射在JVM的实现
  2. 使用JOTM实现分布式事务管理(多数据源)
  3. python tab和空格混用_Python编程常见十大错误,看完你自己都笑了!
  4. 缺陷定位 | 分析推理定位BUG案例(三)
  5. 一季度中国游戏PC销量增长14%,英特尔发布H45点燃玩家热情
  6. 反向传播算法的详细解释(下)
  7. 修改MySQL的默认数据存储引擎
  8. 解决Eclipse无法添加Tomcat服务器的问题
  9. Linux内存buffer和cpu cache的区别
  10. Node.js入门(含NVM、NPM、NVM的安装)-(转载)
  11. cass生成曲线要素_使用CASS6_0获取道路平曲线测设元素的解决方案.pdf
  12. 算法提高 盾神与积木游戏
  13. excel多表数据自动关联
  14. mysql innodb_data_read_Innodb_data_read 与Innodb_data_reads的区别
  15. 利用U盘重新安装XP系统
  16. 人手一份!八大危险作业操作规程、作业票证(模板)、安全培训齐了~
  17. 【读书笔记】《解读基金——我的投资观与实践》(修订版)
  18. 2009年甲骨文学院教师培训
  19. 【JAVA程序设计】(C00101)基于Servlet的在线鞋店销售管理系统
  20. 从前端视角谈 IoT 物联网三部曲:连接智能、交互智能、数据智能

热门文章

  1. 信息安全密码学实验二:序列密码的设计与实现
  2. 千万级大V独家合作,西瓜视频用什么吸引创作人?
  3. ajax异步上传图片文件并将其转换为base64格式
  4. Apple设备型号名称映射表
  5. oracle stdevp函数,ORACLE 系统函数与SQLSERVER系统函数的区别是什么
  6. Java调用kjb文件
  7. mysql研究内容_基于MySQL数据库的数据管理的研究
  8. 5G UE — USIM Card
  9. filebeat7.7.0相关详细配置预览- Setup ILM
  10. 【铁矿石期货怎么开通】11月22日午盘基本面资讯整理