educoder 数据库原理与应用 实验六 约束与索引
实验六 约束与索引
- 数据结构说明
- 第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 数据库原理与应用 实验六 约束与索引相关推荐
- 数据库原理及应用实验报告-实验10-触发器
数据库原理及应用实验报告 实验题目 实验10触发器 10.1 实验目的 通过实验使学生加深对数据完整性的理解,学会理解.创建和使用触发器. 10.2 实验内容 (用实验9的Teacher表) (1 ...
- 数据库原理与应用实验指导书 实验四:数据查询
数据库原理与应用 实验指导书 实验四:数据查询 一.实验目的 掌握SELECT语句的基本语法: 熟练掌握模糊查询的用法: 熟练掌握连接查询的用法: 熟练掌握子查询的用法. 二.实验内容 表数据的查询 ...
- 数据库原理与应用实验指导书 实验一:熟悉SQL Server 2012数据库管理系统
数据库原理与应用实验指导书 实验一:熟悉SQL Server 2012数据库管理系统 实验类型: 综合性 实验要求: 必修 适用对象: 信息管理与信息系统.计算机科学与技术.软件工程.物联网工程 一. ...
- 数据库原理及应用实验报告-实验8-参照完整性
数据库原理及应用实验报告 实验题目 实验8参照完整性 实验目的 学习建立外键,以及利用FOREIGN KEY-REFERENCES子句以及各种约束保证参照完整性. 实验内容 为演示参照完整性,建立表 ...
- 数据库原理及应用实验二参考答案
一.实验内容及要求 1.创建数据库和数据表(在相应位置贴上SQL语句) (1)利用资源管理器,在D盘建立以自己的姓名为名称的文件夹,以便保存数据库. (2)登录并连接到SQL Server 服务器. ...
- 单片机原理及应用 实验六 双机通信与PCB设计
单片机原理及应用(C51版) 实验目的及要求: 1.掌握串口通信工作原理及程序开发方法,熟悉ARES软件PCB设计过程: 2.按照P241图A.72绘制电路原理图1,将第6章实例2中2#机的查询法收发 ...
- 数据库原理及应用实验三参考答案
本题中所用的数据库是上次实验中所建立的Study数据库.请写出相应的查询语句.并将查询结果贴在下方. 查询所有同学的基本信息,包括:学号s_no.班级号class_no.姓名s_name.性别s_se ...
- 【数据库原理与应用 - 第六章】T-SQL 在SQL Server的使用
目录 一.数据库定义语言DDL 1.数据库的定义 (1)创建数据库 (2)管理数据库 2.基本表的定义 (1)创建基本表 (2)修改基本表 3.索引的定义 (1)创建索引 (2)管理索引 4.视图的定 ...
- 数据库原理及应用【六】数据库设计
数据依赖 函数依赖FD:一个属性或者一组属性的值可以决定另一个属性的值 多值依赖MVD:一个属性或者一组属性的值可以决定另一个属性的值的集合.FD是MVD的特例 符号表示:Name->-> ...
最新文章
- Java反射在JVM的实现
- 使用JOTM实现分布式事务管理(多数据源)
- python tab和空格混用_Python编程常见十大错误,看完你自己都笑了!
- 缺陷定位 | 分析推理定位BUG案例(三)
- 一季度中国游戏PC销量增长14%,英特尔发布H45点燃玩家热情
- 反向传播算法的详细解释(下)
- 修改MySQL的默认数据存储引擎
- 解决Eclipse无法添加Tomcat服务器的问题
- Linux内存buffer和cpu cache的区别
- Node.js入门(含NVM、NPM、NVM的安装)-(转载)
- cass生成曲线要素_使用CASS6_0获取道路平曲线测设元素的解决方案.pdf
- 算法提高 盾神与积木游戏
- excel多表数据自动关联
- mysql innodb_data_read_Innodb_data_read 与Innodb_data_reads的区别
- 利用U盘重新安装XP系统
- 人手一份!八大危险作业操作规程、作业票证(模板)、安全培训齐了~
- 【读书笔记】《解读基金——我的投资观与实践》(修订版)
- 2009年甲骨文学院教师培训
- 【JAVA程序设计】(C00101)基于Servlet的在线鞋店销售管理系统
- 从前端视角谈 IoT 物联网三部曲:连接智能、交互智能、数据智能