最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

数据库实验1:建数据库,实现简单查询

来源:动视网 责编:小OO 时间:2025-09-24 10:15:45
文档

数据库实验1:建数据库,实现简单查询

GDOU-B-11-112广东海洋大学学生实验报告书实验名称实验一:建数据库,实现简单查询课程名称数据库原理与设计成绩学院(系)软件学院专业计算机软件工程班级1093学生姓名唐智羽学号200911701326实验地点科技楼513实验日期11-04-251.创建学生Student数据库(包含学生、课程和选修三个表),写出创建三个基本表的CREATE语句,列名、数据类型和约束如下:列名描述数据类型约束cStudentNo学号长度为12的定长字符串主键vStudentName姓名变长字符串,长度自定
推荐度:
导读GDOU-B-11-112广东海洋大学学生实验报告书实验名称实验一:建数据库,实现简单查询课程名称数据库原理与设计成绩学院(系)软件学院专业计算机软件工程班级1093学生姓名唐智羽学号200911701326实验地点科技楼513实验日期11-04-251.创建学生Student数据库(包含学生、课程和选修三个表),写出创建三个基本表的CREATE语句,列名、数据类型和约束如下:列名描述数据类型约束cStudentNo学号长度为12的定长字符串主键vStudentName姓名变长字符串,长度自定
GDOU-B-11-112

广东海洋大学学生实验报告书

实验名称实验一:建数据库,实现简单查询课程名称数据库原理与设计成绩
学院(系)软件学院专业计算机软件工程班级1093
学生姓名唐智羽学号200911701326 实验地点

科技楼513

实验日期11-04-25
1.创建学生Student数据库(包含学生、课程和选修三个表),写出创建三个基本表的CREATE语句,列名、数据类型和约束如下:

列名描述数据类型约束
cStudentNo学号长度为12的定长字符串

主键
vStudentName姓名变长字符串,长度自定非空
iSage年龄整型年龄在0到100岁之间

nSgender性别Unicode编码方式的字符串型

性别只能取‘男’或‘女’
cClass班级定长字符串,长度10

形如‘2009117011’

vDepartment院系变长字符串,长度自定取默认值‘计算机系’
列名描述数据类型约束
cCourseNo课程号长度为8的定长字符串

主键
vCourseName课程名变长字符串,长度自定
vTeacher教师名变长字符串
iCredit学分带小数点的数值型0到5之间

列名描述数据类型约束
cStudentNo学号和学生表学号一致外键,引用学生表学号
cCourseNo课程号和课程表的课程号一致外键,引用课程表课程号
iGrade成绩整型0到100分之间

在Student数据库中,写出完成如下操作的T-SQL语句:

(1) 修改学生表,添加一个新的属性列‘籍贯’。

(2) 修改课程表,删除学分列上的取值0-5的约束。

(3) 修改选修表,将成绩列的数据类型修改了浮点型。(修改类型前先删除此列上的约束)

(4) 修改课程表,给课程名添加一个取值唯一的约束。

/* 新建Student_Course数据库*/

CREATE DATABASE Student_Course     

ON PRIMARY

(

    NAME='student_course.mdf',

    FILENAME='E:\\Document\\SQL_DATA\\student_course.mdf',

    SIZE=3mb,

    MAXSIZE=20mb,

    FILEGROWTH=10%

)

/* 创建学生表Student */

CREATE TABLE Student(

    cStudentNo CHAR(12) PRIMARY KEY,

    vStudentName VARCHAR(6) NOT NULL,

    iSage INT CHECK(iSage > '0' AND isage < '100'),

    nSgender NCHAR(5) CHECK(nSgender='男' OR nSgender='女'),

    cClass CHAR(10),

    vDepartment VARCHAR(20) DEFAULT '计算机系'

)

/* 创建课程表Course */

CREATE TABLE Course(

    cCourseNo CHAR(8) PRIMARY KEY,

    vCourseName VARCHAR(10),

    vTeacher VARCHAR(10),

    iCredit FLOAT CHECK(iCredit >= 0 AND iCredit <= 5)

)

/* 创建选修表SC */

CREATE TABLE SC(

    cStudentNo CHAR(12) NOT NULL,

    cCourseNo CHAR(8) NOT NULL,

    iGrade INT CHECK(iGrade >=0 AND iGrade<=100),

    PRIMARY KEY(cStudentNo,cCourseNo),

    FOREIGN KEY (cStudentNo) REFERENCES Student(cStudentNo),

    FOREIGN KEY (cCourseNo) REFERENCES Course(cCourseNo)

)

