文章目录
一、基本语法
语法:
select * |{[distinct] 列名 |表达式 [别名],...} from 表名 [where 查询条件][order by [asc|desc]]
二、语法解析
(一) *代表查询所有列
(二) distinct 去重
(三) 别名、连接符||、字符串
- 列的别名能够改变列的显示标题,可以直接跟在列名后面,也可以中间加as,如果别名中包含空格及特殊字符或者去要区分大小写,则需要给别名加上双引号。
- 连接符或者concat函数可以将多个列连接起来,合成新列。
select 列名1||'的数量是:'||列名2 as 别名 from 表名;
- 字符串可以使里表中的字符、数字、日期,日期和字符中能在单引号中出新
(四)日期显示格式的修改
alter session set nls_language='SIMPLIFIED CHINESE';
alter session set nls_language='AMERICAN';
alter session set nls_language='YYYY/MM/DD';
(五) where子句
where子句中使用数值,可以直接引用,也可以加引号
where子句中使用字符值,必须加引号,且区分大小写
where子句中国使用日期值,必须加引号,且需要符合日期语言和显示格式
(六) 排序 order by
asc升序(默认),desc降序,当select包含多个子句时,order by必须是最后一条语句。
如果参与排序的数据中有NULL,那NULL默认是大的值
可以有多列参与排序,用逗号隔开,月靠近关键字的优先级越高。
别名也可以参加排序。
三、运算符和关键字
(一) 算数运算符
运算符 | 说明 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
算数运算符可以应用在数字和日期的列上
乘除比加减具有更高的运算优先级,加括号可以改变优先级
NULL参与的算数运算结果还是NULL
(二) 比较运算符
运算符 | 说明 |
---|---|
= | 等于 |
> | 大于 |
>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
<> | 不等于 |
(三) 逻辑运算符
运算符 | 说明 |
---|---|
and | 逻辑与(并) |
or | 逻辑或 |
not | 逻辑与 |
优先级:not>and>or
(四) 范围关键字
1.between…and…
用于指定特定范围的条件,包含边界值
between 较小值 and 较大值
2.in
in执行列表匹配的操作,列或表达式结果匹配列表中的任意一个值
in(值1,[值2,...值n])
(五) 判断空值
判断是否空值 is null | is not null,并不是用比较运算符。
(六) 模糊查询like
通配符_表示单个字符,%表示0个或多个字符。
如果要查找的字符中包含特殊字符,则需要用反斜杠\转义,并在后面加上escape 特殊符号
select * from 表名 where 列名 like '\_%' escape '\';
查看oracle数据库中的所有表
SELECT * FROM dba_tables where TABLE_NAME like '%USER%'