首页 > 数据库 >sql集合-查询语句

sql集合-查询语句

时间:2023-09-08 16:33:28浏览次数:39  
标签:语句 borrow 查询 book sql 学生 WHERE id SELECT


1,张飞借阅书的籍-子查询
SELECT b.book_name FROM bookinfo b
INNER JOIN book_borrow bb
ON b.book_id =bb.book_id
WHERE bb.card_id =
(SELECT card_id FROM reader WHERE name ="张飞")

2,左/右链接查询
SELECT b.book_name,bb.borrow_data FROM bookinfo b
RIGHT JOIN book_borrow bb
on b.book_id =bb.book_id

3,UNION/UNION All 联级
SELECT book_name,author FROM bookinfo UNION ALL
SELECT borrow_data,return_data FROM book_borrow

4,except/except ALL
SELECT borrow_data,return_data FROM book_borrow except
SELECT book_name,author FROM bookinfo

5,intersect/intersect ALL -交集
SELECT borrow_data,return_data FROM book_borrow intersect ALL
SELECT book_name,author FROM bookinfo

6,left OUTER JOIN
SELECT b.book_name FROM book_borrow bb
LEFT OUTER JOIN bookinfo b
on b.book_id =bb.book_id

7,RIGHT OUTER JOIN
SELECT b.book_name FROM bookinfo b
RIGHT OUTER JOIN book_borrow bb
on b.book_id =bb.book_id

8,FULL OUTER JOIN -sql不支持
SELECT * FROM bookinfo b
FULL OUTER JOIN book_borrow bb
on b.book_id =bb.book_id

9,排序ORDER BY ----age 进行升序排序,在age相同时,balance DESC 排前面
SELECT balance,age FROM reader ORDER BY age asc, balance DESC


having和ground by 一起使用
11,查询每个年龄金额大于50,性别为男的人数至少为2个的情况
SELECT age,
SUM(balance)
FROM reader
WHERE sex ="男"
GROUP BY age
HAVING COUNT(balance)>=2

12,显示余额400的用户名称和性别

SELECT name,sex FROM reader WHERE balance > 400

13,显示每个年龄用户的余额在200以上各有多少人

SELECT age,COUNT(card_id) as "人数"
FROM reader WHERE balance >200
GROUP BY age


*sc(学生表) 、SNO(学生号)、PNO(课程名)、GRADE(成绩)
1、查询每一个班级中年龄大于20,性别为男的人数至少为2个的情况
SELECT 班级, COUNT(age) FROM 表
WHERE sex ="男"
GROUP BY 班级
HAVING COUNT(age) >2

2、显示90分以上学生的课程名和成绩
SELECT 课程名,成绩 FROM 学生表
WHERE 成绩>90

3、显示每个学生的成绩在90分以上的各有多少门
SELECT 学号,COUNT(*) FROM 学生表
WHERE 成绩>90
GROUP BY 学号

4、列出至少有两门课程在90分以上的学生的学生号及90分以上的课程数。
SELECT 学生号 ,COUNT(课程数)
from 学生表
WHERE 成绩 >90
GROUP BY 学生号
HAVING COUNT(课程数)>2

5、列出平均成绩大于90分并且语文课必须在95分以上的学生
SELECT 学生号,AVG(成绩) FROM
学生表 WHERE 学生号
in(SELECT 学生号 FROM 学生表 WHERE 课程名 =“语文课” AND 成绩>95)
GROUP BY 学生号
HAVING AVG(成绩)>90

6、查询平均成绩至少比学号是3的平均成绩高的学生学号以及平均分数
SELECT 学生学号,AVG(成绩) FROM 学生表
GROUP BY 学生号
HAVING AVG(成绩) > (SELECT AVG(成绩) FROM 学生表 学号 =3)

7,查询每个班男女人数分别大于20的班级号及男女生总数?
select 班级,性别,count(*) from tab
group by 班级,性别
having count(*) > 20

