第一范文网 - 专业文章范例文档资料分享平台

数据库创建查询实验

来源:用户分享 时间:2020-06-24 本文由冰蓝梦境 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

1)创建教务管理数据库JWGL的sql命令

CREATE DATABASE JWGL ON /* 数据文件的描述*/

( NAME=JWGL_data, /* 数据库逻辑文件名*/

FILENAME='E:\\DATAJWGL.MDF', /* 数据库文件要保存的路径

及文件名*/

SIZE=4, /* 初始数据库文件的大小*/

MAXSIZE=10, /* 数据库文件的最大值(MB)*/

FILEGROWTH=10% ) /* 数据文件的自动增长率*/

LOG ON /* 事务日志描述*/

( NAME=JWGL_log, /* 日志逻辑文件名*/

FILENAME='E:\\DATAJWGL_log.mdf', /* 日志文件要保存

的路径及文件名*/

SIZE=1, /* 初始日志文件的大小*/

MAXSIZE=6, /* 日志文件的最大值*/

FILEGROWTH=1 /* 增长率可以是百分比也可以是具体值*/);

(2)创建学生信息表S

USE JWGL

CREATE TABLE S (

sno CHAR(9) NOT NULL /* 学号字段*/

CONSTRAINT PK_sno PRIMARY KEY CLUSTERED, /* 主键约束*/

sname CHAR(8) NULL, /* 姓名字段*/

sex CHAR(1) NULL,/* 性别字段*/

age SMALLINT NULL, /* 年龄字段*/

sdept VARCHAR(20) NULL /* 系别字段*/ );

(3)创建课程表C

USE JWGL

CREATE TABLE C (

cno CHAR(4) NOT NULL /* 课程号字段*/

CONSTRAINT PK_cno PRIMARY KEY CLUSTERED, /* 主键约束*/

cname CHAR(20) NULL, /* 课程名字段*/

cpno CHAR(4) NULL, /* 先行课程号*/

credit Smallint NULL /* 学分字段*/ );

(4)创建学生选课表SC

USE JWGL

CREATE TABLE SC (

sno CHAR(9) NOT NULL, /* 学号字段*/

cno CHAR(4) NOT NULL, /* 课程编号字段*/

grade Decimal(5,1) NULL check(grade>=0 and grade<=100),

/* 成绩字段,完成用户自定义完整性检查*/

PRIMARY KEY(sno,cno), /* 主码由两个属性构成,必须作为表级完整性进行定义*/

FOREIGN KEY(SNO) REFERENCES S(SNO), /* 表级完整性约束条件,SNO是外码,被参照表是S */

FOREIGN KEY(CNO) REFERENCES C(CNO) /* 表级完整性约束条件,CNO是外码,被参照

表是C */

(5)创建教师表T

); USE JWGL CREATE TABLE T( tno char(3),

tname varchar(20),

sex char(2) check (sex in ('男','女')), birthday datetime, dept char(20), title varchar(15), address nvarchar(50), primary key(tno),

foreign key (tno) references Salary(tno), check (tno like 't%') );

(6)创建工资表Salary

USE JWGL

CREATE TABLE Salary( tno char(3), jbgz char(8), zwgz char(8), hj char(9), primary key(tno),

foreign key (tno) references T(tno));

2. 修改表结构,具体要求如下:

(1) 将表C的cname列的数据类型改为Varchar(40)。

use JWGL

ALTER table C ALTER COLUMN cname Varchar(40);

(2) 为表S增加一个新列: birthday(出生日期), 类型datetime。

USE JWGL;

ALTER TABLE S ADD birthday datetime;

(3) 为表T增加一个主键约束PK_tno,主键为“tno”字段。

USE JWGL

ALTER TABLE T add tno tno primary key;

(4) 为S表的“sex”字段创建一个缺省约束DEF_sex,缺省值为?男?。

USE JWGL

ALTER TABLE S add constraint def_sex default'男'for sex;

(5) 为“sdept”字段创建一个检查约束CK_sdept,使得所在系必须是?计算机?、?数学?或?信息?之一。

USE JWGL

alter table S add constraint ck_sdept check(sdept in('计算机','数学','信息'));

6) 为S表的“sname”字段增加一个唯一性约束UK_sname。

USE JWGL alter table s

add constraint UK_sname unique(sname);

(7) 为SC表建立外键,依赖于S表的FK_sno约束。

USE JWGL alter table sc

add constraint FK_sno

foreign key(sno) references s(sno);

(8) 删除S表“sdept”字段的CHECK约束CK_sdept。

USE JWGL alter table S

drop constraint CK_sdept;

4. 建立一个临时表,然后将其删除。 USE JWGL

CREATE TABLE temporary(

sno CHAR(9) primary key, sname CHAR(8) NOT NULL,

sex char(2) check (sex in ('男','女')), age SMALLINT );

drop table temporary; 、

基于JWGL数据库,完成如下查询要求。

1. 简单查询操作(此部分查询包括投影、选择条件表达、数据排序等)

(1) 求计算机系的学生学号和姓名。 SELECT sno,sname From s

WHERE sdept=?计算机?;

(2) 求选修了课程的学生学号。

Select distinct sno

From sc

(3) 查询表C中所有学分大于2并且序号小于5的课程信息。 SELECT * FROM c

WHERE credit>2 and credit<5;

(4) 从表C中查询学分大于3的课程信息,并按升序排列。 SELECT * FROM c

WHERE credit>3

ORDER BY credit ASC;

(5) 从表C中查询出课程号为1或3的课程的课程号、课程名称以及学分。 SELECT cno,cname,credit FROM c

Where cno=?1? or cno=?3?;

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

SELECT sno,grade From sc

Where cno=?1?

Order by grade desc,sno asc;

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新高中教育数据库创建查询实验 全文阅读和word下载服务。

数据库创建查询实验 .doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1100501.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top