oracle实用语句学习笔记

发布时间:2020-06-02编辑:脚本学堂
本文介绍了oracle数据库常用语句的用法,包括字符类型、数值类型以及sql命令的用法,有需要的朋友参考下。

本节内容:
oracle语句实例

字符类型
varchar2 2000字符
number 数值型
long 变长字符数据,最长为2G
date 日期型
raw 二进制数据,最长为255
long raw 变长二进制,最长为2G字节
rowid 二六进制串,表示唯一的地址
char 定长字符数据,最长为255
在创建好了oracle数据库之后,系统会有默认的用户scott下的一些表,我们可以使用这些表来自己联系。
scott.emp----员工信息表
scott.dept----部门信息表
scott.bonus----津贴信息表
scott.salgrade----销售等级表
 
使用sql命令:
1、确定表的结构
SQL->desc scott.dept;
备注:
1)在使用Oracle命令的时候,语句结尾后面要添加分号——;,否则查询不出结果
2)要指明该表是由谁创建的,否则会提示该表不存在
2、查询某一列
 

复制代码 代码示例:
SQL->select dname from scott.dept;

3、更改日期的格式
检索日期列与检索其他列没有任何区别。注意,日期数据的默认显示格式为“DD-MON-YY",如果希望使用其他显示格式(YYYY-MM-DD),那么必须使用TO_CHAR函数进行转换。
 

复制代码 代码示例:
select TO_CHAR(hiredate,'DD-MM-YYYY') from scott.emp;

4、取消所有重复的内容
复的显示结果,完成这项任务可以使用DISTINCT关键字。
示例1:显示所有部门号及岗位(保留重复行)
 

复制代码 代码示例:
SQL>SELECT deptno,job FORM scott.emp;

示例2:显示所有部门号及岗位(取消重复行)
 

复制代码 代码示例:
SQL>SELECT DISTINCT deptno,job FORM scott.emp;

5、使用算术表达式查询结果
 

复制代码 代码示例:
SQL->select ename,sal*12 from scott.emp;

6、使用别名
 

复制代码 代码示例:
SQL->select ename as "姓名",sal * 12 as "年收入" from scott.emp;

7、连接字符串
为了显示更有意义的查询结果,有时需要将多个字符串连接起来,连接字符串是使用“||”操作符来完成的,当连接字符串时,如果在字符串要加入数字值,那么在“||”后可以直接指定数字,如果在字符串加入字符和日期值,则必须要用单引号引住,下面以连接雇员入其岗位为例,说明连接字符串的方法:
 

复制代码 代码示例:
SQL->SELECT ename ||'is a'|| job AS "Employee Detail" FROM scott.emp;

8、两张表联合查询
 

复制代码 代码示例:
SQL->select scott.emp.empno,scott.dept.loc from scott.dept,scott.emp where scott.emp.deptno = scott.dept.deptno;
SQL->select scott.e.empno,scott.d.loc from scott.dept d,scott.emp e where scott.e.deptno = scott.d.deptno;

9、在WHERE条件中使用日期值
 

复制代码 代码示例:
SQL->select * from scott.emp where hiredate>TO_DATE('1987-01-01','yyyy-mm-dd');

10、在WHERE条件中使用BETWEEN..AND操作符
 

复制代码 代码示例:
 select * from scott.emp where sal between 1000 and 2000;

11、使用模糊条件查询
LIKE操作符用于执行模糊查询,当执行查询操作时,如果不能完全确定某些 
信息的查询条件,但这些信息又具有某些特征,那么可以使用模糊查询,当执行模糊查询时,需要使用通配符“%”和“_”,其中“%”用于表示0个或多个字符,而“_”用于表示单个字符
显示首字符为S的所有雇员名及其工资
 

复制代码 代码示例:
SQL>SELECT ename,sal FROM emp WHERE ename LIKE'S%'

显示第三个字符为大写A的所有雇员名及其工资
 

复制代码 代码示例:
SQL>SELECT ename,sal FROM emp WHERE ename LIKE '_ _A%';

12、在WHERE条件中使用IN操作符
IN操作符用于执行列表核匹配操作,当列或表达式结果匹配于列表中的任一个值时,条件子句返回TRUE,下面以显示工资为800和1250的雇员信息为例,说明IN操作符的方法
 

