oracle数据操纵语言(DML)data manipulation language
数据库操纵语言(DML)用于查询和操纵模式对象中的数据,它不隐式地提交当前事务。
SELECT
INSERT
UPDATE
DELETE
CALL
EXPLAIN PLAN
LOCK TABLE
MERGE
使用算术操作符(在数值型数据上使用
SELECT ename, sal, sal+300 FROM emp;
NULL值:NULL是一个值,它和“0”、“空白”不一样。
插入图片

定义列的别名:给列表达式提供一个不同的名字,该别名在列标题中使用。如果别名中包含空格或特定的字符或需要区分大小写时,需要使用双引号。
SELECT ename AS name, sal salary FROM emp;
SELECT ename "Name", sal*12 "Annual Salary" FROM emp;[添加了引号,看清楚了]
连接符(||):将两个串结合在一起,两个串可以是列名或直接量

使用DISTINCT关键字消除所选择的重复行,只返回一行。
SELECT DISTINCT deptno FROM emp;

条件(WHERE):比较符
SELECT ename, sal
2 FROM emp
3 WHERE sal BETWEEN 1000 AND 1500;
SELECT empno, ename, sal, mgr
2 FROM emp
3 WHERE mgr IN (7902, 7566, 7788);
条件(WHERE):比较符,LIKE用例。Oracle支持两种匹配符号:「 % 」 和「 _ 」 ,符号「 % 」可匹配0个或 多个字符 ,符号「 _ 」可匹配任何单一字符 。 
条件(WHERE):逻辑操作符 [and or not]

排序(ORDER BY子句):使得SQL在显示查询结果时将各返回行按顺序排列,返回行的排列顺序由ORDER BY 子句指定的表达式的值确定.
ASC:从小到大排序(default)
DESC:从大到小排序
ORDER BY子句在SELECT语句的最后
SELECT ename,job,deptno,hiredate
2 FROM emp
3 ORDER BY hiredate DESC;




数值函数

日期类型:
Oracle是用数字来存储日期信息,数字的整数部分代表与Julian Calendar(罗马儒略历,公历)相距的天数 (由公元前4712年1月1日开始),而小数部分代表时、分和秒。
Oracle默认日期格式:DD-MON-YY
SYSDATE函数返回系统当前的日期和时间。
DUAL是Oracle内置的虚拟表,只有一行一列。
日期运算:不允许日期加日期
日期函数:
数据转换

转换函数:隐式转换
在赋值时,Oracle服务器能够进行自动转换的数据类型列表

显示转换

函数TO_CHAR
TO_CHAR(date, 'format_model')

SELECT ename,
2 TO_CHAR(hiredate, 'fmDD Month YYYY') HIREDATE
3 FROM emp;
ENAME HIREDATE
---------- -----------------
KING 17 November 1981
BLAKE 1 May 1981
CLARK 9 June 1981
JONES 2 April 1981
MARTIN 28 September 1981
ALLEN 20 February 1981


SELECT Ename,TO_CHAR(hiredate,'DD-Mon-YYYY')
FROM emp
WHERE hiredate < TO_DATE('01-01-90','DD-MM-RR');

空值置换函数:如果表达式不为NULL,函数就返回该表达式的值。如果位空,就返回用来替换的值
NVL (expr1, expr2)
NVL2 (expr1, expr2, expr3)
函数可以使用date, character, 和number数据类型。
表达式的值和替换值类型必须匹配:
NVL(comm,0)
NVL(hiredate,'01-JAN-97')
NVL(job,'No Job Yet')
条件表达式: CASE表达式
SELECT ename, job, sal,
CASE job WHEN 'ANALYST' THEN 1.10*sal
WHEN 'CLERK' THEN 1.15*sal
WHEN 'SALESMAN' THEN 1.20*sal
ELSE sal END REVISED_SALARY
FROM emp;
条件表达式: DECODE函数
SELECT ename, job, sal,
DECODE(job, 'ANALYST', 1.10*sal,
'CLERK', 1.15*sal,
'SALESMAN', 1.20*sal,
sal)
REVISED_SALARY
FROM emp;

函数的嵌套:单行函数能够在任何一个层次嵌套。
连接:
连接是将二个或多个表、视图或快照的行合并,每一返回行包含来自多个表的数据。每当在FROM子句中出现多表时ORACLE需要执行连接,WHERE子句决定如何连接。
在连接表时,应尽量避免迪卡尔乘积(Cartesian)。
如:SELECT table1.column, table2.column
FROM table1, table2
WHERE table1.column1 = table2.column2;

连接:使用表的别名
SELECT e.empno, e.ename, e.deptno,
2 d.deptno, d.loc
3 FROM emp e, dept d
4 WHERE e.deptno=d.deptno;
连接:外连接(Outer Joins) —是对简单联接的扩充,它返回简单联接所返回的全部行,而且还返回一表中不与另一表的行相匹配的行。
外连接操作符时(+)加号(表示在该表中加入一个空行来与没有直接匹配行的数据进行匹配)
SQL> SELECT e.ename, d.deptno, d.dname
2 FROM emp e, dept d
3 WHERE e.deptno(+) = d.deptno
4 ORDER BY e.deptno;

自连接

SELECT worker.ename||' works for '||manager.ename
2 FROM emp worker, emp manager
3 WHERE worker.mgr = manager.empno;
WORKER.ENAME||'WORKSFOR'||MANAG
-------------------------------
BLAKE works for KING
CLARK works for KING
JONES works for KING
MARTIN works for BLAKE
...
13 rows selected.
连接:递归查询(树查询)。应用举例:(只提一下下)
SELECT lpad(ename,length(ename)+(level-1)*3,'-') employee,level
FROM emp
START WITH ename = 'KING'
CONNECT BY PRIOR empno = mgr;

集合操作符:将两个查询结果合成单个结果。
UNION(并) :返回查询选择的全部不同行。
UNION ALL (并) :返回查询选择的全部行,包括全部重复。
INTERSECT(交):返回两个查询同时选择的全部不同行。
MINUS(差):返回由第一个查询选择的而且不属于第二个查询选择的全部不同行。
oracle数据操纵语言(DML)data manipulation language的更多相关文章
- oracle数据操纵语言(DML)data manipulation language(续集)
SQL查询语句(SELECT)进阶分组函数(Group Functions):对多行进行操作,并为每一组给出一个结果. AVG([DISTINCT|ALL] expression) 平均值COUNT ...
- 数据库原理及应用-SQL数据操纵语言(Data Manipulation Language)和嵌入式SQL&存储过程
2018-02-19 18:03:54 一.数据操纵语言(Data Manipulation Language) 数据操纵语言是指插入,删除和更新语言. 二.视图(View) 数据库三级模式,两级映射 ...
- Hive 6、Hive DML(Data Manipulation Language)
DML主要是对Hive 表中的数据进行操作的(增 删 改),但是由于Hadoop的特性,所以单条的修改.删除,其性能会非常的低所以不支持进行级操作: 主要说明一下最常用的批量插入数据较为常用的方法: ...
- (让你提前知道软件开发33):数据操纵语言(DML)
文章2部分 数据库SQL语言 数据操纵语言(DML) 数据操纵语言(Data Manipulation Language,DML)包含insert.delete和update语句,用于增.删.改数据. ...
- MySQL之数据操纵语言(DML)
数据操纵语言(DML) 数据操纵语(Data Manipulation Language),简称DML. DML主要有四个常用功能. 增 删 改 查 insert delete update sele ...
- 【转】Hive Data Manipulation Language
Hive Data Manipulation Language Hive Data Manipulation Language Loading files into tables Syntax Syn ...
- 30442数据操纵语言DML
5.5 SQL的数据操纵功能 5.5.1 数据插入 使用CREATE语句创建的数据表还只是一个“空壳”,表中没有任何数据.利用SQL语言提供的INSERT语句可以完成向数据表插入数据的任务. INSE ...
- 【MySQL笔记】数据操纵语言DML
1.数据插入 INSERT INTO table_name (列1, 列2,...) VALUES(值1, 值2,....),(第二条),(第三条)... 注: 1)如果表中的每一列均有数据插 ...
- mysql数据库-mysql数据定义语言DDL (Data Definition Language)归类(六)
0x01 创建数据库并指定字符集和排序规则 -- 三种实例写法 create database temptab2 character set utf8 collate utf8_general_ci; ...
随机推荐
- 100个直接可以拿来用的JavaScript实用功能代码片段(转载)
把平时网站上常用的一些实用功能代码片段通通收集起来,方面网友们学习使用,利用好的话可以加快网友们的开发速度,提高工作效率. 目录如下: 1.原生JavaScript实现字符串长度截取2.原生JavaS ...
- android开发中关于VersionCode和VersionName
Google为APK定义了两个关于版本属性:VersionCode和VersionName,他们有不同的用途. VersionCode:对消费者不可见,仅用于应用市场.程序内部识别版本,判断新旧等用途 ...
- 利用花生壳和IIS发布网页过程
老早利用做过类似的事情,但最近又忘了怎么弄的了,还是自己给自己总结下,省得以后到处找了. [动态域名绑定] 如果具有公网IP地址,申请一个免费的花生壳动态域名,再下一个花生壳客户,使用已经申请好的动态 ...
- xshell 远程连接Linux
Linux系统(Ubuntu 16.04) Window系统(win10) 工具:xshell Linux下, sudo apt-get update sudo apt-get install ope ...
- 从Windows 服务器通过sync向Linux服务器定时同步文件
本文解决的是Windows 下目录及文件向Linux同步的问题,Windows向 Windows同步的请参考:http://www.idcfree.com/article-852-1.html 环境介 ...
- java学习笔记(5)——内部类
一.内部类 1,静态内部类 使用static修饰,声明在类体中 静态内部类中可以访问外部类的静态成员 2,成员内部类 声明在类体中,不使用static,具有类的成员特征,也就是,必须有类的实例才能 创 ...
- javascript之处理Ajax错误
使用Ajax须留心两类错误.它们的差别源于视角的不同. 第一类错误是从XMLHttpRequest对象的角度看到的问题:某些因素阻止了请求发送到server,比如DNS无法解析主机名,连接请求被拒绝. ...
- asmack
https://github.com/zhuqizhi/tlbs1409 https://github.com/maxting/IM_Project150126 https://github.com/ ...
- Android创建文件夹及文件并写入数据
package elwin.fei.mobileaudio; import java.io.BufferedWriter; import java.io.File; import java.io.Fi ...
- 2sum、3sum、4sum以及任意连续的数的和为sum、任意连续或者不连续的数的和为sum
2sum 如果数组是无序的,先排序(n*logn),然后用两个指针i,j,各自指向数组的首尾两端,令i=0,j=n-1,然后i++,j--,逐次判断a[i]+a[j]?=sum,如果某一刻a[i]+a ...