实验2数据库的简单查询和连接查询实验.doc
文本预览下载声明
实验2 数据库的简单查询和连接查询实验
实验目的
本实验的目的是使学生掌握SQL Server查询分析器的使用方法,加深对SQL和SQL语言的查询语句的理解。熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。
实验时数 2学时
实验内容
简单查询操作。该实验包括投影、选择条件表达,数据排序,使用临时表等。
具体完成以下题目,将它们转换为SQL语句表示,在学生选课数据库中实现其数据查询操作。
求数学系学生的学号和姓名
求选修了课程的学生学号
求选修课程号为‘C1’的学生号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同按学号的升序排列。
求选修课程号为‘C1’且成绩在80~90之间的学生学号和成绩,并成绩乘以0.8输出。
求数学系或计算机系姓张的学生的信息。
求缺少了成绩的学生的学号和课程号
连接查询操作。该实验包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等。
查询每个学生的情况以及他所选修的课程
求学生的学号、姓名、选修的课程及成绩
求选修课程号为‘C1’且成绩在90以上的学生学号、姓名和成绩
查询每一门课程的间接先行课(即先行课的先行课)
实验方法
将查询需求用SQL语言表示;在SQL Server查询分析器的输入区中输入SQL查询语句;设置查询分析器的结果区为Standard Execute(标准执行)或Execute to Grid(网格执行)方式;发布执行命令,并在结果区中查看查询结果;如果结果不正确,要进行修改,直到正确为止。
--------------------------------------------------实验内容---------------------------------------------------
if exists(select * from sys.databases where name=test2)
drop database test2
create database test2
on
(
name=test2_db,
filename=I:\数据库实验--罗颖\test2.mdf,
size=3mb,
filegrowth=1mb,
maxsize=20mb
)
log on
(
name=test2_log,
filename=I:\数据库实验--罗颖\test2.ldf,
size=3mb,
filegrowth=1mb,
maxsize=20mb
)
go
use test2
go
--学生表Student
if exists(select * from sys.objects where name=Student)
drop table Student
create table Student
(
Sno char(8),
Sname char(8),
Ssex char(2),
Sage int,
Sdept char(20)
primary key(Sno)
)
go
insert into Student(Sno,Sname,Ssex,Sage,Sdept)
values(1001,李勇,男,20,计算机)
insert into Student(Sno,Sname,Ssex,Sage,Sdept)
values(1002,王五,女,21,数学)
insert into Student(Sno,Sname,Ssex,Sage,Sdept)
values(1003,张三,男,20,计算机)
insert into Student(Sno,Sname,Ssex,Sage,Sdept)
values(1004,李四,女,23,计算机)
select * from Student
--课程表Course
if exists(select * from sys.objects where name=Course)
drop table Course
create table Course
(
Cno char(8),
Cname char(20),
Cpno int,
Ccredit int
primary key(Cno)
)
go
insert into Course(Cno,Cname,Cpno,Ccredit) values(1,数据库,5,4)
insert into Course(Cno,Cname,Cpno,Ccredit) values(2,数学,NULL,2)
insert into Course(Cno,Cname,Cpno,Ccredit) values(3,信息系统,1,4)
insert into Course(Cn
显示全部