标签:语句,borrow,查询,book,sql,学生,WHERE,id,SELECT
From: https://www.cnblogs.com/hsj1419621912/p/17687928.html

相关文章

  • python3 postgreSQL 依赖问题
    unabletoexecute'gcc':NosuchfileordirectoryItappearsyouaremissingsomeprerequisitetobuildthepackagefromsource.Youmayinstallabinarypackagebyinstalling'psycopg2-binary'fromPyPI.Ifyouwantto......
  • mysql explain
    MYSQLExplain解析explain说明用于查看sql语句都执行计划,可以看到sql语句都执行了哪些索引,以及执行的顺序等等。主要作用是优化sql语句,提高sql语句的执行效率。|id|select_type|table|type|possible_keys|key|key_len|ref|rows|Extra|idse......
  • MySQL面试题
    1、MySQL的复制原理以及流程(1)、复制基本原理流程主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中;2.从:io线程——在使用startslave之后,负责从master上拉取binlog内容,放进自己的relaylog中;3.从:sql执行线程——执行relaylog中的语句;(2)、MyS......
  • MySQL group_concat() 函数用法
    MySQLgroup_concat()函数用法在使用groupby对数据进行分组后,如果需要对select的数据项进行字符串拼接,这时就需要用到group_concat()函数。1、基本用法group_concat()完整语法如下:group_concat([DISTINCT]要连接的字段[OrderBY排序字段ASC/DESC][Separator'分......
  • MyBatis 的 # 传参,是参数化查询,那参数化查询到底为什么可以防止sql注入?
    对于MyBatis的#传参,虽然最终的SQL查询语句中会将参数值替换到对应的位置,但是这个过程并不是简单的字符串拼接,而是通过预编译的方式进行处理。这样做有以下几个方面的好处,从而减少了SQL注入的风险:参数值转义:在参数化查询中,MyBatis会自动对参数值进行转义处理。这样可以......
  • SQL注入——搜索型
    SQL注入—搜索型搜索型注入—原理介绍一些网站为了方便用户查找网站的资源,都对用户提供了搜索的功能,因为是搜索功能,往往是程序员在编写代码时都忽略了对其变量(参数)的过滤,而且这样的漏洞在国内的系统中普遍的存在;其中又分为POST/GET,GET型的一般是用在网站上的搜索,而POST则......
  • Mac 终端登陆MySQL出现“zsh:command not found: mysql”的问题
    mysql明明安装好了,而且也登陆使用过了,但是这次在终端登陆却报错这个问题。其实上次也报错这个一样的问题,我觉得可能是环境配置没有弄好,重新检查和source生效了下(source~/.bash_profile),此时mysql能正常登陆了;但是退出终端后再次登陆又会报同样的问题。感觉不对劲了,只能生效一次......
  • DBeaver执行sql脚本报错:CreateProcess error=193, %1 不是有效的 Win32 应用程序。
    DBeaver执行sql脚本报错:CreateProcesserror=193,%1不是有效的Win32应用程序。如图:  定位发现DBeaver默认安装的mysql.exe大小为0字节!解决方案,重新给DBeaver指定有效的mysql安装的bin目录下mysql.exe即可:选中当前的mysql连接,右键:编辑连接-主要-本地客户端-浏览......
  • PostgreSQL 数据库使用 psql 导入 SQL
    最近我们有一个SQL需要导入到PostgreSQL,但数据格式使用的是用:----TOCentry7877(class0OID21961)--Dependencies:904--DataforName:upload_references;Type:TABLEDATA;Schema:public;Owner:---COPYpublic.upload_references(id,upload_id,target_......
  • sqlserver中字符串替换其中几个字为打码
    select*fromdocbasewhereisdelete=0updatedocbasesetsubject=STUFF(subject,23,4,'****')whereisdelete=0 updatedocbasesetsubject=STUFF(subject,23,6,'******')whereisdelete=0andLEN(subject)>19STUFF函数也可以用来替换指定的字符串。它的定义如下......