别名
oracle别名如果别名包含空格特殊字符(如#$)或需区分大小写(Name)需要用双引号把别名引起来
select ename Name
sal* Annual Salary
from emp;
列的别名可用于select和order by子句中但是不能用在where子句中
连接操作符||
select ename||job as Employees
from emp;
原义字符串 包含在select列表中的一个字符数字或日期而不是列名或别名使用原义字符串可增强输出的可读性
select ename|| is a ||job
as Employees from emp;
去除重复行distinct
select distinct deptno
from emp;
sql*plus登录
sqlplus [username[/password[@database]]]
在sql*plus中编辑sql缓沖区中的sql语句
SQL>select depno
dname
from dept;
sql>L
*dname
sql>Aloc
*dnameloc
sql>L
select depno
dnameloc
*from dept
sql>/(执行)
限定查询和排序
select empnoenamejobdeptno
from emp
where deptno=;
oracle提供种常用的比较运算符=>>=<<=<>或!=(不等于)
除了种常用的外还提供种比较运算符betweenand(包含)IN(和多个值中的任何一个匹配)like(字形匹配)
is null(是空值)
在where子句中的字符串和日期数值必须用单引号引起来oracle 以内部数值形式存储日期能表现出世纪年月日小时分秒默认的日期形式是DDMONYY
sql>select enamejobdeptno
from emp
where ename=JAMES;
sql>select namejobdeptno
from emp
where ename=james;
所有字符检索都是大小写敏感的
显示工资在和美元之间的雇员信息
>select enamesal
from emp
where sal between and ;
显示年加入公司的雇员相关信息
>select enamesalhiredate
from emp
where hiredate between JAN and DEC;
显示mgr等于的雇员信息
>select empnoenamesqlmgr
from emp
where mgr in ();
显示姓名为FORDALLEN雇员的相关信息
>select empnoenamemgrdeptno
from emp
where ename in(FORDALLEN);
like字形匹配操作可以使用通配符%(表示任意字符)和_(表示一个字符)
>select ename
from emp
where ename like S%;
当我们需要对%_进行查找时可以使用escape选项这个选项指定哪个是转义字符
escape标识\字符作为转义符
>select ename
from emp
where ename like %A\_B%escape\;
在条件中NOT形成否定条件
>select enamejob
from emp
where job not in (CLERKMANAGERANALYST);
where sal not between and
where ename not like %A%
wher comm is not null
运算符优先规则
not and or
>select enamejobsal
from emp
where job=SALESMAN
or job=PRESIDENT
and sal>;
第一个条件是工作为president并且月工资大于美元
第二个条件是工作为salesman
因此可以这样理解如果一个雇员是president并且月工资大于或者这个雇员是salesman那么他们将被检索出
>select enamejobsal
from emp
where (job=SALESMAN
or job=PRESIDENT)
and sal>;
第一个条件是工作为president或saleman
第二个条件是月工资大于
order by子句后可选用关键字asc(升序默认为升序)desc(降序排列)
>select enamejobdeptnohiredate
from emp
order by hiredate;