数据库原理 实验三 数据定义

合集下载

数据库实验三

数据库实验三

计算机与信息学院实验报告系:专业:年级:姓名:学号:22 实验室号计算机号22 实验时间:2013年10月29日指导教师签字:成绩:报告退发(订正、重做)实验名称:(三)数据库的定义实验一、实验目的和要求(1)掌握SQL Server查询分析器的使用方法,加深对SQL和Transact-SQL语言的查询语句的理解。

(2)熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。

(3)熟练掌握数据查询中的分组、统计、计算和组合的操作方法。

二、实验内容和原理1. 基本操作实验用Transact-SQL语句表示下列操作.在学生-课程库中实现其数据查询操作:(1)求数学系学生的学号和姓名。

(2)求选修了高等数学的学生学号、姓名和成绩。

(3)求选修C1课程的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。

(4)获选修课程C1且成绩在80~90分之间的学生学号、姓名及成绩,并将成绩乘以系数0.8输出。

(5)求数学系或计算机系姓张的学生的信息。

(6)求缺少了成绩的学生的学号和课程号。

(7)求C1课程的成绩高于张三的学生学号和成绩。

(8)求其他系中比计算机系学生年龄都小的学生。

(9)查询选修了全部课程的学生的姓名。

(10)求至少选修了学生“张三”所选修的全部课程的学生学号和姓名。

(11)查询每一门课的间接先行课(即先行课的先行课)。

在图书-图书库中实现其查询操作。

(1)查找这样的图书类别:要求类别中最高的图书定价不低于全部按类别分组的图书平均定价的2倍。

(2)求机械工业出版社出版的各类图书的平均定价,用GROUP BY表示。

(3)列出计算机类图书的书号、名称及价格,最后求出册数和总价格。

(4)列出计算机类图书的书号、名称及价格,并求出各出版社这类书的总价格,最后求出全部册数和总价格。

(5)查询计算机类和机械工业出版社出版的图书。

(6)在图书-借阅库中实现其查询操作:将计算机类的书存入永久的计算机图书表中,将借书日期在1999年以前的借阅记录存入临时的超期借阅表。

数据库原理 数据定义—基本表 实验报告

数据库原理 数据定义—基本表 实验报告

贵州大学计算机科学与信息学院软件工程系上机实验报告《数据库原理》实验报告题目实验2 数据定义——基本表姓名*** 班级*** 日期***实验环境:SQL Server 2000实验内容与完成情况:一、实验目的本次实验了解DDL语言的CREATE、DROP、ALTER对表进行操作,学会在SQL Server 2000的查询分析器中用DDL语言进行对表的创建、删除和改动。

二、实验内容1.打开SQL Server 2000的查询分析器,在Test数据库中用DDL语句建立如下四个表。

表Student:字段名类型长度含义Sno Varchar 9 学号Sname Varchar 20 姓名Ssex Varchar 2 性别Sage Smallint 年龄Sdept Varchar 20 所在系备注:主码为Sno,姓名唯一表Course:字段名类型长度含义Cno Varchar 4 课程号Cname Varchar 40 课程名Cpno Varchar 4 先行课Ccredit Smallint 学分备注:主码为Cno外码:Cpno表SC:字段名类型长度含义Sno Varchar 9 学号Cno Varchar 4 课程号Grade Smallint 成绩备注:主码为(Sno,Cno)外码:Sno,Cno表Teacher字段名类型长度含义Tno Varchar 6 教师编号Tname Varchar 20 教师姓名Tsex Varchar 2 性别Tage Smallint 年龄Tdept Varchar 20 所在系Ttitles Varchar 20 职称Twage Int 工资Tdno Varchar 6 系主任编号备注:主码为Tno外码:系主任编号2.在查询分析器中,使用SQL语句将下列数据分别插入Student,Course,SC和Teacher表中。

