当前位置: 代码迷 >> SQL >>  SQL 操作符
  详细解决方案

 SQL 操作符

热度:303   发布时间:2016-05-05 09:47:45.0
Oracle学习笔记三 SQL命令

SQL简介

SQL 支持下列类别的命令:
1.数据定义语言(DDL)
2.数据操纵语言(DML)
3.事务控制语言(TCL)
4.数据控制语言(DCL)
 
     
 
       
 
下面是这四种SQL语言的详细笔记:
 
 

Oracle数据类型

创建表时,必须为各个列指定数据类型
以下是 Oracle 数据类型的类别:

字符数据类型

CHAR类型

当需要固定长度的字符串时,使用 CHAR 数据类型。
CHAR 数据类型存储字母数字值。
CHAR 数据类型的列长度可以是 1 到 2000 个字节。

VARCHAR2类型

VARCHAR2数据类型支持可变长度字符串
VARCHAR2数据类型存储字母数字值
VARCHAR2数据类型的大小在1至4000个字节范围内

LONG类型

LONG 数据类型存储可变长度字符数据
LONG 数据类型最多能存储 2GB
一张表中只能出来一次
不能在Long类型的列上建立主键,唯一约束,索引
不能用于存储过程的参数类型

数值数据类型

数值数据类型
1.可以存储整数、浮点数和实数
2.最高精度为 38 位
数值数据类型的声明语法:
1.NUMBER [( p[, s])]
2.P表示精度,S表示小数点的位数

日期时间类型

日期时间数据类型存储日期和时间值,包括年、月、日,小时、分钟、秒
主要的日期时间类型有:
1.DATE - 存储日期和时间部分,精确到整个的秒
2.TIMESTAMP - 存储日期、时间和时区信息,秒值精确到小数点后6位

RAW/LONG RAW

RAW 数据类型用于存储二进制数据
RAW 数据类型最多能存储 2000 字节
LONG RAW 数据类型用于存储可变长度的二进制数据
LONG RAW 数据类型最多能存储 2 GB

LOB类型

LOB 称为“大对象”数据类型,可以存储多达 4GB 的非结构化信息,例如声音剪辑和视频文件等
LOB 数据类型允许对数据进行高效、随机、分段的访问

伪列

Oracle 中伪列就像一个表列,但是它并没有存储在表中
伪列可以从表中查询,但不能插入、更新和删除它们的值
常用的伪列有ROWID和ROWNUM

  ROWID 是表中行的存储地址,该地址可以唯一地标识数据库中的一行,可以使用 ROWID 伪列快速地定位表中的一行

  ROWNUM 是查询返回的结果集中行的序号,可以使用它来限制查询返回的行数

 SQL 操作符

Oracle 支持的 SQL 操作符分类如下:

算术操作符

算术操作符用于执行数值计算
可以在SQL语句中使用算术表达式,算术表达式由数值数据类型的列名、数值常量和连接它们的算术操作符组成
算术操作符包括加(+)、减(-)、乘(*)、除(/)
  Select a+b from tablename;
  注意:有一列为null时结果会为null

比较操作符

 

比较操作符用于比较两个表达式的值

 

比较操作符包括 =、!=、<、>、<=、>=、BETWEEN…AND、IN、LIKE 和 IS NULL ANY ALL 等
  Any:任意一个 > any(100, 200, 300);
  :
select * from 表名 where 列名 > any(100, 200, 300);

 

  All:任何一个,所有的;

逻辑操作符

逻辑操作符用于组合多个计较运算的结果以生成一个或真或假的结果。
逻辑操作符包括与(AND)、或(OR)和非(NOT)。

    or(或) 

select ename from scott.emp where ename='joke' or ename='jacky'

    and(与)

select ename from scott.emp where ename='and' or ename='jacky'

    not(非)

select ename from scott.emp where not ename='and' or ename='jacky'

 

集合操作符

集合操作符将两个查询的结果组合成一个结果
 
union(并集):union连接两句sql语句, 两句sql语句的和 去掉重复的记录。
(select deptno from scott.emp) union (select deptno from scott.dept)
 
union all(并集):接两句sql语句,两句sql语句的和不用去掉重复的记录。
(select deptno from scott.emp) union all (select deptno from scott.dept)

 

intersect (交集):Intersect连接两句sql语句 取查询出来的两个集合的 共同部分。

(select deptno from scott.emp) intersect (select deptno from scott.dept)

 

minus (补集):Minus 连接两句sql 语句,取查询出来的两个集合的差。
(select deptno from scott.emp) minus (select deptno from scott.dept)

 

连接操作符

连接操作符用于将多个字符串或数据值合并成一个字符串

SELECT (venname|| ' 的地址是 ' ||venadd1||' '||venadd2 ||' '||venadd3) address FROM vendor_master WHERE vencode='V001';

通过使用连接操作符可以将表中的多个列合并成逻辑上的一行列

操作符的优先级

SQL 操作符的优先级从高到低的顺序是:

算术操作符           --------最高优先级
连接操作符
比较操作符
NOT 逻辑操作符
AND 逻辑操作符
OR   逻辑操作符   --------最低优先级
  相关解决方案