数据库管理与应用创建“学生表”中的约束
数据库实验2-数据库及表的创建与管理(DDL应用)
实验二数据库及表的创建与管理(DDL应用)姓名:学号:专业:网络工程班级:20网络工程同组人:无实验日期:一、【实验目的与要求】1.熟悉SQL Server 2005 的环境2.了解使用企业管理器创建数据库的过程和方法3.了解使用企业管理器创建数据库的过程和方法二、【实验准备】1.安装并配置好SQL Server 2005数据库2.设计好数据库创建各参数,准备好测试数据三、【实验要求】1.完成数据库的创建与管理2.完成表的创建与管理。
3. 熟悉SQL Server 2005中企业管理器和查询分析器两个常用管理工具四、【实验内容】1. 数据库创建与管理2. 表的创建、管理及数据操作。
五、【实验步骤】1. 准备工作(1)安装完成SQL Server 2005安装。
(2) 打开企业管理器(3)连接数据库2.数据库的创建与修改准备工作:在C盘下创建目录Exam03,用于存放数据库创建时产生的数据文件。
(1) 数据库的创建使数据定义语句Create Database可以创建数据库,该语句在使用时可指明数据文件和日志文件存放的路径,初始数据文件的大小等参数。
阅读以下是创建数据库SalesDB的SQL语句,理解其功能,并置于查询分析器中执行:create database SalesDBon(name= SalesDB_data,--数据文件的逻辑名称,注意不能与日志逻辑同名filename='C:\Exam03\SalesDB.mdf' ,--物理名称,注意路径必须存在size=20, --数据初始长度为10Mmaxsize=100, --最大长度为100Mfilegrowth=5 --数据文件每次增长1M)log on(name= SalesDB_log,filename='C:\Exam03\SalesDB.ldf ' ,size=20 ,maxsize=50 ,filegrowth=5)在查询分析器中执行上述语句建立数据库SalesDB。
实验1数据库的创建与管理
实验1 数据库的创建与管理1.1 实验目的(1)掌握开发环境的基本功能和使用方法。
(2)掌握数据库的建立方法。
(3)掌握图形界面下的数据表设计方法。
(4)掌握数据表记录的“增删改查”方法。
(5)掌握数据库的导入导出方法。
1.2 实验内容与步骤1.2.1 建立数据库启动MS SQL SERVER 2005,并建立学生管理数据库,文件名为学生自己姓名首字母的缩写,如张大千同学缩写为ZDQ。
设置库的大小50M,日志文件大小25M的新数据库。
1.2.2数据表的设计参照教材P50页的要求逻辑设计表,为自己实现以下3个表:学生表:Student(Sno, Sname, Ssex, Sage, Sdept);课程表:Course(Cno, Cname, Credit, Semester);学生选课表:SC(Sno, Cno, Grade)设计要求:(1) 定义关系模式(包括表名,属性名,属性类型及长度);(2) 定义表的主码及外码。
1.2.3 数据表记录的“增删改查”操作至少输入学生记录10条、系别4个、课程10个,便于后续实验的数据操纵、视图设计和数据控制处理。
数据库还原:数据库备份:实验2 数据操纵 2.1 实验目的(1)掌握SQL语言中数据查询和数据更新的语句(2)掌握SQL语言中数据更新的语句(3)掌握使用SQL语句进行视图的定义的方法2.2 实验步骤2.2.1使用SQL语句完成数据查询完成教材第五章例1到例82的例题题目选出40个进行实验,并把相应的命令语句写入实验报告。
对例45、例51(两种方法(自连接、子查询))以及外连接的操作在实验报告中给出运行结果。
2.2.2 使用SQL语句完成数据更新完成教材第五章5.2节的例题中的40个,并把相应的命令语句写入实验报告并给出运行结果。
1.SELECT Sname,Sage FROM StudentSELECT Sname,Sno,Sdept FROM StudentSELECT * FROM StudentSELECT Sname,2014-Sage FROM StudentSELECT Sname,Sage FROM StudentWHERE Sage<216.SELECTStudent.Sno,Student.Sname,Student.Ssex,Student.Sage,Student.Sdept,SC. Grade FROM Student INNER JOIN SCON Student .Sno=SC.SnoSELECT Sname,Sdept,Sage FROM StudentWHERE Sage BETWEEN 20 AND 23SELECT Sname,Ssex FROM StudentWHERE Sdept IN('xinxi','tongxin','shuxue')SELECT*FROM StudentWHERE Sname LIKE'a%'SELECT*FROM StudentWHERE Sname LIKE'[abc]%'11.SELECT*FROM StudentWHERE Sname LIKE'_[1]%'SELECT*FROM StudentWHERE Sname NOT LIKE'[ab]%'SELECT Sname,Sdept FROM Student JOIN SC ON Student.Sno=SC.SnoWHERE Student.Sno NOT IN(SELECT Sno FROM SCWHERE Cno ='a001')SELECT DISTINCT Sname,Sdept FROM Student JOIN SC ON Student.Sno=SC.Sno WHERE Student.Sno IN(SELECT Sno FROM SCWHERE Cno ='100')SELECT Sname,Sdept,Grade AS'tiyu'FROM Student JOIN SC ONStudent.Sno=SC.Sno JOIN Course ON o=oWHERE Cname ='tiyu'AND Grade >(SELECT AVG(Grade)FROM SC JOIN Course ON o=oWHERE Cname='tiyu')16.SELECT Sname,Sdept FROM StudentWHERE Sdept IN(SELECT Sdept FROM StudentWHERE Sname ='a1')AND Sname !='a1'SELECT Sno,AVG(Grade)FROM SCGROUP BY SnoHAVING AVG(Grade)>(SELECT AVG(Grade)FROM SC)SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade FROMStudent JOIN SC ON Student.Sno=SC.SnoSELECT Sname,Sage FROM StudentWHERE Sdept ='shuxue'AND Sage=(SELECT MAX(Sage)FROM Student)SELECT Sno,Grade FROM SCWHERE Cno ='100'AND Grade>(SELECT AVG(Grade)FROM SC)21.SELECT COUNT(*)'选课门数',AVG(Grade)'平均成绩'FROM SCWHERE Sno IN(SELECT Sno FROM SC JOIN Course ON o=oWHERE Cname='shujuku')GROUP BY SnoSELECT Sno,Sname FROM StudentWHERE Sno IN(SELECT Sno FROM SC JOIN Course ON o=oWHERE Cname ='shujuku')SELECT Sname,Ssex FROM StudentWHERE Sdept ='xinxi'AND Sno IN(SELECT Sno FROM SCWHERE Cno ='100')SELECT Student.Sno,Sname FROM Student JOIN SC ON Student.Sno=SC.Sno WHERE Grade >=90SELECT*FROM StudentWHERE Sdept IN(SELECT Sdept FROM StudentWHERE Sname ='a1')AND Sname !='a1'26.SELECT TOP 2 WITH TIES Cno,COUNT(*)'人数'FROM SCGROUP BY CnoORDER BY COUNT(*)ASCSELECT TOP 3 WITH TIES Sname,Sdept,Grade FROM Student JOIN SC ON Student.Sno=SC.Sno JOIN Course ON o=oWHERE Cname ='shujuku'ORDER BY Grade DESCSELECT TOP 3 WITH TIES Sname,Sage,Sdept FROM StudentORDER BY Sage DESCSELECT COUNT(*)FROM Student JOIN SC ON Student.Sno=SC.SnoWHERE Sdept ='xinxi'GROUP BY Student.SnoORDER BY COUNT(*)DESCSELECT Student.Sno,COUNT(o)FROM Student LEFT JOIN SC ON Student.Sno=SC.SnoWHERE Sdept ='xinxi'GROUP BY Student.SnoORDER BY COUNT(o)DESC31. SELECT Sname,Ssex FROM Student LEFT JOIN SC ON Student.Sno=SC.Sno WHERE Sdept ='xinxi'AND Cno IS NULLSELECT Cname FROM SC RIGHT JOIN Course ON o=oWHERE Sno IS NULLSELECT Student.Sno,Sname,o,Grade FROM SC RIGHT JOIN Student ON SC.Sno=Student.SnoSELECT Cname,Credit FROM CourseWHERE Credit =(SELECT Credit From CourseWHERE Cname ='gaoshu')AND Cname !='gaoshu'SELECT Sdept,AVG(Grade)FROM SC JOIN Student ON SC.Sno=Student.Sno GROUP BY Sdept36. SELECT Sname,Sdept FROM Student JOIN SC ON Student.Sno=SC.Sno JOIN Course ON o=oWHERE Cname='shujuku'SELECT Sname,Sdept FROM Student JOIN SC ON Student.Sno=SC.Sno JOIN Course ON o=oWHERE Cname='shujuku'AND Sdept ='xinxi'SELECT Sname,Cno,Grade FROM Student JOIN SC ON Student.Sno=SC.Sno WHERE Sdept ='xinxi'SELECT Sdept,COUNT(*)FROM StudentWHERE Sage <=20GROUP BY Sdept40.SELECT Sno,COUNT(*)FROM SCGROUP BY SnoHAVING COUNT(*)>=2。
《数据库原理与应用》复习题及参考标准答案完整版
《数据库原理与应用》复习题及参考答案完整版————————————————————————————————作者:————————————————————————————————日期:2第一章:绪论一、选择题:1.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。
在这几个阶段中,数据独立性最高的是 A 阶段。
A.数据库系统 B.文件系统 C.人工管理 D.数据项管理2.数据库的概念模型独立于A 。
A.具体的机器和DBMS B.E-R图 C.信息世界 D.现实世界3.数据库的基本特点是 B 。
A.(1)数据可以共享(或数据结构化) (2)数据独立性 (3)数据冗余大,易移植 (4)统一管理和控制 B.(1)数据可以共享(或数据结构化) (2)数据独立性 (3)数据冗余小,易扩充 (4)统一管理和控制 C.(1)数据可以共享(或数据结构化) (2)数据互换性 (3)数据冗余小,易扩充 (4)统一管理和控制D.(1)数据非结构化 (2)数据独立性 (3)数据冗余小,易扩充 (4)统一管理和控制4.B 是存储在计算机内有结构的数据的集合。
A.数据库系统 B.数据库 C.数据库管理系统 D.数据结构5.数据库中存储的是 C 。
A.数据 B.数据模型 C.数据以及数据之间的联系 D.信息6. 数据库中,数据的物理独立性是指 C 。
A.数据库与数据库管理系统的相互独立 B.用户程序与DBMS的相互独立C.用户的应用程序与存储在磁盘上数据库中的数据是相互独立的D.应用程序与数据库中数据的逻辑结构相互独立7. .数据库的特点之一是数据的共享,严格地讲,这里的数据共享是指 D 。
A.同一个应用中的多个程序共享一个数据集合 B.多个用户、同一种语言共享数据C.多个用户共享一个数据文件D.多种应用、多种语言、多个用户相互覆盖地使用数据集合8.数据库系统的核心是 B 。
A.数据库B.数据库管理系统C.数据模型D.软件工具9. 下述关于数据库系统的正确叙述是 A 。
数据库原理实验报告(3)实验三 数据表的创建与管理实验
数据库原理实验报告(3)实验三数据表的创建与管理实验南京晓庄学院《数据库原理与应用》课程实验报告实验三数据表的创建与管理实验所在院(系): 数学与信息技术学院班级:学号:姓名:1.实验目的(1) 理解SQL Server 20XX常用数据类型和表结构的设计方法。
理解主键、外键含义,掌握建立各表相关属性间参照关系的方法。
(2) 熟练掌握使用SQL Server Management Studio图形工具创建表,删除表,修改表结构。
插入及更新数据的方法。
(3) 熟练掌握使用Transact-SQL语句创建表,删除表,修改表结构,插入及更新数据的方法。
2.实验要求基本实验:(1) 在实验二所创建的“TM”数据库中合理设计以下各表逻辑结构:学生信息课程信息学习信息院系信息要求确定各个字段的名称、类型、是否有默认值,是否主键等信息。
(2) 依据你所设计的表结构,使用SQL Server Management Studio图形工具在“TM”数据库中创建学生信息表和课程信息表,并试验在图形界面中修改表结构,删除数据表,输入并更新数据的方法。
(3) 依据你所设计表结构,使用Transact-SQL语句创建学习信息表和院系信息表,并试验使用T-SQL语句修改表结构,删除数据表,插入和更新数据的方法。
(4) 找出已创建各表之间相关属性的参照关系,并在相关表中增加引用完整性约束。
(5) 按要求完成实验报告。
扩展实验:(1) 在“TM”数据库中补充设计以下各表结构:教师信息授课信息班级信息专业信息图书信息(图书号,书名,作者,出版社,出版日期,册数,价格,分类) 借书偏息奖励信息(2) 设计并实现各表之间相关属性的参照关系。
(3) 使用SQL Management Studio图形界面或Transact-SQL在“TM”数据库中创建前述各表。
并插入部分数据,要求所插入数据合理有效。
3.实验步骤、结果和总结实验步骤/结果(1)合理命名并设计学生信息、课程信息、学习信息和院系信息结构,以表格描述相关信息。
实验 创建数据库表与约束
实验创建数据库表与约束
一、实验目的
1、掌握创建数据库表的方法;
2、学会设置表的主键、外键和建立表之间的关系;
3、学会为表增加约束
二、实验内容
1、创建“StudentDB”数据库,并在数据库中创建三个表:课程表Lessons,学生表Students,成绩表Scores。
各表主要字段如下图所示:
Students:
Lessons:
Scores:
2、设置上述三个表的主键。
建议:Students用“sno”做主键,Lessons用“lno”做主键,Scores用(sno,lno)做主键。
3、分别打开三个表,输入记录数据。
4、为表增加约束:重要列非空,性别sex为“男”或“女”,学分credit在1到5之间,成
绩score在0到100之间。
5、为Scores表设置外键sno和lno,建立三个表之间的主外键关系,并创建数据关系图“guanxi1”。
数据库约束、默认、规则实验报告
实验五约束默认和规则1、约束在数据库中的应用(1)用系统存储过程sp_helpconstraint查看student表的约束。
(2)在新建查询中输入插入一个学生信息的命令:insert into student(SNO,Sname,Sex,ClsNO,StuAddr,Birthday,Height)values('19920101','王军','男','CS01','下关#','1976.12.21',1.76),观察其结果。
修改SNO的值,将其值修改为’19000001’,其他的值保持不变,再插入一次,观察其结果。
(3)修改studeng表,使用Check约束,使性别列只能接受“男”或“女”,以强制执行域数据完整性。
重做(1),观察其结果。
(4)禁止student表中的sex列上的约束:alter table student nocheck constraint ck_student(5)删除约束:alter table student drop constraint ck_xsqk。
重做(1)。
(6)利用关系图,建立student表与course表与grade表的主外键约束。
2、默认的应用(1)创建默认对象:default_birthday,默认值为’1982-1-1’。
CREATE DEFAULT default_birthday AS ‘1982-01-01’(2)利用系统存储过程sp_bindefault将default_birthday绑定到student表的Birthday列上。
(3)利用系统存储过程sp_unbindefault解除student表的Birthday列上的默认值绑定。
(4)删除默认值:DROP DEFAULT default_birthday(5)定义一个默认值为4的Default_Value,并将它绑定到course表的Credit列上,绑定后给course插入数据行,观察默认值的设置情况,使用完毕后,解除并删除绑定。
学生管理数据库_6个表_
学生管理数据库
1. 创建学生管理数据库Student
使用T-SQL语言创建学生管理系统的数据库,物理文件存取路径:E:\STUDENT\,数据文件Student.mdf,初始大小为5MB,允许自动增长,最大为40MB;日志文件Student_log.ldf 初始大小为3MB,最大为30 MB。
2. 创建学生管理数据库Student中各个表
表1 学生信息数据表(Students)
表2 班级信息数据表(Classes)
表3 教师信息数据表(Teachers)
表4 教师-课程记录数据表(Teacher_course)
表5 课程信息数据表(Courses)
表6学生-课程记录数据表(Student_course)
3.为Student数据库中各表设置相应的约束,以确保Student数据库的数据完整性Student数据库的Students表约束
Student数据库的Classes表约束
Student数据库的Teachers表约束
Student数据库的Teacher_course表约束
Student数据库的Courses表约束
Student数据库的Student_course表约束
Student数据库的Students表数据
Student数据库的Classes表数据
Student数据库的Teachers表数据
Student数据库的Teacher_course表数据
Student数据库的Courses表数据
Student数据库的Student_course表数据。
《数据库技术与应用》第4章 习题答案
《数据库技术与应用》第4章习题答案《数据库技术与应用》第4章习题答案第4章关系数据库标准语言sql1.试述关系数据库标准语言sql的特点。
求解:sql语言是一种功能强大、通用性好又简单易学的语言,主要特点包括:综合统一:sql语言将数据定义语言ddl、数据压低语言dml、数据掌控语言dcl的功能集于一体,语言风格统一,可以独立完成数据库生命周期中的全部活动。
高度非过程化:用sql语言展开数据操作方式只要明确提出“搞什么”,而无须阐明“怎么做”。
面向子集操作方式:sql使用子集操作方式方式。
不仅查阅的结果可以就是元组的子集,而且一次插入、更新、删除操作的对象也可以是元组的集合。
积极支持关系数据库的三级模式结构:外模式对应于视图(view),模式对应于基本表中,内模式对应于存储文件。
简约易学,有效率功能强大:sql语言简约,只有少量关键字,语法直观。
sql的采用方式非常灵活,可以直接通过sql实现人机交互,还可以将sql语句嵌入到其他高级语言程序中来使用。
2.概述sql的基本功能。
解:sql语言就是一种综合的、通用型的、功能强大的关系数据库语言,集数据查阅(dataquery)、数据压低(datamanipulation)、数据定义(datadefinition)和数据掌控(datacontrol)功能于一体。
数据定义功能。
主要用于定义、删除和修改关系数据库中的对象,数据库对象主要包括基本表、视图等。
数据查阅功能。
运用select语句去同时实现查阅数据的功能。
数据压低功能。
主要用作减少、删掉和修正数据库中的数据。
数据掌控功能。
主要用以掌控用户对数据库的操作方式权限,包含数据库安全掌控和事物管理两部分。
3.什么是基本表?什么是视图?两者的区别和联系是什么?解:基本集是本身单一制存有的表中,在sql中一个关系就对应一个表中。
企图从一个或几个基本表中求出的表中。
企图本身不单一制存储在数据库中,就是一个虚表。
MySQL数据库原理及应用项目5 创建与维护学生信息管理数据表 (2)
(二)使用CREATE TABLE语句创建表
② 表级完整性约束条件如下。
a.PRIMARY KEY用于定义表级主键约束,语法格式如下。 CONSTRAINT <约束名> PRIMARY KEY [CLUSTERED](字段名1,字段名2,…,字段名n) b.FOREIGN KEY用于设置参照完整性规则,即指定某字段为外键,语法格式如下。 CONSTRAINT <约束名> FOREIGN KEY <外键> REFERENCES <被参照表(主键)> c.UNIQUE既可用于列级完整性约束,也可用于表级完整性约束,语法格式如下。 CONSTRAINT <约束名> UNIQUE(<字段名>)
任务5-1 理解表的基本概念
❖ 4、字段长度和小数位数
字段的长度是指字段所能容纳的最大数据量。但是对不同的
数据类型而言,长度对字段的意义有些不同,说明如下。
(1)字符串类型。长度代表字段所能容纳字符的数目。 (2)整数类型。长度则代表该数据类型指定的显示宽度。 即能够显示的最大数据的长度。在不指定宽度的情况下, 每个整数类型都有默认的显示宽度。 (3)二进制类型。长度代表字段所能容纳的最大字节数。 (4)浮点数类型和定点数类型。长度代表的是数据的总长 度,也就是精度。精度是指数据中数字的位数(包括小数 点左侧的整数部分和小数点右侧的小数部分),而小数位 数则是指数字中小数点右侧的位数。例如,数字 12345.678,其精度是8,小数位数是3。
一使用navicat工具创建表1打开navicat窗口在连接窗格中展开mysql服务器双击打开gradem数据库在该数据库节点下用鼠标右键单击表节点选择新建表命令2在打开的设计表窗口中输入列名选择该列的数据类型输入字段的长度小数点位数并设置是否允许为空设计表窗口中的下半部分是列属性包括是否使用默认值字段的注释采用的字符集等
项目2创建学生管理数据库和数据表
2021/1/6
项目2创建学生管理数据库和数据表
•
模块 2-1
创建学生管理数据库
•
项目2创建学生管理数据库和数据表
学习目标
项目2创建学生管理数据库和数据表
工作任务
项目2创建学生管理数据库和数据表
任务一:在Management Studio中创建 数据库student
项目2创建学生管理数据库和数据表
任务1.1:将数据表的sno字段设置为主键
1、右击“对象资源浏览器”窗口中要创建主键的表名 student,在弹出的快捷菜单上单击“修改”命令 。
项目2创建学生管理数据库和数据表
任务1.1:将数据表的sno字段设置为主键
2、在打开的【表-dbo.student】标签页上右击要设置为主键 的列名sno,在弹出的快捷菜单中选择【设置主键】命令 。
项目2创建学生管理数据库和数据表
方法一:在SQL Server Management Studio图形化界面中添加数据
1、在打开的“对象资源管理器”窗口中,右击表student ,在弹出的快捷菜单中选择“打开表”命令 。
项目2创建学生管理数据库和数据表
方法一:在SQL Server Management Studio图形化界面中添加数据
项目2创建学生管理数据库和数据表
任务一:创建数据表student的表结构
➢ 【任务分析】
数据表包括表结构、约束以及记录等三个要件。这个 任务我们主要是完成对数据表student表结构的创建,表结 构如下表所示:
•表 2-5 student表的结构
字段名 Sno sname ssex sbirthday sscore classno
数据库技术与应用第3、4章 习题答案
第3章关系数据库1. 试述关系模型的三个组成部分。
解:关系模型的三个组成部分 (1) 关系数据模型的数据结构 (2) 关系数据模型的操纵与完整性约束 (3) 关系数据模型的存储结构2. 解释下列术语的含义: ①笛卡尔积;②主码;③候选码;④外码;⑤关系;⑥关系模式;⑦关系数据库 解:①笛卡尔积:两个分别为n 目和m 目的关系R 和S 的笛卡尔积是一个(n+m)列的元组的集合。
元组的前n 列是关系R 的一个元组,后m 列是关系S 的一个元组。
若R 有k 1个元组,S 有K 2个元组,则关系R 和关系S 的笛卡尔积有k 1×k 2个元组。
记作:R ×S ={t r t s ̂|t r ∈R⋀t s ∈S}②主码:若关系中的某一属性组的值能唯一的标识一个元组,则称该属性组为候选码。
若一个关系有多个候选码,则选定其中一个为主码。
③候选码:若关系中的某一属性组的值能唯一的标识一个元组,则称该属性组为候选码。
④外码:如果关系模式R 中的某属性集是另一个关系模式S 的主码,则该属性集为关系模式R 的外码。
⑤关系:关系是集合论的一个概念,也是关系模型的数据结构,它只包含单一的数据结构——关系。
在关系模型中,现实世界的实体以及实体间的各种联系均用关系来表示。
在用户看来,一个关系就是一张二维表,这种简单的数据结构能够表达丰富的语义。
⑥关系模式:关系的描述称为关系模式。
它可以形式化地表示为R(U ,D ,DOM ,F)其中R 为关系名,U 为组成该关系的属性名集合,D 为属性组U 中属性所来自的域,DOM 为属性向域的映像集合,F 为属性间数据的依赖关系集合。
⑦关系数据库:在关系模型中,实体以及实体之间的联系都是通过关系来表示的。
因此,在一个给定的应用领域中,所有实体以及实体之间的联系所对应的关系的集合就构成一个关系数据库。
3. 关系数据库的三个完整性约束是什么?各是什么含义? 解:关系模式中有3类完整性约束:实体完整性、参照完整性和用户自定义完整性。
SQL语句创建学生信息数据库表的示例-学生信息数据库表
用SQL语句创建如下三个基本表:学生表(Student)、课程表(Course)、学生选课表(SC),结构如下所示Student表结构Create table Student(Sno varchar(7) primary key,Sname varchar(10) not null,Ssex char (2) check(Ssex=‘男’or Ssex=’女’),Sage int check(Sage between 15 and 45),Sdept varchar(20) default(‘计算机系’))Course表结构Create table course(Cno varchar(10) primary key,Cname varchar(20) not null,Ccredit int check(Sctedit>0),Semester int check(Semester>0),Period int check(Period>0))SC表结构Create table SC(Sno varchar(7) foreign key references student(Sno),Cno varchar(10) foreign key references course(Cno),Grade int check(Grade between 0 and 100),Primary key (Sno,Cno))1.查询学生选课表中的全部数据。
SELECT *FROM SCgo2.查询计算机系学生的姓名、年龄。
Select Sname,SageFrom StudentWhere Sdept=’计算机系’3.查询成绩在70~80分之间的学生的学号、课程号和成绩。
Select Sno,Cno,GradeFrom Course,ScWhere o=o and sc.Grade between 70 and 804.查询计算机系年龄在18~20之间且性别为“男”的学生的姓名和年龄。
SQL学生管理系统题库与答案
SQL学生管理系统题库/*一、数据库和表的创建*/CREATE DATABASE 学生管理ON PRIMARY ( NAME=学生管理, FILENAME ='F:\Temp\学生管理题库\JKX1112\学生管理.MDF', SIZE=3MB, MAXSIZE=100MB, FILEGROWTH=5% ) LOG ON ( NAME=学生管理_log, FILENAME ='F:\Temp\学生管理题库\JKX1112\学生管理_log.LDF', SIZE=3MB, MAXSIZE=50MB, FILEGROWTH=1MB ) GO USE 学生管理GO CREATE TABLE 学生信息( 学号char(12) NOT NULL , 姓名nvarchar(10) NOT NULL, 性别nchar(1), 出生日期datetime, 政治面貌bit, 学校履历ntext ) GO CREATE TABLE 课程信息( 课程编号char(6) NOT NULL , 课程名称nvarchar(20) NOT NULL, 学分tinyint, 限选人数tinyint, 已选人数tinyint ) GO CREATE TABLE 成绩信息( 学号char(12) NOT NULL , 课程编号char(6) NOT NULL, 成绩decimal(5,2) ) GO /*二、表约束的创建*//*1.为学生信息表声明主码:将学号字段设置为学生信息表的主键。
*/ ALTER TABLE 学生信息ADD CONSTRAINT PK_XSXX_XH PRIMARY KEY (学号) GO/*2.为课程信息表声明主码:将课程编号字段设置为课程信息表的主键。
*/ ALTER TABLE 课程信息ADD CONSTRAINT PK_KCXX_KCBH PRIMARY KEY (课程编号) GO/*3.为成绩信息表声明主码:将(学号,课程编号)联合字段设置为成绩信息表的主键。
实验一创建数据库及关系表数据完整性约束
实验一创建数据库及关系表数据完整性约束集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#实验一创建数据库及关系表、数据完整性约束一、实验目的1.掌握SQL Server数据库管理系统的使用,能够在该环境中进行日常数据库操作;2.掌握在SQL Server中使用图形化工具创建数据库的方法;3.掌握建立关系表的语句,掌握定义主码约束及外码约束的语句;4.掌握修改表结构的语句。
5.掌握数据完整性约束的功能。
二、实验内容和步骤1.创建符合如下条件的数据库:数据库的名字为:Students数据文件的逻辑文件名为:Students_dat,存放在用户盘某目录下;文件的初始大小为:5MB;增长方式为自动增长,每次增加1MB。
实验结果:2.在已建立的Students数据库中,确定出各表中的数据类型,写出创建满足下述条件的四张表的SQL语句,并查看执行结果。
实验结果:3.写出实现如下操作的SQL语句,并查看执行结果:(1)在选课表中添加一个新的修课类别列:列名为:选课类别,类型为char(4)。
(2)将课程表中的学分列的类型改为:tinyint(微整型,取值范围在0~255)。
(3)删除学生表的专业列。
(4)为教师表添加主码约束,其主码列为:教师号。
实验结果:4.在Students数据库中,编写建立满足完整性要求的定义表的SQL语句,执行并观察执行结果。
(1)图书表,结构如下:书号:统一字符编码定长类型,长度为6,主码,书名:统一字符编码可变长类型,长度为30,非空,第一作者:普通编码定长字符类型,长度为10,非空,出版日期:小日期时间型,小于等于当前系统日期,(用getdate()实现)印刷数量:小整型,取值范围:1000~5000,默认为4000,价格:定点小数,小数部分一位,整数部分3位。
实验结果:(2)书店表,结构如下:书店编号:统一字符编码定长类型,长度为6,主码,店名:统一字符编码可变长类型,长度为30,非空,电话:普通编码定长字符类型,12位长,取值形式:010-8位数字地址:普通编码可变长字符类型,40位长。
国家开放大学《数据库应用技术》章节测试参考答案
国家开放大学《数据库应用技术》章节测试参考答案第一章 数据库系统概述1.下列不属于数据库管理数据特点的是()a. 应用程序与数据的物理存储紧密相关b. 最大限度的保证数据的正确性c. 数据可以共享并能保证数据的一致性d. 相互关联的数据集合2.使用数据库管理数据可以实现程序与数据的相互独立。
(√)3.数据库管理系统是一个系统软件,这个软件主要负责将磁盘上的数据库文件读入到内存中。
(×)4.下列属于数据动态特征的是()a. 数据的主键约束b. 数据的取值范围约束c. 数据所包含的属性d. 插入数据5.下列关于概念层数据模型的说法,正确的是a. 概念层数据模型要能够方便地在计算机上实现b. 概念层数据模型与具体的数据库管理系统相关c. 概念层数据模型是从计算机实现的角度进行建模d. 概念层数据模型要真实地模拟现实世界6.概念层数据模型描述的是数据的组织方式。
(×)7.在E/R图中,联系用()描述a. 矩形框b. 菱形框c. 圆角矩形d. 三角形8.一名教师可以教多门课程,一门课程可以被多个教师讲授,则教师与课程之间的联系是a. 一对一b. 多对多c. 多对一d. 一对多9.E-R图中的“E”表示的是实体。
(√)10.下列关于关系数据模型的说法,正确的是a. 关系数据模型采用的是导航式的数据访问方式b. 关系数据模型采用的是简单二维表结构c. 关系数据模型是一种概念层数据模型d. 关系数据模型只能表达实体,不能表达实体之间的联系11.关系数据模型允许一个属性包含更小的属性。
(×)12.下列关于数据库三级模式中“模式”的说法,错误的是a. 外模式的信息全部来自于模式b. 模式应该包含全体用户的数据需求c. 模式是对整个数据库的底层表示d. 关系数据库中的表对应三级模式中的模式13.下列用于描述数据的物理存储的是a. 内模式b. 外模式c. 模式d. 模式间的映像14.数据库三级模式中的模式是面向全体用户的数据需求设计的。
任务六 student、course和sc数据表约束
第1章
数据库技术基础
当增加、修改或删除数据库表中记录时,可以借助参照完整性来保证相关联表之间
4.用户定义完整性
由用户针对具体数据环境与应用环境设置的一组约束。例如,student表中出生日期 一定要早于入学日期值,像这种业务规则有时无法利用前面的3种数据完整性来完
成,而通常使用触发器或存储过程进行检验,或由客户端的应用程序来进行控制。
创建表时,直接对属性描述附加not null
create table sc (学号 char(9) not null ,课程号 char(5) not null ,成绩 decimal(4,1));
任务六 Student、Course和sc数据表约束
6.DEFAULT约束 创建DEFAULT约束的语法格式为:
任务六 Student、Course和sc数据表约束
第1章 数据库技术基础 3.CHECK约束 Check约束用于限制输入到一个或多个属性的范围。使用一个逻辑表达式来检 查要输入数据的有效性,如果输入内容满足,则将数据写入表中,否则数据 无法输入,保证表的域完整性。 例4.29 在sc表中,设置CHECK约束,成绩取值在0~100之间。
例:为student表上的学号添加PRIMARY KEY约束。 SQL语句如下: create table student(学号 char(9) not null,姓名 varchar(10), 性别 char(2), 出生日期 date, constraint pk_xh primary key (学号)); 或者create table student(学号 char(9) not null primary key,姓名 varchar(10), 性别 char(2), 出生日期 date);
数据库实验-数据完整性约束
广州XX学院数据库管理及应用实验报告专业班级计算机181 实验日期2020.4.18 姓名李XX 学号2018132 实验名称数据完整性约束指导教师王琢(报告内容包括实验目的、实验设备及器材、实验内容、实验步骤、实验结果、实验小结等)一、实验目的(1)理解数据完整性约束概念。
(2)掌握SQL Server的数据完整性约束技术。
(3)了解SQL Server的违反数据完整性约束的处理措施。
二、实验设备及器材Windows平台、SQL Server 2012。
三、实验内容4.1在数据库EDUC中创建下列完整性约束。
1)为数据库Course_info创建CHECK约束:当插入或修改一个记录时确保此记录的授课学时在10-80。
2)为教师信息表Teacher_info创建CHECK约束:男教师的出生日期在1960年1月1日后,女教师的出生日期在1965年1月1日后。
3)为教师上课信息表TC_info创建CHECK约束:学生成绩在0-100。
4)为教师上课信息表TC_info创建外键约束:tcid、tno、classno和cno。
4.2在数据库TSGL中创建下列完整性约束。
1)创建CHECK约束:readers表的RederType在0-9。
2)利用SSMS删除readers表的约束。
3)创建主键约束:为readers表的字段ReaderID添加主键。
4)创建多个字段的主键:为borrowinf表的ReaderID、BookID字段定义主键。
四、实验步骤4.11)为数据库Course_info创建CHECK约束:当插入或修改一个记录时确保此记录的授课学时在10-80。
USE EDUCGOALTER TABLE Course_infoWITH NOCHECK ADD CONSTRAINT CK_lecture CHECK(lecture>=10 AND lecture <=80)GO2)为教师信息表Teacher_info创建CHECK约束:男教师的出生日期在1960年1月1日后,女教师的出生日期在1965年1月1日后。
电大数据库系统及应用,形考册第4章,习题与参考答案
第4章习题与参考答案一. 单项选择题1.下列所述功能中,不属于SQL语言功能的是(D)。
A.数据表的定义功能B.数据查询功能C.数据增、删、改功能D.提供方便的用户操作界面功能2.设某职工表中有用于存放年龄(整数)的列,下列类型中最适合年龄列的是(C)。
A.intB.smallintC.tinyintD.bit3.设某学生表中有用于存放学生编号的列,下列类型中最适合的是(D)。
A.intB.dateC.tinyintD.char4.下列约束中用于限制列的取值范围的约束是(B)。
A.PRIMARY KEYB.CHECKC.DEFAULTD.UNIQUE5.下列约束中用于限制列取值不重的约束是(D)。
A.PRIMARY KEYB.CHECKC.DEFAULTD.UNIQUE6.下列约束中用于实现实体完整性的是(A)。
A.PRIMARY KEYB.CHECKC.DEFAULTD.UNIQUE7.下列关于DEFAULT约束的说法,错误的是(D)。
A.一个DEFAULT约束只能约束表中的一个列B.在一个表上可以定义多个DEFAULT约束C.DEFAULT只能定义在列级完整性约束处D.在列级完整性约束和表级完整性约束处都可以定义DEFAULT约束8.下列为变量赋值的语句中,错误的是(D)。
A.SET @X = 10B.SELECT @X = 10C.SET @X = 10 + 10D.SET @X = 10 + 'A'9.设有表T,现要在该表新增加一个列,列名为:c1,类型为int。
下列能实现该功能的语句是(A)。
A.ALTER TABLE T ADD COLUMN c1 intB.ALTER TABLE T ADD (c1 int)C.ALTER TABLE T ADD COLUMN c1D.ALTER TABLE T ADD c110.设有表M,将其中的Type列的数据类型改为NCHAR(4)。
《数据库原理与应用》实验题目及答案
《数据库原理与应用》实验作业布置实验1 数据库的建立修改与删除完成以下实验报告:《数据库原理与应用》实验报告实验1 数据库的建立修改与删除二、实验环境操作系统:Windows XP。
数据库管理系统:MS SQL Server 2000 或MS SQL Server 2008。
三、实验目的1.熟悉SQL Server 2000上机环境,学会SQL Server 2000“企业管理器”以及“查询分析器”的启动与退出;或熟悉MS SQL Server 2008上机环境,学会SQL Server Management Studio的启动与退出。
2.掌握建立数据库的两种方法。
3.掌握查看和修改数据库的两种方法。
4.掌握删除数据库的两种方法。
四、实验内容(一) 规定内容1. 在用户方便的存储空间上建立存放用户数据库的文件夹。
本实验在D盘根目录下建立文件夹:D:\SQL2000DB,再建立存放T_SQL源代码的文件夹:D:\SQL2000DB\T_SQL 2.利用企业管理器创建学生课程数据库ST,参数如表1.1所示。
3.利用企业管理器查看ST数据库的属性。
4.使用T-SQL语句建立学生-课程数据库ST,参数如表1.1所示。
5.使用T-SQL语句建立数据库JXDB,参数如表1.2所示。
6.使用T-SQL语句为数据库JXDB添加文件组JX_Group2,并为此文件组添加1个数据文件JXDB_Data4;添加1个日志文件JXDB_log1。
参数由用户自己设定。
7.使用T-SQL语句修改数据库JXDB中次数据文件JXDB_Data4的属性:文件初始大小改为5M,增长方式改为每次按20%增长。
删除日志文件JXDB_log1。
8.使用T-SQL语句删除数据库JXDB。
(二) 自定内容五、出现的问题及解决方法实验2 表结构的建立修改删除及完整性约束条件定义完成以下实验报告:《数据库原理与应用》实验报告一、实验题目实验2 表结构的建立修改删除及完整性约束条件定义二、实验环境操作系统:Windows XP。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
创建“学生表”中的约束
例 4:创建“学生表”中的约束
(1)打开 SSMS窗口,在“对象资源管理器” 窗格中展开“数据库”,展开“ students ”,展开“表” 。
(2)右键单击“学生表” ,选择“设计”。
(3)右键单击“学号”行选择器,然后选择“设置主键”。
此时,学号列建立了主键约束,如图 3-5 所示。
图3-5“学生表”主键的添加
( 4)右键单击“性别”列的行选择器,然后选择“对话框。
如图 3-6 所示。
CHECK约束”,弹出
“
CHECK约束”
图 3-6学生表的CHECK约束对话框
( 5)单击“添加”按钮,如果希望为约束指定一个不同的名称,请在“标识 -名称”框中键入名称。
单击“常规”→“表达式”栏目右侧的按钮,弹出“ CHECK约束表达式”对话框,在对话框中输入:性别 =’男’or 性别 ='女 ',如图 3-7 所示。
图 3-7 学生表性别字段的“ CHECK约束表达式”对话框
(6)单击“确定”按钮,返回到CHECK约束对话框,如图 3-8 所示。
图 3-8学生表CHECK约束设置
(7)接受缺省的约束名称。
(8)展开表设计器类别以设置在何时强制约束:
若要在创建约束前对现有数据测试约束,请选中“在创建或启用时检查现有数
据”。
若要每当复制代理对此表执行插入或更新操作时强制约束,请选中“强制用于
复制”。
若要每当在此表中插入或更新行时强制约束,请选中“强制用于INSERT 和
UPDATE”。
( 9)单击对话框底部的“关闭”按钮。
( 10)选择“工具栏”的“保存”按钮。
( 11)关闭表设计器。
附:使用 T-SQL代码创建“学生表”约束
--添加主键约束
ALTER TABLE学生表ADD CONSTRAINT PK_学生表
PRIMARY KEY CLUSTERED学号( )
GO
--添加 CHECK约束
ALTER TABLE学生表ADD CONSTRAINT CK_学生表
CHECK (性别 ='男 ' OR 性别 ='女 ')
GO
例 5:创建“课程表“中的约束
(1)打开 SSMS窗口,在“对象资源管理器” 窗格中展开“数据库”,展开“ students ”,展开“表”。
(2)右键单击“课程表” ,选择“设计”。
(3)右键单击“课程代码”行选择器,然后选择“设置主键”。
此时,“课程代码”列建立
了主键约束,如图 3-9 所示。
图 3-9 “课程表”主键的添加
(4)右键单击“课程名称”行选择器,然后选择“索引/ 键”。
(5)单击“添加”按钮,在“常规 -类型”选择下拉菜单“唯一键”。
在“常规 -列”选择课程名称(升序),如图 3-10 所示。
图 3-10“课程表”唯一键的添加
( 6)接受缺省的约束名称。
( 7)单击对话框底部的“关闭”按钮。
( 8)右键单击“课程类型”行选择器,在底部“列属性”中,选择“常规-默认值或绑定”,输入’考查’,如图 3-11 所示。
图 3-11“课程表”默认值的添加
( 9)选择“工具栏”的“保存”按钮。
(10)关闭表设计器
提示:由于一个表只能有一个主键,要限制课程名称不能重复只能选择唯一性约束。
附:使用 T-SQL代码创建“课程表”约束。
--添加主键约束
USE students
GO
ALTER TABLE课程表ADD CONSTRAINT PK_课程表
PRIMARY KEY CLUSTERED课程(代码 )
GO
--添加唯一键约束
USE students
GO
ALTER TABLE课程表ADD CONSTRAINT uq_课程表
UNIQUE NONCLUSTERED
(
课程代码ASC
)
GO
--添加默认值约束
USE students
GO
ALTER TABLE 课程表ADD CONSTRAINTDF_课程表 _课程类型DEFAULT ('考查 ') FOR 课程类型
GO
例 6:创建“成绩表”中的约束
(1)打开 SSMS窗口,在“对象资源管理器” 窗格中展开“数据库”,展开“ students ”,展开“表”。
(2)右键单击“成绩表” ,选择“设计”。
(3)右键单击“课程代码”行选择器,然后选择“设置主键”,如图3-12所示。
图 3-12“成绩表”主键的添加
( 4)右键单击“学号”字段,选择“关系”。
(5)选择“添加”生成新的关系。
(6)单击“表和列规范”右边按钮,设置属性。
(7)在主键表中选择“学生表” ,在外键表中默认“成绩表”。
(8)在主键表的“学生表”下面选择“学号”作为主键,在外键表的“成绩表”下面选择“学号”作为外键。
如图3-13 所示。
图 3-13学号外键的设置
( 9)默认关系名,单击“确定” ,回到“外键关系”对话框,如图3-14 所示。
图 3-14 学号外键的添加
(10)单击“关闭”按钮生成关系。
(11)右键单击“课程代码”字段,选择“关系”。
(12)选择“添加”生成新的关系。
(13)单击“表和列规范”右边按钮,设置属性。
(14)在主键表中选择“课程表” ,在外键表中默认“成绩表”。
(15)在主键表的“课程表”下面选择“课程代码”作为主键,在外键表的“成绩表”下面选择“课程代码”为外键。
如图3-15 所示。
图 3-15课程代码外键的设置
( 16)默认关系名,单击“确定”,回到“外键关系”对话框,如图3-16 所示。
图 3-16 课程代码外键的添加
(17)单击“关闭”按钮生成关系。
(18)右键单击“成绩”字段,选择“CHECK约束”。
( 19)选择“添加” ,在右边表达式中输入成绩<=100 and 成绩 >=0,如图 3-21。
图 3-17 成绩表 CHECK约束添加
(20)单击“关闭”按钮,完成成绩约束建立。
(21)选择“工具栏”的“保存”按钮,完成成绩表约束的建立。
(22)关闭成绩表。
附:使用 T-SQL代码创建成绩表约束
--添加主键约束
USE students
GO
ALTER TABLE成绩表ADD CONSTRAINT PK_成绩表
PRIMARY KEY CLUSTERED成绩(编号 )
GO
--对学号字段添加外键约束
USE students
GO
ALTER TABLE成绩表ADD CONSTRAINT FK成绩表 _学生表
FOREIGN KEY(学号 )
REFERENCES学生表(学号 )
GO
--对课程代码字段添加外键约束
USE students
GO
ALTER TABLE成绩表ADD CONSTRAINT FK成绩表 _课程表FOREIGN KEY(课程代码 )
REFERENCES课程表(课程代码 )
GO
--向成绩表添加CHECK约束
USE students
GO
ALTER TABLE成绩表ADD CONSTRAINT CK成绩表CHECK (成绩 >=0 AND 成绩 <=100)
GO。