Oracle数据库学习第一天

Oracle数据库学习第一天

目录:

基本概念:

  • PGA与SGA的概念

  • Oracle Database的基本概念

  • Oracle服务器的概念

  • Oracle 数据库和Oracle 实例

  • Oracle实例的理解

  • Oracle集群的概念

基础知识:

  • 基本命令

  • SELECT语句

  • WHERE语句

  • LIKE模糊查询

  • ORDER BY语句

  • 别名

  • DUAL关键字

  • NULL问题

  • 运算符/操作符

  • 连接符

  • 字符串

  • DISTINCT关键字

  • SQL 和 SQL*Plus

  • 单行函数概念

  • 字符函数

  • 数字函数

  • 日期

  • 转换函数

  • 通用函数

  • GROUP BY语句

  • HAVING语句

  • 笛卡尔集

  • Oracle连接

  • 等值连接

  • 非等值连接

  • 外连接

  • 自连接

 

Oracle数据库学习第一天对应练习题

 

 

PGA与SGA的概念:

SGA是系统全局区

PGA是进程全局区,也有叫用户全局区

oracle在跑,SGA就是oracle的内存结构,比如放databuf,share pool,oracle启动时分配,oracle关闭时回收.

PGA是有用户连oracle时,oracle给开辟的一个内存区, 只供该用户使用,该用户断开后oracle就会将这块内存回收

Oracle Database的基本概念:

Oracle数据库学习第一天_第1张图片

Oracle数据库学习第一天_第2张图片

Oracle数据库学习第一天_第3张图片

Oracle数据库学习第一天_第4张图片

Oracle服务器的概念:

oracle服务器是一个数据管理系统(RDBMS),它提供开放的、全面的,近乎完整的信息管理。由oracle实例和oracle数据库组成。

Oracle 数据库和Oracle 实例:

Oracle 数据库: 位于硬盘上实际存放数据的文件, 这些文件组织在一起, 成为一个逻辑整体, 即为 Oracle 数据库. 因此在 Oracle 看来, “数据库” 是指硬盘上文件的逻辑集合, 必须要与内存里实例合作, 才能对外提供数据管理服务。

oracle 数据库: 磁盘上物理文件的集合

Oracle 实例: 位于物理内存里的数据结构. 它由一个共享的内存池和多个后台进程所组成, 共享的内存池可以被所有进程访问. 用户如果要存取数据库(也就是硬盘上的文件) 里的数据, 必须通过实例才能实现, 不能直接读取硬盘上的文件。

oracle实例: 抽象的物理文件的内存影像,要被读到内存中。

区别: 实例可以操作数据库; 在任何时刻一个实例只能与一个数据库关联; 大多数情况下, 一个数据库上只有一个实例对其进行操作。

Oracle实例的理解:

Oracle数据库学习第一天_第5张图片

当应用程序app1提交数据的时候,通过两阶段提交原理进行提交:

第一步提交:将app1的数据通过网络sql语言,提交到PGA区。

第二部提交:PGA的数据再由oracle机制提交到SGA区。

提交且满足规则后,再写数据库。

Oracle集群的概念:

cluster oracle:一个oracle数据库可以被映射多个实例。 

Oracle数据库学习第一天_第6张图片

基本命令:

Oracle可以通过Desc加表名来查询表的结构:

Oracle数据库学习第一天_第7张图片


set linesize 150 设置行宽

set pagesize 140 设置页大小

select * from emp;

结果:

Oracle数据库学习第一天_第8张图片


设置列宽:

数字:col empno for 99999999999999999999

字符:col ename for a20


清屏:host cls


修改代码命令:SQL> ed

Oracle数据库学习第一天_第9张图片

SELECT语句:

查看用户下有什么表:select * from tab;  (tab是数据字典,Oracle超级管理员分配给普通用户的资源,tab是一个关键字)


查询表的所有记录:

Oracle数据库学习第一天_第10张图片


选择特定的列:

Oracle数据库学习第一天_第11张图片


注意内容:

SELECT 标识选择哪些列

FROM 标识从哪个表中选择

SQL 语言大小写不敏感。

SQL 可以写在一行或者多行

关键字不能被缩写也不能分行

各子句一般要分行写。

