实验2-数据查询与更新

合集下载

实验二数据查询(带答案)

实验二数据查询(带答案)

实验二数据查询(4学时)实验目的:(1)掌握SQL语言的数据查询语句实验内容:(1)将学生成绩数据库(XSCJ)导入SQL SERVER 2008,并做如下查询。

(注:数据文件和日志文件从服务器上下载直接导入))1)查询选修了课程的学生的学号;2)查询全体学生的姓名和出生年份,并将列别名改为XM和CSNF;3)查询年龄在18到20(包括18岁和20岁)之间学生的学号、姓名和系。

4)查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。

5)用LIKE查询课程名为DB_S程的课程号和学分。

6)查所有有成绩的学生学号和课程号。

7)查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄升序排列8)查询选修了课程的学生人数。

9)计算1号课程的学生平均成绩。

10)查询有3人以上(含3人)同学选修课程的课程号。

11)查询1号课程的间接先修课。

12)查询每个学生的学号、姓名、选修的课程名及成绩。

13)找出每个学生等于他选修课程平均成绩的课程号。

(2)将以下数据录入上次实验建立的BSXT数据库,并完成以下查询。

Teacher(教师表)Topic(选题情况表)1)查询全体学生的学号和姓名和电话。

2)查询全体学生的基本情况。

3)查询带了毕业生的老师的教师号。

4)查询教师“朱龙”基本情况。

5)查询所有姓“王”同学的基本情况。

6)统计每种学历老师的人数。

7)查询1组老师所带毕业生的基本情况(包括学号,姓名,教师号,教师姓名,毕业设计题目)(注:1组老师只能带1组的学生)8)查询所有学生的选题情况(包括没有选题的学生),包括学号,姓名,题目名称,教师名称。

(注:要求老师的组号和学生的组号相一致.)--1) 查询选修了课程的学生的学号;SELECT DISTINCT Sno FROM SC*//*--2) 查询全体学生的姓名和出生年份,并将列别名改为XM和CSNF;SELECT Sname XM,2017-Sage CSNF FROM Student*//*--3) 查询年龄在18到20(包括18岁和20岁)之间学生的学号、姓名和系。

SQL实验二:数据库查询实验报告

SQL实验二:数据库查询实验报告

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)检索⾄少选修课程“数学”和“操作系统”的学⽣学号。

数据库实验指导(071125)

数据库实验指导(071125)

《数据库系统原理》实验指导书索剑2007-11实验1:数据库模式设计及建立(2学时)实验目的:1.掌握数据库模式设计及建立的方法,建立数据库及关系2.比较SQL命令方式和可视化环境管理器方式设计的异同点3.熟悉 SQL SERVER 的企业管理器和查询分析器实验类型:验证实验内容:1.在SQL Server环境中建立“学生-课程”数据库2.使用SQL语言及可视化环境建立“学生-课程”数据库中的表3.观察“学生-课程”数据库的E-R图、逻辑模式以及文件存储之间的联系操作步骤:1.描述教材P59中所叙述的“学生-课程”数据库概念模式2.仔细分析“学生-课程”数据库关系逻辑模式(尤其是实体完整性、参照完整性规则)Student(学生表):Sno Sname Ssex Sage Sdept95001 李勇男20 CS95002 刘晨女19 IS95003 王敏女18 MA95004 张立男18 IS95005 王强男17 IS95015 张三男20 CS95019 李四男20 CS95020 陈冬男18 ISCourse(课程表):Cno Cname Cpno Ccredit1 数据库 5 42 数学 23 信息系统 1 44 操作系统 6 35 数据结构7 46 数据处理 27 Pascal语言6 4SC(选修表):Sno Cno Grade95001 1 6595001 2 8895001 3 5795001 4 7995001 5 4595001 6 9095001 7 8195002 2 9095002 3 8095002 4 5595003 2 095019 2 6695020 13.熟悉SQL SERVER的企业管理器和查询分析器4.在企业管理器可视化环境下创建“学生-课程”数据库,仔细观察物理模式的形成过程5.在可视化环境下建立如上所述关系模式,建立相应的实体、参照完整性,添加关系数据,仔细观察逻辑模式的形成过程6.启动“查询分析器”,编制SQL语言再次实现上述过程。

