基本查询语句
SELECT [DISTINCT] column_name1,......|*
FROM table_name
[WHERE conditions];
//[DISTINCT] 设置 查询结果不重复显示
在SQL Plus中设置 查询结果 显示的格式
//COLUMN 可简写为 COL
COLUMN column_name HEADING new_name; //设置查询时,列显示的字段名。new_name可以是中文。
COLUMN column_name FORMAT dataformat; //设置查询时,列显示的格式
COLUMN column_name CLEAR; //清除格式
例:COLUMN username FORMAT a10; //设置字符类型 显示的长度
COLUMN id FORMAT 999.9; //设置数字类型 的格式
COLUMN id FORMAT $999.9; //设置数字类型 的格式
查询表中所有字段及指定字段
SELECT * FROM table_name;
SELECT column1_name,... FROM table_name;
查询时,给字段设置别名
//COLUMN 可简写为 COL
COLUMN column_name HEADING new_name; //设置查询时,列显示的字段名。new_name可以是中文。
SELECT column1_name AS new_column1_name ,... FROM table_name; //new_column1_name 可以是中文。
运算符和表达式
- 算数运算符
运算符 | 含义 |
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
** | 乘方 |
- 逻辑运算符
运算符 | 含义 |
AND | 两者同时为真,结果才为真 |
OR | 有一个为真,结果就为真 |
NOT | 取反 |
- 比较运算符
运算符 | 含义 |
IS NULL | 如果测试值为NULL,则返回值为true,否则为false |
LIKE | 比较字符串,结合 % 进行模糊查询 |
BETWEEN | 测试值是否在指定的范围内 |
IN | 测试值是否在一系列的值中 |
- 关系运算符
运算符 | 含义 |
= | 等于 |
!=, <>,~= | 不等于 |
< 、 <= | 小于 小于等于 |
> 、 >= | 大于 大于等于 |
- 连接运算符
运算符 | 含义 |
11 | 用于连接两个字符串 |
例:SELECT id+20 from userinfo;
条件查询
优先级:not > and > or
例:SELECT * FROM userinfo WHERE username='xxx';
模糊查询
LIKE | 比较字符串,结合 % 进行模糊查询 |
通配符: _ 一个只能代表一个字符。 % 代表0到多个字符。
例:select * from userinfo where username like 'x%';
范围查询
BETWEEN...AND
例:select * from userinfo where id BETWEEN 0 AND 20;
IN/NOT IN
例:select * from userinfo where username in ('xxx','bbb');
查询结果排序
DESC/ASC 降序/升序
SELECT ... FROM ... [WHERE ...]
ORDER BY column1_name DESC/ASC , ...;
例:select * from userinfo order by id desc;
case......when语句
第一种形式:
CASE column_name
WHEN value1
THEN result1,......
[ELSE result] END;
例:SELECT username,CASE username
WHEN 'xxx' THEN '计算机部门'
WHEN 'bbb' THEN '市场部门'
ELSE '其他部门' END as 部门
FROM userinfo;
第二种形式:
CASE
WHEN column_name = value1 THEN result1,...
[ELSE result] END;
例:SELECT username, CASE
WHEN username = 'xxx' THEN '计算机部门'
WHEN username = 'bbb' THEN '市场部门'
ELSE '其他部门' END as 部门
FROM userinfo;decode函数
DECODE(column_name,value1,result1,value2,result2,defaultvalue)
例:SELECT username,DECODE(username,'xxx','计算机部门','bbb','市场部门','其他部门') as 部门 from userinfo;