Student学号Sno 姓名Sname性别Ssex年龄Sage所在系Sdept200215121 李勇男20 CS 200215122 刘晨女19 CS 200215123 王敏女18 MA 200215125 张立男19 IS 200215126 欧阳丽女21 FL Course课程号Cno 课程名Cname先行课Cpno学分Ccredit1 数据库 5 42 数学 23 信息系统 1 44 操作系统 6 35 数据结构7 46 数据处理 27 PASCAL 6 48 DB_Design12SC学号Sno 课程号Cno成绩Grade200215121 1 92200215121 2 85200215121 3 88200215122 2 90200215122 3 80200215122 1200215123 2 50200215123 3 70 Teacher教师编号Tno教师姓名Tname性别Tsex年龄Tage所在系Tdept职称Ttitles工资Twage系主任编号Tdno110001 钟灵女27 CS 讲师2800 110005 110002 杨毅男42 CS 副教授3500 110005 110003 周倩女25 CS 讲师2800 110005 110005 陈文茂男48 CS 教授4000 110005 120001 江南男30 IS 副教授3500 120003 120002 刘洋男28 IS 讲师2800 120003 120003 汪明男44 IS 教授4000 120003 120004 张蕾女35 IS 副教授3500 120003 130001 邹佳羽女25 MA 讲师2800 130003 130002 王力男30 MA 讲师2800 130003 130003 王小峰男35 MA 副教授3500 130003 130004 魏昭男40 MA 副教授3500 130003 140001 王力男32 FL 副教授3500 140005 140002 张小梅女27 FL 讲师2800 140005 140003 吴娅女27 FL 讲师2800 140005 140004 陈姝女35 FL 副教授3500 140005 140005 周斌男44 FL 教授4000 1400053.修改表Teacher,添加一个字段Taddress,类型Varchar,长度30。

数据库原理实验报告数据定义

数据库原理实验报告数据定义

实验项目名称:实验一数据定义(所属课程:数据库系统原理)学院:计算机与信息工程专业班级:姓名:学号:实验日期:实验地点:指导教师:本实验项目成绩:教师签字:日期:一、实验目的:(1)让学生自己完成数据库模式的设计。

(2)用SQL命令建立数据库表。

(3)用可视化环境建立数据库表。

二、实验要求(1)定义数据表。

(2)修改表结构:增添字段,修改字段类型。

(3)删除表结构。

三、实验内容(1)建立学生数据库模式。

(2)修改数据表结构(3)撤销数据表。

建立一个临时表,然后再把它撤销四、实验步骤1、创建学生信息系统数据库stucreate database stuon(name=stu_dat,filename='D:\studentinfo\stu.mdf',size=30mb,maxsize=50mb,filegrowth=5%)log on /*创建日志*/(name=stu_log,filename='D:\studentinfo\stu.ldf',size=10mb,maxsize=30mb,filegrowth=1mb) --创建学生信息表use stugocreate table student(sno char(4) primary key,sname char(8) NOT NULL,ssex char(2) NOT NULL,sage int NOT NULL,sdept char(10) NOT NULL,);2、创建课程表use stugocreate table course(cno char(4) primary key,cname char(10) NOT NULL,credit int NOT NULL,);3、创建选课表use stugocreate table sc(sno char(4) NOT NULL,cno char(4) NOT NULL,cname char(10) NOT NULL,grade int NOT NULL,primary key(sno,cno),foreign key(sno) references student(sno),foreign key(cno) references course(cno),);--修改数据表结构--1.在课程表SC中增加一个cpno字段alter table course add cpno char(4) NOT NULL;--2.从选课表SC中删除cname字段alter table sc drop column cname;--alter table sc add cname char(8)NOT NULL;插入cname字段五、讨论通过本次实验掌握里一些创建数据和创建表的语句,会使用这些语句建立数据库和数据表。

数据库原理实验报告-实验三-数据完整性与安全性控制

数据库原理实验报告-实验三-数据完整性与安全性控制

《数据库原理》实验报告题目:实验三数据完整性与安全性控制学号班级日期2016.10.18一、实验容、步骤以及结果1.利用图形用户界面对实验一中所创建的Student库的S表中,增加以下的约束和索引。

(18分,每小题3分)(1)非空约束:为出生日期添加非空约束。

非空约束:取消表S中sbirth的勾。

可能需要重建表。

(2)主键约束:将学号(sno)设置为主键,主键名为pk_sno。

设主键:单击数据库Student-->单击表-->单击S-->右击sno-->选择‘修改’命令-->对话框中右击sno-->选择‘设置主键’-->修改主键名为‘pk_sno’-->保存(3)唯一约束:为(sname)添加唯一约束(唯一键),约束名为uk_sname。

唯一约束:单击数据库Student-->单击表-->单击S-->右击sname-->选择‘修改’命令→右击sname-->选择‘索引和键’命令-->打开‘索引和键’框图-->添加-->是否唯一改为‘是’-->名称改为‘us_sname’-->关闭。

(4)缺省约束:为性别(ssex)添加默认值,其值为“男”。

设默认约束:单击数据库Student→单击表→单击S→右击sno→选择‘修改’命令→单击cno-->在默认值栏输入‘男’→保存(5)CHECK约束:为SC表的成绩(grade)添加CHECK约束,约束名为ck_grade,其检查条件为:成绩应该在0-100之间。