数据库实验二数据查询

数据库实验二数据查询

实验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-数据查询

课下实验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)查询“计算机基础”课程成绩最高的学生的信息。

数据库原理实验2数据查询

数据库原理实验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、了解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 实验

2 数据操作语言 DML 实验
2 数据操作语言 DML 实验 一、实验目的: 1、建立基本表并进行 DML 操作。 2、数据查询:单表查询、连接查询、嵌套查询、集合查询和统计等功能。 3、数据更新:增加、删除、查询和修改功能
二、实验内容与步骤: 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','上海');

数据查询(数据库实验2)

数据查询(数据库实验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次)。

数据库原理实验答案

数据库原理实验答案
Values(7,'PASCAL语言',6,4);
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. 连接查询操作。该实验包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等。

实验训练2数据查询操作

实验训练2数据查询操作

实验训练2:数据查询操作实验目的:基于实验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()函数取得总金额。

数据查询与更新实验报告

数据查询与更新实验报告

数据查询与更新实验报告本次数据查询与更新实验,我们通过使用SQL语言,掌握了大量的数据查询与更新的操作方法。

在本次实验中,我们学习了数据查询的基本步骤并掌握了各种数据查询方式,包括简单查询、条件查询、排序查询、目录查询、并集查询、交集查询和差集查询。

同时,我们还学习了如何利用SQL语言进行数据更新,包括添加、修改和删除数据等方面。

在实验中,我们使用了具体的数据库及表格进行操作。

首先,我们创建了一个名为“students”的数据库,并在其中添加了一个名为“student”的表格,用于存储学生的信息。

在插入数据时,我们学习了如何通过SQL语言向表格中添加数据,并掌握了如何在插入数据时保证数据的唯一性和数据的正确性。

在数据查询方面,我们掌握了基本的SELECT语句的用法,并学习了SELECT语句的各种限定方式,以达到我们需要查询的结果。

我们还学习了如何通过子查询进行复杂的数据查询,并掌握了如何在查询中利用逻辑运算符和比较运算符等方式来进行查询筛选。

同时,我们还学习了如何利用GROUP BY和ORDER BY子句对数据进行分类及排序查询。

在数据更新方面,我们学习了如何使用INSERT, UPDATE和DELETE语句来进行数据的添加、修改和删除操作,并了解了利用各种子查询语句进行数据更新的方法。

在实际操作中,我们试图通过修改数据来实现数据的更新,并考虑到更新数据时对数据完整性的影响。

我们还通过实例操作学习了如何使用SQL事务处理,确保数据的一致性。

在本次实验中,我们还通过使用SQL实现了数据的备份和恢复操作,并尝试了利用批处理进行数据管理的方式。

我们还学习了如何处理存储过程和触发器,以实现对数据的自动化管理。

综上所述,本次实验对我们学习SQL语言的数据查询和更新操作有了很大的帮助。

我们掌握了SQL语言的基本语法以及各种数据查询和更新的方法,为我们今后在数据库管理和数据分析方面的工作提供了坚实的基础。

同时,我们也意识到数据查询与更新在各种实际工作中的极其重要性,并应该时刻保证数据的正确性、完整性及一致性,以确保数据的有效性和可信度。

实验2DML数据操作实验报告

实验2DML数据操作实验报告

实验2 DML数据操作查询当前日期,当前时间戳(截图即可)1 删除dept和emp表中已经有的数据。

2 向dept和emp表中添加数据(数据内容参见实验1)。

