操作符
1. 算术运算符:+ — * / 求余函数MOD(x,y)
例:Select ename, sal, (sal*12+1200) from emp where sal>2000
2. 关系运算:= , <, >, !=
3. 逻辑运算:and or not
4. 字符串连接符:||
例:SELECT (ENAME || 'is a ' || JOB) AS "EmployeeDetails" FROM EMP
高级查询
1. 消除重复行:distinct
select distinct 列名 from 表名
2. 空值:null
Null值用is null作条件,非null 值用not is null做条件
例:select * from emp where comm is null
3. 一列中的几种情况:in
例:查询工作职责(job)是salesman,analyst的人员
Select * from emp wherejob=’salesman’ or job=’analyst’
或Select *from emp where job in(’salesman’ ,’analyst’)
Not in :结果相反
4. 在指定区间内的行:between….and…
例:select *from emp where sal>=1000 and sal<=2000
或select *from emp where sal between 1000 and 2000
Between包括边界
5. 模糊查询:like
字符匹配可以使用通配符“%”(零个或多个任意字符)“_”(一个任意字符)
例:like ‘12%’ 以12开头的字符串
like ‘_12%’第二个字符为12的字符串
like ‘%12\%%’ escape '\' 包含“12%”的字符串,\为转义字符
例:select * fromTRADE_ORDER a where a.user_name like'%12%\%' escape '\'
6. 集合运算:将两个或多个结果集组合成为一个结果集
Intersect:交集,返回两个查询的共有记录
Union all:并集,返回各个查询的所有记录,包括重复记录
Union:并集,返回各个查询的所有记录,不包括重复记录
Minus:补集,返回第一个查询检索出的记录减去第二个查询检索出的记录之后剩余的记录
注:当使用集合操作时,查询返回的列数以及列的类型必须匹配,列名可以不同
例:查询出dept表中哪个部门下没有员工,只需求出dept表中的部门号和emp表中的部门号的补集即可
Select deptno from dept minus selectdeptno from emp
总结:
Ø Oracle SQL语句中有数据操纵语言(DML)、数据定义语言(DDL)、数据控制语言(DCL)、事务控制语言(TCL)等等。
Ø DML语句包括增删改查语句,DDL语句包括数据库对象创建、修改和删除语句,数据控制命令包括GRANT、REVOKE等,事务控制命令有COMMIT、ROLLBACK等。
Ø 数据库中建表常用的类型有:数字类型number(p,s),可变字符串varchar2(length),日期date。
Ø Oracle中default是一个值,在Oracle中不存在default约束。
Ø Oracle的增删改语句与SQL Server基本一致,都是使用INSERT、UPDATE、DELETE完成。
Ø Oracle高级查询中要注意:DISTINCT、NULL、IN、BETWEEN…AND…。
Ø 集合操作有:UNION、UNION ALL、INTESECT、MINUS。
Ø 联接查询有内联接和外联接。