(6)外键约束:为SC表添加外键约束,将sno,cno设置为外键,其引用表分别是S表和C表,外键名称分别为fk_sno,fk_cno。

2.在图形用户界面中删除以上小题中已经创建的各种约束,用SQL语言分别重新创建第1题中的(2)-(6)小题.(15分,每小题3分,提示:alter table add constraint)删除约束:单击数据库Student-->表-->单击S-->展开键、约束。

数据库原理实验报告(3)实验三数据表的创建与管理实验

数据库原理实验报告(3)实验三数据表的创建与管理实验

数据库原理实验报告(3)实验三数据表的创建与管理实验南京晓庄学院《数据库原理与应⽤》课程实验报告实验三数据表的创建与管理实验所在院(系):数学与信息技术学院班级:学号::1.实验⽬的(1)理解SQL Server 2005常⽤数据类型和表结构的设计⽅法。

理解主键、外键含义,掌握建⽴各表相关属性间参照关系的⽅法。

(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——数据定义一、实验目的:1、熟练使用交互式SQL建立数据库和表,掌握数据定义语句。

2、使用数据定义语句实现完整性约束的设置,加深对于完整性的理解。

3、初步掌握数据更新语句。

二、实验内容:1、使用SQL语句在sql server2008中,创建数据库eductest及其基本表(学生、课程、选课)1)建立一个“学生”表Student,它由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成,是否允许为空,数据类型如下图所示。

其中学号为主属性,Ssex默认为‘男’,Sage大于0,Sname列的必须取唯一值即加unique约束。

2)建立“课程”表Course,包括课程号Cno,课程名称Cname,先修课程Cpno,学分Ccredit,是否允许为空,数据类型如下图所示。

要求Cno建立主键。

按照Cpno建立外键,参照course表中的Cno。

3)建立“选课”表SC,包括学号sno,课程号cno,成绩grade,是否允许为空,数据类型如下图所示。

要求sno+cno建立主键及与Ctudent及Course表联接的外键2、基本表的修改:1)将student表的sname列的unique约束去掉2)将student表的列sname的长度由char(20)改为varchar(20)3)将student表的sname一列允许空值的属性更改成不允许为空4)增加SC表的列grade增加一个约束要求grade>=0 and grade<=1005)给student表增加一个新列Sborn,表示学生的籍贯,类型为char(100),允许为空。

6)将student表的ssex的默认值改为'女'7)将student表的年龄的check约束修改为sage>=10 and sage<=303、插入元组使用insert语句向三张表中插入多个元组,参考书79页。

数据库原理与应(数据定义)

数据库原理与应(数据定义)

数据库原理与应(数据定义)————————————————————————————————作者:————————————————————————————————日期:《数据库原理及应用》电子实验报告题目:SQL语言(1)数据定义日期2012.10.9姓名党存寿学号20102111225 Q Q 1045874070实验环境:Windows XP,Sql Server2005实验目的:1.熟悉Sql Server2005环境2.掌握基本表的定义、删除和修改3.掌握索引的建立和删除实验内容:1.Sql Server2005的启动Sql Server2005的启动方法:单击“开始”按钮→“所用程序”→“Microsoft SOL Server 2005”→“SQL Server Management Studio”。

之后将会出现如图1所示的“连接到服务器”的窗口。

图1 “连接到服务器”窗口注意:①服务器类型选“数据库引擎”②身份验证选“Windows 身份验证”③服务器名称的选择:点击服务器名称的下拉菜单,然后点击“浏览更多”,之后将会出现如图2所示的“查找服务器”窗口。

然后双击数据库引擎,在数据库引擎下就能找到服务器的名称,然后选择该名称并单击“确定”按钮退回到“连接到服务器”窗口。

然后单击“连接”按钮进入SQL 环境。

图2 “查找服务器”窗口2. 定义基本表的语句格式1)create语句SQL 语言使用CREATE TABLE语句定义基本表,其基本格式如下:CREATE TABLE <表名>(<列名> <数据类型>[ <列级完整性约束条件> ][,<列名> <数据类型>[ <列级完整性约束条件>] ] …[,<表级完整性约束条件> ] );<表名>:所要定义的基本表的名字<列名>:组成该表的各个属性(列)<列级完整性约束条件>:涉及相应属性列的完整性约束条件<表级完整性约束条件>:涉及一个或多个属性列的完整性约束条件2)drop语句当某个基本表不再需要时,可以使用DROP TABLE语句删除它。

