基于创建的数据库(包含读者、图书、借阅三张表),试用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查询操作】相关推荐

  1. 数据库实验4 SQL语言-SELECT查询操作

    数据库实验4 SQL语言-SELECT查询操作 1.首先按照第三章的jxgl数据库的模板创建jxgl数据库并插入数据: 创建数据库jxgl: create database jxgl; 创建相应的表: ...

  2. 实验二 SQL 语言——SELECT 查询操作(第一部分)

    SQL 语言--SELECT 查询操作 实验目的: -了解查询的概念和方法:-掌握 SQL Server 集成管理器查询子窗口中执行 SELECT 操作的方法:-掌握 SELECT 语句在单表查询中的 ...

  3. 数据库系统实验4:SQL——SELECT查询操作

    数据库系统实验4:SQL语言--SELECT查询操作 数据库系统实验4:SQL语言--SELECT查询操作 实验环境 实验内容 步骤及过程 首先按以下SQL语句创建测试用的jxgl数据库 使用SQL语 ...

  4. SQL语言 --- 数据查询

    数据查询 一.单表查询(查询仅涉及一个表) 1.选择表中的若干列 2.选择表中的若干元组 3.ORDER BY子句 4.聚集函数 5.GROUP BY子句 二.连接查询 1.等值与非等值连接查询 2. ...

  5. MySQL基础 , 基本SQL,SELECT查询详解

    定义 MySQL是一个小型开源的关系型数据库管理系统(RDBMS),使用SQL(结构化查询语言)语言进行数据库管理. 优点 1.开源 MySQL是开放源代码的数据库,任何人都可以获得源代码,修正缺陷. ...

  6. 数据库 SQL 语言 基础CRUD操作

    SQL 语言 1. 概括 ​ SQL:Structure Query Language(结构化查询语言),SQL被美国国家标准局(ANSI)确定为关 系型数据库语言的美国标准,后来被国际化标准组织(I ...

  7. PostgreSQL SQL 语言:查询

    本文档为PostgreSQL 9.6.0文档,本转载已得到原译者彭煜玮授权. 1. 概述 从数据库中检索数据的过程或命令叫做查询.在 SQL 里SELECT命令用于指定查询. SELECT命令的一般语 ...

  8. SQL基础---增删查询操作

    在做sustaning的测试,我们经常需要用到一些数据库的增删查询等操作.在这里选择了公司的QA环境作为练习.写下基础的知识点以供以后查询. 查询语句------select: select * fr ...

  9. SQL语言的基础操作(二)

    上机实验二--完整性约束的实现 为Student表创建一插入和更新触发器tri_ins_upd_student:当插入新的学生或者更新学生所在班级时,检查该班级的学生人数有没有超过40人,如果没有则插 ...

最新文章

  1. Leetcode51 n皇后 DFS+回溯(模板题)
  2. stm32之实时时钟RTC(掉电计时保持、秒中断、闹钟中断、溢出中断)
  3. Nginx虚拟主机配置
  4. 十、 RDD编程和Spark SQL
  5. Delphi纯代码连SQLite数据库,同时支持数据库的加密解密
  6. 睡眠声音识别中的准确率问题(三)--采集的音频测试结果及分析
  7. Java服务器 dm Server
  8. 判断iOS机器是否支持TouchId, FaceId
  9. 基于.net开发chrome核心浏览器【三】
  10. 5分钟转换PDF为图片
  11. 记忆网络之Dynamic Memory Networks模型介绍及代码实现
  12. transition动画无效 iphone6
  13. 输入一个年份和一个月份,输出该年该月有多少天
  14. Excel如何给单元格加斜线
  15. 汽车数据聚类分析——天池竞赛
  16. oracle冲账语句_ORA-00xx问题 -oracle卸载不成功
  17. [我的作死案例]图书馆泡妹记 上
  18. c++编程猜数字游戏
  19. Windows程序crash该怎么分析?
  20. 金融科技企业哪家强?来看“2020中关村金融科技30强榜单”

热门文章

  1. QuartusII仿真通过但上板验证不过
  2. 深度学习:Concatenate的理解
  3. 高项论文整体结构(补充)
  4. 与服务器竟然打架!java系统线程占用CPU过高问题,到底怎么办?
  5. java 生成uuid
  6. “由Autodesk教育版产品制作”水印在打印时怎么去掉的解决办法
  7. pytesseract 提高印刷体数字识别率走的弯路 白底黑字
  8. Mysql之高可用方案浅析
  9. 【C语言】指针题及解析
  10. 全国计算机一级报名科目怎么选,计算机一级考试4个科目是四选一吗