oracle3

查看表结构
DESC emp;
查询所有列
SELECT * FROM dept;
切忌动不动就用select *
set timing on; 打开显示操作时间的开关,在下面显示查询时间。
CREATE TABLE users(userId VARCHAR2(10), uName VARCHAR2 (20), uPassw VARCHAR2(30));
INSERT INTO users VALUES(‘a0001‘, ‘啊啊啊啊‘, ‘aaaaaaaaaaaaaaaaaaaaaaa‘);
--从自己复制,加大数据量 大概几万行就可以了  可以用来测试sql语句执行效率
INSERT INTO users (userId,UNAME,UPASSW) SELECT * FROM users; //多次执行,每次加入后的数据为前次的2倍,指数增长。
SELECT COUNT (*) FROM users;统计行数 

 查询指定列
SELECT ename, sal, job, deptno FROM emp;
 如何取消重复行DISTINCT
SELECT DISTINCT deptno, job FROM emp;
查询SMITH所在部门,工作,薪水
SELECT deptno,job,sal FROM emp WHERE ename = ‘SMITH‘;
注意:oracle对内容的大小写是区分的,所以ename=‘SMITH‘和ename=‘smith‘是不同的 

 使用算术表达式 nvl  null
问题:如何显示每个雇员的年工资? "年薪"为别名,nvl中为null就为0
SELECT sal*13+nvl(comm, 0)*13 "年薪" , ename, comm  FROM emp;
 使用列的别名
SELECT ename "姓名", sal*12 AS "年收入" FROM emp;
 如何处理null值
使用nvl函数来处理
 如何连接字符串(||)
SELECT ename  || ‘ is a ‘ || job FROM emp;
 使用where子句
问题:如何显示工资高于3000的 员工?
SELECT * FROM emp WHERE sal > 3000;
问题:如何查找1982.1.1后入职的员工?
SELECT ename,hiredate FROM emp WHERE hiredate >‘1-1月-1982‘;
问题:如何显示工资在2000到3000的员工?
SELECT ename,sal FROM emp WHERE sal >=2000 AND sal <= 3000; 

 如何使用like操作符
%:表示0到多个字符  _:表示任意单个字符
问题:如何显示首字符为S的员工姓名和工资?
SELECT ename,sal FROM emp WHERE ename like ‘S%‘;
如何显示第三个字符为大写O的所有员工的姓名和工资?
SELECT ename,sal FROM emp WHERE ename like ‘__O%‘; 

 在where条件中使用in
问题:如何显示empno为7844, 7839,123,456 的雇员情况?
SELECT * FROM emp WHERE empno in (7844, 7839,123,456);
 使用is null的操作符
问题:如何显示没有上级的雇员的情况?
错误写法:select * from emp where mgr = ‘‘;
正确写法:SELECT * FROM emp WHERE mgr is null;

六:oracle表查询(2)
使用逻辑操作符号
问题:查询工资高于500或者是岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J?
SELECT * FROM emp WHERE (sal >500 or job = ‘MANAGER‘) and ename LIKE ‘J%‘;
 使用order by字句   默认asc
问题:如何按照工资的从低到高的顺序显示雇员的信息?
SELECT * FROM emp ORDER by sal;
问题:按照部门号升序而雇员的工资降序排列
SELECT * FROM emp ORDER by deptno, sal DESC; 

使用列的别名排序
问题:按年薪排序
select ename, (sal+nvl(comm,0))*12 "年薪" from emp order by "年薪" asc;
别名需要使用“”号圈中,英文不需要“”号 

 分页查询
等学了子查询再说吧。。。。。。。。 

Clear 清屏命令 
oracle表复杂查询 

数据分组 ——max,min, avg, sum, count
问题:如何显示所有员工中最高工资和最低工资?
SELECT MAX(sal),min(sal) FROM emp e;
      最高工资那个人是谁?
错误写法:select ename, sal from emp where sal=max(sal);
正确写法:select ename, sal from emp where sal=(select max(sal) from emp);
注意:select ename, max(sal) from emp;这语句执行的时候会报错,说ORA-00937:非单组分组函数。因为max是分组函数,而ename不是分组函数.......
但是select min(sal), max(sal) from emp;这句是可以执行的。因为min和max都是分组函数,就是说:如果列里面有一个分组函数,其它的都必须是分组函数,否则就出错。这是语法规定的问题:如何显示所有员工的平均工资和工资总和? 

