课下实验2-数据查询
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 分以上的学生姓名及所在系。
集美大学数据库SQL实验二 数据库的查询(I)
集美大学诚毅学院实验报告课程名称:数据库系统原理班级:实验成绩:指导教师:姓名:实验项目名称:数据库的查询(I)学号:上机实践日期:实验项目编号:实验2组号:上机实践时间:实验二数据库的查询(I)一.实验目的与要求1.掌握SELECT语句的基本语法。
2.掌握连接查询的方法。
3.掌握数据汇总的方法。
二.实验环境1.PC,CPU:P4 2.0GHz以上,内存:512M,硬盘:40GB以上;2.操作系统:Microsoft Windows 2003/WIN7;3.数据库系统软件:SQL Server 2008三.实验内容与步骤完成以下查询并显示查询结果。
(要求:以“SQL Server 实用教程”的附录A的所有数据作为数据库样本。
)1.查询计算机专业的所有同学的姓名、性别、年龄和总学分。
要求:“年龄”这一列的列标题显示为“年龄”,性别属性的值为0时,显示为“女”,性别属性为1时,显示为“男”。
2、查询姓"张"且全名为三个汉字的学生的所有信息。
3、查询在学生情况表中有备注内容的学生的学号、姓名、专业、备注。
4、查询计算机专业的总学分在50分以下(包括50分)的学生姓名5、查询1990年出生的学生姓名、专业、出生时间及总学分。
龄降序排列。
7、查询已经选修了课程的学生人数。
8、查询选修了“程序设计语言”课程且成绩在80分以上的学生姓名及成绩。
9、查找所有学生情况及他们选修的课程号,若学生未选修任何课,也要包括其情况。
10、查找所有开设的课程及被学生选修的情况(学号及成绩),如某门课程尚未有学生选修时也要列出来。
11、查询选修了101号课程的学生的最高成绩、最低成绩及平均成绩。
12、查询各个课程号及相应的选课人数。
13、查询“离散数学”课程成绩在85分以上的人数。
14、查询选修了3门以上课程的学生学号。
15、查询选修课程超过2门且成绩都在80分以上的学生的姓名、专业及总学分。
四.参考资料1.王珊,萨师煊:数据库系统概论(第四版) ,高等教育出版社,2006.5 2.SQL Server 实用教程,郑阿奇主编。
数据库查询实验报告步骤
一、实验目的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. 插入数据向数据表中插入一些数据,以供查询使用。
数据库原理实验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所示。
数据库实验
实验一:建立数据库及基本表实验报告一、实验目的1、了解SQL Server数据库的逻辑结构和物理结构;2、了解SQL Server的基本数据类型;3、学会在企业管理器中创建数据库和表;4、使用SQL查询分析器用CREATE、DROP、ALTER语句创建和删除数据库,创建、删除、更新基本表。
二、实验内容1、创建数据库和查看数据库属性。
2、创建表。
3、查看和修改表结构。
4、熟悉企业管理器和查询分析器工具的使用方法三、实验步骤1、在企业管理器中创建数据库和数据表。
(1)使用企业管理器建立销售数据库,数据库名为sales,初始大小为10MB,最大为50MB,数据库自动增长,增长方式是按5%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。
数据库的逻辑文件名和物理文件名均采用默认值。
详细步骤:1启动sql server企业管理器,展开服务器,单击“数据库”,选择“操作”菜单中的“新建数据库”。
2单击数据库属性窗口的“常规”选项卡,在“名称”文本框中输入数据库的名称“sales”。
3单击“数据文件”选项卡,此处可以修改数据文件存储的路径。
(将路径修改为:“E:\”)。
4将文件初始大小改为10MB,最大改为50MB,选中“文件自动增长”,增长方式是按5%比例增长。
5单击“事务日志”,修改路径,修改初始大小为2MB,最大改为5MB,选中“文件自动增长”,按1MB增长。
6单击“确定”,完成数据库的创建。
(2)在企业管理器中查看图书管理数据库的属性,并进行修改,使之符合要求。
(3)通过企业管理器,在建好了销售数据库sales中建立职工(employee)、物资(goods)和销售(sell)3个表,其结构为:职工(编号,姓名,性别,部门,电话,地址);物资(商品编号,商品名称,生产厂家,进货价,零售价,数量,进货时间);销售(销售编号,商品编号,数量,售出时间,售货员工编号);创建上述三个表的步骤:1展开服务器,数据库,展开建立数据库所在的数据库。
2 数据操作语言 DML 实验
二、实验内容与步骤: 1、进入 ORACLE 的环境,进入 scott 用户模式(在 sqldeveloper 中使用 scott 用户连 接 Oracle)。 2、用 Create、Insert 语句建立基本表 S、P、J 和 SPJ ,其中:
(6) 请将 S6 向工程项目 J8 供应 500 个 P7 零件的信息加入到供应关系; 意涉及到几个表的添加元组操作?表的添加顺序如何?)
insert into S(SNO) values('S6'); insert into J(JNO) values('J8'); insert into P(PNO) values('P7'); insert into SPJ values('S6','P7','J8','500');
(6) 找出所有供应商的姓名和所在城市; 代码: select SNAME,CITY from S;
(7) 找出所有零件的名称、颜色、重量; 代码: select PNAME,COLOR,WEIGHT from P;
(8) 找出使用供应商 S1 所供应零件的工程号; 代码: select distinct JNO from SPJ where SNO='S1';
代码: create table S( SNO char(3) primary key, SNAME char(10), STATUS char(10), CITY char(10) ); insert into S values ('S1','精益','20','天津'); insert into S values ('S2','盛锡','10','北京'); insert into S values ('S3','东方红','30','北京'); insert into S values ('S4','丰泰盛','20','天津'); insert into S values ('S5','为民','30','上海');
数据库原理实验答案
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. 连接查询操作。该实验包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等。
数据库实验二实验报告
_数据库实验二课程实验报告实验名称:姓名班级学号实验台编号同组学生实验课表现出勤、表现得分25% 实验报告得分50%实验总分操作结果得分25%实验目的:1.掌握SELECT语句的基本语法2.掌握SELECT语句中的SELECT子句的作用及使用方法3.掌握SELECT语句中的WHERE子句的作用及使用方法4.掌握SELECT语句中的ORDER BY子句的作用及使用方法5.掌握集合函数的作用及使用方法6.掌握SELECT语句中的GROUP BY子句的作用及使用方法7.熟悉内连接、外连接、自连接和非限制连接的概念8.能够熟练使用连接查询从多个表中查询数据9.能够熟练地使用子查询得到想要的数据实验内容:一、简单查询1.查询XS表中各个同学的所有信息。
select* from XS;2.查询XS表中各个同学的姓名、专业名和总学分。
select姓名,专业,总学分from XS;3.查询XS表中所有同学的学号、姓名和总学分,结果中各列的标题分别指定为num,name和mark。
select学号num,姓名name,总学分mark from XS;4.查询XS表中的学生数据来自哪些专业(使用DISTINCT子句消除结果集中的重复行)。
select distinct专业from XS;5.查询XS表中各个同学的姓名、专业名和总学分,只返回结果集的前5行。
select top 5 姓名,专业,总学分from XS;6.查询XS表中每个学生的学号、姓名和年龄信息。
select datediff(yyyy,出生日期,'2010')年龄from XS;7.查询XS表中专业为“计算机”的同学的情况。
select*from XS where专业='计算机';8.查询XS表中1979年出生的学生姓名和专业情况。
SELECT姓名,专业from XS where year(出生日期)='1979';9.查询XS表中专业名为“计算机”或“电子”或“数学”的学生的情况。
数据库查询实验报告
实验报告课程名称:数据库系统概论学院:工程学院专业:年级:班级:姓名:学号:指导教师:年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 旳所有元组。
实验教案-数据库原理及应用(MySQL版)-微课视频版-李月军-清华大学出版社
(以2课时为单元)
课 序
授课日期
授课班次
授课教师
批准人
1
课题
实验一数据库和表的管理
目的要求
1.了解MySQL数据库的逻辑结构和物理结构的特点。
2.学会使用SQL语句创建、选择、删除数据库。
3.学会使用SQL语句创建、修改、删除表。
4.学会使用SQL语句对表进行插入、修改和删除数据操作。
5.了解MySQL的常用数据类型。
教案首页
(以2课时为单元)
课 序
授课日期
授课班次
授课教师
批准人
2
课题
实验二数据查询
目的要求
1.掌握使用SQL的SELECT语句进行基本查询的方法。
2.掌握使用SELECT语句进行条件查询的方法。
3.掌握SELECT语句的GROUP BY、ORDER BY以及UNION子句的作用和使用方法。
4.掌握嵌套查询的方法。
SELECT分组、嵌套、连接查询
教学方法
手 段
教学方法:实验教学法
手 段:机器演示
教学步骤
4.内容讲解
5.上机练习
6.针对问题进一步讲解
复 习
提 问 题
作业题目
完成实验指导书中要求的上机作业
预习内容
课时分配(以分钟计算)
教学环节
复习提问
新课讲解
课堂实践
每课小结
布置作业
时间分配
30
70
教学内容
课堂组织
92
0003
0003
81
0003
0004
82
0003
0005
75
5.使用SQL语句ALTER TABLE修改curriculum表的“课程名称”列,使之为空。
实验2复杂查询
(5)查询emp表和salgrade表显示部门20的雇员名,工资及其工E同部门的所有雇员,但不显示BLAKE.
(2)显示超过平均工资的所有雇员名,工资及其部门号
(3)显示超过该部门平均工资的所有该部门雇员名,工资及部门号。
(4)显示高于CLERK岗位所有雇员工资的所有雇员名,工资及岗位
2.select ename,comm,dname from emp e,dept d where e.deptno=d.deptno and comm is not null;
3.select ename,sal,dname from emp e,dept d where d.deptno=e.deptno and loc='LALLAS';
【实验步骤和方法】
1、启动oracle的相关服务。
2、启动SQL*plus工具,用scott普通用户登录oracle。
3、完成实验内容。
【实验预习要求】
重点复习oracle的多表查询,子查询和外连接。
【实验报告要求】
除按实验报告纸的内容进行填写外,主体部分包括以下内容:
(1)程序中用到哪些命令
(2)实验步骤
2.实验步骤
3.实验运行结果及结果分析
4.上机调试中遇到的主要问题及解决办法
倒数第二个显示超过该部门平均工资的所有该部门雇员名,工资及部门号。
查看课本P102例子和p130
还有一种解决方法
select ename,sal,emp.deptno from emp,(select avg(sal) a,deptno from emp group by deptno) t where emp.deptno=t.deptno and emp.sal>t.a;
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)单击“下一步”按钮,选“明细”选项。
实验二-数据的查询、更新
实验二数据的查询、更新一、实验目的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()函数取得总金额。
实验二查询部分及查询作业答案
实验二. 数据库查询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,'必修'请写明使用的数据插入语句。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课后实验、查询数据库学生选课系统
一、导入学生选课系统数据库()
二、数据库介绍
●(, )
该表是学生基本信息表其中:-学号,-姓名,-班级,-性别,
-出生日期,-籍贯,-入学成绩,-照片,-身份证号码,
-总学分
●()
该表是课程情况表其中:-课程号,-课程名称,-先修课程号,—学分
●()
该表是学生选课成绩表其中:-学期,-学号,-课程号,-成绩,-绩点
●()
该表是教师上课情况表其中:—序号,-学期;-班级;-课程号;-教师编号;
-学时
●()
该表是教师基本情况表:其中-教师编号;-教师姓名;-职称;-入校日期;-系别;-工资;-婚否;—联系电话;-简历
三、在数据库中完成以下查询。
()查询物流学生的详细信息
()查询“入学成绩”在到分之间的学生的姓名和班级
()查询表中现有的班级(要求查询结果中班级名称不要重复)
()查询具有“教授”或“副教授”职称的教师的教师编号和姓名
()查询姓“陈”,且籍贯是“宁波”的学生的姓名,出生日期,入学成绩
()查询表中“级”的学生信息
()查询姓名中包含“菲”字的学生的学号、姓名、性别、班级
()查询教师上课情况表中还没有安排好上课教师的班级和对应的课程号
()查询全体学生情况,查询结果按所在班级名升序排列,同一班级中的学生按出生日期降序排列
()统计物流班学生“入学成绩”的平均分、最高分、最低分
()统计表中的学生人数
()统计各个班级的学生人数,按统计结果做降序排列
()统计各门课程的平均成绩,结果显示课程号和平均成绩
()查询平均成绩以上的课程编号
()查询平均成绩分以上的学生的学号
()查询教师人数在人以上的学院,查询结果显示学院名称和教师人数,查询结果按教师人数作降序排列
()查询选修了课程学生的学号、姓名、所选课程号、课程名称以及取得的成绩()查询选修了‘计算机基础’这门课程的学生的学号、姓名、班级、成绩()查询和“刘涛”在一个班级的学生的信息
思考:可以用什么方法完成本次查询?
()查询没有选修过任何课程的学生的信息(学号、姓名、班级)
思考:还可以用什么方法完成本次查询?
()查询教师“姚明”给哪些班级上课?
()查询教师“姚明”上哪些课程,要求查询结果包含课程编号和课程名称?()查询学号为“”学生选修所有课程的平均分和总学分
()查询其他班中比“计算应用”所有学生入学成绩高的学生的姓名和入学成绩()查询选课门数等于或大于门的学生的平均成绩和选课门数
()查询“计算机基础”这门课程的平均成绩
()查询选修了“”课程,且成绩高于此课程平均成绩的学生的学号和获得的成绩
()查询既选修了“计算机基础”或者选修了“语言基础”的学生的学号
()查询既选修了“计算机基础”又选修了“语言基础”的学生的学号
()查询“计算机基础”课程成绩最高的学生的信息。