SQL> --清屏
SQL> host clsSQL> --当前用户
SQL> show user
USER 为 "SCOTT"
SQL> --当前用户下的表
SQL> select * from tab;TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
DEPT TABLE
EMP TABLE
BONUS TABLE
SALGRADE TABLE SQL> --emp表的结构
SQL> desc emp名称 是否为空? 类型----------------------------------------- -------- ----------------------------EMPNO NOT NULL NUMBER(4)ENAME VARCHAR2(10)JOB VARCHAR2(9)MGR NUMBER(4)HIREDATE DATESAL NUMBER(7,2)COMM NUMBER(7,2)DEPTNO NUMBER(2)SQL> host clsSQL> --查询所有员工的所有信息
SQL> select * from emp;EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- -------------- ---------- ---------- DEPTNO
---------- 7369 SMITH CLERK 7902 17-12月-80 800 20 7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30 7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30 EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- -------------- ---------- ---------- DEPTNO
---------- 7566 JONES MANAGER 7839 02-4月 -81 2975 20 7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30 7698 BLAKE MANAGER 7839 01-5月 -81 2850 30 EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- -------------- ---------- ---------- DEPTNO
---------- 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 EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- -------------- ---------- ---------- DEPTNO
---------- 7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30 7876 ADAMS CLERK 7788 23-5月 -87 1100 20 7900 JAMES CLERK 7698 03-12月-81 950 30 EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- -------------- ---------- ---------- DEPTNO
---------- 7902 FORD ANALYST 7566 03-12月-81 3000 20 7934 MILLER CLERK 7782 23-1月 -82 1300 10 已选择 14 行。SQL> --设置行宽
SQL> show linesize
linesize 80
SQL> set linesize 150
SQL> --设置列宽
SQL> col ename for a8
SQL> col sal for 9999
SQL> /EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- -------- --------- ---------- -------------- ----- ---------- ---------- 7369 SMITH CLERK 7902 17-12月-80 800 20 7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30 7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30 7566 JONES MANAGER 7839 02-4月 -81 2975 20 7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30 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 7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30 7876 ADAMS CLERK 7788 23-5月 -87 1100 20 EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- -------- --------- ---------- -------------- ----- ---------- ---------- 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 已选择 14 行。SQL> --通过列名
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno2 from emp;EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- -------- --------- ---------- -------------- ----- ---------- ---------- 7369 SMITH CLERK 7902 17-12月-80 800 20 7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30 7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30 7566 JONES MANAGER 7839 02-4月 -81 2975 20 7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30 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 7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30 7876 ADAMS CLERK 7788 23-5月 -87 1100 20 EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- -------- --------- ---------- -------------- ----- ---------- ---------- 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 已选择 14 行。SQL> host clsSQL> /*
SQL> SQL优化的原则:
SQL> 1. 使用列名代替*
SQL> */
SQL> --查询员工信息:员工号 姓名 月薪
SQL> select empno,ename,sal2 from emp;EMPNO ENAME SAL
---------- -------- ----- 7369 SMITH 800 7499 ALLEN 1600 7521 WARD 1250 7566 JONES 2975 7654 MARTIN 1250 7698 BLAKE 2850 7782 CLARK 2450 7788 SCOTT 3000 7839 KING 5000 7844 TURNER 1500 7876 ADAMS 1100 EMPNO ENAME SAL
---------- -------- ----- 7900 JAMES 950 7902 FORD 3000 7934 MILLER 1300 已选择 14 行。SQL> --查询员工信息:员工号 姓名 月薪 年薪
SQL> select empno,ename,sal,sal*122 form emp;
form emp*
第 2 行出现错误:
ORA-00923: 未找到要求的 FROM 关键字 SQL> --c命令 change
SQL> 22* form emp
SQL> c /form/from2* from emp
SQL> /EMPNO ENAME SAL SAL*12
---------- -------- ----- ---------- 7369 SMITH 800 9600 7499 ALLEN 1600 19200 7521 WARD 1250 15000 7566 JONES 2975 35700 7654 MARTIN 1250 15000 7698 BLAKE 2850 34200 7782 CLARK 2450 29400 7788 SCOTT 3000 36000 7839 KING 5000 60000 7844 TURNER 1500 18000 7876 ADAMS 1100 13200 EMPNO ENAME SAL SAL*12
---------- -------- ----- ---------- 7900 JAMES 950 11400 7902 FORD 3000 36000 7934 MILLER 1300 15600 已选择 14 行。SQL> --查询员工信息:员工号 姓名 月薪 年薪 奖金 年收入
SQL> select empno,ename,sal,sal*12,comm,sal*12+comm2 from emp;EMPNO ENAME SAL SAL*12 COMM SAL*12+COMM
---------- -------- ----- ---------- ---------- ----------- 7369 SMITH 800 9600 7499 ALLEN 1600 19200 300 19500 7521 WARD 1250 15000 500 15500 7566 JONES 2975 35700 7654 MARTIN 1250 15000 1400 16400 7698 BLAKE 2850 34200 7782 CLARK 2450 29400 7788 SCOTT 3000 36000 7839 KING 5000 60000 7844 TURNER 1500 18000 0 18000 7876 ADAMS 1100 13200 EMPNO ENAME SAL SAL*12 COMM SAL*12+COMM
---------- -------- ----- ---------- ---------- ----------- 7900 JAMES 950 11400 7902 FORD 3000 36000 7934 MILLER 1300 15600 已选择 14 行。SQL> /*
SQL> SQL中null值:
SQL> 1. 包含null的表达式都为null
SQL> 2. null永远!=null
SQL> */
SQL> select empno,ename,sal,sal*12,comm,sal*12+nvl(comm,0)2 from emp;EMPNO ENAME SAL SAL*12 COMM SAL*12+NVL(COMM,0)
---------- -------- ----- ---------- ---------- ------------------ 7369 SMITH 800 9600 9600 7499 ALLEN 1600 19200 300 19500 7521 WARD 1250 15000 500 15500 7566 JONES 2975 35700 35700 7654 MARTIN 1250 15000 1400 16400 7698 BLAKE 2850 34200 34200 7782 CLARK 2450 29400 29400 7788 SCOTT 3000 36000 36000 7839 KING 5000 60000 60000 7844 TURNER 1500 18000 0 18000 7876 ADAMS 1100 13200 13200 EMPNO ENAME SAL SAL*12 COMM SAL*12+NVL(COMM,0)
---------- -------- ----- ---------- ---------- ------------------ 7900 JAMES 950 11400 11400 7902 FORD 3000 36000 36000 7934 MILLER 1300 15600 15600 已选择 14 行。SQL> --2. null永远!=null
SQL> --查询奖金为null的员工
SQL> select *2 from emp3 where comm=null;未选定行SQL> select *2 from emp3 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 行。SQL> select empno,ename,sal,sal*12,comm,sal*12+nvl(comm,0)2 from emp;EMPNO ENAME SAL SAL*12 COMM SAL*12+NVL(COMM,0)
---------- -------- ----- ---------- ---------- ------------------ 7369 SMITH 800 9600 9600 7499 ALLEN 1600 19200 300 19500 7521 WARD 1250 15000 500 15500 7566 JONES 2975 35700 35700 7654 MARTIN 1250 15000 1400 16400 7698 BLAKE 2850 34200 34200 7782 CLARK 2450 29400 29400 7788 SCOTT 3000 36000 36000 7839 KING 5000 60000 60000 7844 TURNER 1500 18000 0 18000 7876 ADAMS 1100 13200 13200 EMPNO ENAME SAL SAL*12 COMM SAL*12+NVL(COMM,0)
---------- -------- ----- ---------- ---------- ------------------ 7900 JAMES 950 11400 11400 7902 FORD 3000 36000 36000 7934 MILLER 1300 15600 15600 已选择 14 行。SQL> ed
已写入 file afiedt.buf1 select empno as "员工号",ename "姓名",sal 月 薪,sal*12,comm,sal*12+nvl(comm,0)2* from emp
SQL> /
select empno as "员工号",ename "姓名",sal 月 薪,sal*12,comm,sal*12+nvl(comm,0)*
第 1 行出现错误:
ORA-00923: 未找到要求的 FROM 关键字 SQL> ed
已写入 file afiedt.buf1 select empno as "员工号",ename "姓名",sal "月 薪",sal*12,comm,sal*12+nvl(comm,0)2* from emp
SQL> /员工号 姓名 月 薪 SAL*12 COMM SAL*12+NVL(COMM,0)
---------- ---------- ---------- ---------- ---------- ------------------ 7369 SMITH 800 9600 9600 7499 ALLEN 1600 19200 300 19500 7521 WARD 1250 15000 500 15500 7566 JONES 2975 35700 35700 7654 MARTIN 1250 15000 1400 16400 7698 BLAKE 2850 34200 34200 7782 CLARK 2450 29400 29400 7788 SCOTT 3000 36000 36000 7839 KING 5000 60000 60000 7844 TURNER 1500 18000 0 18000 7876 ADAMS 1100 13200 13200 员工号 姓名 月 薪 SAL*12 COMM SAL*12+NVL(COMM,0)
---------- ---------- ---------- ---------- ---------- ------------------ 7900 JAMES 950 11400 11400 7902 FORD 3000 36000 36000 7934 MILLER 1300 15600 15600 已选择 14 行。SQL> host clsSQL> --distinct 去掉重复记录
SQL> select deptno from emp;DEPTNO
---------- 20 30 30 20 30 30 10 20 10 30 20 DEPTNO
---------- 30 20 10 已选择 14 行。SQL> select distinct deptno from emp;DEPTNO
---------- 30 20 10 SQL> select job from emp;JOB
---------
CLERK
SALESMAN
SALESMAN
MANAGER
SALESMAN
MANAGER
MANAGER
ANALYST
PRESIDENT
SALESMAN
CLERK JOB
---------
CLERK
ANALYST
CLERK 已选择 14 行。SQL> select distinct job from emp;JOB
---------
CLERK
SALESMAN
PRESIDENT
MANAGER
ANALYST 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 行。SQL> --distinct作用于后面所有的列
SQL> host clsSQL> --连接符
SQL> --concat
SQL> select concat('Hello',' World');
select concat('Hello',' World')*
第 1 行出现错误:
ORA-00923: 未找到要求的 FROM 关键字 SQL> select concat('Hello',' World') from emp;CONCAT('HELL
------------
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World CONCAT('HELL
------------
Hello World
Hello World
Hello World 已选择 14 行。SQL> select concat('Hello',' World') from dual;CONCAT('HELL
------------
Hello World SQL> select 3+2 from dual;3+2
---------- 5 SQL> select * from tab;TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
DEPT TABLE
EMP TABLE
BONUS TABLE
SALGRADE TABLE SQL> --dual表:伪表
SQL> select 'Hello'||' Word' 字符串 from dual;字符串
----------
Hello Word SQL> --查询员工信息:***的薪水是****
SQL> select ename||'的薪水是'||sal 信息 from emp;信息
----------------------------------------------------------
SMITH的薪水是800
ALLEN的薪水是1600
WARD的薪水是1250
JONES的薪水是2975
MARTIN的薪水是1250
BLAKE的薪水是2850
CLARK的薪水是2450
SCOTT的薪水是3000
KING的薪水是5000
TURNER的薪水是1500
ADAMS的薪水是1100 信息
----------------------------------------------------------
JAMES的薪水是950
FORD的薪水是3000
MILLER的薪水是1300 已选择 14 行。SQL> host clsSQL> --字符串
SQL> select * from emp;EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- -------- --------- ---------- -------------- ----- ---------- ---------- 7369 SMITH CLERK 7902 17-12月-80 800 20 7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30 7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30 7566 JONES MANAGER 7839 02-4月 -81 2975 20 7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30 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 7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30 7876 ADAMS CLERK 7788 23-5月 -87 1100 20 EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- -------- --------- ---------- -------------- ----- ---------- ---------- 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 已选择 14 行。SQL> spool off
详细解决方案
Oracle数据库(一)基本查询
热度:39 发布时间:2023-09-20 22:44:33.0
相关解决方案
- oracle 分页排序,ssi,该怎么处理
- oracle 最近的时间(而不是前一天的时间) 跪求sql语句 。解决方法
- oracle,该怎么解决
- 在 Hibernate3 查询不到 Oracle 11g 里的记录
- oracle 安装时出现 java tm 异常
- android访问其他数据库(如:oracle、MySql等),希望大家给点建议!解决方案
- oracle 安插 LONG VARCHAR 类型数据
- ORACLE 一条SQL的有关问题
- oracle loadjava如何用
- oracle,该如何处理
- C# + SQL server +oracle QQ交流群142703980解决方法
- 怎么跟踪winform应用程序发送到数据库的sql(oracle、mssql)
- , 每次玩ASP都会遇到一些恶心的有关问题, 这次是:未能加载文件或程序集“Oracle.DataAccess”或它的某一个依赖项
- 尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运,该怎么解决
- 求解:gridview行值的计算并绑定有关问题(asp.net+oracle)
- Oracle.DataAccess 执行多条sql语句,该如何解决
- VS10连接Oracle的有关问题:"Oracle.DataAccess.Client.OracleConnection"的类型初始值设定项引发错误
- System.Data.OleDb.OleDbException: 未找到 Oracle 客户端和网络组件。
- asp.net oracle 参数化 模糊查询出错,该怎么处理
- Oracle-参数查询有关问题
- oracle,insert 语句插入一条记录后要求,返回主键id値。解决思路
- Oracle 10g下的SQL语句,有点难度.请~[同时向朋友们道歉~]
- 月统计(oracle)解决办法
- 在线紧急等一sql语句(oracle),该怎么处理
- 面试问,为什么jsp+oracle,asp+sql server这样来搭配?该如何处理
- oracle 连接数据库该如何写语句的
- System.Data.OracleClient requires Oracle client software version 8.1.7 or greater
- oracle 防sql注入有关问题!
- 求 Oracle Database Server 'TNS Listener'远路数据投毒漏洞 补丁
- oracle 客户端链接服务端的方式?该如何解决