复制代码 代码示例:
SQL>SELECT ename,sal FROM scott.emp WHERE sal IN(800,1250);

13、在WHERE条件中使用逻辑操作符(AND、OR、NOT)
显示在部门20中岗位CLERK的所有雇员信息
 

复制代码 代码示例:
SQL>SELECT ename,sal,job,deptno FROM scott.emp WHERE deptno=20 AND job='CLERK';

显示工资高于2500或岗位为MANAGER的所有雇员信息
 

复制代码 代码示例:
SQL>SELECT ename,sal,job,deptno FROM scott.emp WHERE sal>2500 OR job='MANAGER';

显示补助非空的雇员信息
 

复制代码 代码示例:
SQL>SELECT ename,sal,comm FROM emp WHERE comm IS NOT NULL;

14、使用ORDER BY子句
示例一:升序排序
 

复制代码 代码示例:
SQL>SELECT ename,sal FROM scott.emp WHERE deptno=30 ORDER BY sal ASC;

示例二:降序排序
 

复制代码 代码示例:
SQl>SELECT ename,sal,comm FROM scott.emp WHERE deptno=30 ORDER BY sal DESC;

示例三:使用多列排序
当使用ORDER BY子句排序时,不仅可以基于单个列或单个表达式进行排序,也可以基于多个列或多个表达式进行排序。当以多个列或多个表达式进行排序时,首先按照第一个列或表达式进行排序,当第一个列或表达式存在相同的数据时,然后以第二个列或表达式进行排序,下面以工资升序、补助降序显示雇员信息为例,说明使用多列排序的方法
 

复制代码 代码示例:
SQL>SELECT ename,sal,comm FROM scott.emp WHERE deptno=30 ORDER BY sal ASC,comm DESC;

示例四:列别名排序
如果在WHERE子句中为列或表达式定义了别名,那么当执行排序操作时,既可以使用列或表达式进行排序,也可以使用列别名进行排序。下面以降序显示雇员全年工资为例,说明使用列别名进行排序的方法
 

复制代码 代码示例:
SQL>SELECT ename,sal*12 AS "全年工资"FROM scott.emp WHERE deptno=30 ORDER BY "全年工资" DESC;

15、单行子查询
 

复制代码 代码示例:
SQL>SELECT ename,dal,deptno FROM scott.emp WHERE deptno=(SELECT deptno FROM emp WHERE Ename=’SCOTT’;

16、多行子查询
 

复制代码 代码示例:
SQL>SELECT ename,job,sal,deptno FROM scott.emp WHERE job IN (SELECT distinct job FROM emp WHERE deptno=10);
SQL>SELECT ename,sal,deptno FROM scott.emp WHERE sal>ALL(SELECT sal FROM emp WHERE Deptno=30);
SQL>SELECT ename,sal,deptno FROM scott.emp WHERE sal>ANY (SELECT sal FROM emp WHERE Deptno=30);

17合并子查询
1.UNION
  UNION用于获取两个结果集的并集
 

复制代码 代码示例:
SQL>SELECT ename,sal,job FROM emp WHERE sal>2500
      UNION
      SELECT ename,sal,job FROM emp WHERE job=’MANAGER’;
 

2.UNION ALL
  UNION ALL用于获取两个结果集的并集
 

复制代码 代码示例:
SQL>SELECT ename,sal,job FROM emp WHERE sal>2500
      UNION ALL
      SELECT ename ,sal,job,FROM emp WHERE job=’MANAGER”;
 

3.INTERSECT
  INTERSECT用于获取两个结果集的交集
 

复制代码 代码示例:
SQL>SELECT ename,sal,job FROM emp WHERE sal>2500
      INTERSECT
   SELECT ename,sal,job FROM emp WHERE job=’MANAGER’;
 

4.MINUS
MINUS操作符用于获取两个结果集的变量的差集
 

复制代码 代码示例:
SQL>SELECT ename ,sal,job FROM emp WHERE job=’MANAGER’;
 

 
清屏的命令——clear;
查看登陆的用户名——show user;
Quit、exit:命令模式推出
切换用户的命令—— conn username/password;
修改密码——password username;然后再输入密码
创建用户——create user huangbiao identified by sysdba;
在创建完数据库之后,如果是以sys角色登陆,那么他的登录名称应该是system,密码就是你在配置的时候设定的。