查询语句
1.基础查询:
SELECT * FROM 表
解析:此语句会将表中所有的字段查询出来,SQL执行的顺序:FROM 表 (找到表)=>SELECT * (查询所有字段*代表所有字段)
SELECT ID,NAME FROM 表
解析:此语句会将表中所有的字段查询出来,SQL执行的顺序:FROM 表 (找到表)=>SELECT ID,NAME (查询 ID和NAME字段)
2.带条件的查询
SELECT * FROM 表 WHERE ID=1
解析:此语句找到表中ID字段等于1的数据
SELECT * FROM 表 WHERE ID>1
解析:此语句找到表中ID字段大于1的数据
SELECT * FROM 表 WHERE ID<1
解析:此语句找到表中ID字段小于1的数据
SELECT * FROM 表 WHERE ID IN (1,2,3)
解析:此语句找到表中ID字段等于1或者2或者3的数据
SELECT * FROM 表 WHERE ID NOT IN (1,2,3)
解析:此语句找到表中ID字段不等于1或者2或者3的数据
SELECT * FROM 表 WHERE NAME LIKE '%内容%'
解析:此语句找到表中NAME字段出现内容数据,这个%代表任意内容,放在前面代表前面可以出现或者不出现任意内容,比如:
NAME LIKE '%内容%',NAME中的数据是"这个内容是123" 他找到了内容就匹配了,
如果是NAME LIKE '内容%' 那就只能找内容开头的比如:NAME中的数据是"内容是123",他就匹配了,
如果是NAME LIKE '%内容' 那就只能找内容结尾的比如:NAME中的数据是"这个内容",他就匹配了
SELECT * FROM 表 WHERE ID BETWEEN 1 AND 10
解析:此语句找到表中ID字段1--10的内容,BETWEEN 是范围 1到10范围的数据 一般用于数据取范围
3.AND和OR
在我们查询的过程中有时候不仅仅只有一个调整 那么上述的条件都可以通过AND或者OR组合起来,如:
SELECT * FROM 表 WHERE NAME LIKE '%内容%' AND ID BETWEEN 1 AND 10
解析:AND 是且的意思 代表此查询既要满足NAME LIKE '%内容%' 又要满足ID BETWEEN 1 AND 10
SELECT * FROM 表 WHERE NAME LIKE '%内容%' OR ID BETWEEN 1 AND 10
解析:OR是或的意思 代表此查询只要满足NAME LIKE '%内容%' 或者ID BETWEEN 1 AND 10 其中一个就行
SELECT * FROM 表 WHERE (NAME LIKE '%内容%' OR NAME LIKE '%123%' ) AND ID BETWEEN 1 AND 10
解析:AND 和OR也可以搭配使用,此语句代表除了满足了ID BETWEEN 1 AND 10 还要满足 NAME LIKE '%内容%' 和 NAME LIKE '%123%' 其中一个
4.多表联查
多表联查分为三类:内连接(inner join )、左连接(left join)、右连接(right join )
4.1内连接(inner join 、join )
SELECT * FROM 表A as a inner join 表B as b ON a.连接字段=b.连接字段
解析:inner join 和ON 是内连接的关键词,内连接是取得表A和表B能通过连接字段关联起来的数据。
连接字段可以有多个,用and或者or 关联 如:ON a.连接字段1=b.连接字段1 and a.连接字段2=b.连接字段2 or a.连接字段3=b.连接字段3
PS: as 是给表A,表B取个别名的方便ON关键词后面指定那张表的连接字段,也可以不用as,直接表A.连接字段,如:
SELECT * FROM 表A inner join 表B ON 表A.连接字段=表B.连接字段
示例:学生表student
课程表Course
select* from Student s inner join Course c ON s.Id=c.StudentId
通过student表的id和Course表的StudentId 取到了能关联的张三李四王五的记录、赵六关联不上所以没有记录
4.2左连接(left join)
SELECT * FROM 表A as a left join 表B as b ON a.连接字段=b.连接字段
解析:left join和ON 是左连接的关键词,左连接是以左边表A为主表,表B为子表,先查询出表A中的数据,然后关联表B如果关联上了就将数据查询出来,如果表B中没有关联上数据则对应字段为null。
示例:学生表student
课程表Course
select* from Student s left join Course c ON s.Id=c.StudentId
通过student表的id和Course表的StudentId 取到了能关联的张三李四王五的记录、赵六关联不上所以Course表对应的记录为null
4.3右连接(right join)
SELECT * FROM 表A as a right join 表B as b ON a.连接字段=b.连接字段
解析:right join和ON 是右连接的关键词,右连接是以右边表B为主表,表A为子表,先查询出表B中的数据,然后关联表A如果关联上了就将数据查询出来,如果表A中没有关联上数据则对应字段为null。
示例:学生表student
课程表Course
select* from Student s right join Course c ON s.Id=c.StudentId
这里之所以数据和内连接(inner join )数据一致,是因为右边表B所有的数据都能关联到左边,如果将student表放置在右边(Course c right join Student s)则和左连接一致
4.4三个表以上连接查询
SELECT * FROM 表A as a right join 表B as b ON a.连接字段=b.连接字段 INNER JOIN 表C as c ON c.连接字段=a.连接字段
4.5连接查询如果待条件语句:
SELECT * FROM 表A as a right join 表B as b ON a.连接字段=b.连接字段 WHERE a.条件字段=条件
5.排序(order by)
5.1单字段排序
SELECT * FROM 表 order by id ascSELECT * FROM 表 order by id
解析:上述2个语法效果一致,order by 和asc 是排序的关键字,代表着以ID字段正序(数字从小到大,a-z)排序
PS:第二条是简写语法,默认排序是正序所以可以不写asc
SELECT * FROM 表 order by id asc
解析:order by 和desc 是排序的关键字,代表着以ID字段倒序(数字从大到小,z-a)排序
5.1多字段字段排序
SELECT * FROM 表 order by id asc,Name descSELECT * FROM 表 order by id,Name desc
解析:上述2个语法效果一致,首先我们以ID 进行正序排列,如果出现ID 相同的情况如:三个ID 为1,那么这三条数据将以Name 倒叙排列:
示例:课程表Course
select * from Course order by StudentId desc,CourseName
先以studentId 字段倒叙排列,如果studentId相同,则以CourseName字段正序排列
新增
修改
删除
原文转载:http://www.shaoqun.com/a/757784.html
淘粉吧官网:https://www.ikjzd.com/w/1725.html
电霸:https://www.ikjzd.com/w/2597
查询语句1.基础查询:SELECT*FROM表解析:此语句会将表中所有的字段查询出来,SQL执行的顺序:FROM表(找到表)=>SELECT*(查询所有字段*代表所有字段)SELECTID,NAMEFROM表解析:此语句会将表中所有的字段查询出来,SQL执行的顺序:FROM表(找到表)=>SELECTID,NAME(查询ID和NAME字段)2.带条件的查询SELECT*FROM表WHE
asiabill:https://www.ikjzd.com/w/1014
壹米滴答:https://www.ikjzd.com/w/2314
福茂:https://www.ikjzd.com/w/1633
2020中国跨境电商市场研究及未来展望:https://www.ikjzd.com/articles/133100
Wish新红利政策汇总_疫情期间Wish有什么优惠政策_Wish抗疫行动:https://www.ikjzd.com/articles/119507
Dubsmash:https://www.ikjzd.com/w/2114
没有评论:
发表评论