实验4 SQL语句之简单查询
- 格式:doc
- 大小:41.50 KB
- 文档页数:4
实验四数据简单查询及操纵语句【实验目的与要求】1、熟练掌握SELECT 语句的基本语法格式;2、熟练掌握使用SQL语句进行单表查询,掌握GROUP BY子句、HA VING 子句和集函数;3、熟练掌握使用SQL标准语句和T-SQL扩展语句进行连接查询。
【实验内容】4.0实验准备本实验将用到实验2中的CPXS数据库、实验3中数据库EDUC数据库以及相应的表及数据,若上述数据库及表尚未创建,或数据尚未录入,则请先完成之。
4.1在实验2中的产品销售数据库CPXS数据库完成以下简单查询⏹查询各种产品的产品编号、产品名称和价格。
写出对应SQL语句并给出查询结果:select 产品编号,产品名称,价格from CP⏹查询地区在“南京”的客户编号和客户名称,结果中各列的标题分别指定为:Customer_id和Customer_name。
写出对应SQL语句并给出查询结果:select 客户编号 Customer_id,客户名称 Customer_nameFROM XSSWHERE 地区='南京'⏹求各产品编号、名称和产品总值。
写出对应SQL语句并给出查询结果:select 产品编号,产品名称,价格*库存量产品总值from CP⏹查询至少购买了至少一种产品的客户编号(不重复)。
写出对应SQL语句并给出查询结果:select distinct 客户编号from CPXSBwhere 数量>=1⏹查询价格在1000-2000的产品信息,并依价格由高到低的顺序排序。
(请使用Between…and和算术比较运算符分别实现)写出对应SQL语句并给出查询结果:(1)select 产品名称from CPwhere 价格 between 1000 and 2000order by 价格 desc(2)select 产品名称from CPwhere 价格>= 1000 and 价格<= 2000order by 价格 desc⏹查询产品名称含有”空调”二字的产品情况。
北京林业大学2013学年—2014学年第1学期数据库原理与应用实验报告书专业:信息管理与信息系统班级:姓名:学号:实验地点:计算机中心机房任课教师:实验题目:实验4 SQL的聚集函数查询与创建视图实验环境:Windows 200X Server、SQL Server 200X实验目的、内容、实现方法、实验结果及结论分析等:在查询分析器中,使用SELECT语句完成下面的操作:1. 聚集函数查询与分组查询①求取工学院(DNO =‘02’,后同)的学生平均年龄use SDBselect avg(age) as 平均年龄from swhere dno='02【分析】此处是用聚集函数进行查询,函数为avg,表达式为age,表示求所有age的平均数。
②求学号为0103的学生的总分和平均分select sum(grade) as 总分,avg(grade) as 平均分from scwhere sno='0103'【分析】用sum和avg函数进行查询,筛选的条件为学生的学号为0103,用sum和avg 求出该学生的总成绩和平均成绩再输出。
③求工学院的最高分和最低分以及最高最低分之间相差多少分select max(grade) as 最高分,min(grade) as 最低分,max(grade)-min(grade) as 最高分与最低分之差from scwhere sno in (select sno from s where dno ='02')【分析】此处用了max、min函数查询,在s表中找到学生信息中学院号为02(工学院)的学生,筛选出来,再在这些学生所有的成绩中查找最高分和最低分并输出,此处用了一个子查询。
④查询出选修课程至少等于三门,并且每门课程成绩都大于等于70分的学生的学号、姓名、平均成绩、标准差和选课门数,结果按平均成绩降序排序。
select s.sno as 学号,s.sn as 姓名,avg(grade) as 平均分,min(grade) as 最低分,count(grade) as 选课门数,stdevp(grade) as 标准差from sjoin sc on s.sno=sc.snogroup by s.sno,s.sn having count(*)>=3 and min(grade)>=70order by avg(grade) desc【分析】此处使用了聚集函数查询和分组查询,stdevp函数的作用使计算表达式所有值得标准差,使用“having”短语制定分组筛选条件,最终只输出满足指定条件的组,此处having 限定的条件是筛选出选课门数大于三门,并且最低分高于70分的学生。
通⽤SQL数据库查询语句范例通⽤SQL数据库查询语句范例(多表查询)作者:谢作如⼀、简单查询简单的Transact-SQL查询只包括选择列表、FROM⼦句和Where⼦句。
它们分别说明所查询列、查询的表或视图、以及搜索条件等。
例如,下⾯的语句查询testtable表中姓名为“张三”的nickname字段和email字段。
Select nickname,email FROM testtable Where name='张三'(⼀) 选择列表选择列表(select_list)指出所查询列,它可以是⼀组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。
1、选择所有列例如,下⾯语句显⽰testtable表中所有列的数据: Select * FROM testtable2、选择部分列并指定它们的显⽰次序查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。
例如: Select nickname,email FROM testtable3、更改列标题在选择列表中,可重新指定列标题。
定义格式为: 列标题=列名 列名列标题如果指定的列标题不是标准的标识符格式时,应使⽤引号定界符,例如,下列语句使⽤汉字显⽰列标题: Select 昵称=nickname,电⼦邮件=email FROM testtable4、删除重复⾏Select语句中使⽤ALL或DISTINCT选项来显⽰表中符合条件的所有⾏或删除其中重复的数据⾏,默认为ALL。
使⽤DISTINCT选项时,对于所有重复的数据⾏在Select返回的结果集合中只保留⼀⾏。
5、限制返回的⾏数使⽤TOP n [PERCENT]选项限制返回的数据⾏数,TOP n说明返回n⾏,⽽TOP n PERCENT时,说明n是表⽰⼀百分数,指定返回的⾏数等于总⾏数的百分之⼏。
例如:Select TOP 2 *FROM testtable Select TOP 20 PERCENT * FROM testtable(⼆) FROM⼦句FROM⼦句指定Select语句查询及与查询相关的表或视图。
实验三、四 SQL语言应用一、实验目的:熟练掌握基本表的定义、删除与修改,为后继学习作准备。
二、实验属性(验证性)1、了解并掌握SQL查询分析器及企业管理器的使用;2、掌握基本表的定义、删除与修改。
三、实验仪器设备及器材1.安装有windows操作系统计算机。
2.安装有Oracle11g和SQL Server的计算机。
3.安装有Visual Studio .net和Java编译器(eclipse、Netbean等)的编译器。
4.计算机具备网络环境。
四、实验要求(预习、实验前、实验中、实验后等要求)1.预习教材第三章,熟悉SQL语句。
2.熟悉.net、Java、PowerBuilder和Delphi 开发环境。
3.能够熟练掌握.net、Java、PowerBuilder和Delphi环境下的数据库的编程。
4.掌握单表查询语句的一般格式。
;5.掌握单表无条件、有条件查询及查询结果排序与分组。
6.掌握多表连接、嵌套和集合查询语句的一般格式及各种使用方法。
五、实验原理SQL语言应用。
六、实验步骤:(1)启动Oracle的SQL Developer或者SQL Plus,或者SQL Server 查询分析器;(2)对于Oracle11g的SQL Plus需要进行登录,对于Oracle11g的SQL Developer需要进行建立连接。
如果选择SQL SERVER查询分析器,需要选择数据库;A、单表查询无条件查询例2.1 查询全体学生的详细记录。
select *from student;例2.2 查询全体学生的姓名(Sname)、学号(Sno)、所在系(Sdept)。
select Sname as 姓名,Sno as 学号,Sdept as 系别from student;例2.3 查询全体学生的姓名(Sname)、出生年份及学号(Sno)。
select Sname as 姓名,(2012-Sage) as 出生年份,Sno as 学号from student;例2.4 查询全体学生的姓名、出生年份和学号,要求用小写字母表示学号中的字母。
实验4 SQL 语言——SELECT 查询操作1实实验验44 S S Q Q L L 语语言言————S S E E L L E E C C T T 查查询询操操作作实验示例实验示例中要使用包括如下三个表的“教学管理”数据库JXGL :(1)学生表Student ,由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,记作:Student(Sno,Sname,Ssex,Sage,Sdept),其中主码为Sno 。
(2)课程表Course ,由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,记作:Course(Cno,Cname,Cpno,Ccredit),其中主码为Cno 。
(3)学生选课SC ,由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,记作:SC(Sno,Cno,Grade),其中主码为(SNO,CNO)。
1、在SQL SERVER 查询分析器或企业管理器(以具有相应操作权限的某用户登录)的SQL 操作窗口中执行如下命令创建数据库。
需要说明的是不同数据库系统其创建数据库的命令或方式有所不同。
CREATE DATABASE JXGL2、刷新数据库目录后,选择新出现的JXGL 数据库,在SQL 操作窗口中,创建Student 、SC 、Course 三表及表记录插入命令如下:Create Table Student( Sno CHAR(5) NOT NULL PRIMARY KEY(Sno),Sname VARCHAR(20),Sage SMALLINT CHECK(Sage>=15 AND Sage<=45),Ssex CHAR(2) DEFAULT '男' CHECK (Ssex='男' OR Ssex='女'),Sdept CHAR(2));Create Table Course( Cno CHAR(2) NOT NULL PRIMARY KEY(Cno),Cname VARCHAR(20),Cpno CHAR(2),Ccredit SMALLINT);Create Table SC( Sno CHAR(5) NOT NULL CONSTRAINT S_F FOREIGN KEY REFERENCES Student(Sno), Cno CHAR(2) NOT NULL,Grade SMALLINT CHECK ((Grade IS NULL) OR (Grade BETWEEN 0 AND 100)),PRIMARY KEY(Sno,Cno),数据库原理与应用实验指导2FOREIGN KEY(Cno) REFERENCES Course(Cno));INSERT INTO Student VALUES('98001','钱横',18,'男','CS');INSERT INTO Student VALUES('98002','王林',19,'女','CS');INSERT INTO Student VALUES('98003','李民',20,'男','IS');INSERT INTO Student VALUES('98004','赵三',16,'女','MA');INSERT INTO Course VALUES('1','数据库系统', '5',4);INSERT INTO Course VALUES('2','数学分析',null ,2);INSERT INTO Course VALUES('3','信息系统导论','1',3);INSERT INTO Course VALUES('4','操作系统原理','6',3);INSERT INTO Course VALUES('5','数据结构','7',4);INSERT INTO Course VALUES('6','数据处理基础',null,4);INSERT INTO Course VALUES('7','C 语言','6',3);INSERT INTO SC VALUES('98001','1',87);INSERT INTO SC VALUES('98001','2',67);INSERT INTO SC VALUES('98001','3',90);INSERT INTO SC VALUES('98002','2',95);INSERT INTO SC VALUES('98002','3',88);[例1] 查考试成绩大于等于90的学生的学号。
实验四表数据的简单查询实验学时:1学时实验类型:设计实验要求:必做一、实验目的掌握SELECT语句的基本用法。
掌握计算列的用法。
掌握WHERE子句中各类查询条件的写法。
二、实验内容1、在连接“MySQL”中新建数据库“world”,并将数据库文件world_inno.sql导入到该数据库之中2、查询world数据库的country表中的国名(Name)、洲名(Continent)和地区(Region)。
步骤:点击“新建查询”,输入以下代码,点击执行USE worldSELECT NAME,Continent,Region FROM country;运行结果如图2.1:图2.13、从world数据库的city表中搜索返回前20条的数据。
步骤:点击“新建查询”,输入以下代码,点击执行USE world;SELECT * FROM city LIMIT 0,20;其中,“LIMIT M,N”中的M表示从第M条(不包括M)开始结果如图3.1:图3.14、使用WHERE 子句从world 数据库的country表中检索出所有领土面积超过一百万平方公里的国家名称(Name)、洲名(Continent)以及领土面积(SurfaceArea)。
步骤:点击“新建查询”,输入以下代码,点击执行USE world;SELECT NAME,Continent,SurfaceAreaFROM countryWHERE SurfaceArea > 1000000;结果如图4.1:图4.15、查询在world数据库的country表中Name以字母C开头的国家的洲名Continent,地区Region。
步骤:点击“新建查询”,输入以下代码,点击执行USE world;SELECT Name,Continent,RegionFROM countryWHERE NAME like 'C%';运行结果如图5.1:图5.16、查询world数据库Country表中所有国家的Name和Condinent,并按生日SurfaceArea 从小到大进行排列。
SQLSERVER2008实用教程实验参考答案(实验4)实验4 数据库的查询和视图一、SELECT语句的基本使用1. 查询Employees表中所有数据2. 查询Employees表中指定字段数据3. 查询Employees表中的部门号和性别,要求使用Distinct消除重复行4. 使用WHERE子句查询表中指定的数据查询编号为’000001’的雇员的地址和电话查询月收入高于2000元的员工号码查询1970年以后出生的员工的姓名和住址5. 使用AS子句为表中字段指定别名查询Employees表中女雇员的地址和电话,并将列标题显示为地址和电话查询Employees表中男雇员的姓名和出生日期,并将列标题显示为姓名和出生日期6. 使用使用CASE子句查询Employees表中员工的姓名和性别,要求Sex值为1时显示“男”,为0时显示“女”查询Employees表中员工的姓名、住址和收入水平,2000元以下显示为低收入,2000~3000地显示为中等收入,3000元以上显示为高收入。
7. 使用SELECT语句进行简单计算计算每个雇员的实际收入8. 使用内置函数获得员工总数计算Salary表中员工月收入的平均数获得Employees表中最大的员工号码计算Salary表中所有员工的总支出查询财务部雇员的最高和最低实际收入9. 模糊查询找出所有姓王的雇员的部门号找出所有地址中含有“中山”的雇员的号码及部门号找出员工号码中倒数第二个数字为0的员工的姓名、地址和学历10. Between…And…和Or的使用找出收入在2000~3000元之间的雇员编号找出部门为“1”或“2”的雇员的编号11. 使用INTO子句,由源表创建新表由表Salary创建“SalaryNew”表,要求包括编号和收入,选择收入在1500元以上的雇员由表Employees创建“EmployeesNew”表,要求包括编号和姓名,选择所有男员工二、子查询的使用1. 查找在财务部工作的雇员情况2. 用子查询的方法查找所有收入在2500以下的雇员的情况3. 查找财务部年龄不低于研发部雇员年龄的雇员姓名4. 用子查询的方法查找研发部比所有财务部雇员收入都高的雇员的姓名5. 查找比所有财务部的雇员收入都高的雇员的姓名6. 用子查询的方法查找所有年龄比研发部雇员年龄都大的雇员的姓名三、连接查询的使用1. 查询每个雇员的情况及薪水的情况2. 查询每个雇员的情况及其工作部门的情况3. 使用内连接的方法查询名字为“王林”的雇员所在的部门4. 使用内连接的方法查找出不在财务部工作的所有雇员信息5. 使用外连接方法查找出所有员工的月收入6. 查找财务部收入在2000元以上的雇员姓名及其薪水详情7. 查询研发部在1976年以前出生的雇员姓名及其薪水详请四、聚合函数的使用1. 求财务部雇员的平均收入2. 查询财务部雇员的最高和最低收入3. 求财务部雇员的平均实际收入4. 查询财务部雇员的最高和最低实际收入5. 求财务部雇员的总人数6. 统计财务部收入在2500元以上的雇员人数五、GROUP BY、ORDER BY子句的使用1. 查找Employees表中男性和女性的人数2. 按部门列出在该部门工作的员工的人数3. 按员工的学历分组,排列出本科、大专、硕士的人数4. 查找员工数超过2的部门名称和雇员数量5. 按员工的工作年份分组,统计各个工作年份的人数,例如工作1年的多少人,工作2年的多少人6. 将雇员的情况按收入由低到高排列7. 将员工信息按出生时间从小到大排列8. 在ORDER BY 子句中使用子查询,查询员工姓名、性别和工龄信息,要求按实际收入从大到小排列六、视图的使用1. 创建视图(1)在数据库YGGL上创建视图Departments_View,视图包含Department表的全部列(2)创建视图Employees_Departments_View,视图包含员工号码、姓名、所在部门名称(3)创建视图Employees_Salary_View,视图包含员工号码、姓名和实际收入三列2. 查询视图从视图Employees_Salary_View中查询出姓名为“王林”的员工的实际收入3. 更新视图(1)向视图Departments_View中添加一条记录(‘6’,‘广告部’,‘广告业务’)执行完命令后,分别查看Departments_View和Department表中发生的变化(2)尝试向Employees_Departments_View中添加一条记录,看看会发生什么情况(3)尝试向Employees_Salary_View中添加一条记录,看看会发生什么情况(4)将视图Departments_View中,部门号为‘6’的部门名称修改为‘生产车间’(5)删除视图Departments_View中最新增加的的一条记录4. 删除视图Employees_Departments_View5. 在界面工具中操作视图一、SELECT语句的基本使用1. 查询Employees表中所有数据SELECT*FROM Employees;2. 查询Employees表中指定字段数据SELECT EmployeeID,Name,DepartmentID FROM Employees;3. 查询Employees表中的部门号和性别,要求使用Distinct消除重复行SELECT Distinct DepartmentID,Sex FROM Employees;4. 使用WHERE子句查询表中指定的数据查询编号为’000001’的雇员的地址和电话Select Address,PhoneNumber FROM Employees WHERE EmployeeID='000001';查询月收入高于2000元的员工号码SELECT EmployeeID FROM Salary WHERE InCome>2000;查询1970年以后出生的员工的姓名和住址SELECT Name,Address FROM Employees WHERE YEAR(Birthday)>'1970'; SELECT Name,Address FROM Employees WHERE Birthday>'1970';5. 使用AS子句为表中字段指定别名查询Employees表中女雇员的地址和电话,并将列标题显示为地址和电话SELECT Address AS地址,PhoneNumber AS电话FROM Employees;查询Employees表中男雇员的姓名和出生日期,并将列标题显示为姓名和出生日期SELECT Name AS姓名,Birthday AS出生日期FROM Employees WHERE Sex=1;6. 使用使用CASE子句查询Employees表中员工的姓名和性别,要求Sex值为1时显示“男”,为0时显示“女”SELECT Name AS姓名,CASEWHEN Sex=1 THEN'男'WHEN Sex=0 THEN'女'ENDAS性别FROM Employees;查询Employees表中员工的姓名、住址和收入水平,2000元以下显示为低收入,2000~3000地显示为中等收入,3000元以上显示为高收入。
《数据库原理》实验报告(实验名称:SQL查询语句)一、实验目的数据查询语句是SQL语句的重要组成部分,是编程人员与数据库管理人员必不可少的工具,通过实验达到以下目的:(1)掌握SELECT 语句的基本语法,加深学生对查询语句基本概念的理解。
(2)掌握简单的单表查询。
(3)掌握连接查询。
二、实验内容:实验数据:实验二所建的数据库及表,实验三录入表中的数据。
1、简单查询(1)若干列或行的选择(2)*、distinc、between…and… 、 in、 like等运算符的使用(3)计算列、常量或空值的查询(4)查询结果排序和分组2、连接查询(1)内连接和自身连接(2)外连接(3)复合条件连接(4)多表连接(5)对表和列使用别名三、实验环境SQL server 2000,pc机一台四、程序源码与运行结果1.查询所有学生的全部信息2. 查询全体学生的学号与姓名3 查询年龄在20岁以下的学生姓名及其出生年份,并为出生年份加上标题4 查询选修了课程的学生学号,并消除重复行5 查询年龄在20~23岁的学生信息(用between… and…表示查询条件)6 查询全体学生情况,查询结果按班级编号升序排列,同一班的学生按年龄降序排列7 查询所有姓赵学生的姓名、学号和性别8 查询名字中第2个字为“小”字的学生姓名9 查询电气信息工程学院(dx) 和计算机学院(jsj)的学生(要求:使用IN关键字表示查询条件10 查询没有考试成绩的学生学号和课程号11 查询有2门以上课程是90分以上的学生的学号及(90分以上的)课程数(先用group by 分组,再用Having限定分组条件)12 查询学生总人数13 查询学号为‘’学生的平均成绩和总成绩,并为总成绩和平均成绩取别名。
14 查询c01号课程的最高分数和最低分15 查询没有考试成绩的学生学号和课程号16 查询全体学生的姓名、选修的课程名及成绩17 查询每个学生及其选修课程情况的所有信息(用*表示字段18 查询某门课程考试成绩相同的学生学号和课程名,并为各个表取别名19 查询与“张三”在一个系学习的学生(IN)20 查询选修了“数据结构”的学生学号和姓名五、实验总结列名写错:修改列名:心得体会:通过实验,了解了一些基本的查询操作,会一些的基本操作。
数据库实验报告(四)姓名:学号:班级:1.简单查询:(1)查询“数据库开发技术”课程的学分;SQL语句:select creditfrom coursewhere course_name='SQL Server数据库开发技术';或者模糊查询:select creditfrom coursewhere course_name like’%数据库开发技术';执行结果:(2) 查询选修了课程编号为“dep04_s004”的学生的学号和成绩,并将成绩按降序输出;SQL语句:select student_id,gradefrom student_coursewhere course_id='dep04_s003’order by grade desc;执行结果:(3) 查询学号为“g9940205”的学生选修的课程编号和成绩;SQL语句:select course_id,gradefrom student_coursewhere student_id=’g9940205';执行结果:(4) 查询选修了课程编号为“dep04_s001”且成绩高于85分的学生的学号和成绩。
SQL语句:select student_id,gradefrom student_coursewhere course_id='dep04_s001’and grade〉’85’;执行结果:2.在多表连接的查询实验中,用Transact SQL语句完成以下查询操作:(1)查询选修了课程编号为“dep04_s002”且成绩高于85分的学生的学号、姓名和成绩;SQL语句:select student.student_id,student_name,gradefrom student,student_coursewhere student。
student_id=student_course。
student_idand student_course。
实验4查询与SQL操作订货管理系统仓库表职工表供应商表实验目的:通过上机操作实验,熟练掌握SQL语言的用法,并能够灵活的运用SQL对数据库中的各种数据记录进行各种查询操作。
实验内容:根据如上“订货管理”数据库各表,然后根据该数据库分别写出如下操作的各项命令并上机检验执行:(设计视图和SQL视图操作都要熟悉)1简单查询例:1、从职工关系中检索所有工资值。
SELECT工资FROM职工可以看到在结果中有重复值,若要去掉重复值只需要指定DISTINCT短语。
SELECT DISTINCT 工资FROM 职工2、查询仓库关系中的所有元组。
SELECT仓库.* FROM 仓库3、查询工资多于1230元的职工号。
SELECT职工号FROM职工WHERE工资>1230 练习:查询出在仓库”WH1”或”WH2”工作,并且工资少于1250元的职工信息2简单的联接查询例:查询工资多于1230元的职工号和他们所在的城市。
SELECT职工号,城市FROM 职工,仓库WHERE (工资>1230)AND(职工•仓库号=仓库. 仓库号练习:找出工作在面积大于400的仓库的职工号以及这些职工工作所在的城市。
3嵌套查询例:哪些城市至少有一个仓库的职工工资为1250元?SELECT 城市FROM 仓库WHERE 仓库号IN(SELECT 仓库号FROM 职工WHERE 工资=1250)练习:找出和职工E4挣同样工资的所有职工。
4几个特殊运算符BETWEEN , AND ,:指定查询的条件是在什么范围内(数值)LIKE (* | ?):指定查询与通配符相匹配的字符。
例:查询出工资在1220元到1240元范围内的职工信息。
SELECT * FROM 职工WHERE 工资BETWEEN 1220 AND 1240 (或:工资>=1220 AND 工资<=1240)2、不要工厂或其他供应商的信息。
这是一个字符串匹配的查询,显然应该使用LIKE运算符。
实验三SQL数据查询(简单查询)姓名:学号:专业:网络工程班级:20网络工程同组人:无实验日期:【实验目的与要求】1、熟练掌握SELECT 语句的基本语法格式;2、熟练掌握使用SQL语句进行单表查询,掌握GROUP BY子句、HA VING 子句和集函数;3、熟练掌握使用SQL标准语句和T-SQL扩展语句进行连接查询。
【实验内容】3.0. 实验准备与说明本实验将用到实验二中数据库SalesDB和相应的表及数据,若该数据库及表尚未创建,或数据尚未录入,则请先完成之。
请根据前面实验创建的表结构和数据,完成如下查询。
本实验及后面实验中所用测试数据库中表的字段及含义如下表:表-1 测试数据库表的字段及含义3.1.简单查询(1).查询各种产品的产品编号、产品名称和价格。
请给出相应语句:USE SalesDB;SELECT Pno,Pname,Price FROM Product;请给出运行结果:(2).查询所在城市为“厦门”的客户编号和客户名称,结果中各列的标题分别指定为:“客户编号”和“客户名称”显示。
请给出相应语句:SELECT Cno as客户编号,Cname as客户名称FROM Customer WHERE City='厦门';请给出运行结果:(3).查询各产品编号、名称、库存量和产品总值。
(总值:价格与库存数量的积)请给出相应语句:SELECT Pno,Pname,Price ,Stocks FROM Product;SELECT SUM(Price*Stocks)as产品总值FROM Product;请给出运行结果:(4).查询曾购买过产品的客户编号(不重复)。
请给出相应语句:SELECT Cno FROM Customer;请给出运行结果:(5).查询价格在1000-2000的产品信息,并依价格由低到高的顺序排序。
(请使用Between…and和算术比较运算符分别实现)a.使用Between…and比较实现:请给出相应语句:use SalesDB;select*from Productwhere Price between 1000 and 2000order by Price;请给出运行结果:b.使用算术比较实现:请给出相应语句:use SalesDB;select*from Productwhere Price >= 1000 and Price<=2000order by Price;请给出运行结果:(6).查询产品名称含有“热水器”的产品信息。
实验4 使用SQL查询分析器完成简单查询一、实验目的1、通过对Select的使用,掌握Select语句的结构及其应用。
二、实验要求1、掌握在SQL Server 2000环境下,利用企业管理器和查询分析器进行SQL数据查询。
学习使用Select 语句进行数据库的检索,掌握在Select语句中使用where子句、order by子句、group by子句以及between、like关键字。
三、实验设备、环境设备:奔腾III或奔腾III以上计算机环境:WINDOWS XP或WINDOWS NT、SQL SERVER 2000中文版四、实验原理、方法上机操作五、实验步骤及内容(一)实验步骤1、学生实际操作(二)实验内容1、使用SQL查询分析器,对Pubs数据库完成如下简单查询操作(2)查询所有作者的姓名和作者号信息,并在每个作者的作者号前面显示字符串“身份证号:”表明显示信息是身份证信息;(authors表)(3)改变显示列名。
显示所有作者的姓名信息和作者号信息,要求用“名”和“姓”来区别fname 和lname,“作者编号”来区分作者号;(authors表)(4)查询所有书在价格提高10%后的价格和书名信息;(titles表)(5)查询所有书的书号和税后价格。
(titles表,royalty列表示税率);(6)查询所有作者的姓和“名的第一个字符”以及作者号;(authors表; SUBSTRING函数; au_fname 表示名,au_lname表示姓; substring(au_fname,1,1), 第二个参数表示位置, 第三个参数表示取子串长度)(7)查询邮政编码大于9000的作者姓名和电话信息;(authors表)(8)查询在CA州的作者姓名和城市;(authors表)(9)查询出版日期在1/1/1991到12/31/1991之间的书名(书名限制为38个字符)和出版日期;(titles表,SUBSTRING函数)(10)查询书的类型是mod_cook或trad_cook的书名和它的类型;(titles表)(11)查询店名中包含Book的店的信息;(stores表);(12)查询所有无价格的图书;(titles表)(13)查询书名以T开头或者出版号为0877,且价格大于16美元的书的信息;(titles表)(14)查询所有作者的所在城市和州名,要求没有重复信息;(authors表)(15)按照类型的升序和价格的降序显示书的信息;(titles表)六、实验报告要求及记录、格式按长沙理工大学《实验报告》格式填写七、实验注意事项1、实验过程中注意爱护计算机,实验完毕要按政党操作关闭计算机;2、不要随意更改sa的登录密码;3、注意自己创建的数据库主文件及日志文件的保存文件名及位置。
实验四数据库的查询和视图T4.1 数据库的查询1.目的与要求(1)掌握select语句的基本语法;(2)掌握子查询的表示(3)掌握连接查询的表示(4)掌握select语句的group by子句的作用和使用方法(5)掌握select语句的order by子句的作用和使用方法2 实验准备(1)了解SELECT语句的基本语法格式;(2)了解SELECT语句的执行方法;(3)了解子查询的表示方法;(4)了解连接查询的表示;(5)了解SELECT语句的GROUPBY子句的作用和使用方法;(6)了解SELECT语句的ORDERBY子句的作用;3实验内容SELECT语句的基本使用。
①对于实验2给出的数据库表结构,查询每个雇员的所有数据。
新建一个查询,在查询分析器中输入如下语句并执行:USEYGGLGOSELECT *FROM Employees【思考与练习】用SELECT语句查询Departments和Salary表中所有的数据信息。
用SELECT语句查询Employees表中每个雇员的地址和电话。
新建一个查询,在查询分析器中输入如下语句并执行:Use YGGLGOSELECT Address PhoneNumberFROM Employees【思考与练习】a.用SELECT语句查询Deparments和Salary表的一列或若干列。
b.查询Employees表中的部门号和性别,要求使用DISTINCT消除重复行。
c.查询EmployeeID为000001的雇员的地址和电话。
Use YGGLGOSELECT Address PhoneNumberFROM EmployeesWHERE EmployeeID=’000001’【思考与练习】a.查询月收入高于2000元的员工号码。
b.查询1970年以后出生的员工的姓名和住址。
c.查询所有财务部的员工的号码和姓名。
查询Employees表中女雇员的地址和电话,使用AS子句将结果中各列的标题分别指定为地址、电话。
数据库的简单查询和连接查询实验总结下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!数据库的简单查询和连接查询实验总结数据库的查询是使用SQL语言进行数据检索和操作的基础技能。
实验四数据查询——简单查询一、实验目的1.掌握SQL查询语句的基本概念2.掌握SQLServer查询语句的基本语法3.熟练使用SQL的Select语句对单表进行查询4.熟练掌握并运用SQLServer所提供的函数5.熟练使用SQL语句进行连接操作二、实验环境(实验的软件、硬件环境)硬件:PC机软件:SQL2000三、实验说明请复习相关的单表查询及select语句的语法知识点,并完成如下内容。
四、实验内容1.在订单数据库orderDB中,完成如下的查询:(1)查询所有业务部门的员工姓名,职称,薪水(2)查询名字中含有“有限”的客户姓名和所在地(3)查询姓“王”并且姓名的最后一个字为“成”的员工(4)查询住址中含有上海或南昌的女员工,并显示其姓名,所属部门,职称,住址,其中性别用“男”和“女”显示。
(5)查询订单金额高于8000的所有客户编号(6)选取编号界于C0001~C0004的客户编号,客户名称,客户地址(7)找出同一天进入公司服务的员工(8)在订单主表中查询订单金额大于“E2005002”业务员在2008-1-9这天所接的任一张订单的金额”的所有订单信息。
(9)查询既订购了“52倍速光驱”商品,又订购了“17寸显示器”商品的客户编号、订单编号和订单金额。
(10)查找与“陈诗杰”在同一个单位工作的员工姓名、性别、部门和职务。
(11)查询单价高于400元的商品编号、商品名称、订货数量和订货单价。
(12)分别使用左外连接、右外连接、完整外部连接查询单价高于400元的商品编号、商品名称、订货数量和订货单价,并分析比较检索的结果。
(13)查找每个员工的销售记录,要求显示销售员的编号、姓名、性别、商品名称、数量、单价、金额和销售日期,其中性别使用“男”和“女”表示,日期使用yyyy-mm-dd格式显示。
(14)查找在2008年3月中有销售记录的客户编号、名称和订单总额。
(15)使用左外连接查找每个客户的客户编号、名称、订单日期、订货金额,其中订货日期不要显示时间,日期格式为yyyy-mm-dd,按客户编号排序,同一客户再按订单金额降序排序输出。
数据库系统原理实验报告姓名:xxx学号:xxxxxxxx专业:xxxxx日期:xxxxxLab2 一、实验目的进一步熟悉关系数据库标准语言SQL。
二、实验环境1)Windows 102)SQL Server 2017三、实验内容给定如学生表、课程表和学生作业表所示的信息。
表1 学生表表2 课程表表3 学生作业表写出如下SQL语句:1.查询数据库中有哪些专业班级。
(5分)Sql语句:SELECT专业班级FROM学生表;查询结果截图:2.查询在1986年出生的学生的学号、姓名和出生日期。
(5分)Sql语句:SELECT学号,姓名,出生日期FROM学生表WHERE出生日期LIKE'1986%';查询结果截图:3.查询05级的男生信息。
(5分)Sql语句:SELECT*FROM学生表WHERE学号LIKE'05%'AND性别='男';查询结果截图:4.查询没有作业成绩的学号和课程号。
(5分)Sql语句:SELECT学号,课程号FROM学生作业表WHERE作业1成绩IS NULL OR作业2成绩IS NULL OR作业3成绩IS NULL;查询结果截图:5.查询选修了K001课程的学生人数。
(5分)Sql语句:SELECT COUNT(DISTINCT学号)FROM学生作业表WHERE课程号='K001';查询结果截图:6.查询数据库中共有多少个班级。
(5分)Sql语句:SELECT COUNT(DISTINCT专业班级)FROM学生表;查询结果截图:7.查询选修三门以上(含三门)课程的学生的学号和作业1平均分、作业2平均分和作业3平均分。
(5分)Sql语句:SELECT学生作业表.学号,AVG(作业1成绩),AVG(作业2成绩),AVG(作业3成绩)FROM学生表,学生作业表WHERE学生表.学号=学生作业表.学号GROUP BY学生作业表.学号HAVING COUNT(*)>2;查询结果截图:8.查询于兰兰的选课信息,列出学号、姓名、课程名。
实验4 SQL语句之简单查询
一、实验目的
1.掌握SELECT语句的基本语法。
2.掌握从表中查询特定行的方法。
3.掌握从表中选择表中若干列和全部列的方法。
4.掌握从表中查询经过计算的值以及为列指定别名的方法。
5.掌握取消重复行和查找满足条件元组的方法。
6.掌握(NOT) BETWEEN AND,LIKE,IN,NULL,通配符的使用方法。
7.掌握ODER BY、GROUP BY的使用方法。
8.掌握聚集函数的使用方法。
二、实验要求
1.应用SELECT语句对数据库中数据进行指定条件的简单查询。
2.撰写实验报告,并附实验结果界面及相应实验语句。
三、实验步骤
1.查询StudentInfo表中所有的学生的详细信息,SQL代码如下所示:
SELECT *
FROM StudentInfo
注意:SQL代码可以写在一行中,也可以分成多行,功能不变。
本书中为了提高代码的可读性,采用更为清晰的多行形式。
2.查询StudentInfo表中所有学生的学号、姓名、系别、专业等信息,SQL代码如下所示:
SELECT sno,sname,depart,major
FROM StudentInfo
3.查询全体学生的学号、姓名及年龄信息,SQL代码如下所示:
SELECT Sno,Sname,Year(GETDATE())-Year(Birthday)
FROM StudentInfo
注:YEAR(日期)函数的作用是返回日期的年份,GETDATE()函数的作用是返回系统日期和时间。
4.查询全体学生的学号、姓名及年龄信息,并且为年龄列定义别名为“Age”。
SQL 代码如下所示:
SELECT Sno,Sname,Year(GETDATE())-Year(Birthday) Age
FROM StudentInfo
5.查询有学生选修的教学计划的教学计划号。
SQL代码如下所示:
SELECT TeachTaskID FROM SC
6.查询有学生选修的教学计划的教学计划号,并去掉重复行。
SQL代码如下所示:SELECT DISTINCT TeachTaskID FROM SC
注意观察以上两条语句执行结果的差别。
7.查询StudentInfo表中学号为201001903029的学生的详细信息,SQL代码如下所示:SELECT *
FROM StudentInfo
WHERE Sno='201001903029'
8.查询出生年月在1991-03-15日以后的学生的详细信息,SQL代码如下所示:SELECT *
FROM StudentInfo
where Birthday>'1991-03-15'
9.查询成绩在70-80之间的学生的学号及教务任务号等信息,SQL代码如下所示:SELECT TeachTaskID,Sno,Grade
FROM SC
WHERE Grade BETWEEN 70 and 80
注意:BETWEEN 70 and 80包含70和80。
10.查询不是计算机系和服装系学生的姓名、性别和专业,SQL代码如下所示:SELECT Sname,Sex,Depart,Major
FROM StudentInfo
WHERE Depart not in('计算机系','服装系')
11.查询2009-2010学年第1学期学生选课的学生号、课程号及成绩,SQL代码如下所示:
SELECT Sno,SUBSTRING(TeachTaskID ,15,6) as Cno,Grade
FROM SC
WHERE TeachTaskID like '%2009-2010-1%'
注意:SQL Server 2012中SUBSTRING函数的函数原型为:
SUBSTRING ( value_expression ,start_expression , length_expression )
其作用是返回字符串value_expression中从start_expression位置开始的length_expression 个字符。
如果start_expression小于零,会返回错误;如果start_expression大于value_expression的长度,则返回零长度的表达式。
12.查询名字最后一个字为“娟”,且名字为三个字的学生详细信息,SQL代码如下所示:
SELECT *
FROM StudentInfo
WHERE Sname like '__娟'
注意:'__娟'中,娟前为两个下划线,中间没有空格。
在SQL Server 2012中,数据类型nvarchar是按字符存储的,即nvarchar(20)能存储20个中文字符。
而数据类型varchar是按字节存储的,即varchar(20)能存储20个字节长度的字符,而存储中文时1个字符占用两个字节,因此只能存储10个中文字符。
在SQL Server 2012中,通配符“_”表示任意单个字符,不管单个字符是按字符存储还是按字节存储。
因此表StudentInfo中Sname的数据类型为不管是nvarchar还是varchar,名字最后一个字为“娟”且名字为三个字的表示方法都是“__娟”,即娟前有两个下划线。
13.查询CourseInfo表中没有先行课的课程号与课程名称,SQL代码如下所示:SELECT cno,cname
FROM CourseInfo
WHERE cpno is null
14.查询在计算机系的女学生的详细信息。
SQL代码如下所示:
SELECT * FROM StudentInfo
WHERE Depart='计算机系' and Sex='女'
15.查询是教授或者是博士的教师详细信息。
SQL代码如下所示:
SELECT * FROM TeacherInfo
WHERE ProfTitle ='教授' or Degree ='博士'
16.查询在2009-2010年第2学期,选修140176课程的学生学号及成绩,查询结果按成绩降序排列。
SQL代码如下所示:
SELECT Sno,Grade FROM SC
WHERE TeachTaskID like '(2009-2010-2)-140176%'
ORDER BY Grade DESC
注意观察ORDER BY的作用。
17.查询计算机系学生的总人数,SQL代码如下所示:
SELECT COUNT(*) as 人数FROM StudentInfo
WHERE Depart ='计算机系'
18.查询在2009-2010年第2学期,选修140176课程中的最高分,SQL代码如下所示:
SELECT MAX(Grade) FROM SC
WHERE TeachTaskID like '(2009-2010-2)-140176%'
19.查询各教学计划号及相应的选课人数,SQL代码如下所示
SELECT TeachTaskID ,COUNT(Sno) as 人数FROM SC
GROUP BY TeachTaskID
20.查询在2009-2010年第2学期选修了2门以上课程的学生学号,SQL代码如下所示:
SELECT Sno FROM SC
WHERE TeachTaskID like '(2009-2010-2)%'
GROUP BY Sno
HAVING COUNT(*)>=2
四、拓展练习
1.用LIKE或者NOT LIKE查询StudentInfo表中学号为201011002032的学生的所有详细信息,编写SQL代码。
2.用IS NULL或者IS NOT NULL查询CourseInfo表中存在先行课的课程号与课程名称,编写SQL代码。
3.用AND或者OR查询StudentInfo表中服装系中女生学生的所有详细信息,编写SQL 代码。
4.用BETWEEN.....AND和NOT BETWEEN.....AND.....查询StudentInfo表中学号在201001903033—201001903051之间的学生的所有详细信息,编写SQL代码。
5.用IN和NOT IN查询StudentInfo表中经济管理系和计算机系的学生的所有详细信息,编写SQL代码。
6.查询StudentInfo表中全体的学生的详细信息,查询结果按照所在系升序排列,对同一系的学生按照学号降序排列。
7.查询选修课程数在2门及以上的学生的基本信息。
8.查询名字中含有“梅”字的学生基本信息。