(6)Oracle基础--简单查询
.基本查询语句
SELECT [DISTINCT] column_name1,... | *
FROM table_name
[WHERE conditions];
P: DISTINCT关键字的作用是过滤掉重复的记录.
.查询表中所有字段及指定字段
<1> 查询表中所有字段
SELECT * FROM table_name;
<2> 查询指定字段
SELECT column_name1,column_name2... FROM table_name;
.给字段设置别名
<1> 使用空格设置别名
SELECT column_name new_column_name FROM table_name;
<2> 使用 AS 设置别名
SELECT column_name AS new_column_name FROM table_name;
(注意: 给字段设置别名并不能改变字段的名字,只是查询结果的显示名)
.运算符和表达式
表达式 = 运算符 + 操作数
运算符分类:
<1> 算数运算符 +, -, *, /
<2> 比较运算符 >, >=, <, <=, <>
<3> 逻辑运算符 and, or, not
.带条件的查询
SELECT column_name1,column_name2 ... FROM table_name WHERE EXPRESSIONS;
.模糊查询
<1> 通配符的使用(_,%)
① 一个_代表一个字符
② %可以代表0到多个任意字符
<2> 使用语法
SELECT column_name1,column_name2 ... FROM table_name WHERE column_name LIKE 'string';
.范围查询
<1> 使用多个表达式
SELECT column_name1,column_name2 ... FROM table_name
WHERE column_name > value1 AND column_name < value2;
<2> 使用 BETWEEN ... AND
SELECT column_name1,column_name2 ... FROM table_name
WHERE column_name BETWEEN value1 AND value2;
<3> 使用 IN / NOT IN
SELECT column_name1,column_name2 ... FROM table_name
WHERE column_name IN | NOT IN (value1,value2, ...);
<4> 使用 EXISTS / NOT EXISTS
SELECT column_name1,column_name2 ... FROM table_name
WHERE EXISTS | NOT EXISTS (select_expression);
P: IN 与 EXISTS的区别
1. IN 后面的集合包含IN前面的值就返回真, EXISTS 后面的结果集不为空即返回真.
2. IN 引导的字句只能返回一个字段,而 EXISTS 引导的字句可以返回多个
.对查询结果排序
SELECT column_name1,column_name2... FROM table_name
[WHERE conditions] ORDER BY column1 DESC/ASC,column2 DESC/ASC .... ;
P: 1. DESC 表示降序,ASC 表示升序;
2. 对多个字段排序时优先级按先后次序递减.
.CASE ... WHEN语句的使用
作用: 可以根据查询结果中字段的不同的值返回不同的结果
<1> 第一种形式
SELECT CASE column_name WHEN value1 THEN result1 ... [ELSE result] END FROM table_name;
<2> 第二种形式
SELECT CASE WHEN column_name operator value1 THEN result1 ... [ELSE result] END FROM table_name;
P: operator为操作符,如+ - * / > < 等
.decode函数的使用
decode函数与case when的第一种形式比较类似
SELECT DECODE(column_name,value1,result1,...,DEFAULT value) FROM table_name;
P: 不指定默认值的情况下,如果没有匹配的值,则返回NULL.