本篇文章讲述SQL语句中的SELECT查询语句,以供参考,如有错误或不当之处还望大神们告知。
简单查询SELECT-FROM
用于无条件查询单张表中的行或列
假设有表如图所示
- 查询名字叫 ‘叶清逸’ 的记录:
select * from T_USER where u_name = '叶清逸' ;
查询结果:
- 查询一个或多个属性,u_name,u_age,u_score:
select u_name,u_age,u_score from T_USER ;
查询结果:
AS关键字
- 使用AS给查询结果取别名(AS也可以省略):
--可加""也可不加 如果不加双引号默认字母大写 如果需要小写字母或别名由多个字母组成则需要加上双引号。
--AS也可省略。
select
u_name as 名字,
u_age as "年龄" ,
u_score 成绩
from T_USER ;
查询结果:
算数运算符
- SELECT中可以对数字和日期进行加减乘除运算
select u_name , u_score , u_score+10 , u_score-10 , u_score*2 , u_score/2
from T_USER ;
运行结果:
连接符 “||”
SQL中的连接符”||” 可将结果连接起来为一列
- 将u_name 和“的成绩为” u_score 连接起来
select
u_name || '的成绩为' || u_score as 成绩
from T_USER ;
查询结果:
条件查询SELECT-WHERE
SQL中可以用SELECT-WHERE进行条件查询
比较运算 ‘<’ ‘<=’ ‘>’ ‘>=’ ‘!=’
SQL中可以使用 条件运算符 ‘<’ ‘<=’ ‘>’ ‘>=’ ‘!=’ 过滤查询结果中的某些行,多个条件之间可以用 ‘and’ 连接。
- 查询T_USER表中成绩大于等于60分的学生
select u_name , u_score
from T_USER
where u_score >= 60 ;
查询结果:
与条件 (AND,BETWEEN)
查询A-B区间
- 查询T_USER表中成绩大于等于60分且小于等于80分的学生
- AND写法
select u_name , u_score
from T_USER
where u_score >60 and u_score <80
- BETWEEN写法
select u_name , u_score
from T_USER
where u_score between 60 and 80 ;
查询结果:
或条件(OR,IN)
SQL中用于或运算的关键字OR和IN
- 查询分数大于90分或者小于60分的记录-OR
select u_name , u_score
from T_USER
where u_score >90 or u_score <60 ;
运行结果:
- 查询成绩为100,98,65的学生-IN
select u_name , u_score
from T_USER
where u_score in(100,98,65) ;
运行结果:
非条件(!=,NOT)
- 查询名字不叫 ‘叶清逸’ 的记录
- !=写法
select *
from T_USER
where u_name != '叶清逸' ;
- NOT写法
select *
from T_USER
where u_name not like '叶清逸' ;
查询结果:
模糊查询LIKE
SQL中可以使用模糊查询like,其中 ‘_’ 占一位 ‘%’占多位。
- 查询名字中有 ‘清’ 字的记录
- 可以有三种表示方式,结果等价
- 包含’清’: %清%
- 第二位为’清’:_清%
- 倒数第二位为’清’:%清_
select *
from T_USER
where u_name like '%清%' ;
查询结果:
注:若要查询数据含有’_’ 关键字 则需使用 escape定义一个转义字符。如:like ‘%#_%’ escape ‘#’
查询排序ORDER BY
SQL中可以对查询结果进行排序,DESC表示按从大到小排序,ASC表示按从小到大排序,默认为从小到大排序。
- 将T_USER表按成绩从大到小排序
select *
from T_USER
order by u_score desc ;
查询结果:
ORDER BY 语句也可以用逗号隔开,表示如果上一个条件相同,接下来的排序方式。
转载自原文链接, 如需删除请联系管理员。
原文链接:SQL中SELECT语句详解,转载请注明来源!