使用缩进提高语句的可读性。

WHERE语句:

WHERE需要注意的地方:

1、WHERE 子句紧随 FROM 子句。

2、WHERE后的第一个字符肯定是列名。


WHERE语句的三种格式:

(1)where col > 30:

Oracle数据库学习第一天_第12张图片

oracle支持隐式类型转换 eg:char ====>date(自动把char类型转换为data类型)


(2)where col in ()--->某一个集合 :

Oracle数据库学习第一天_第13张图片

--in 中是一个集合 eg:null

select * from emp

   where DEPTNO in (10, 20, null)

   select * from emp

   where DEPTNO not in (10, 20,null)

   ======> in集合中遇见null  (in集合和空值在一起...)

   =====>in (集合中含有空值 ) 查询结果不受影响

   ======>not in (集合中含有空值 ) 查询结果受影响


(3)where col between a and b  a要小于b且此区间为闭区间[]:
Oracle数据库学习第一天_第14张图片

LIKE模糊查询:

% 代表零个或多个字符(任意个字符)。

_ 代表一个字符。

Oracle数据库学习第一天_第15张图片

Oracle数据库学习第一天_第16张图片

Oracle数据库学习第一天_第17张图片

Oracle数据库学习第一天_第18张图片

ORDER BY语句:

Oracle数据库学习第一天_第19张图片

order by 默认按照升序排序 从小到大


Oracle数据库学习第一天_第20张图片


Oracle数据库学习第一天_第21张图片


当ORDER BY遇见NULL(空值)时:

Oracle数据库学习第一天_第22张图片


当ORDER BY后面有多个列时:

Oracle数据库学习第一天_第23张图片


ORDER BY排序的规则:

可以按照select语句中的列名排序

可以按照别名列名排序

可以按照select语句中的列名的顺序值(数字)排序

如果要按照多列进行排序,则规则是先按照第一列排序,如果相同,则按照第二列排序;以此类推

别名:

1、重命名一个列。

2、便于计算。

3、紧跟列名,也可以在列名和别名之间加入关键字‘AS’,别名使用双引号,以便在别名中包含空格或特殊的字符并区分大小写。

4、可以省掉""与as

5、别名有空格时, 不能省掉""

例:

Oracle数据库学习第一天_第24张图片

 DUAL关键字:

DUAL 是一个‘伪表’,可以用来测试函数和表达式

dual是数据字典 (oracle超级管理员分配给普通用户的资源,dual关键字)

SQL> select sysdate from dual;

SYSDATE

--------------

07-10月-14

 

NULL问题:

1、空值是无效的,未指定的,未知的或不可预知的值

2、空值不是空格或者0。

3、任何数和null运算都为null    (null无穷大)

4、空值不是空  null != null

5、null滤空函数:nvl (a, b)

--当a是空的时候,返回b( 其中b可以是数字/字符串)


Oracle数据库学习第一天_第25张图片

Oracle数据库学习第一天_第26张图片


Oracle数据库学习第一天_第27张图片

Oracle数据库学习第一天_第28张图片

运算符/操作符:

Oracle数据库学习第一天_第29张图片

Oracle数据库学习第一天_第30张图片

Oracle数据库学习第一天_第31张图片


Oracle数据库学习第一天_第32张图片

Oracle数据库学习第一天_第33张图片


Oracle数据库学习第一天_第34张图片

Oracle数据库学习第一天_第35张图片

Oracle数据库学习第一天_第36张图片

连接符:

把列与列,列与字符连接在一起。

用 ‘||’表示。

可以用来‘合成’列。

Oracle数据库学习第一天_第37张图片

字符串:

1、字符串可以是 SELECT 列表中的一个字符,数字,日期。

2、字符串和日期在sql语言用单引号括起来

3、每当返回一行时,字符串被输出一次。

Oracle数据库学习第一天_第38张图片

DISTINCT关键字:

默认情况下,查询会返回全部行,包括重复行。在 SELECT 子句中使用关键字 ‘DISTINCT’ 删除重复行。

Oracle数据库学习第一天_第39张图片


当DISTINCT修饰多个字段的时, 当部门编号和工种都一样的时候,才认为是重复的 否则就认为不是重复的,就不会去除。也就是说DISTINCT可以用来修饰多个字段。