/* 添加籍贯(BirthPlace)列 */

ALTER TABLE Student ADD BirthPlace VARCHAR(50)

/* 修改课程表,删除学分列上的取值0-5的约束 */

ALTER TABLE Course DROP CK__Course__iCredit__023D5A04

/* 修改选修表,将成绩列的数据类型修改了浮点型 */

ALTER TABLE SC DROP CK__SC__iGrade__0519C6AF  /* 删除iGrade列的约束 */

ALTER TABLE SC ALTER COLUMN iGrade FLOAT

/* 修改课程表,给课程名添加一个取值唯一的约束 */

ALTER TABLE Course ADD UNIQUE(vCourseName)

2.执行脚本,生成Recruitment和Globaltoyz数据库,并完成下列查询。

注:首先开启数据库服务,启动Microsoft SQL SERVER Management Studio;

解压缩SQL SCRIPT文件到SQL SCRIPT文件夹,进入‘Guided Practice’目录,点击打开CREATERECRUITMENTDB文件,将该脚本文件在SQL SERVER查询编辑器中打开,点击工具栏上的‘执行’按钮执行该脚本。执行成功后检查刷新服务,观察是否创建了一个名为‘Recuitment’的数据库。接下来,同样点击打开该目录下的另一文件‘CREATERECRUITMENTOBJECTS’,按同样的方法执行脚本,执行成功后会生成Recuitment数据库中的一系列基本表。

(GlobalToyz数据库的安装脚本在‘UnGuided Practice’目录下,安装过程和Recuitment类似,安装的脚本文件为‘CREATEGLOBALTOYZDB’和‘CREATEGLOBALTOYZOBJECTS’,按先后次序安装)

安装后请熟悉一下两个数据库的基本表,了解一下该数据库主要描述的数据应用环境。

安装后写出在GlobalToyz中的查询语句,(只要求写出SELECT 语句,不需要写出查询结果)

(1)查询日期为2001年5月22日的订单详情。

select * from orderdetail

where corderno=(select corderno from orders 

where dorderdate=2001-5-22) 

(2)查询订单总额超过75的订单详情。

select * from orderdetail

where corderno in (select corderno from orders

where mtotalcost > 75) 

(3) 订单延误将按照总价值mTotalCost的5倍赔偿,查询每份订单的订单号和需要赔偿的金额

select cOrderNo, 5*mToyCost  from OrderDetail

(4) 查询以‘I’开头,国家名称由五个字母构成的国家ID和名称。

select ccountryid,ccountry from country 

where ccountry like 'I____'

(5) 查询Shipment表中dActualDeliveryDate为空的记录。

select * from shipment 

where dactualdeliverydate is null

(6) 对于PickofMonth表,查询月销售量最高的玩具ID和销售的月份和年份。

select ctoyid,simonth,iyear from pickofmonth

where itotalsold in (select max(itotalsold) from pickofmonth)

(7) 对于PickofMonth表,统计2000年销售的玩具的总数量。

select cout(ctoyid) from pickofmonth 

where iyear = '2000'

(8) 对于Toyz表,查询玩具的最高售价,最低售价,和平均售价。

select max(mtoyrate) highest,min(mtoyrate) lowest,avg(mtoyrate) average from toys

(9) 对于Shopper表,统计‘California’州的购买者人数。

select count(*) from shopper 

where ccity = 'california'

(10) 对于PickofMonth表,查询2001的销售记录,要求按照月销售额按照从小到大的顺序显示。

select * from pickofmonth 

where iyear = '2001'

order by itotalsold

(11) 对于ShippingRate表,计算每个国家的每磅的平均运费。

select avg(mrateperpound) 

from shippingrate

group by ccountryid

指导教师日期
注:请用A4纸书写,不够另附纸。                                    第   页,共   页

文档

数据库实验1:建数据库,实现简单查询

GDOU-B-11-112广东海洋大学学生实验报告书实验名称实验一:建数据库,实现简单查询课程名称数据库原理与设计成绩学院(系)软件学院专业计算机软件工程班级1093学生姓名唐智羽学号200911701326实验地点科技楼513实验日期11-04-251.创建学生Student数据库(包含学生、课程和选修三个表),写出创建三个基本表的CREATE语句,列名、数据类型和约束如下:列名描述数据类型约束cStudentNo学号长度为12的定长字符串主键vStudentName姓名变长字符串,长度自定
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top