Oracle数据库开发必备利器之SQL基础——查询
基本查询语句
select [distinct] column_name ,...|* from table_name where conditons;
基本查询语句:select [Distinct] 列名 .. From 表名 [where condition]
FROM (可以多表查询)
WHERE 子句可带多个条件
DISTINCT 显示不重复数据
在sql*plus中设置格式
1、作用:配合select语句使用,设置查询结果显示的格式,不会修改数据库表字段。
2、设置字段显示样式
语法:
COLUMN column_name HEADING new_name;
注:COLUMN 可以简写成COL
-
设置字段的格式化样式
语法:
COLUMN column_name FORMAT dataformat;
注:如果是字符类型的值,只能设置它显示的长度。其中a后面跟数字表示字符串显示长度,例:a10 表示显示10位的长度的字符串;数字则用‘9’代表一位,例:999.9 表示整数位为三位,小数位为一位。如果设置的长度超出数据最大长度,则用'#'
显示。还可以在数字前面加'$'
,例:$999.9
则查询后显示的结果会在结果前加上'$'
符。 -
清除设置格式
语法:
COLUMN column_name CLEAR;
查询表中所有字段及指定字段
查询所有:
select * from table_name;
查询指定字段:
select column1, ... from table_name;
给字段设置别名
语法:
SELECT column_name AS new_name,... FROM table_name;
其中:as是可以省略的,用空格来隔开原字段名和新字段名即可。
运算符和表达式
1、表达式 = 操作数 + 运算符
2、oracle中的操作数可以是常量、变量和字段
3、oracle中的运算符:算数运算符(+ - * /)、比较运算符(> < = >= <= <>)、逻辑运算符(and or not)
在select语句中使用运算符
例子:
带条件的查询
例子:
逻辑运算符的优先级:按not、and、or的顺序依次递减;
比较运算符的优先级高于逻辑运算符。
模糊查询
1、通配符的使用:
一个_只能代表一个字符,一个%可以代表0到多个任意字符
2、查询以a开头的用户名:
select * from users where username like 'a%';
3、查询第二个字符为a 的用户名:
select * from users where username like '_a%';
范围查询
BETWEEN...AND/NOT BETWEEN...AND:
查询结果为闭合区间
IN/NOT IN
结果为一个具体的值
查询结果排序
语法:
SELECT [DISTINCT] column_name1,...|* FROM table_name [WHERE conditions]
ORDER BY column_name1 DESC|ASC,...
其中,DESC是降序排序,ASC是升序排序,默认情况下是升序排序
case…when语句的使用
语法1:
CASE column_name WHEN value1 THEN result1 ... [ELSE resultn] END;
语法2:
CASE WHEN column_name=value1 THEN result1 ...[ELSE resultn] END;
注:value1、result1需要加单引号,表示字符串,当多个when…then…使用时,中间用空格隔开即可,不能用逗号隔开。
decode函数的使用
decode与case…when类似
decode(列名,判断条件,条件为真的值,默认值)
decode(col_name,value1,result1,…,defaulvalue)