oracle心得1--oracle简介@基本sql语句@条件查询@排序数据理论与案例
oracle心得1--oracle简介@基本sql语句@条件查询@排序数据理论与案例
1. Oracle 简介
Oracle是殷墟出土的甲骨文(oracle bone inscriptions)的英文翻译的第一个单词。Oracle公司是全球最大的信息管理软件及服务供应商,成立于1977年,总部位于美国加州 Redwood shore;Oracle公司因其复杂的关系数据库产品而闻名。Oracle的关系数据库是世界第一个支持SQL语言的数据库
2. Oracle 数据库和 Oracle 实例
Oracle 服务器由两大部分组成, Oracle 数据库和 Oracle 实例。
Oracle 数据库: 位于硬盘上实际存放数据的文件, 这些文件组织在一起, 成为一个逻辑整体, 即为 Oracle 数据库. 因此在 Oracle 看来, “数据库” 是指硬盘上文件的逻辑集合, 必须要与内存里实例合作, 才能对外提供数据管理服务.
Oracle 实例: 位于物理内存里的数据结构. 它由一个共享的内存池和多个后台进程所组成, 共享的内存池可以被所有进程访问. 用户如果要存取数据库(也就是硬盘上的文件) 里的数据, 必须通过实例才能实现, 不能直接读取硬盘上的文件.
区别: 实例可以操作数据库; 在任何时刻一个实例只能与一个数据库关联; 大多数情况下, 一个数据库上只有一个实例对其进行操作.
3. 注意
SQL 语言大小写不敏感;但where或having条件引号中的单词大小写敏感;SQL 可以写在一行或者多行;关键字不能被缩写也不能分行;各子句一般要分行写。;使用缩进提高语句的可读性。
乘除的优先级高于加减;同一优先级运算符从左向右执行。括号内的运算先执行; 括号决定一切!
空值是无效的,未指定的,未知的或不可预知的值;空值不是空格或者0
4. 案例知识点分析
列的别名:
重命名一个列,便于计算。紧跟列名,也可以在列名和别名之间加入关键字‘AS’,别名使用双引号,以便在别名中包含空格或特殊的字符并区分大小写。
连接符:
把列与列,列与字符连接在一起。用 ‘||’表示。可以用来‘合成’列。
例子:
select deptno||dname from dept;
DEPTNO||DNAME
------------------------------------------------------
10ACCOUNTING
20RESEARCH
30SALES
40OPERATIONS
字符串和日期:
字符串可以是 SELECT 列表中的一个字符,数字,日期。日期和字符只能在单引号中出现。每当返回一行时,字符串被输出一次。字符和日期要包含在单引号中。
字符大小写敏感,日期格式敏感。默认的日期格式是 DD-MON-RR。
行的去重复:
默认情况下,查询会返回全部行,包括重复行。在 SELECT 子句中使用关键字 ‘DISTINCT’ 删除重复行。
例子:select distinct(job) from emp;
5. SQL 和 SQL*Plus
使用SQL*Plus可以:
描述表结构;编辑 SQL 语句;执行 SQL语句。 将 SQL 保存在文件中并将SQL语句执行结果保存在文件中。在保存的文件中执行语句。将文本文件装入 SQL*Plus编辑窗口。
6其它比较运算
使用 LIKE 运算选择类似的值;
选择条件可以包含字符或数字:% 代表零个或多个字符(任意个字符);_ 代表一个字符;‘%’和‘-’可以同时使用;可以使用 ESCAPE 标识符 选择‘%’和 ‘_’ 符号;回避特殊符号的:使用转义符。例如:将[%]转为[\%]、[_]转为[\_],然后再加上[ESCAPE ‘\’] 即可;使用 IS (NOT) NULL 判断空值。
例子:
1. Oracle 简介
Oracle是殷墟出土的甲骨文(oracle bone inscriptions)的英文翻译的第一个单词。Oracle公司是全球最大的信息管理软件及服务供应商,成立于1977年,总部位于美国加州 Redwood shore;Oracle公司因其复杂的关系数据库产品而闻名。Oracle的关系数据库是世界第一个支持SQL语言的数据库
2. Oracle 数据库和 Oracle 实例
Oracle 服务器由两大部分组成, Oracle 数据库和 Oracle 实例。
Oracle 数据库: 位于硬盘上实际存放数据的文件, 这些文件组织在一起, 成为一个逻辑整体, 即为 Oracle 数据库. 因此在 Oracle 看来, “数据库” 是指硬盘上文件的逻辑集合, 必须要与内存里实例合作, 才能对外提供数据管理服务.
Oracle 实例: 位于物理内存里的数据结构. 它由一个共享的内存池和多个后台进程所组成, 共享的内存池可以被所有进程访问. 用户如果要存取数据库(也就是硬盘上的文件) 里的数据, 必须通过实例才能实现, 不能直接读取硬盘上的文件.
区别: 实例可以操作数据库; 在任何时刻一个实例只能与一个数据库关联; 大多数情况下, 一个数据库上只有一个实例对其进行操作.
3. 注意
SQL 语言大小写不敏感;但where或having条件引号中的单词大小写敏感;SQL 可以写在一行或者多行;关键字不能被缩写也不能分行;各子句一般要分行写。;使用缩进提高语句的可读性。
乘除的优先级高于加减;同一优先级运算符从左向右执行。括号内的运算先执行; 括号决定一切!
空值是无效的,未指定的,未知的或不可预知的值;空值不是空格或者0
4. 案例知识点分析
列的别名:
重命名一个列,便于计算。紧跟列名,也可以在列名和别名之间加入关键字‘AS’,别名使用双引号,以便在别名中包含空格或特殊的字符并区分大小写。
连接符:
把列与列,列与字符连接在一起。用 ‘||’表示。可以用来‘合成’列。
例子:
select deptno||dname from dept;
DEPTNO||DNAME
------------------------------------------------------
10ACCOUNTING
20RESEARCH
30SALES
40OPERATIONS
字符串和日期:
字符串可以是 SELECT 列表中的一个字符,数字,日期。日期和字符只能在单引号中出现。每当返回一行时,字符串被输出一次。字符和日期要包含在单引号中。
字符大小写敏感,日期格式敏感。默认的日期格式是 DD-MON-RR。
行的去重复:
默认情况下,查询会返回全部行,包括重复行。在 SELECT 子句中使用关键字 ‘DISTINCT’ 删除重复行。
例子:select distinct(job) from emp;
5. SQL 和 SQL*Plus
使用SQL*Plus可以:
描述表结构;编辑 SQL 语句;执行 SQL语句。 将 SQL 保存在文件中并将SQL语句执行结果保存在文件中。在保存的文件中执行语句。将文本文件装入 SQL*Plus编辑窗口。
6其它比较运算
使用 LIKE 运算选择类似的值;
选择条件可以包含字符或数字:% 代表零个或多个字符(任意个字符);_ 代表一个字符;‘%’和‘-’可以同时使用;可以使用 ESCAPE 标识符 选择‘%’和 ‘_’ 符号;回避特殊符号的:使用转义符。例如:将[%]转为[\%]、[_]转为[\_],然后再加上[ESCAPE ‘\’] 即可;使用 IS (NOT) NULL 判断空值。
例子:
[sql]
select * from emp where sal between 1000 and 2000;
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
7876 ADAMS CLERK 7788 23-5月 -87 1100 20
7934 MILLER CLERK 7782 23-1月 -82 1300 10
select * from emp where sal in(1250,1600);
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
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
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
select * from emp where ename like 'A%';
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ----- -------------- ----- ------ ------
7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30
7876 ADAMS CLERK 7788 23-5月 -87 1100 20
select * from emp where ename like '_L%';
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ----- -------------- ----- ------ ------
7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30
7698 BLAKE MANAGER 7839 01-5月 -81 2850 30
7782 CLARK MANAGER 7839 09-6月 -81 2450 10
select job_id from jobs where job_id like 'ST\_%' escape '\';
JOB_ID
----------
ST_CLERK
ST_MAN
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
7876 ADAMS CLERK 7788 23-5月 -87 1100 20
7934 MILLER CLERK 7782 23-1月 -82 1300 10
select * from emp where sal in(1250,1600);
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
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
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
select * from emp where ename like 'A%';
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ----- -------------- ----- ------ ------
7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30
7876 ADAMS CLERK 7788 23-5月 -87 1100 20
select * from emp where ename like '_L%';
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ----- -------------- ----- ------ ------
7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30
7698 BLAKE MANAGER 7839 01-5月 -81 2850 30
7782 CLARK MANAGER 7839 09-6月 -81 2450 10
select job_id from jobs where job_id like 'ST\_%' escape '\';
JOB_ID
----------
ST_CLERK
ST_MAN
7. 优先级
可以使用括号改变优先级顺序
8. ORDER BY子句
使用 ORDER BY 子句排序
ASC(ascend): 升序
DESC(descend): 降序
ORDER BY 子句在SELECT语句的结尾。
可以使用不在SELECT 列表中的列排序
例子:
可以使用括号改变优先级顺序
8. ORDER BY子句
使用 ORDER BY 子句排序
ASC(ascend): 升序
DESC(descend): 降序
ORDER BY 子句在SELECT语句的结尾。
可以使用不在SELECT 列表中的列排序
例子:
- 更多Oracle疑问解答:
- 运行exp备份oracle数据库提示oracle-12154错误
- 有没有,生产Oracle Rman 备份脚本的工具啊!
- 初学orcle,希望有大大帮忙解说一下详细步骤,从登录oracle到创建表的过程
- oracle语句问题:一张user表,三个字段,id,name,time,插入记录比如:张三2007,李四2008,张三2011
- 如何写一个ORACLE触发器同步两个表中的数据?
- oracle 如何查看一个服务器上有多少个数据库.
- oracle 创建包的时候错误 求解
- oracle 重复列的问题
- oracle 中如何查处2星期前的数据
- 请教oracle数据库安装中的问题
- 请问谁能提供给我标准的oracle ERP的数据库表结构并详细说明各表主要的作用?
- 安装oracle遇到的问题 invalid entry CRC (expected 0x3e12e795 but got 0x9db0e9fd)
- 我的是ORACLE 10G,在RMAN中如何按指定的时间恢复数据文件啊?
- oracle为什么没有自动增长列
- oracle快捷键都有哪些啊?