Oracle查询语句(一)
下面是学习Oracle的查询语句的命令和一些oracle特有的语法。在这里做一个记录。以下操作的表都是在scott用户名下的。因此在学习时,可以参考 SQL> --查看当前用户
SQL> show user
SQL> --当前用户下的表
SQL> select * from tab;
SQL> -- tab数据字典(管理员提供的表)
SQL> desc emp
SQL> --查询所有员工的所有信息
SQL> select * from emp;
SQL> --设置行宽
SQL> set linesize 120
SQL> --设置列宽
SQL> col ename for a8
SQL> col sal for 9999
nvl(a,b)语句 --nvl(comm,0) ---语句
select empno,ename,sal,sal*12 年薪,comm 奖金,sal*12+nvl(comm,0) 年收入 from emp;
sql 判断为空的语句 comm is null
comm is not null
–distinct 去重复 select distinct job,comm from emp ; 作用于后面所有的字段
–concat 连接字符串 select concat(‘Hello’,'World') from dual; dual表是一张伪表,因为遵循sql99规范,定义该表用来操作一些与数据库没有关系的语法
CONCAT('HEL
-----------
Hello World
–连接符 select ‘Hello’||'World' from dual;
–查询员工信息,XXX的薪水是XXX select ename || '的薪水是' || sal "结果" from emp;
oracle需要注意 SQL> select * from emp where ename like 'KING';
SQL> select * from emp where ename like 'king';
未选定行
SQL> –日期格式敏感 select * from emp where hiredate='1981-11-17'
第 1 行出现错误:
ORA-01861: 文字与格式字符串不匹配
SQL> –Oracle的日期格式 DD-MON-RR SQL> select sysdate from dual;
SQL> –查询系统参数 SQL> select * from v$nls_parameters;
SQL> --v$nls_parameters 数据字典(包含某些系统的设置)
SQL> –修改日期格式 SQL> alter session set NLS_DATE_FORMAT='yyyy-mm-dd';
SQL> –between .. and 在**之间 SQL> select *
from emp
where sal between 1000 and 2000;
SQL> –in:在集合中 SQL> select *
from emp
where deptno in (10,20);
–查询不是10和20号部门的员工 select * from emp where deptno not in (10,20)
like 模糊查询 % _ SQL> select *
from emp
where ename like 's%';
_下划线表示任意的一个字符。 select * from emp where ename like '____';
SQL> –查询姓名带有下划线的员工 SQL> select *
2 from emp
3 where ename like '%_%' escape '';
SQL> –oracle是自动开启事务,因此可以rollback;来回滚当前事务。 SQL> rollback; 回退已完成。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |