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)

这里写图片描述

猜你喜欢

转载自blog.csdn.net/cckevincyh/article/details/80835471
今日推荐