问题:如何计算总共有多少员工问题:如何

扩展要求:
查询最高工资员工的名字,工作岗位
SELECT ename, job, sal FROM emp e where sal = (SELECT MAX(sal) FROM emp);
显示工资高于平均工资的员工信息
SELECT * FROM emp e where sal > (SELECT AVG(sal) FROM emp); 
时间: 2024-11-03 03:34:55

oracle3的相关文章

Common SQL for Oracle---(3)Check Execution Plan

---Check Execution Plan---- [email protected] select plan_table_output from table (dbms_xplan.display_awr('&sql_id',null,null,'ADVANCED +PEEKED_BINDS')); ---all [email protected] SELECT A.INSTANCE_NUMBER, A.SNAP_ID, A.SQL_ID, A.PLAN_HASH_VALUE, to_ch

Oracle-3 - :超级适合初学者的入门级笔--用户权限,set运算符,高级子查询

上一篇的内容在这里第二篇内容, 用户权限:创建用户,创建角色,使用grant  和 revoke 语句赋予和回收权限,创建数据库联接 创建用户:create user xxx identified by pass: xxx为 新创建用户的用户名,pass 为密码 在这里强调的是 oracle 12c版本 必须创建用户以C##开头,也可以更改,详见百度 ,哈哈 但是新创建的用户并没有create session 权限,见图,登陆被拒绝 授予用户权限 :grant 权限  to  用户 由于他没有c

OCM 11g升级考试第二场搭建DataGuard遇到: prod - Physical standby database (disabled) 错误

转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/43989607 1.**************************DGMGRL DGMGRL> show configuration; Configuration - c1 Protection Mode: MaxPerformance  Databases:    orcl - Primary database    prod - Physical standby database

oracle的环境配置-oracle10g的安装过程

Oracle10g安装过程 一.环境要求 Linux内核2.6.9以上,RedHat 4.3版本可以满足物理内存:512M以上,课程要求物理内存1.5G~2G,实在不足就调整到1G/TMP目录至少有400M空间磁盘空间:1.安装oracle软件空间1.5G              2.创建数据库至少1G课程过程中会产生大量的数据,要求Oracle路径下磁盘空间预留20G~30G 二.内核参数设置 /etc/sysctl.conf 1.共享内存 # Controls the maximum sh

oracle的环境配置-监听服务和访问连接原理

监听服务和访问连接原理 端口号范围:1025~6500 [[email protected] ~]$ lsnrctl   --进入监听管理工具 LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 05-JUN-2014 11:13:20 Copyright (c) 1991, 2005, Oracle.  All rights reserved. Welcome to LSNRCTL, type "help" for inform

oracle的环境配置-OEM企业管理器-Oracle emterprise manager

OEM企业管理器-Oracle emterprise manager 安装oracle的时候自动安装的. 1.启动OEM [[email protected] oracle]$ emctl start dbconsole  --启动命令TZ set to PRCOracle Enterprise Manager 10g Database Control Release 10.2.0.1.0  Copyright (c) 1996, 2005 Oracle Corporation.  All ri

oracle的环境配置-单独创建数据库实例

单独创建数据库实例 数据库1    数据库2ORCL        LAW  ------RDBMS(服务)  |                  |-----------------------    安装数据库软件(DBMS) 单独再创建一个RDBMS--LAW [[email protected] ~]# xhost +access control disabled, clients can connect from any host  --自动启动了xmanager passive[[

oracle的环境配置-oracle的小版本升级

oracle的小版本升级:从10.2.0.1升级到10.2.0.4 需要准备的升级包:p6810189_10204_Linux-x86 1.当前版本 SQL> conn /as sysdbaConnected.SQL> select * from v$version; BANNER----------------------------------------------------------------Oracle Database 10g Enterprise Edition Relea

oracle的环境配置-网络配置的方法

网络配置的方法: 1.tnsname客户端--A 直接修改文件                              B 通过客户端工具"网络配置助手"--win端直接打开调用Linux端,netca命令调出配置工具 2.监听器配置--服务器端 客户端配置监听服务室没有任何意义的,因为客户端没有oracle server 监听器配置文件:/u01/oracle/product/10.2.0/db_1/network/admin/listener.ora [[email protec