【SQL语言——SELECT查询操作】
基于创建的数据库(包含读者、图书、借阅三张表),试用SQL的查询语句表达下列查询:
1.查询图书表中售价介于50元到70元之间的图书的全部信息
2.查询图书表中全部图书的最高售价、最低售价和平均售价。。
3.查询图书的条形码,书名,出版社和出版日期,要求结果按出版社升序排列,出版社相同的数据按出版日期降序排列
4.在图书表中插入一条记录,内容是:条形码“TP211.3”,书名“狼图腾”,作者“姜戎”,售价 44.5元
5.通过图书表,读者表和借阅表,查询读者的借阅情况,要求结果中包含以下字段:账号,姓名,条形码,书名,借书日期和还书日期。
6.在读者表中查询所有等级为“白银”的读者的余额之和
7.通过读者和借阅表,查询读者信息,包括以下字段:账号,姓名,性别,条形码,借书日期和还书日期
8.查询图书表中有哪些出版社,要求结果没有重复值。
9.将图书表中条形码为TP204.2的图书信息删除。
10.在读者表中,查询男女性读者各多少人。
11.在读者表中查询不同等级各自的人数,结果按人数降序排列
12.查询图书表中条形码左边开始三个字符是“TP3”的图书的全部信息
13.将图书表中科学出版社出版的图书价格上涨5%
14.查询图书表中科学出版社出版的价格在50元以上的图书的信息,要求结果中包括书名,作者,出版社和售价4列。(不包括50元)
15.使用IN子句查询所有‘科学出版社’和‘高教出版社’的书名,作者,售价。
16.在读者表中查询余额最高的读者的全部信息。
提示:请使用嵌套查询作答,不能用top
17.根据读者表和借阅表,查询没有借书记录的读者的账号和姓名。提示:使用“带有NOT IN的嵌套查询”
18.通过图书表和借阅表,查询哪本书没有被借阅过,显示它的条形码,书名和作者信息 提示:使用“带IN的嵌套查询”
实验步骤原始记录(数据、图表、计算等)
(此处放T-SQL代码及更新结果截图)
1.select*
from dbo.Book
where Price>= 50 and Price<=70
2.select
MAX(Price) 最高售价,MIN(Price) 最低售价, AVG(Price)平均售价
from dbo.Book
3.select Barcode,Aname,Publisher,Pubdate
from Book
ORDER BY Publisher ASC,Pubdate DESC
4.Insert into Book(Barcode,Aname,Author,Price)
values ('TP211.3','狼图腾','姜戎',44.5)
5.SELECT Borrow.Account,Name,Book.Barcode,Aname,BorrowTime,ReturnTime
FROM Book INNER JOIN(Borrow INNER JOIN Reader ON Borrow.Account=Reader.Account)
ON Borrow.Barcode=Book.Barcode
6.SELECT SUM(Balance) 白银读者余额之和
FROM Reader
WHERE Grade = '白银'
7.select Reader.Account,Name,Sex,Barcode,BorrowTime,ReturnTime
from Reader inner join Borrow
on Borrow.Account=Reader.Account
8.SELECT DISTINCT Publisher
FROM Book
9.delete
from Book
where Barcode = 'TP204.2'
10.select Sex,count(Sex) 人数
from Reader
group by Sex
11.select Grade,count(*)as 人数
from Reader
group by Grade
order by 人数 desc
12.select *
from Book
where Barcode like 'TP3%'
13.UPDATE Book
SET Price = Price * 1.05
WHERE Publisher = '科学出版社'
14.SELECT Aname,Author,Publisher,Price
FROM Book
WHERE Book.Price > 50 and Publisher = '科学出版社'
15.SELECT Aname,Author,Price
FROM Book
WHERE Publisher in ( '科学出版社','高教出版社')
16.select *
from Reader
where Balance >=all(select max(Balance)from Reader)
17.select Account, Name
from Reader
where Account not in (select Account from Borrow where Borrow.Account=Reader.Account)
18.select Barcode,Aname,Author
from Book
where Barcode not in (select Barcode from Borrow where Borrow.Barcode=Book.Barcode)
sql查询学习小结
1.查询记录
select*from 表名 [where 条件];
eg:select*from students;//查询 students 表中所有记录,所有字段的值都显示出来select field1,field2,...fieldn... from 表名 [where 条件];
eg:select id,name,age from students;//查询 students 表中所有记录, 只显示出 id,name,age三个字段的值
(注:1.“*”表示将所有的字段都显示出来2.用逗号分割,列出需要显示的字段)
2.查询不重复记录
select distinct 字段 from 表名;eg: select distinct name from students;//查询名字不相同的学生;
select distinct name,age from students;//查询名字和年龄同时不同的学生
(1)distinct必须放在最开头
(2)distinct只能使用需要去重的字段进行操作。 ----也就是说我sidtinct了name,age两个字段,我后面想根据id进行排序,是不可以的,因为只能name,age两个字段进行操作. (3)distinct去重多个字段时,含义是:几个字段 同时重复 时才会被 过滤。
3.条件查询
select 字段 from 表名 where 条件;
eg:select * from student where sex='男' and age>20; //查询性别是男,并且年龄大于20岁的人。
where后面的条件可以用>、<、>=、<=、!=等多种比较运算符,多个条件之间可以用or、and等逻辑运算符
4.排序和限制
select * from 表名 [where 条件] [ order by field1 [desc/asc],field2 [desc/asc]... ];
eg:select *from student order by age desc;//查询学生表并按年龄降序排列。
1.desc 降序排列,asc 升序排列
2.order by 后面可以跟多个不同的排序字段,每个排序字段都可以有不同的排序顺序。
3.如果排序字段的值一样,则相同的字段按照第二个排序字段进行排序。
4.如果只有一个排序字段,则字段相同的记录将会无序排列。
5.聚合
select 字段 fun_name from 表名 [where 条件] [group by field1,field2...] [with rollup] [having 条件];
1.fun_name 表示要做的聚合操作,也就是说聚合函数,常用的有 : sum(求和)、count(*)(记录数)、max(最大值)、min(最小值)。
2.group by关键字 表示要进行分类聚合的字段。比如要按照部门分类统计员工数量,部门就应该写在group by 后面。
3.with rollup 是可选语法,表明是否对分类聚合后的结果进行再汇总4.having 关键字表示对分类后的结果再进行条件过滤。
6.表连接
内连接(仅选出两张表中互相匹配的记录)
select staff.name,deptname from staff,deptno where staff.name=deptno.name;
外连接(左连接,包含所有左边表中的记录,甚至是右边表中没有和他匹配的记录):
select staff.name,deptname from staff left join deptno on staff.name=deptno.name;
【SQL语言——SELECT查询操作】相关推荐
- 数据库实验4 SQL语言-SELECT查询操作
数据库实验4 SQL语言-SELECT查询操作 1.首先按照第三章的jxgl数据库的模板创建jxgl数据库并插入数据: 创建数据库jxgl: create database jxgl; 创建相应的表: ...
- 实验二 SQL 语言——SELECT 查询操作(第一部分)
SQL 语言--SELECT 查询操作 实验目的: -了解查询的概念和方法:-掌握 SQL Server 集成管理器查询子窗口中执行 SELECT 操作的方法:-掌握 SELECT 语句在单表查询中的 ...
- 数据库系统实验4:SQL——SELECT查询操作
数据库系统实验4:SQL语言--SELECT查询操作 数据库系统实验4:SQL语言--SELECT查询操作 实验环境 实验内容 步骤及过程 首先按以下SQL语句创建测试用的jxgl数据库 使用SQL语 ...
- SQL语言 --- 数据查询
数据查询 一.单表查询(查询仅涉及一个表) 1.选择表中的若干列 2.选择表中的若干元组 3.ORDER BY子句 4.聚集函数 5.GROUP BY子句 二.连接查询 1.等值与非等值连接查询 2. ...
- MySQL基础 , 基本SQL,SELECT查询详解
定义 MySQL是一个小型开源的关系型数据库管理系统(RDBMS),使用SQL(结构化查询语言)语言进行数据库管理. 优点 1.开源 MySQL是开放源代码的数据库,任何人都可以获得源代码,修正缺陷. ...
- 数据库 SQL 语言 基础CRUD操作
SQL 语言 1. 概括 SQL:Structure Query Language(结构化查询语言),SQL被美国国家标准局(ANSI)确定为关 系型数据库语言的美国标准,后来被国际化标准组织(I ...
- PostgreSQL SQL 语言:查询
本文档为PostgreSQL 9.6.0文档,本转载已得到原译者彭煜玮授权. 1. 概述 从数据库中检索数据的过程或命令叫做查询.在 SQL 里SELECT命令用于指定查询. SELECT命令的一般语 ...
- SQL基础---增删查询操作
在做sustaning的测试,我们经常需要用到一些数据库的增删查询等操作.在这里选择了公司的QA环境作为练习.写下基础的知识点以供以后查询. 查询语句------select: select * fr ...
- SQL语言的基础操作(二)
上机实验二--完整性约束的实现 为Student表创建一插入和更新触发器tri_ins_upd_student:当插入新的学生或者更新学生所在班级时,检查该班级的学生人数有没有超过40人,如果没有则插 ...
最新文章
- Leetcode51 n皇后 DFS+回溯(模板题)
- stm32之实时时钟RTC(掉电计时保持、秒中断、闹钟中断、溢出中断)
- Nginx虚拟主机配置
- 十、 RDD编程和Spark SQL
- Delphi纯代码连SQLite数据库,同时支持数据库的加密解密
- 睡眠声音识别中的准确率问题(三)--采集的音频测试结果及分析
- Java服务器 dm Server
- 判断iOS机器是否支持TouchId, FaceId
- 基于.net开发chrome核心浏览器【三】
- 5分钟转换PDF为图片
- 记忆网络之Dynamic Memory Networks模型介绍及代码实现
- transition动画无效 iphone6
- 输入一个年份和一个月份,输出该年该月有多少天
- Excel如何给单元格加斜线
- 汽车数据聚类分析——天池竞赛
- oracle冲账语句_ORA-00xx问题 -oracle卸载不成功
- [我的作死案例]图书馆泡妹记 上
- c++编程猜数字游戏
- Windows程序crash该怎么分析?
- 金融科技企业哪家强?来看“2020中关村金融科技30强榜单”