1、一 实验目的1. 观察查询结果, 体会SELECT语句实际应用;2. 要求学生能够在查询分析器中使用SELECT语句进行简单查询。3. 熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。二 实验准备1. 完成实验四,成功建立了基本表。2. 了解简单SELECT语句的用法。3. 比较熟悉查询分析器中的SQL脚本运行环境。三 实验要求1. 完成简单查询和连接查询操作,并验收实验结果提交实验报告四 实验内容所有的查询全部用Transact-SQL语句实现1. EDUC数据库里面基本表的数据student表snosnamesexnativebirthdaydnospnoclassnoenti
2、mehometel11张三三中国1990-1-1数学系062007-9-1四川8468110122李四男1989-5-6计算机系052006-9-18468120133王五1988-6-5文学院072008-9-18468222244孙六女1990-4-9商学院042005-9-1陕西84476554course表CnoSpnoCnameCtnoexperimentlecturesemestercreditC1高等代数01243634C2数学分析024826C3运筹学0312student_course表SnoTcidScore10019010028810039879teacher表TnoTn
3、ameBirthdayDnoPnoHomeZipcodeTelEmail101王小二1960-8-1绵阳6216031345545899123102孙鑫1967-9-1计算系德阳6100003444444444456103赵强1978-5-4达州3455557824878787789teacher_course表Classnoschoolyearclasstimeclassroomweektime一学年星期一1101二学年星期二11025三学年星期三71021. 简单查询操作此部分查询包括投影、选择条件表达、数据排序、使用临时表等。 对EDUC数据库实现以下查询: 求计算机系的学生学号和姓名;
4、 求选修了课程的学生学号; 求选修C1 课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列; 求选修课程C1 且成绩在8090 之间的学生学号和成绩,并将成绩乘以系数0.75 输出; 求计算机系和数学系的姓张的学生的信息; 求缺少了成绩的学生的学号和课程号。 将2000以后的成绩大于90分的学生成绩存入永久成绩表;将2000年以前的成绩存入临时成绩表中。2. 连接查询操作对EDUC数据库实现以下查询:1 查询每个学生的情况以及他(她)所选修的课程;2 求学生的学号、姓名、选修的课程名及成绩;3 求选修C1 课程且成绩在90 分以上的学生学号、姓名及成绩;4
5、查询每一门课的间接先行课。五.实验指导简单SELECT语句1.简单查询操作1 求计算机系的学生学号和姓名;代码:SELECT sno,snameFROM studentWHERE dno=计算机2 求选修了课程的学生学号; 代码:SELECT DISTINCT sno FROM student_course2.连接查询操作2 求生的学号、姓名、选修的课程名及成绩;3 选修C1 课程且成绩在90 分以上的学生学号、姓名及成绩;4 询每一门课的间接先行课。实验八 子查询1 掌握子查询的表示。2 进一步掌握SQL Server 查询分析器的使用方法,加深对SQL 语言的嵌套查询语句的理解1 掌握SQ
6、L语句的基本语法,并熟悉查询分析器的工作环境。2 完成了实验四,创建了数据库EDUC及各个基本表。3 了解子查询的表示方法,熟悉IN 比较符、ANY、EXISTS操作符的用法。1. 在实验开始之前做好准备工作。2. 完成实验,并验收实验结果提交实验报告。1在数据库EDUC中实现一下查询:1)求选修了高等数学的学生学号和姓名;2)求C1 课程的成绩高于张三的学生学号和成绩;3)求其他系中比计算机系某一学生年龄小的学生信息(即求其它系中年龄小于计算机系年龄最大者的学生);4)求其他系中比计算机系学生年龄都小的学生信息;5)求选修了C2 课程的学生姓名;6)求没有选修C2 课程的学生姓名;7)查询选
7、修了全部课程的学生的姓名;8)求至少选修了学号为“S2”的学生所选修的全部课程的学生学号和姓名。2提高操作实验建立“工程-零件”数据库及如下4个表,并输入实验数据,用SQL语句实现如下三个查询:1) 求供应项目j4红色零件的供应商号及名称2) 求没有上海供应商生成的零件的项目号3)至少使用了供应商S5所供应全部零件的项目号。表结构如下:供应商(S):列名类型长度是否可为空供应商代码Char姓名50所在城市20联系电话工程(J):工程代码工程名负责人10预算8零件(P):零件代码零件名规格产地颜色供应零件(SPJ):数量Int供应商表:供应商代码为主码工程表:工程代码为主码零件表:零件代码为主码
8、供应零件表:供应商代码、工程代码、零件代码为联合主码;供应商代码为外码,参照表、列是供应商表的供应商代码列;工程代码为外码,参照表、列是工程表的工程代码列;零件代码为外码,参照表、列是零件表的零件代码列实验数据如下:供应商:S1北京供应商北京010*S2天津供应商天津022*S3重庆供应商重庆023*S4上海供应商1上海021*S5广州供应商广州020*S6上海供应商2工程:J1工程1丁一200000J2工程2赵二60000J3工程370000J4工程480000J5工程5150000零件:P1螺丝中济南红色P2主板集成深圳绿色P3显卡独立香港蓝色P4声卡P5网卡100M黑色P6鼠标无线供应零
9、件:100500150200五.实验指导 子查询2步骤1:按照实验四的方法建立数据库“工程_零件”,建立表“S”“J”“P”“SJP”步骤2:右键点击表“S”选择“打开表”,填入供应商信息同理将信息填入表“J”“P“SPJ”3. 提高操作实验:SELECT 供应商代码,姓名FROM SWHERE 供应商代码 IN( SELECT 供应商代码 FROM SPJ WHERE 工程代码=J4AND 零件代码 IN( SELECT 零件代码 FROM P WHERE 零件颜色=红色);(注意将可用数据库选择为“工程_零件”) 请自己完成实验九 使用子句的SELECT语句1. 熟练掌握数据查询中的分组、
10、统计、计算和组合的操作方法。2. 进一步掌握SQL Server 查询分析器的使用,加深对SQL 语言的嵌套查询语句的理解。1. 了解SELECT语句的GROUP BY和ORDER BY子句的作用。2. 了解统计函数和分组统计函数的使用方法。3. 熟悉查询分析器的运行环境。1. 在实验之前做好准备。 所有查询都全部用SQL语句实现1. 在数据库EDUC中实现如下查询1)求学生的总人数。2)求选修了课程的学生人数。3)求课程的课程号和选修该课程的人数。4)求选修课超过3 门课的学生学号2. 提高操作实验 建立“图书_读者”数据库及如下3个表,并输入实验数据,用SQL语句实现如下五个查询:1)查找
11、这样的图书类别:要求类别中最高的图书定价不低于全部按类别分组的图书的平均定价的2 倍。2)求机械工业出版社出版的各类图书的平均定价,分别用GROUP BY 和GROUP BY ALL表示。3)列出计算机类图书的书号、名称及价格,最后求出册数和总价格。4)列出计算机类图书的书号、名称及价格,并求出各出版社这类书的总价格,最后求出全部册书和总价格。5)查询计算机类和机械工业出版社出版的图书。图书:书号char类别是出版社作者书名定价money读者:编号单位性别电话15借阅:串号读者编号借阅日期datetime图书表:书号为主码读者表:编号为主码;性别只能是“男”或“女”的CHECK 约束借阅表:串
12、号为主码;书号为外码,参照表、列是图书表的书号列;读者编号为外码,参照表、列是读者表的编号列;书号和读者编号的联合UNIQUE 约束实验数据:计算机机械工业出版社王民数据结构80张建平计算机应用电子工业出版社王敏数据库技术1004谭浩强C 语言251005英语中国人民大学出版社张锦芯应用文写作1006管理高等教育出版社Robison管理学1007Fayol工业管理701008数学李平线性代数1009Durark公司的概念141010徐新国统计学数学院81234567经济学院82234567管理学院8323456784234567历史文化学院85234567物理学院86234567周七生命科学院
13、87234567徐八化学院88234567宋九信息学院89234567刘十计算机学院802345672000-1-12002-3-51998-6-181997-12-82001-5-42005-7-25997-11-3082004-2-1091996-9-12000-6-4五.实验指导使用子句的SELECT语句步骤1:右键点击性别“CHECK约束”“添加”-在表达式栏目中填入“性别 in (男,女)”1 串号为主码;2 书号为外码,参照表、列是图书表的书号列;右键点击“书号”,选择“关系”点击“添加”,将选择外键为“书号”3 读者编号为外码,参照表、列是读者表的编号列;(参照2)4 书号和读者
14、编号的联合UNIQUE 约束选中“书号”和“读者编号”右键点击“索引/键”将唯一性改为“是”,关闭并保存实验十 创建视图1掌握创建视图的SQL语句的用法。2掌握使用企业管管理器创建视图的方法。3掌握使用创建视图向导创建视图的方法。4掌握查看视图的系统存储过程的用法。5掌握修改视图的方法。1了解创建视图方法。2了解修改视图的SQL语句的语法格式。3了解视图更名的系统存储过程的用法。4了解删除视图的SQL语句的用法。1. 用不同的方法创建视图。2. 提交实验报告,并验收实验结果。1. 创建视图(1) 使用企业管理器创建视图 在EDUC库中以“student”表为基础,建立一个名为“V_计算机系学生
15、”的视图。在使用该视图时,将显示“student”表中的所有字段.再点击“关闭”,(2) 使用SQL语句创建视图 在查询分析器中建立一个每个学生的学号、姓名、选修的课名及成绩的视图S_C_GRADE; 建立一个所有计算机系学生的学号、选修课程号以及平均成绩的视图COMPUTE_AVG_GRADE;2. 修改视图 (1) 使用企业管理器修改视图在企业管理器中将视图COMPUTE_AVG_GRADE中改成建立在数学系的学生学号、选修课程号以及平均成绩的视图。(2) 使用SQL语句修改视图 在查询分析器中使用更改视图的命令将上面建立的视图“V_计算机系学生”更名为“V_计算机系男生”。3. 删除视图
16、(1) 使用企业管理器删除视图 用企业管理器删除视图“V_计算机系学生”(2) 使用SQL语句删除视图用SQL语句删除视图COMPUTE_AVG_GRADE;五.实验指导创建视图4. 创建视图(2) 使用企业管理器创建视图 展开EDUC子目录-右键点击“视图”-选择”新建视图” 步骤2:选择添加student步骤3:选择student所有字段,关闭保存为“V_计算机系学生” ,右键点击视图“V_计算机系学生”,选择打开视图视图-模板资源管理器-VIEW-Create View-根据模板输入代码:USE EDUCGOIF object_id(NS_C_GRADE, V) IS NOT NULL
17、DROP VIEW S_C_GRADECREATE VIEW S_C_GRADE ASSELECT student.sno,sname,cname,score FROM student,course,student_courseWHERE student.sno=student_course.sno由学生自己独立完成5. 修改视图 步骤:右键点击视图名称,选择“修改”在查询分析器中使用更改视图的命令将上面建立的视图“V_计算机系学生”更名为“V_计算机系男生”。新建查询-输入:sp_rename V_计算机系学生, V_计算机系男生6. 删除视图(3) 使用企业管理器删除视图右键点击所要删除的视图名称,选择“删除”(4) 使用SQL语句删除视图用SQL语句删除视图C
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1