课下实验2-数据查询
ACCESS实验-数据查询
ACCESS实验查询一、实验目的1. 掌握各种查询的创建方法2. 掌握查询条件的表示方法3. 掌握应用SQL中SELECT语句进行数据查询的方法4. 理解SQL中数据定义和数据操纵语句二、实验内容与要求1.创建各种查询2.使用SQL中SELECT语句进行数据查询3.使用SQL语句进行数据定义和数据操纵三、实验步骤案例一:利用“简单查询向导”创建选择查询1.单表选择查询要求:以“教师”表为数据源,查询教师的姓名和职称信息,所建查询命名为“教师情况”。
操作步骤:(1)打开“教学管理.accdb”数据库,单击“创建”选项卡,“查询”组——单击“查询向导”弹出“新建查询”对话框。
如图2-1所示。
图2-1创建查询(2)在“新建查询”对话框中选择“简单查询向导”,单击“确定”按钮,在弹出的对话框的“表与查询”下拉列表框中选择数据源为“表:教师”,再分别双击“可用字段”列表中的“姓名”和“职称”字段,将它们添加到“选定的字段”列表框中,如图2-2所示。
然后单击“下一步”按钮,为查询指定标题为“教师情况”,最后单击“完成”按钮。
图2-2简单查询向导2.多表选择查询要求:查询学生所选课程的成绩,并显示“学生编号”、“姓名”、“课程名称”和“成绩”字段。
操作步骤:(1)打开“教学管理.accdb”数据库,在导航窗格中,单击“查询”对象,单击“创建”选项卡,“查询”组——单击“查询向导”弹出“新建查询”对话框。
(2)在“新建查询”对话框中选择“简单查询向导”,单击“确定”按钮,在弹出的对话框的“表与查询”。
先选择查询的数据源为“学生”表,并将“学生编号”、“姓名”字段添加到“选定的字段”列表框中,再分别选择数据源为“课程”表和“选课成绩”表,并将“课程”表中的“课程名称”字段和“选课成绩”表中的“成绩”字段添加到“选定的字段”列表框中。
选择结果如图2-3所示。
图2-3多表查询(3)单击“下一步”按钮,选“明细”选项。
SQL实验二:数据库查询实验报告
实验二数据库的查询实验实验目的和要求(1)掌握SQL Server查询分析器的使用方法,加深对SQL和Transact-SQL语言的查询语句的理解。
(2)熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。
(3)熟练掌握数据查询中的分组、统计、计算和组合的操作方法。
实验内容和原理在实验一定义的“学生成绩数据库”中,使用T-SQL 语句完成以下查询:(1 )求计算机系学生的学号和姓名。
(2)求选修了数学的学生学号、姓名和成绩。
(3)求选修01 课程的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。
(4)查找选修课程的平均成绩位于前三名的学生的学号。
(5)查询计算机系的姓刘且单名的学生的信息。
(6)查询至少选修两门课程的学生学号。
(7)查询学生的学号、课程号以及对应成绩与所有学生所有课程的最高成绩的百分比。
(8)查询选修“数据库”课程,且成绩在80 分以上的学生的学号和成绩。
(9)查询所有姓“王”的同学没有选修的课程名。
(请分别用exists和in完成该查询) (10)查询选修了全部课程的学生的姓名。
(请至少写出两种查询语句)(11)求选修了学生“ 95001”所选修的全部课程的学生学号和姓名。
(12)查询每一门课的间接先修课。
(13)列出所有学生所有可能的选课情况。
(14)列出每个学生的学号及选修课程号,没有选修的学生的学号也一并列出。
(15)输出与“张三”同性别并位于同一个系的所有同学的姓名。
(请至少写出两种查询语句)(16)查询至少被两名男生选修的课程名。
(17)对被两名以上学生所选修的课程统计每门课的选课人数。
要求输出课程号和选修人数,查询结果按人数降序排列;若人数相同,按课程号升序排列。
(18)列出选修课程超过 3 门的学生姓名及选修门数。
(19)检索至少选修课程号为01 和03 的学生姓名。
(20)检索至少选修课程“数学”和“操作系统”的学生学号。
(21 )查询‘操作系统'课程的最高分的学生的姓名、性别、所在系(22)查询数据结构的成绩低于操作系统的成绩的学生姓名及该生的这两门课的成绩(23)所有成绩都在70 分以上的学生姓名及所在系。
数据库查询实验报告步骤
一、实验目的1. 熟悉数据库查询的基本概念和操作方法。
2. 掌握SQL语言中SELECT语句的使用,包括基本查询、条件查询、排序查询、分组查询和子查询等。
3. 提高数据库查询的实际操作能力,为后续课程学习和实践打下基础。
二、实验环境1. 操作系统:Windows 102. 数据库管理系统:MySQL 5.73. 数据库:实验数据库(包含学生信息、课程信息、成绩信息等)三、实验步骤1. 登录数据库管理系统打开MySQL命令行客户端,输入用户名和密码登录数据库管理系统。
2. 创建实验数据库在MySQL命令行客户端中,创建一个名为“实验数据库”的数据库。
```sqlCREATE DATABASE 实验数据库;```3. 创建数据表在“实验数据库”中,创建以下数据表:(1)学生信息表(student)```sqlCREATE TABLE student (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50),age INT,gender VARCHAR(10),class_id INT);```(2)课程信息表(course)```sqlCREATE TABLE course (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50),credit INT);```(3)成绩信息表(score)```sqlCREATE TABLE score (id INT PRIMARY KEY AUTO_INCREMENT,student_id INT,course_id INT,score INT,FOREIGN KEY (student_id) REFERENCES student(id), FOREIGN KEY (course_id) REFERENCES course(id) );```4. 插入数据向数据表中插入一些数据,以供查询使用。
数据库实验二数据查询
实验4 数据查询一、实验目的1.掌握SELECT语句的基本语法和查询条件的表示方法;2.掌握连接查询的表示方法;3.掌握嵌套查询的表示方法;4.掌握数据汇总的方法;5.掌握ORDER BY子句的作用和使用方法;6.掌握HAVING子句的作用和使用方法;二、实验内容使用SELECT查询语句,在数据库StudentCourse的Student表、Course 表和StuCourse 表上进行各种查询,包括单表查询、连接查询、嵌套查询,并进行数据汇总,以及使用GROUP BY子句、ORDER BY子句和HAVING子句对结果进行分组、排序和筛选处理。
1.SELECT语句的基本使用;2.连接查询;3.嵌套查询;4.数据汇总;5.使用GROUP BY 子句对结果分组;6.使用ORDER BY子句对结果排序;7.使用HAVING子句对分组结果进行筛选;思考与练习:1.用SELECT语句查询Course表和StuCourse表中的所有记录。
SQL语句:select * from Course;select * from StuCourse;实验结果:2.用SELECT语句查询Course表和StuCourse表中满足指定条件的一列或若干列。
SQL语句:select 课程号,课程名 from Course where 学分=5;select 学号,课程号 from StuCourse where 成绩>80;实验结果:3.查询所有姓名中包含有“红”的学生的学号及姓名。
SQL语句:select 学号,姓名 from Student where 姓名 like '%红%';实验结果:4.用连接查询的方法查找所有选修了“2001” 或“1002”号课程的学生学号和姓名。
SQL语句:selectdistinct Student.学号,姓名from StuCourse,Studentwhere(课程号='1002'or 课程号='2001')and StuCourse.学号=Student.学号;实验结果:5.用子查询的方法查找所有选修了“2001”或“1002”号课程的学生学号和姓名。
数据库原理实验2数据查询
课程名称数据库原理实验序号 2实验项目数据查询实验地点实验学时实验类型验证性指导教师实验员专业班级学号姓名年月日成绩:A教师该学生本次实验的内容丰富,完成的操作步骤详细具体,实验结果正确,在实验报告的填写中态度十分严谨,对数据分析有自己的见解。
四、实验过程(实验步骤、记录、数据、分析)实验准备:在实验一的基础上(包括数据库的建立、定义表和添加表内容)进行实验,下面分别为depts表、students表、courses表、reports表。
一、简单的选择与投影查询1、无条件查询1.1查询全体学生的详细记录。
这是一个无条件的选择查询,其命令为:其命令为:select * from students运行结果如右图,显示整张表的内容。
1.2查询全体学生的姓名(Sname)、学号(Sno)、所在系(dno)。
这是一个无条件的投影查询,其命令为:select sname,ssexfrom students运行结果如右图,显示了表中的三列。
1.3查询全体学生的姓名(Sname)、出生年份及学号(Sno)。
其命令为:select sno,sname,2017-sage as birth from students运行结果如右图,显示了三列内容。
1.4查询全体学生的姓名、出生年份和学号,要求用小写字母表示学号中的字母。
其命令为:select sname,'birth:' title,YEAR(GETDATE())-sagebirthyear,LOWER(sno) lsnofrom students运行结果如右图,显示了四列内容。
1.5查询选修了课程的学生学号。
其命令为:select distinct snofrom reports运行结果如右图,distinct短语是为了消去查询结果中的重复值。
2、条件查询(1)比较条件1.1查询d03系全体学生的学号(Sno)和姓名(Sname)。
其命令为:select sno,snamefrom studentswhere dno='d03'运行结果如右图,显示了d03系的全体学生姓名与学号。
数据库-数据查询实验报告
实验报告课程名称数据库原理与应用实验名称数据查询系别专业班级指导教师学号姓名实验日期_实验名称:数据查询一、实验目的1.熟悉各种基本的数据查询的含义。
2.掌握数据查询的SQL语句编写方法。
3.能根据要求写出正确的查询语句。
4.掌握基本的调试方法。
二、实验环境1.硬件环境:微机2.软件环境:Windows,Sql server2000或更高版本三、实验内容及步骤题目根据要求编写以下SQL查询语句第一题简单查询1.查询病人表,显示所有病人的病人编号、保险公司名称、电话号码(别名:病人电话)。
2.查询病人表,显示病人编号、病人姓名(病人姓+病人名)、保险公司名称,并在每个“电话号码”前面显示字符串“病人电话:”。
3.查询病人表,要求显示保险公司名称,并消除重复的值。
4.查询病人表,要求只显示前五条的全部病人信息。
5.查询病人表,要求显示最年轻的前6位病人的病人编号,病人姓名,病人年龄6.给医生表取别名:doctors,并显示医生表的所有信息7.要求查询在“人民保险公司”投保的所有病人的信息8.要求查询病人年龄在20~60岁之间的所有病人信息9.要求查询姓“王”、姓“李”或姓“关”的所有病人的信息。
(提示:用“in”或者用“or”两种方法查询。
)10.查询电话号码为空的病人信息11.要求按年龄从大到小显示病人信息12.要求先按病人姓的升序;如果姓一样,再按年龄的降序,来显示病人信息13.要求查询电话号码的最后一个数字为6的病人编号,病人姓名,电话号码14.要求查询倒数第二个数字为7的病人编号,病人姓名,电话号码。
15.要求查询除区号外的第二个数字为2的病人编号,病人姓名,电话号码。
(注:手机号不算。
)16.要求查询电话号码的最后一个数字为6、为3、为1的病人编号,病人姓名,电话号码。
(注:至少两种方法可以实现)17.要求查询电话号码的最后一个数字除1、3、6外的病人编号,病人姓名,电话号码。
步骤(写出以上SQL语句)--1.查询病人表,显示所有病人的病人编号、保险公司名称、电话号码(别名:病人电话)。
数据库实验报告(实验四)
沈阳工程学院学生实验报告(课程名称:数据库系统原理)实验题目:数据查询(二)班级学号姓名日期年月日地点指导教师一、实验目的掌握SQL查询命令:包括连接查询、嵌套查询和集合查询。
二、实验环境Oracle10g数据库系统。
三、实验内容与要求使用Select命令完成下列数据查询。
一、连接查询⑴查询每个顾客及其购买商品的顾客名称和商品名称。
⑵查询“沈阳市”顾客,购买“01”商品的顾客信息。
⑶查询“沈阳市”且购买了商品的顾客信息。
⑷查询购买“01”商品,且购买数量在2以上的顾客姓名。
⑸查询每个顾客购买商品的名称及购买数量和日期。
⑹查询购买商品单价超过100的顾客姓名。
二、嵌套查询⑴查询与“rose”在同一城市的顾客信息。
⑵查询购买商品名称为“面包”的顾客编号和姓名。
三、EXISTS查询⑴查询没有购买“0001”商品的顾客姓名。
⑵查询购买了全部商品类别的顾客的姓名。
四、实验过程及结果分析一、连接查询⑴查询每个顾客及其购买商品的顾客名称和商品名称,如图1-1所示。
select guest.*,guestname,goodsnamefrom guest,goods,purchasewhere guest.guestid=purchase.guestidand goods.goodsid=purchase.goodsid;图1-1⑵查询“沈阳市”顾客,购买“01”商品的顾客信息,如图1-2所示。
select guest.*from guest,purchasewhere guest.guestid=purchase.guestidand g_addr='沈阳'and purchase.goodsid='01';图1-2⑶查询“沈阳市”且购买了商品的顾客信息,如图1-3所示。
select guest.*from guest,purchasewhere guest.guestid=purchase.guestidand g_addr='沈阳';图1-3⑷查询购买“01”商品,且购买数量在2以上的顾客姓名,如图1-4所示。
实验二查询部分及查询作业答案
实验二. 数据库查询Student表:列名含义数据类型约束Sno 学号字符串,长度为7 主码Sname 姓名字符串,长度为10 非空Ssex 性别字符串,长度为2Sage 年龄整形Sdept 所在系字符串,长度为20Course表:列名含义数据类型约束Cno 课程号字符串,长度为10 主码Cname 课程名字符串,长度为20 非空Ccredit 学分字节Semester 学期字节SC表:列名含义数据类型约束Sno 学号字符串,长度为7 主码引用Student的Sno作为外码Cno 课程号字符串,长度为10 主码引用Course的Cno作为外码Grade 成绩小整形XKLB 修课类别字符串,长度为4 请写明创建以上三张基本表的语句。
3.将如下数据插入建好的三张表中。
Student表学号姓名性别年龄所在系'9512101','李勇','男',19,'计算机系''9512102','刘晨','男',20,'计算机系''9512103','王敏','女',20,'计算机系''9521101','张立','男',22,'信息系''9521102','吴宾','女',21,'信息系''9521103','张海','男',20,'信息系''9531101','钱小平','女',18,'数学系''9531102','张大力','男',19,'数学系'Course表课程号课程名学分学期'c01','计算机文化学',3,1'c02','VB',2,3'c03','计算机网络',4,7'c04','数据库基础',6,6'c05','高等数学',8,2'c06','数据结构',5,4SC表学号课程号成绩修课类别'9512101','c01',90,'必修''9512101','c02',86,'选修''9512101','c06',null,'必修''9512102','c02',78,'选修''9512102','c04',66,'必修''9521102','c01',82,'选修''9521102','c02',75,'选修''9521102','c04',92,'必修''9521102','c05',50,'必修''9521103','c02',68,'选修''9521103','c06',null,'必修''9531101','c01',80,'选修''9531101','c05',95,'必修''9531102','c05',85,'必修'请写明使用的数据插入语句。
数据查询(数据库实验2)
数据库基础与实践实验报告实验二数据查询班级:惠普测试142学号:**********姓名:***日期:2016-11-061 实验目的:1)掌握针对单张基本表的数据查询方法;2)掌握SQL常用库函数及统计汇总查询方法;3)掌握分组查询方法和结果排序的方法;4)掌握连接查询和嵌套查询的方法。
2 实验平台:操作系统:Windows xp。
实验环境:SQL Server 2000以上版本。
3 实验内容与步骤利用实验一创建的sch_id数据库完成下列查询,并对查询语句的功能进行测试。
1.查询学号s5的同学的姓名和所在系,将查询结果的列名显示为中文。
代码:SELECT sn AS姓名,dn AS所在系FROM S,D WHERE S.sno='S5'AND S.dno=D.dno测试记录:S:D:运行结果截图:2.查询教过课程号为C2或C5的课程的教师的编号(写两个查询语句完成同样的功能)代码::SELECT tno FROM TC WHERE cno='C2'OR cno='C5'SELECT tno FROM TC WHERE cno IN('C2','C5')测试记录:运行结果截图:3.查询学号为S5的同学所学课程的平均成绩。
代码:SELECT A VG(score)AS'平均分'FROM SC WHERE sno='S5'测试记录:运行结果截图:4.查询选过课程号为C1的课程的人数。
代码:SELECT COUNT(*)FROM SC WHERE cno='C1'测试记录:运行结果截图:5.查询计算机系学生的最大年龄,显示系名和最大年龄(查询结果的每列都要有列名且为中文)。
代码:SELECT dn AS系名,MAX(age)AS'最大年龄'FROM S,D WHERE S.dno=D.dno AND D.dn='计算机'GROUP BY dn测试记录:运行结果截图:6.查询所有教过课的老师的人数(教过多门课的同一位老师只计数1次)。
数据库原理实验答案
3)向SC表中插入数据
Insert Into SC(Sno,Cno, Grade) Values(200215121,1,92);
Insert Into SC(Sno,Cno, Grade) Values(200215121,2,85);
Insert Into SC(Sno,Cno, Grade) Values(200215121,3,88);
Insert Into SC(Sno,Cno, Grade) Values(200215122,2,90);
Insert Into SC(Sno,Cno, Grade) Values(200215122,3,80);
Insert Into SC(Sno,Cno, Grade) Values(200215121,4,92);
Insert Into SC(Sno,Cno, Grade) Values(200215121,5,85);
Insert Into SC(Sno,Cno, Grade) Values(200215121,6,88);
Insert Into SC(Sno,Cno, Grade) Values(200215123,2,90);
select sno,grade from sc where cno='3' order by grade desc;
8)查询各个课程号与相应的选课人数。
select cno, count(sno) from sc group by cno;
2. 连接查询操作。该实验包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等。
实验二 数据检索
实验二数据检索一、目的与要求1.掌握使用SQL SERVER 2008查询语句实现简单数据查询的方法,巩固基本查询的语法;2.练习使用排序、分组、聚合等运算符实现特殊查询;3.练习多表连接查询、联合查询以及子查询的使用方法;二、实验准备1创建自己的项目数据库和表;2.向表中插入数据,以备查询使用;3.熟悉各种查询运算符的用法;4.设计与项目相关的查询题目,以备在实验室中调试完成。
三、实验内容1.登录到SQL SERVER服务器;2.将实验一创建的数据库附加到服务器上,用作实验数据库;3.在SSMS中新建查询,打开查询设计窗口,完成如下查询请求:1)查询选修“高等数学”课程的学生同时还选修了哪些课程。
2)查询“JAVA”课程的平均成绩、最高最低分、前十名学生的信息。
3)统计每个学生的选课门数(包括没选课的学生),列出学号、选课门数和选课情况,其中选课情况显示规则为:如果选课门数大于或等于6门,则选课情况为:“多”;如果选课门数在3-5门之间,则选课情况为:“一般”;如果选课门数大于或等于6门,则选课情况为:“较差”;如果没有选课,则选课情况为:“未选课”。
4)修改全部课程的学分,修改规则如下:如果是第1-2学期开设的课程,则学分增加5分;如果是第3-4学期开设的课程,则学分增加3分;如果是第5-6学期开设的课程,则学分增加1分;对于其他学期开设的课程,学分不变。
5)查询每位学生得分最高的课程信息,列出学生学号、课程号、课程名和成绩。
6)查询选修了计算机文化学而没有选修JAVA课程的学生信息。
7)查询同时选修数据结构和JAVA两门课程的学生信息。
8)查询计算机系学生的信息,列出姓名、所在系、出生日期以及该学生的年龄排名(按从大到小)。
9)定义一个统计每门课程的考试平均成绩和选课人数的CTE,并利用该CTE查询选课人数超过2人的课程。
10)查询course表中的全部数据并将其保存到一个新表NewCourse中,然后为NewCourse表增加一个先修课程列PriorCno,该列表明了当前课程的先修课程编号,NULL 表示该门课程没有先修课程。
数据库查询实验报告
实验报告课程名称:数据库系统概论学院:工程学院专业:年级:班级:姓名:学号:指导教师:年12 月10 日教务处制:在 INTO 子句中指出了表名 student,并指出了新增长旳元组在哪些属性上要赋值,属性旳次序可以与 CREATE TABLE 中旳次序不一样样。
INSERT INTO "S-C"."STUDENT"VALUES('','张成民','男','18','CS' );select* from "S-C"."STUDENT":值与属性要一一对应。
INSERT INTO "S-C".sc (sno,cno)VALUES('','1');SELECT*from "S-C".sc;:在新插入旳记录中 GRADE 列自动地赋空值。
或者: INSERT INTO "S-C".scVALUES('','1',null);SELECT*from "S-C".sc;:若直接在 SC 中直接插入选课记录,由于没有指出 SC 旳属性名,在 GRADE 列上要明确给出空值NULL。
创立新表CREATE TABLE dept_age(sdept CHAR (15),avg_age smallint);把系名和平均年龄存入新表insertinto dept_age(Sdept,avg_age) select sdept,avg(sage)from "S-C".studentgroup by sdept;UPDATE "S-C"."STUDENT"SET Sage=22WHERE sno=;select*from "S-C".student;UPDATE "S-C"."STUDENT"SET Sage=sage+1;select*from "S-C".student;UPDATE "S-C"."SC"SET Grade=0where sno in(select snofrom "S-C".studentwhere sdept='cs');SELECT*FROM "S-C".SC;DELETEfrom "S-C".studentWHERE sno='';select*from "S-C".student;DELETEFROM "S-C".SC;SELECT*FROM "S-C".SC;:这条 DELETE 语句将使 SC 成为空表,它删除了 SC 旳所有元组。
数据库简单查询实验报告
姓名: 学院: 专业: 班级: 实验课程名称:数据库原理 开课时间:
实验题目
数据查询(简单查询) 小组合作
姓名
班级
一、实验目的
(1)掌握 SELECT 语句的语法 (2)掌握基于单表的查询方法 (3)掌握基于多表的查询方法 (4)掌握相关与不相关的嵌套查询 (5)掌握使用 UNION 的集合查询
select shopno,prono from sale where amount is null
select prono,proname from product where proname like'海尔__%'and proprice>2000
(4) select * from product order by proprice desc,proname asc
实验总结:
本次实验使用 sql sever 在企业管理器和中创建表,同时使用了 T-SQL 语句 进行单表查询以及多表查询,第一次建表时没有设置好关系导致多表查询时 出现了一些问题,后来在同学的帮助下解决了问题,那些不懂的地方以后一 定多加注意。
Amount
int
2.利用企业管理器向表中插入记录
N
商店号,外码 合为主码
N
商品号,外码
Y
销售量
商店表 Shop 的内容
ShopNo S01
ShopName 乐购
ShopAddress 上海
S02 S03 S04
ProNo P01 P02 P03 P04
ShopNo S01 S01 S01 S02 S02 S03 S03 S03
二.实验环境
WINDOWS 7+SQL SERVER 2005
实验二-数据的查询、更新
实验二数据的查询、更新一、实验目的1、掌握用户自定义数据类型的方法2、掌握用T-SQL语句进行数据的插入、修改、删除的方法3、熟练掌握SELECT语句,能够运用该语句完成各种查询二、实验要求1、实验前做好上机实验的准备,针对实验内容,认真复习与本次实验有关的知识,完成实验内容的预习准备工作;2、能认真独立完成实训内容;3、实验后做好实验总结,根据实验情况完成总结报告。
三、实验内容1、用T-SQL语句,创建一用户自定义数据类型:名称为“char20”,数据类型为varchar,长度为20,允许为空。
sp_addtype char20,'varchar(20)',null提示:sp_addtype [@typename=]用户自定义类型的名字[, @phystype=]系统类型名[, [@nulltype=] ' not null | null '] [, [@owner=] '拥有该类型的用户名'] 例:自定义一个名为address的类型,其所属系统类型为varchar,长度为80,不能为空。
sp_addtype address,' varchar(80)', ' not null '2、用T-SQL语句,建立一个“学生课程数据库”,在此基础上建立该数据库包含的学生表,课程表,学生选修表,并向各表插入如下相应的数据。
create database学生课程数据库学生表:Student(Sno,Sname,Ssex,Sage,Sdept) 其中Sno 为主键、Ssex取值为男或女、SageSno Sname Ssex Sage Sdept95001 李敏勇男20 CS95002 刘晨女19 IS95003 王敏女18 MA95004 张立男18 IScreate table student(sno int primary key,sname char(10),ssex char(2)constraint ssex_ch check(ssex in('男','女')),sage int constraint sage_ch check(sage>=15 andsage<=30),sdept char(10))insert into studentvalues(95001,'李敏勇','男',20,'CS')insert into studentvalues(95002,'刘晨','女',19,'IS')insert into studentvalues(95003,'王敏','女',18,'MA')insert into studentvalues(95004,'张立','男',18,'IS')课程表:Course(Cno,Cname,Cpno,Credeit,remarks) 其中Cno为主键、Teacher的类型为Cno Cname Cpno Credit Teacher1 数据库 5 4 王芳2 数学NULL 2 刘新3 信息系统 14 刘新4 操作系统 6 3 高升5 数据结构7 4 宋明6 数据处理NULL 2 张彬7 Pascal语言 6 4 李磊create table course(cno int primary key,cname char(15),cpno int null,credit int,teacher char20)insert into coursevalues(1,'数据库',5,4,'王芳')insert into coursevalues(2,'数学',NULL,2,'刘新')insert into coursevalues(3,'信息系统',1,4,'刘新')insert into coursevalues(4,'操作系统',6,3,'高升')insert into coursevalues(5,'数据结构',7,4,'宋明')insert into coursevalues(6,'数据处理',NULL,2,'张彬')insert into coursevalues(7,'PASCAL语言',6,4,'李磊')学生选修表:SC(Sno,Cno,Grade) 其中Sno,Cno为主键同时又为外键、Grade值在0到100;Sno Cno Grade95001 1 9295001 2 8595001 3 8895002 2 9095003 2 5595004 2 70create table sc(sno int,cno int,grade int constraint grade_ch check(grade between 0 and100),primary key(sno,cno),constraint fk_sno foreign key (sno)references student(sno),constraint fk_cno foreign key (cno)references course(cno),)insert into scvalues(95001,1,92)insert into scvalues(95001,2,85)insert into scvalues(95001,3,88)insert into scvalues(95002,2,90)insert into scvalues(95003,2,55)insert into scvalues(95004,2,70)3、用T-SQL语句,修改上面所建学生课程数据库中数据:1) 向学生表:Student中加入一条记录:(95030,谢非,男,22,CS)并保存insert into studentvalues(95030,'谢非','男',22,'CS')2) 将李敏勇的数据库的成绩改为98分update scset grade=98where o=(select ofrom coursewhere ame='数据库'and sno=(select snofrom studentwhere sname='李敏勇'))3) 删除学生表Student中谢非的记录并保存deletefrom studentwhere sname='谢非'4) 能不能从Student表中删除李敏勇学生的记录,为什么?能不能删除王敏, 张立两个学生的记录?不能, sc表中列sno是外码,参照student表的sno列。
实验二-单表查询(2012)
实验二单表查询学号:20103191姓名:王晓燕专业:应用物理、实验目的掌握简单SQL查询语句的应用,包括like、top、order by、compute、聚集函数的应用。
、实验内容请在上次实验所建的数据库上实现下列查询练习,并抓图显示其查询结果。
1、基本查询(1)查询Student表中全体学生的全部信息。
结果:(2)检索全体学生的学号、姓名。
结果:班级:sw希罢井丄BMhUD.2、查询时改变列标题的显示检索全体学生的学号、姓名、家庭地址信息,并分别加上 的别名信息。
结果:■臥 jTifkHUlA.Q» QQ 丈静ID心 网魁 矍™;① u 目油 工且(xi■口(凹 甘庇;口 网心.SLT I ti L.> [ d L :l J d J d 已鼻 V f ■T孰研凶■ v | : *u a&i D 3E 机#血苛4 丫缶站护 返曙(2>・ 土 Jd 丄茗主r= r j Jf^T-fift 辿 I oi CGhJri err Jrio UHU kqFh_djR 馬 >tl*T“n ZD :a3L ?L5ti_£erf rirahtr鼻粳4 j 竝畑 e J *fl 'jaurce F 1to-X .* JLfl ■ z丄NE _i STffl ;^ _j 萍 Utj ®irt a -牡H B ._-i ™ fl ww d 占M 」LS*ig 他«l i- H 2O1Q31.. MULUwrZ.Hl 11I select 勺即。
5D aiie =££4)mc.ge ■口x ;二"学生”学号”家庭地址«*fc rmirfC Zrivr3、条件查询(1)查询成绩大于80分的学生的学号及课程号、成绩。
结果朝翻J - 1行i Ch»Iw 4MM| f ^-. ] ?m, ,. HArMc^ifQLUvhN*...出…,或宅祖E卫|疔耳00邮(L:i) 皿」皿・2沌Q0 CD OD 1 Fa TMfliW Ci 酋U 1/ 5■i 証fi』越山九机#z苛4 rh 3茹lil 11hi iSl€io>-匀JS t twto *・越于|£,^1厂些之。
数据库实验二,sql查询语句
实验二:数据查询语言实验内容SQL数据查询语句:例5-1:(选择表中的若干列) 求全体学生的学号、姓名、性别和年龄。
select sno,sname,sex,sage from student;例5-2:(不选择重复行) 求选修了课程的学生学号。
select distinct cno from sc where cno is not null;例5-3:(选择表中的所有列) 求全体学生的详细信息。
select * from student;例5-4:(使用表达式) 求全体学生的学号、姓名和出生年份。
select sno,sname,birthday from student;例5-5:(使用列的别名) 求学生的学号和出生年份,显示时使用别名“学号”和“出生年份”。
select sno as"学号",birthday as"出生年份" from student;例5-6:(比较大小条件) 求年龄大于19岁的学生的姓名和年龄。
select sname,age from studentwhere age>19;例5-7:(比较大小条件) 求计算机系或经济管理系年龄大于18岁的学生的姓名、系和年龄。
select sname,depname ,agefrom student,departmentwhere student.depno=department.depnoand age>18;例5-8:(确定范围条件) 求年龄在19岁与22岁(含20岁和22岁)之间的学生的学号和年龄。
select sno,age from studentwhere age in(19,22);例5-9:(确定范围条件) 求年龄不在19岁与22岁之间的学生的学号和年龄。
select sno,age from studentwhere age not in(19,22);例5-10:(确定集合条件) 求在下列各系的学生信息:数学系、计算机系。
实验训练2:数据查询操作
实验二MySQL数据库操作实验实验目的:基于实验1创建的汽车用品网上商城数据库Shopping,理解MySQL 运算符、函数、谓词,练习Select语句的操作方法。
实验内容:1.单表查询【实验2.1】字段查询(1)查询商品名称为“挡风玻璃”的商品信息。
分析:商品信息存在于商品表,而且商品表中包含商品名称此被查询信息,因此这是只需要涉及一个表就可以完成简单单表查询。
(2)查询ID为1的订单。
分析:所有的订单信息存在于订单表中,而且订单用户ID也存在于此表中,因此这是只需要查询订单表就可以完成的查询。
【实验2.2】多条件查询查询所有促销的价格小于1000的商品信息。
分析:此查询过程包含两个条件,第一个是是否促销,第二个是价格,在商品表中均有此信息,因此这是一个多重条件的查询。
【实验2.3】DISTINCT(1)查询所有对商品ID为1的商品发表过评论的用户ID。
分析:条件和查询对象存在于评论表中,对此商品发表过评论的用户不止一个,而且一个用户可以对此商品发表多个评论,因此,结果需要进行去重,这里使用DISTINCT实现。
(2)查询此汽车用品网上商城会员的创建时间段,1年为一段。
分析:通过用户表可以完成查询,每年可能包含多个会员,如果把此表中的创建年份都列出来会有重复,因此使用DISTINCT去重。
【实验2.4】ORDER BY(1)查询类别ID为1的所有商品,结果按照商品ID降序排列。
分析:从商品表中可以查询出所有类别ID为1的商品信息,结果按照商品ID的降序排列,因此使用ORDER BY语句,降序使用DESC关键字。
(2)查询今年新增的所有会员,结果按照用户名字排序。
分析:在用户表中可以完成查询,创建日期条件设置为今年,此处使用语句ORDER BY。
【实验2.5】GROUP BY(1)查询每个用户的消费总金额(所有订单)。
分析:订单表中包含每个订单的订单总价和用户ID。
现在需要将每个用户的所有订单提取出来分为一类,通过SUM()函数取得总金额。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课下实验2-数据查询
课后实验2、查询数据库-学生选课系统
一、导入学生选课系统数据库JXGL(jxgl.sql)
二、JXGL数据库介绍
●Students(sno, sname,class,ssex,bday,bplace,mgrade,photo,sfzh,zxf)
该表是学生基本信息表其中:sno-学号,sname-姓名,class-班级,ssex-性别,
bday-出生日期,bplace-籍贯,mgrade-入学成绩,photo-照片,sfzh-身份证号码,zxf-总学分
●Course(cno,cname,cpno,credit)
该表是课程情况表其中:cno-课程号,cname-课程名称,cpno-先修课程号,credit—学分
●SC(term,sno,cno,grade,point)
该表是学生选课成绩表其中:term-学期,sno-学号,cno-课程号,grade-成绩,point-绩点
●TC(term,class,cno,tno,period)
该表是教师上课情况表其中:list—序号,term-学期;class-班级;cno-课程号;tno-教师编号;period-学时
●Teachers (tno,tname,ps,wday,dept,pay,marry,tel,resume)
该表是教师基本情况表:其中t no-教师编号;tname-教师姓名;ps-职称;wday-入校日期;dept-系别;pay-工资;marry-婚否;tel—联系电话;resume-简历
三、在JXGL数据库中完成以下查询。
(1)查询03物流1学生的详细信息
(2)查询“入学成绩”在350到400分之间的学生的姓名和班级
(3)查询students表中现有的班级(要求查询结果中班级名称不要重复)(4)查询具有“教授”或“副教授”职称的教师的教师编号和姓名
(5)查询姓“陈”,且籍贯是“宁波”的学生的姓名,出生日期,入学成绩(6)查询students表中“09级”的学生信息
(7)查询姓名中包含“菲”字的学生的学号、姓名、性别、班级
(8)查询教师上课情况表中还没有安排好上课教师的班级和对应的课程号(9)查询全体学生情况,查询结果按所在班级名升序排列,同一班级中的学生按出生日期降序排列
(10)统计03物流1班学生“入学成绩”的平均分、最高分、最低分
(11)统计students表中的学生人数
(12)统计各个班级的学生人数,按统计结果做降序排列
(13)统计各门课程的平均成绩,结果显示课程号和平均成绩
(14)查询平均成绩80以上的课程编号
(15)查询平均成绩75分以上的学生的学号
(16)查询教师人数在5人以上的学院,查询结果显示学院名称和教师人数,查询结果按教师人数作降序排列
(17)查询选修了课程学生的学号、姓名、所选课程号、课程名称以及取得的成绩
(18)查询选修了‘计算机基础’这门课程的学生的学号、姓名、班级、成绩(19)查询和“刘涛”在一个班级的学生的信息
思考:可以用什么方法完成本次查询?
(20)查询没有选修过任何课程的学生的信息(学号、姓名、班级)
思考:还可以用什么方法完成本次查询?
(21)查询教师“姚明”给哪些班级上课?
(22)查询教师“姚明”上哪些课程,要求查询结果包含课程编号和课程名称?(23)查询学号为“0311102”学生选修所有课程的平均分和总学分
(24)查询其他班中比“03计算应用1”所有学生入学成绩高的学生的姓名和入学成绩
(25)查询选课门数等于或大于2门的学生的平均成绩和选课门数
(26)查询“计算机基础”这门课程的平均成绩
(27)查询选修了“0000027”课程,且成绩高于此课程平均成绩的学生的学号和获得的成绩
(28)查询既选修了“计算机基础”或者选修了“C语言基础”的学生的学号(29)查询既选修了“计算机基础”又选修了“C语言基础”的学生的学号(30)查询“计算机基础”课程成绩最高的学生的信息。