市场营销0902班090503044罗美贵(1)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
课程名称:数据库技术
实验项目:结构化查询语言SQL 专业班级:市场营销0902 姓名:罗美贵学号090503044 实验室号:文科楼127 实验组号:
实验时间: 2011.11.13 批阅时间:
指导教师:孟艳红成绩:
沈阳工业大学实验报告
专业班级:市场营销0902 学号:090503044 姓名:罗美贵实验项目:结构化查询语言SQL
一、实验目的
1.掌握SQL创建查询的方法
2.掌握使用SQL语言进行简单的查询
3.掌握使用SQL语言进行连接查询
二、实验内容
1.学习掌握创建表的方法
2.学习向表中添加记录的方法
3.设置表间的关系
4.学习SQL语言的语法格式
三、实验方案
1.创建学生管理数据库
2.在数据库中建立学生表、课程表、选课表、教师表
3.建立4个表之间关系
4.使用SQL语言完成查询任务
四、实验步骤或程序
(见附件)
附件一: 沈阳工业大学实验报告
专业班级:市场营销0902 学号:090503044 姓名:罗美贵
实验项目:结构化查询语言SQL
实验步骤或程序
一、创建数据库及表,并向表中添加数据。学生表数据如下:课程表数据如下:
教师表数据如下:
选修表数据如下:
二、创建查询
1简单查询
(1)查询全体学生的姓名,学号。
在SQL窗口输入语句:
SELECT学号,姓名FROM学生。运行结果如下:
(2)查询全体教师的教师、姓名和职称。
在SQL语言窗口输入如下语句:
SELECT教师、姓名、职称FROM教师。
运行结果如下:
(3)查询全体学生的学号、姓名、性别和专业。
在SQL窗口输入如下语句:
SELECT 学号,姓名,性别,专业FROM学生。运行结果如下:
分析:简单查询是基于单个表但可以设置简单的查询条件。这样的查询由Select和From短语构成无条件查询,或由Select、From和Where构成的条件查询。
2条件查询
(1)查询1985年出生的学生姓名,性别,和所学的专业在SQL窗口输入语句:
SELECT姓名,性别,专业FROM学生WHERE year(出生年月)=1985 运行结果如下:
(2)查询开设的全部课程的课程号,课程名,和主讲教师姓名。
在SQL窗口输入语句:
SELECT 课程号,课程名,教师.姓名;
FROM课程,教师;
WHERE 课程.教师号=教师.教师号
运行结果如下:
(3)查询年龄大于20岁的女同学学号,姓名、性别和专业。
在SQL 窗口输入如下语句:
SELECT学号、姓名、性别、专业FROM学生。
WHERE(date()-出生年月)/365>20.and.性别='女'
运行结果如下:
(4)查询职称为副教授的教师姓名和性别。
在SQL窗口输入如下语句:
SELECT 姓名、性别FROM教师
WHERE职称='副教授'
运行结果如下:
分析:条件查询是属于简单查询的内容,也基于单个表的查询,其语句由Select、From和Where构成。
3连接查询
(1)查询所有选修了课程的学生姓名,课程名及成绩。
在SQL窗口输入语句:
SELECT学生.姓名,课程.课程名,选修.成绩;
FROM 学生,课程,选修;
WHERE学生.学号=选修.学号and选修.课程号=课程.课程号
运行结果如下:
(2)查询选修了赵洪斌老师课程的学生号、姓名、课程名和成绩。在SQL窗口输入语句:
SELECT 学生.学号,学生.姓名,课程.课程名,选修.成绩;
FROM 学生,选修,课程,教师;
WHERE 学生.学号=选修.学号 AND 选修.课程号=课程.课程号; AND 课程.教师号=教师.教师号 AND 教师.姓名='赵洪斌'
运行结果如下:
分析:连接查询涉及多张表的查询,是一种基于多个关系的查询。由Select、From和Where短语构成,该查询较为复杂,主要关键在于分析、明确表与表之间的内在关系及要显示的内容与表的关系等。
4嵌套查询
(1)查询没有学习C001课程的学生姓名、性别及专业。
在SQL窗口输入如下语句:
SELECT 姓名,性别,专业;
FROM 学生;
WHERE 学号NOT IN (SELECT 学号;
FROM 选修;
WHERE 课程号='C001')
运行结果如下:
分析:嵌套查询是在查询语句中还包含一个查询语句,即在Select 语句中还包含一个Select语句。在该查询中,外层Where子句中嵌套一个Select语句,嵌套的子句查询在外层查询之前执行。
5分组计算查询
(1)求男生的总人数和平均年龄.
SELECT COUNT(*),A VG(YEAR(DATE())-YEAR(出生年月)); FROM 学生;
WHERE 性别='男'
运行结果如下:
(2)统计选修了课程的学生人数.
SELECT COUNT (DISTINCT学号) FROM 选修
运行结果如下:
(3)统计每门课程的学生选修人数。
在SQL窗口输入语句:
SELECT 课程号,count(学号) from 选修 group by 课程号
运行结果如下:
(4)求每名教师每门课程的学生选修人数,要求显示教师号、课程