select DISTINCT deptno, job from emp;

SQL 和 SQL*Plus:

Oracle数据库学习第一天_第40张图片

Oracle数据库学习第一天_第41张图片

单行函数概念:

Oracle数据库学习第一天_第42张图片

单行函数:

操作数据对象

接受参数返回一个结果

只对一行进行变换

每行返回一个结果

可以转换数据类型

可以嵌套

参数可以是一列或一个值

字符函数:

Oracle数据库学习第一天_第43张图片


大小写控制函数:

Oracle数据库学习第一天_第44张图片


CONCAT:

Oracle数据库学习第一天_第45张图片


SUBSTR:

Oracle数据库学习第一天_第46张图片


LENGTH与LENGTHB:

Oracle数据库学习第一天_第47张图片


INSTR:

Oracle数据库学习第一天_第48张图片


LPAD与RPAD:

Oracle数据库学习第一天_第49张图片


TRIM:

Oracle数据库学习第一天_第50张图片

数字函数:

Oracle数据库学习第一天_第51张图片


ROUND:

Oracle数据库学习第一天_第52张图片


TRUNC:

Oracle数据库学习第一天_第53张图片


MOD:

Oracle数据库学习第一天_第54张图片

 日期:

有关日期格式属性修改:

SQL> select * from v$nls_parameters;

Oracle数据库学习第一天_第55张图片

alter session set NLS_DATE_FORMAT='DD-MON-RR';

alter  session set NLS_DATE_FORMAT='yyyy-mm-dd';

字符和日期要包含在单引号中。

字符大小写敏感,日期格式敏感。

默认的日期格式是 DD-MON-RR。


Oracle数据库学习第一天_第56张图片


Oracle数据库学习第一天_第57张图片

 Oracle数据库学习第一天_第58张图片

 Oracle数据库学习第一天_第59张图片

Oracle数据库学习第一天_第60张图片


 

Oracle数据库学习第一天_第61张图片

Oracle数据库学习第一天_第62张图片


改变日期的格式:

Oracle数据库学习第一天_第63张图片

 转换函数:

数据类型转换分为隐式转换与显式转换。

Oracle数据库学习第一天_第64张图片

Oracle数据库学习第一天_第65张图片


Oracle数据库学习第一天_第66张图片

Oracle数据库学习第一天_第67张图片


Oracle数据库学习第一天_第68张图片

Oracle数据库学习第一天_第69张图片


Oracle数据库学习第一天_第70张图片

Oracle数据库学习第一天_第71张图片

Oracle数据库学习第一天_第72张图片

通用函数:

Oracle数据库学习第一天_第73张图片

Oracle数据库学习第一天_第74张图片

Oracle数据库学习第一天_第75张图片

Oracle数据库学习第一天_第76张图片

Oracle数据库学习第一天_第77张图片

GROUP BY语句:

Oracle数据库学习第一天_第78张图片

Oracle数据库学习第一天_第79张图片


Oracle数据库学习第一天_第80张图片

Oracle数据库学习第一天_第81张图片

Oracle数据库学习第一天_第82张图片

HAVING语句:

Oracle数据库学习第一天_第83张图片


Oracle数据库学习第一天_第84张图片

Oracle数据库学习第一天_第85张图片

Oracle数据库学习第一天_第86张图片

笛卡尔集:

Oracle数据库学习第一天_第87张图片

Oracle数据库学习第一天_第88张图片

Oracle数据库学习第一天_第89张图片

Oracle数据库学习第一天_第90张图片

Oracle连接:

Oracle数据库学习第一天_第91张图片

等值连接:

Oracle数据库学习第一天_第92张图片

Oracle数据库学习第一天_第93张图片

非等值连接:

Oracle数据库学习第一天_第94张图片

外连接:

Oracle数据库学习第一天_第95张图片

Oracle数据库学习第一天_第96张图片


Oracle数据库学习第一天_第97张图片

Oracle数据库学习第一天_第98张图片

Oracle数据库学习第一天_第99张图片

自连接:
Oracle数据库学习第一天_第100张图片

Oracle数据库学习第一天_第101张图片

 

 

 

你可能感兴趣的:(数据库)