一 Oracle基本概念
1.一个Oracle服务器
- 是一个数据管理系统(RDBMS),它提供开放的, 全面的,近乎完整的信息管理
- 由一个 Oracle数据库 和多个 Oracle 实例组成
Oracle 数据库: 位于硬盘上实际存放数据的文件, 这些文件组织在一起, 成为一个逻辑整体, 即为 Oracle 数据库.
因此在 Oracle 看来, “数据库” 是指硬盘上文件的逻辑集合, 必须要与内存里实例合作, 才能对外
提供数据管理服务。
Oracle 实例: 位于物理内存里的数据结构. 它由一个共享的内存池和多个后台进程所组成, 共享的内存池可以被
所有进程访问. 用户如果要存取数据库(也就是硬盘上的文件)里的数据, 必须通过实例才能实现,
不能直接读取硬盘上的文件。
区别:实例可以操作数据库; 在任何时刻一个实例只能与一个数据库关联; 大多数情况下, 一个数据库上只有一个实例
对其进行操作。
Oracle数据库的体系结构
表空间(users)和数据文件
- 表空间由多个数据文件组成
- 数据文件只能属于一个表空间
- 表空间为逻辑概念,数据文件为物理概念
段,区,数据块,磁盘块
- 段存在于表空间中
- 段是区的集合
- 区是数据块的集合
- 数据块会被映射到磁盘块
二 基本查询
注意:
- SQL 语言大小写不敏感。
- SQL 可以写在一行或者多行
- 关键字不能被缩写也不能分行
- 各子句一般要分行写。
- 使用缩进提高语句的可读性。
列的别名:
- 重命名一个列
- 便于计算
- 紧跟列名,也可以在列名和别名之间加入关键字‘as’,别名使用双引号,以便在别名中包含空格或特殊的字符
- 以区分大小写
- as可以省略
连接符:
- 把列于列,列于字符连接在一起。
- 用‘||’表示。
- 可以用来合成列。
默认情况下,查询会返回全部行,包括重复行
distinct 删除重复行
select distinct ... from ...
显示表结构
describe emp
条件查询和排序:
- 使用where字句对结果进行过滤
- 比较运算符
- 其他比较运算符
- 逻辑运算符
非空和空的限制 is not null/null
范围限制
模糊查询
- ‘%’:可以匹配任意长度的内容
- ‘-’:可以匹配一个长度的内容
order by 语句
- asc 升序
- desc 降序
显示系统时间
select to_char(sysdate, 'yyyy-mm-dd hh:mi:ss') from dual;
三 SQL函数
单行函数:
- 操作数据对象
- 接受参数返回一个结果
- 只对一行进行变换
- 每行返回一个结果
- 可以转换数据类型
- 可以嵌套
- 参数可以是一列或一个值
大小写控制函数
数值函数
日期函数
多行函数
avg,count,max,min,sum
分组group by
GROUP BY子句
在SELECT 列表中所有未包含在组函数中的列都应该包含在 GROUP BY 子句中
过滤分组: HAVING 子句
- 使用 HAVING 过滤分组
- 行已经被分组。
- 使用了组函数。
- 满足HAVING 子句中条件的分组将被显示