INSERT INTO DEPT (DEPTNO,DNAME,LOC)VALUES ('10','ACCOUNTING','NEW YORK');INSERT INTO DEPT (DEPTNO,DNAME,LOC)VALUES ('20','RESEARCH','DALLAS');INSERT INTO DEPT (DEPTNO,DNAME,LOC)VALUES ('30','SALES','CHICAGO');INSERT INTO DEPT (DEPTNO,DNAME,LOC)VALUES ('40','OPERATIONS','BOSTON')3 修改数据练习。

(1)将ford的工资在原工资基础上上调所在部门平均工资的15%。

UPDATE EMP SET SAL =(SELECT CAST(AVG(SAL) AS DEC(7,2)) FROM EMP WHERE DEPTNO = '20') * 0.15 + SALWHERE ENAME = 'FORD'(2)将ford调入ACCOUNTING部门担任CLERK。

UPDATE EMP SET JOB = 'CLERK',DEPTNO =(SELECT DEPTNO FROM DEPT WHERE DNAME = 'ACCOUNTING') WHERE ENAME = 'FORD'(3)将SALES部门的所有员工工资增加10%。

数据库原理实验2数据查询

数据库原理实验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系的全体学生姓名与学号。

实验训练2:数据查询操作

实验训练2:数据查询操作

实验训练2:数据查询操作请到电脑端查看实验目的:基于实验1创建的汽车用品网上商城数据库Shopping,理解MySQL运算符、函数、谓词,练习Select语句的操作方法。

实验内容:1.单表查询【实验】字段查询(1)查询商品名称为“挡风玻璃”的商品信息。

分析:商品信息存在于商品表,而且商品表中包含商品名称此被查询信息,因此这是只需要涉及一个表就可以完成简单单表查询。

(2)查询ID为1的订单。

分析:所有的订单信息存在于订单表中,而且订单用户ID也存在于此表中,因此这是只需要查询订单表就可以完成的查询。

【实验】多条件查询查询所有促销的价格小于1000的商品信息。

分析:此查询过程包含两个条件,第一个是是否促销,第二个是价格,在商品表中均有此信息,因此这是一个多重条件的查询。

【实验】DISTINCT(1)查询所有对商品ID为1的商品发表过评论的用户ID。

分析:条件和查询对象存在于评论表中,对此商品发表过评论的用户不止一个,而且一个用户可以对此商品发表多个评论,因此,结果需要进行去重,这里使用DISTINCT实现。

(2)查询此汽车用品网上商城会员的创建时间段,1年为一段。

分析:通过用户表可以完成查询,每年可能包含多个会员,如果把此表中的创建年份都列出来会有重复,因此使用DISTINCT去重。

【实验】ORDER BY(1)查询类别ID为1的所有商品,结果按照商品ID降序排列。

分析:从商品表中可以查询出所有类别ID为1的商品信息,结果按照商品ID的降序排列,因此使用ORDER BY语句,降序使用DESC关键字。

(2)查询今年新增的所有会员,结果按照用户名字排序。

分析:在用户表中可以完成查询,创建日期条件设置为今年,此处使用语句ORDER BY。

【实验】GROUP BY(1)查询每个用户的消费总金额(所有订单)。

分析:订单表中包含每个订单的订单总价和用户ID。

现在需要将每个用户的所有订单提取出来分为一类,通过SUM()函数取得总金额。

实验二-数据的查询、更新

实验二-数据的查询、更新

实验二数据的查询、更新一、实验目的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列。

实验二 数据查询与属性数据编辑

实验二    数据查询与属性数据编辑

实验二数据查询与属性数据编辑
一、实验类型
验证性实验
二、实验目的
1、熟悉ArcView软件的各种数据查询功能。

2、熟悉ArcView软件的属性数据输入、编辑等功能。

三、实验要求
1、掌握空间和属性数据的单项查询、开窗查询、条件查询等功能。

2、掌握ARCVIEW软件的属性编辑功能。

四、实验原理与步骤:
1、属性编辑:
(1)新建TABLE文件,添加field,添加record,修改,删除
(2)打开view视图中与图形对应的table,添加field,添加record,修改,删除
(3)练习表的显示设定。

