语法格式
Select *|{<字段名>,……}
from <表名>;
使用算术表达式
select empno,ename,sal*12 from emp;
算数运算符
+ - * /
运算符优先级
乘法和除法的优先级高于加法和减法
同优先级运算符的顺序是从左到右
表达式中可使用小括号强行改变运算顺序
!!!链接运算符--||
select ename||'is a'||job from emp;
select empno,ename||'is a'||sal from emp;
示例:(1)select '姓名是'||ename,'工作为'||job from emp;
(2)select empno || ' 号的 '||ename ||' is a ' ||job||' his annual sal is '|| (sal*12) from emp;
!!!!注:字符串连接时最好加空格,增加易读性
使用字段别名
字段别名
重命名查询结果中的字段,一增强可读性
如果别名中使用特殊字符,或者是强制大小写敏感需双引号
语法格式
select<字段名>|<表达式>[[AS]<字段别名>],……from <表名>
示例:select empno as 员工编号 ,ename 员工姓名,sal*12 "年薪" from emp;
select empno || ' 号的 '||ename ||' is a ' ||job||' his annual sal is '|| (sal*12) 员工信息 from emp;把empno,ename,job,sal*12这些信息一员工信息表的形式存放
空值
空值是无效的,未指定的,未知的或不可预知的值
空值不等同于空格或者0
算术表达式中出现空值,则整个表达式结果为空
链接表达式中出现的空值被当作一个空的字符串处理
去掉重复行--在缺省情况下,查询结果中包含所有符合条件的记录行,包括重复行 ---如只查询 性别
distinct
select distinct deptno from emp;
查询结果排序
查询结果缺省按记录顺序排列
可以使用order by ASC--升序 DESC--降序
select empno,ename,sal from emp order by sal;
select deptno,ename,sal from emp order by deptno desc,sal;
条件查询
语法格式
select*|{[distinct]<字段名>|<表达式>[<别名>],...} from <表名>[where <查询条件>]
select * from emp where deptno=10;
!!!!获取当前缺省日期格式
select sysdate from dual;
比较运算符
= > >= < <= <><--->!=
between...and...界于两值之间包(含边界)
in(set)出现在集合里
like模糊查询
in null 为空值
!!!模糊查询
% 表示零或多个字符
_表示一个字符
对于特殊符号可使用ESCAPE标识符来查找
/--转义符(实际开发中并不常用)
select * from student where name like '%/%%' escape '/';--查询所以姓名中包含%的人
select * from student where name like '%/_%' escape '/';--查询所以姓名中包含_的人
!!!!!!!!!!!!!!!!!!!!!
插入一个带有'的常量时
如:insert into student values('Tom''cd',24);--Oracle中规定两个''代表一个'
select * from student where name like '%''%';
空值判断
select * from emp where comm is (not) null;--0不等于空值
逻辑运算符
NOT--逻辑"非"
AND--逻辑"与"
OR---逻辑"或"
!!!!!!
运算符优先级(可使用()来改变运算顺序)
* /
+ -
||
= > >= < <= <>
is[not]null like not[in]
[not]between...and...
not
and
or