SQL查询数据的几大方法

有你,查询数据我什么都不怕。快快掌握!!

出大招的工具:

1.使用LIKE、BETWEEN、IN进行模糊查询

eg1:

SELECT * FROM Students

WHERE 姓名 like ‘张%‘

eg2:

SELECT StudentID, Score FROM SCore WHERE Score

BETWEEN 60 AND 80

eg3:

SELECT SName AS 学生姓名,SAddress AS 地址

FROM Students

WHERE SAddress IN (‘北京‘,‘广州‘,‘上海‘)

2.通配符

eg:

SELECT * FROM 数据表

WHERE 编号 LIKE ‘00[^8]%[AC]%

3.SUM() 

AVG() 

MAX()、MIN() 

COUNT()

eg1:

SELECT SUM(Score)  AS  学号为23的学生总分

FROM  Score

WHERE  StudentID =23

eg2:

SELECT AVG(SCore) AS 及格平均成绩

FROM Score

WHERE Score >=60

eg3:

SELECT AVG(SCore) AS 平均成绩, MAX (Score) AS 最高分,

MIN (Score) AS 最低分

FROM Score

WHERE Score >=60

eg4:

SELECT COUNT (*)  AS 及格人数

FROM Score

WHERE Score>=60

4.分组查询用法

SELECT …… FROM  <表名>

WHERE  ……

GROUP BY ……

eg:

SELECT COUNT(*) AS 人数, SGrade AS 年级

FROM  Students

GROUP BY SGrade

eg2:

SELECT CourseID, AVG(Score) AS 课程平均成绩

FROM Score

GROUP BY CourseID

eg3:

SELECT CourseID, AVG(Score) AS 课程平均成绩

FROM Score

GROUP BY CourseID

ORDER BY AVG(Score)

5.多列分组

SELECT COUNT(*) AS 人数,SGrade AS 年级,SSex AS   性别

FROM StudentS

GROUP BY SGrade,SSex

ORDER BY SGrade

6.分组筛选

SELECT …… FROM  <表名>

WHERE ……

GROUP BY ……

HAVING……

eg:

SELECT COUNT(*) AS 人数,SGrade AS 年级

FROM Students

GROUP BY SGrade

HAVING COUNT(*)>15

7.多表连接查询

内连接(INNER JOIN)

SELECT   ……

FROM   表1

INNER JOIN   表2

ON   ……

等价于

SELECT  ……

FROM   表1,表2

WHERE ……

eg:

SELECT Students.SName, Score.CourseID, Score.Score

FROM   Students,Score

WHERE  Students.SCode = Score.StudentID

三表内连接:

eg:

SELECT

S.SName AS 姓名, CS.CourseName AS 课程, C.Score AS 成绩

FROM Students AS S

INNER JOIN Score AS C ON (S.SCode = C.StudentID)

INNER JOIN Course AS CS ON (CS.CourseID = C.CourseID)

外连接

左外连接   (LEFT JOIN)

eg:

SELECT   S.SName,C.CourseID,C.Score

FROM   Students AS S

LEFT JOIN   Score AS C

ON     C.StudentID = S.SCode

右外连接   (RIGHT JOIN)

eg:

SELECT 图书编号,图书名称,出版社名称

FROM 图书表

RIGHT OUTER JOIN 出版社表

ON 图书表.出版社编号 = 出版社表.出版社编号

时间: 2024-10-21 09:01:03

SQL查询数据的几大方法的相关文章

SQL 查询数据后行数据合并为列

SQL 将查询后得到的多行数据中的某一列转为一列,如原查找后的结果为: USER_NAME 张三 李四 王五 现要将其合并为: CUSTOMER 张三,李四,王五 SQL语句如下:select STUFF((select ','+USER_NAME from tbale where USER_NAME = '' for xml path('')), 1, 1, '') CUSTOMER 其中,stuff为sql封装好的一个方法函数,用于删除指定长度的字符并在指定的起始点插入另一组字符. 语法:S

基于Spring Boot,使用JPA动态调用Sql查询数据

在<基于Spring Boot,使用JPA操作Sql Server数据库完成CRUD>,<基于Spring Boot,使用JPA调用Sql Server数据库的存储过程并返回记录集合>完成了CRUD,调用存储过程查询数据. 很多复杂的情况下,会存在要直接执行SQL来获取数据. 通过“EntityManager”创建NativeQuery方法来执行动态SQL. 1.查询结果集映射 在包“com.kxh.example.demo.domain”下的“Contact”实体上编写命名的结果

20150221&mdash;LINQ to SQL 查询数据

LINQ to SQL 可以快捷的查询基于SQL的数据,直接在VS中包括基本的Object/relation映射器,O/R映射器可以快速的将基于SQL的数据源映射为CLR对象,之后就可以使用LINQ查询. 如下图中,在项目中右键添加--新建项,找到LINQ to SQL类 然后创建新连接,点击连接到数据库: 添加连接 在左侧的服务管理资源中找到需要添加的连接名,表名 将表拖拽到DataClasses1,点击 是 根据需要将需要的表拖拽进来: 拥有主外键关系的表会在其之间有一条虚线.   使用LI

SQL查询数据重复问题,和合并数据问题

前几个月,做项目.查询数据遇到数据重复问题 用 distinct 这个关键字去重,大多数情况下都可以去重的 SELECT  distinct a.id,a.* from a ItemName = stuff((SELECT ',' + ItemName FROM InspectBill AS t WHERE t .InspectBillNo = InspectBill.InspectBillNo FOR xml path('')), 1, 1, '')

sql查询重复记录的方法

1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people  where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 2.查找表中多个字段的重复记录 select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vita

SQL查询数据后在连成字符串方法

CREATE TABLE tb ( user_id INT, type_id TINYINT ); INSERT INTO tb (user_id, type_id) VALUES (1,11); INSERT INTO tb (user_id, type_id) VALUES (1,12); INSERT INTO tb (user_id, type_id) VALUES (1,13); INSERT INTO tb (user_id, type_id) VALUES (1,14); INSE

数据分析画图,使用原生sql查询数据

1.使用工具 https://www.hcharts.cn/ http://echarts.baidu.com/ 2.子表查询 id 创建时间 内容 处理者 1 2017-02-01 11:11 1 2 2017-03-01 11:11 11 3 2017-04-01 11:11 2 4 2017-05-01 11:11 1 5 2017-02-02 11:11 1 1. 思路 处理者列表 = select 处理着 from tb for 处理者 in 处理者列表: v = select * f

2016.6.11 ASP提交数据到SQL server数据乱码解决方法

1.检查数据库排序规则 China-PRE-90-CS-AI 2.ASP文档中,写入数据的页面的编码和检查提交数据页面的编码一致:

SQL查询数据练习(2019上半年金融服务申请数据统计)

1.记录意向且拍卖成交的数据: select row_number() over(order by LoanPreApply.CreateDate asc) as 序号,LoanPreApply.Proposer as '中标者',LoanPreApply.BidderNo as '中标号',LoanBank.BankName as '申请银行', LoanPreApply.CreateDate as '申请时间' from LoanPreApply,LoanBank where LoanPre