打开属性对话框,练习隐藏、别名,思考有什么用。

(4)生成统计图
(5)属性汇总
(6)练习Join与Link,思考两个的区别是什么。

(7)练习热连接功能。

2、查询:
(1)属性查询方法:点击查询(select record)、查找特定要素(find,只能是字符字段,忽略大小写,输出符合要求的第一个要素或记录)和编辑条件查询(query biulder)。

(2)图形要素查询方法:点击查询(Identity)、点击开窗查询(select feature矩形查询)和图形查询(select feature by graph)
五、实验仪器设备
电脑、ArcView软件
六、实验结果与分析
提交实验过程报告。

实验训练2:数据查询操作

实验训练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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
from sc,c
where o=o
group by sno;
9.
select count(sno) as人数,avg(sscore) as平均成绩,cno /*9完成*/
from sc
group by cno;
10.
select avg(sscore) as avgscore,sdept /*10完成*/
6.统计各系学生的平均年龄,结果按降序排列;
7.查询无先修课的课程的课程名和学分;
8.统计每位学生选修课程的门数、学分、总分及其平均成绩;
9.统计选修每门课程的学生人数及各门课程的平均成绩;
10.找出平均成绩在85分以上的学生,结果按系分组,并按平均成绩的升序排列;
11.查询选修了“1”或“2”号课程的学生学号和姓名;
12.查询选修了“1”和“2”号课程的学生学号和姓名;
13.查询选修了课程名为“数据库系统”且成绩在60分以下的学生的学号、姓名和成绩;
14.查询没有选修课程的学生的基本信息;
15.查询选修了3门以上课程的学生学号;
16.查询选修课程成绩至少有一门在80分以上的学生学号;
17.查询选修课程成绩均在80分以上的学生学号;
西安财经学院信息学院
《数据库原理》实验报告
实验名称数据的查询和更新实验室521实验日期2012-04-24
一、实验目的及要求
1、掌握关系数据库的各种查询方法,理解其含义,包括嵌套查询、连接查询等;
2、对关系数据库进行查询,包括嵌套查询、连接查询;
3、熟练掌握利用SQL语句对数据进行更新操作。
二、实验环境
实验中要不停翻书,有时也要请教别人,所以平时的练习和课后巩固是很重要的。
整体总计本次实验就是,通过本次实验,能基本掌握关系数据库的各种查询方法和利用
SQL语句对数据进行更新操作,开始并不能完全理解其含义,包括嵌套查询、连接查询
等,但是通过不断的尝试,基本能完成所给出的所有查询操作,并能有一定的理解。
from sc
group by sno
having count(cno)>3;
16.
select distinct sno
from sc
where sscore>80
group by sno
17.
select sno
from sc
group by sno
having min(sscore)>80;
18.
7.把选修了“2”号课程,且成绩低于该门课程的平均成绩的学生成绩删除掉;
四、实验步骤
1.找到上节课创建的数据库s--t,并打开
2.打开查询分析器,在s--t数据库中执行实验操作,操作中,将遇到的问题记下来
3.将每一步执行好的实验程序截图和结果截图并保存
4.完成所有查询后,打开实验报告与保存好的截图和记录的问题,写实验报告
from sc,s
where sc.sno=s.sno and (select avg(sscore)
from sc)>85
group by sdept
order by avg(sscore) ;
11.
select sno,sname /* 11完成*/
from s
where sno in (
select distinct sc.sno
5.把选修了课程名为“数据结构”的学生的成绩提高10%;
6.把选修了“3”号课程,且成绩低于该门课程的平均成绩的学生的成绩提高5%;
7.把选修了“2”号课程,且成绩低于该门课程的平均成绩的学生成绩删除掉;
6、总结(可选)(对上机实践结果进行分析,问题回答,上机的心得体会及改进意见)
由于课后没有练习,书也看得少,所以做实验时比较慢,有些查询语句不会应用,在
5、调试过程及实验结果(记录程序执行及调试过程中的问题及解决方法,及实验结果)
1.查询“CS”系学生的基本信息;
2.查询“CS”系学生年龄不在19到21之间的学生的学号、姓名;
3.找出“CS”系年龄最大的学生,显示其学号、姓名;
4.找出各系年龄最大的学生,显示其学号、姓名;
5.统计各系学生的人数,结果按升序排列;
select max(sage)
from s
where sdept='cs'
);
4.
select sno,sname
from s
where sage=any(
select max(sage)
from s
group by sdept
);
5.
select sdept,count(sno)
from s
group by sdept
group by cno);
select sno
from sc
group by sno
having avg(sscore)>80;
二、
1.
alter table s
add籍贯char(10);
2.
update s
set籍贯='陕西';
3.
create table score
(Sno char(9),
Avggrade smallint,
3、熟练掌握利用SQL语句对数据进行更新操作。
七、源程序清单(可选)
1.
select *
from s
where sdept='cs';
2.
select sno, sname
from s
where sage not between 19 and 21;
3.
select sno,sname
from s
where sage=(
18.查询选修课程平均成绩在80分以上的学生学号;
(二)、数据的更新
1.在S表中增加“籍贯”属性。
2.将“CS”系全体学生的籍贯设置成“陕西”;
3.新建一个表Score(Sno,Avggrade,Sumgrade,Sumcredit),将各个学生的学号、平均成绩、总成绩、总学分存入该表中。
4.在表SC中插入某个学生的选课信息(如:学号为“95005”,课程号为“4”,成绩待定);
from sc,s
where s.sno=sc.sno and o in (
select cno
from c
where cname='数据库') and sscore<60;
14.
select *
from s
where sno not in(select sno
from sc);
15.
select sno
where sscore<(select avg(sscore)
from sc
where cno=3
group by cno);
7.
update sc
set sscore=null
where cno=2 and sscore<(select avg(sscore)
from sc
where cno=2
order by count(sno);
6.
select sdept,avg(sage)
from s
group by sdept
order by avg(sage) desc;
7.
select cname,ccredit
from c
where cpno is null;
8.
select sno,count(o) as countcno,sum(sscore)as sumscore,avg(sscore)as avgscore,sum(ccredit) as sumcredit
from sc
where cno='1' or cno='2');
12.
select sno,sname /*12完成*/
from s,sc
where cno=1 and sc.sno in(
select sno
from sc
where cno=2);
13.
select sc.sno,s.sname
Windows 7 + MICROSOFT SQLSERVER 2000;
三、实验内容
在实验1的基础上,练习查询语句的使用,包括简单查询、嵌套查询、连接查询及EXISTS查询等,体会各种查询的异同及相互之间的转换,体会各种查询的执行过程;练习数据更新语句,体会各种约束的作用。
(一)、在表S,C,SC上完成以下查询:
3.新建一个表Score(Sno,Avggrade,Sumgrade,Sumcredit),将各个学生的学号、平均成绩、总成绩、总学分存入该表中。
4.在表SC中插入某个学生的选课信息(如:学号为“95005”,课程号为“4”,成绩待定);
5.把选修了课程名为“数据结构”的学生的成绩提高10%;
6.把选修了“3”号课程,且成绩低于该门课程的平均成绩的学生的成绩提高5%;
14.查询没有选修课程的学生的基本信息;
15.查询选修了3门以上课程的学生学号;
16.查询选修课程成绩至少有一门在80分以上的学生学号;
17.查询选修课程成绩均在80分以上的学生学号;
18.查询选修课程平均成绩在80分以上的学生学号;
(二)、数பைடு நூலகம்的更新
1.在S表中增加“籍贯”属性。
2.将“CS”系全体学生的籍贯设置成“陕西”.
8.统计每位学生选修课程的门数、学分、总分及其平均成绩;
9.统计选修每门课程的学生人数及各门课程的平均成绩;
10.找出平均成绩在85分以上的学生,结果按系分组,并按平均成绩的升序排列;
相关文档
最新文档