Oracle之基本select语句
2017-08-14 21:35
162 查看
1、显示所有列 SQL> select * from dept; DEPTNO DNAME LOC --------- -------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON 2、显示部分列 SQL> select dname from dept; DNAME -------------- ACCOUNTING RESEARCH SALES OPERATIONS 3、使用表达式 SQL> select ename,empno,job,sal,sal*12 from emp; ENAME EMPNO JOB SAL SAL*12 ---------- ---------- --------- ---------- ---------- SMITH 7369 CLERK 800 9600 ALLEN 7499 SALESMAN 1600 19200 WARD 7521 SALESMAN 1250 15000 JONES 7566 MANAGER 2975 35700 MARTIN 7654 SALESMAN 1250 15000 BLAKE 7698 MANAGER 2850 34200 CLARK 7782 MANAGER 2450 29400 SCOTT 7788 ANALYST 3000 36000 KING 7839 PRESIDENT 5000 60000 TURNER 7844 SALESMAN 1500 18000 ADAMS 7876 CLERK 1100 13200 JAMES 7900 CLERK 950 11400 FORD 7902 ANALYST 3000 36000 MILLER 7934 CLERK 1300 15600 已选择14行。 4、使用别名 SQL> select ename as "姓名",empno "编号",job 职位,sal 月薪,sal*12 年薪 from emp; 姓名 编号 职位 月薪 年薪 ---------- ---------- --------- ---------- ---------- SMITH 7369 CLERK 800 9600 ALLEN 7499 SALESMAN 1600 19200 WARD 7521 SALESMAN 1250 15000 JONES 7566 MANAGER 2975 35700 MARTIN 7654 SALESMAN 1250 15000 BLAKE 7698 MANAGER 2850 34200 CLARK 7782 MANAGER 2450 29400 SCOTT 7788 ANALYST 3000 36000 KING 7839 PRESIDENT 5000 60000 TURNER 7844 SALESMAN 1500 18000 ADAMS 7876 CLERK 1100 13200 JAMES 7900 CLERK 950 11400 FORD 7902 ANALYST 3000 36000 MILLER 7934 CLERK 1300 15600 已选择14行。 注:别名可以省掉""和as,但是列名中如果有空格,则不能省略"" 5、空值问题 (1)问题:有的员工的年薪为空? SQL> select ename,empno,job,sal,sal*12+comm from emp; ENAME EMPNO JOB SAL SAL*12+COMM ---------- ---------- --------- ---------- ----------- SMITH 7369 CLERK 800 ALLEN 7499 SALESMAN 1600 19500 WARD 7521 SALESMAN 1250 15500 JONES 7566 MANAGER 2975 MARTIN 7654 SALESMAN 1250 16400 BLAKE 7698 MANAGER 2850 CLARK 7782 MANAGER 2450 SCOTT 7788 ANALYST 3000 KING 7839 PRESIDENT 5000 TURNER 7844 SALESMAN 1500 18000 ADAMS 7876 CLERK 1100 JAMES 7900 CLERK 950 FORD 7902 ANALYST 3000 MILLER 7934 CLERK 1300 已选择14行。 (2)规则: <1>任何数和空值运算都为空; <2>空值不为空,即null != null; (3)解决办法:滤空函数 <1>nvl(a,b):当a是null的时候返回b(b可以是数字,也可以是字符串,字符串用单引号括起来); <2>如何解决之前的年薪问题 SQL> select ename,empno,job,sal,sal*12+nvl(comm,0) from emp; ENAME EMPNO JOB SAL SAL*12+NVL(COMM,0) ---------- ---------- --------- ---------- ------------------ SMITH 7369 CLERK 800 9600 ALLEN 7499 SALESMAN 1600 19500 WARD 7521 SALESMAN 1250 15500 JONES 7566 MANAGER 2975 35700 MARTIN 7654 SALESMAN 1250 16400 BLAKE 7698 MANAGER 2850 34200 CLARK 7782 MANAGER 2450 29400 SCOTT 7788 ANALYST 3000 36000 KING 7839 PRESIDENT 5000 60000 TURNER 7844 SALESMAN 1500 18000 ADAMS 7876 CLERK 1100 13200 JAMES 7900 CLERK 950 11400 FORD 7902 ANALYST 3000 36000 MILLER 7934 CLERK 1300 15600 已选择14行。 6、查询为空和不为空的数据 (1)查询为空数据 SQL> select * from emp where comm is null; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ---------- -------------- ---------- ---------- --------- 7369 SMITH CLERK 7902 17-12月-80 800 20 7566 JONES MANAGER 7839 02-4月 -81 2975 20 7698 BLAKE MANAGER 7839 01-5月 -81 2850 30 7782 CLARK MANAGER 7839 09-6月 -81 2450 10 7788 SCOTT ANALYST 7566 19-4月 -87 3000 20 7839 KING PRESIDENT 17-11月-81 5000 10 7876 ADAMS CLERK 7788 23-5月 -87 1100 20 7900 JAMES CLERK 7698 03-12月-81 950 30 7902 FORD ANALYST 7566 03-12月-81 3000 20 7934 MILLER CLERK 7782 23-1月 -82 1300 10 已选择10行。 (2)查询不为空的数据 SQL> select * from emp where comm is not null; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ---------- -------------- ---------- ---------- --------- 7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30 7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30 7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30 7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30 7、连接符(||)和伪表(dual) SQL> select 'hello' || 'world' from dual; 'HELLO'||' ---------- helloworld 8、删除重复行(distinct) (1)修饰单个字段 SQL> select distinct deptno from dept; DEPTNO --------- 10 20 30 40 (2)修饰多个字段:会显示多个字段中都不重复的记录 SQL> select distinct deptno,job from emp; DEPTNO JOB --------- --------- 20 CLERK 30 SALESMAN 20 MANAGER 30 CLERK 10 PRESIDENT 30 MANAGER 10 CLERK 10 MANAGER 20 ANALYST 已选择9行。
相关文章推荐
- Select 语句执行顺序以及如何提高Oracle 基本查询效率--原文链接http://www.cnblogs.com/likeju/p/5039128.html
- Select 语句执行顺序以及如何提高Oracle 基本查询效率
- Oracle亲身实验1:基本的SELECT语句
- Select 语句执行顺序以及如何提高Oracle 基本查询效率
- ORCLE-Select 语句执行顺序以及如何提高Oracle 基本查询效率
- 22、oracle:Select 语句执行顺序以及如何提高Oracle 基本查询效率
- Select 语句执行顺序以及如何提高Oracle 基本查询效率
- ORCLE-Select 语句执行顺序以及如何提高Oracle 基本查询效率
- Oracle 基本 SELECT 语句
- ORACLE-Select语句执行顺序及如何提高Oracle 基本查询效率
- Select 语句执行顺序以及如何提高Oracle 基本查询效率
- Oracle学习----select基本语句
- Oracle中5个核心Sql语句的基本构造:Select、Insert、Update、Delete和Merge
- 数据库学习oracle之基本的sql语句select语句
- ORACLE-Select语句执行顺序及如何提高Oracle 基本查询效率
- 【Oracle】SQL学习笔记1---基本概念及SELECT语句及提取和排序数据
- ORCLE-Select 语句执行顺序以及如何提高Oracle 基本查询效率
- Select 语句执行顺序以及如何提高Oracle 基本查询效率
- Select 语句执行顺序以及如何提高Oracle 基本查询效率
- ORCLE-Select 语句执行顺序以及如何提高Oracle 基本查询效率