数据的定义与更新实验总结

数据的定义与更新实验总结

数据的定义与更新实验总结1.引言数据是指描述现象、事物或概念的符号化表达,是信息的基本单位。

在信息时代,数据的定义和更新是数据管理中常见的问题,对于数据的合理定义和及时更新具有重要意义。

本文将从数据定义和数据更新两个方面进行实验总结,探讨数据管理中的相关方法和技巧。

2.数据定义数据定义是指对数据的结构、类型和含义进行规定和描述的过程。

在数据管理中,合理的数据定义能够提高数据的可理解性、可维护性和可扩展性。

以下是数据定义实验总结的要点:2.1数据结构数据结构是指数据之间的关系和组织方式。

在实验中,我们通过定义数据结构来描述数据的层次关系和组织结构。

合理的数据结构可以提高数据的访问效率和操作效果。

2.2数据类型数据类型是指数据的种类和属性。

在实验中,我们通过定义数据类型来规定数据的取值范围和可操作性。

正确选择和使用数据类型可以提高数据的有效性和安全性。

2.3数据含义数据含义是指数据所代表的信息和概念。

在实验中,我们通过定义数据含义来确保数据的准确性和一致性。

清晰地定义数据含义可以避免数据误解和混淆。

3.数据更新数据更新是指对数据进行修改、插入和删除等操作的过程。

在数据管理中,及时的数据更新是确保数据的实时性和有效性的关键。

以下是数据更新实验总结的要点:3.1数据修改数据修改是指对已有数据进行更新和改变的操作。

在实验中,我们通过数据修改来纠正错误、更正信息或改进数据。

正确地进行数据修改可以保证数据的准确性和可靠性。

3.2数据插入数据插入是指向数据库中添加新的数据记录的操作。

在实验中,我们通过数据插入来增加新的信息或扩展数据集。

合理地进行数据插入可以保持数据的完整性和一致性。

3.3数据删除数据删除是指从数据库中永久删除数据记录的操作。

在实验中,我们通过数据删除来清理无效或过时的数据。

准确地进行数据删除可以节约存储空间和提高数据检索效率。

4.实验总结数据的定义和更新是数据管理中的重要环节,合理地进行数据定义和及时地进行数据更新对于数据管理的有效性和可靠性具有重要意义。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《数据库原理及应用》上机实验
实验三数据定义
一、学时
2学时
二、实验类型
设计
三、实验目的
1.巩固数据库的基础知识;
2.熟悉SQL Server2012中常用的数据类型;
3.熟悉和掌握利用查询分析器进行数据表的建立、修改和删除的方法;
4.利用查询分析器用SQL语言定义索引并进行相关操作。

四、实验准备
1.熟悉SQL Server 2012的工作环境;
2.复习有关表的建立、修改和删除的SQL语言命令和方法;
3.复习有关索引的建立、修改和删除的SQL语言命令和方法。

五、实验方法及步骤
1.登陆企业管理器/查询分析器;
2.创建数据库或连接已建立的数据库;
3.在当前数据库上建立新表,并注意定义表的主码,外码;
4.修改表的结构;
5.在表上建立索引;
6.删除表的定义。

六、实验内容
使用企业管理器完成以下操作:
1.创建学生课程数据库SCDB,并在SCDB中完成以下操作。

CREATE DATABASE SCDB
2.创建附录中的学生关系表student:(学号为主码,姓名要求唯一值,各属性数据类型根据实际情况设置);
CREATE TABLE student
(sno CHAR(11)PRIMARY KEY,
sname VARCHAR(12)UNIQUE,
ssex VARCHAR(6),
sage INT,
sdept VARCHAR(50)
)
3.创建附录中的课程关系表course:(课程号为主码,各属性数据类型根据实际情况设置);
CREATE TABLE course
(cno CHAR(3)PRIMARY KEY,
cname VARCHAR(12),
cpo VARCHAR(12),
credit INT
)
4.创建附录中的选课关系表sc:(sno和cno共同作为主码,sno和cno分别为外码,各属性数据类型根据实际情况设置);
CREATE TABLE sc
(sno CHAR(11)FOREIGN KEY REFERENCES student(sno),
cno CHAR(3)FOREIGN KEY REFERENCES course(cno),
grade int,
PRIMARY KEY (sno,cno)
)
5.在表student上增加“出生日期”属性列sbirth,数据类型为日期型。

ALTER TABLE student ADD sbirth date
6.删除表student的“年龄”属性列。

ALTER TABLE student DROP COLUMN sage
7.删除表student姓名列的唯一值约束。

ALTER TABLE student DROP CONSTRAINT [UQ__student__0F1ED583F2CE182F] 8.修改sc表成绩属性列为精确数字型。

ALTER TABLE sc ALTER COLUMN grade DECIMAL(4,2)
9.在表student上,按学号属性列的唯一值方式建立索引。

CREATE UNIQUE INDEX index_sno ON student(sno)
10.在course表上,按课程号属性列升序和课程名属性降序建立唯一值索引。

CREATE INDEX index_cno ON course(cno ASC)
CREATE INDEX index_cname ON course(cname DESC)
1.删除student上的唯一值索引。

DROP INDEX student.index_sno
七、实验思考
1.SQL Server提供的系统数据类型有哪些?
答:SQL Server 提供的系统数据类型有以下几大类,共25种:
1)整数数据类型
int、bigint、smallint、tinyint
2)浮点数据类型
float[n]、decimal[(p[,s])]和numeric[(p[,s])、real
3)字符数据类型
char(n)、varhcar(n|max)、nchar(n)、nvarchar(n|max)
4)日期和时间数据类型
Date、time、datetime、datetime2、smalldatetime、datetimeoffset
5)文本和图形数据类型
text、ntext、image
6)货币数据类型
money、smallmoney
7)位和二进制数据类型
bit、binary(n)、varbinary(n|max)
8) 其他数据类型
rowversion、timestamp、uniqueidentifier、cursor、sql_variant、table、xml
2.什么是主码和外码?它们的作用是什么?
答:主码--是在实体集中区分不同实体的候选码(关系中的某一属性组的值能唯一
地标识一个元组),一个实体集中可以有多个候选码,但是只能有一个主码。

作用:唯一标识一个元组
外码—相对于内码而言。

设F是基本关系R的一个或一组属性,但不是关系R 的码。

如果F与基本关系S的主码K相对应,则称F是R的外码。

作用:用于建立和加强两个表数据之间的链接的一列或多列
3.定义表结构是对数据模型的那个要素进行描述,对主属性有什么要求?
答:定义表结构是对数据模型的数据结构进行描述,候选码的的诸属性才称为主属
性。

4.修改表结构时,能否修改已定义属性的参数?新增加的属性列能否定义为非空?为什么?
答:可以,可以通过SQL语句进行修改。

新增属性列可以定义为空,因为允许多
个属性列为空。

5.分别在表student、sc上按“sno”列的唯一值方式建立索引,可能出现问题吗?情况有什么区别?
答:不会出现问题,因为他们是两张独立的表。

6.能否在非主属性列上建立索引?其恰当的方式是什么?
答:可以,一张表可以有多个索引。

例如:对于经常查询的数据列最好建立索引;
定义为主键、外键的属性列;对于需要在指定范围内的快速或频繁查询的数据列,经常用where子句中的数据列;经常出现在关键字order by、group by、distinct
后面的字段。

八、问题
1.在表的定义中,如何确定属性是NOT NULL / NULL?
答:属性在插入数据要求不能为空时定义为NOT NULL,在数据不要求为非空时
用NULL。

2.能否将student,course,sc表单独以一个数据文件的形式保存在磁盘上?
答:可以,可以将它们转储为sql文件的形势存储在磁盘上。

3.在表student的“SNO”、“SNAME”属性上分别按唯一值方式建立索引和在表student 的“SNO”+“SNAME”上按唯一值方式建立联合索引有无区别?
答:有区别。

创建两个独立索引,索引1 (sname)、索引2 (sdept)那么:
SELECT * FROM student WHERE sdept='IS' AND sname='张立' 将根据
数据库的分析信息,自动选择使用索引1或者索引2中的一个
SELECT * FROM 学生表WHERE sname='张立' 将使用索引1 .
SELECT * FROM 学生表WHERE sdept='IS' 将使用索引2。

组合索引--是组合条件查询时有条件查询的,顺序很重要。

在学生表中创建一个,组合索引(sdept,sname), 那么:
SELECT * FROM student WHERE sdept='IS 'AND sname='张立' 将使用索引。

SELECT * FROM student WHERE sdept='IS '将使用索引。

SELECT * FROM student WHERE sname='张立'将不使用索引。

4.要修改主属性的定义,正确的方式是什么?
答:ALTER TABLE table_name modify col_name col_definition [first|after col_name]此时不需要重新声明主键属性primary key
[附]

表2.3 学生选课关系表sc。

相关文档
最新文档