Oracle基础知识介绍
Oracle数据库简单介绍
SQL语句分为以下三种类型:
-
DML: Data Manipulation Language 数据操纵语言
-
DDL: Data Definition Language 数据定义语言
-
DCL: Data Control Language 数据控制语言
DML用于查询与修改数据记录,包括如下SQL语句:
-
INSERT:添加数据到数据库中
-
UPDATE:修改数据库中的数据
-
DELETE:删除数据库中的数据
-
SELECT:选择(查询)数据
-
SELECT是SQL语言的基础,最为重要。
DDL用于定义数据库的结构,比如创建、修改或删除数据库对象,包括如下SQL语句:
-
CREATE TABLE:创建数据库表
-
ALTER TABLE:更改表结构、添加、删除、修改列长度
-
DROP TABLE:删除表
-
CREATE INDEX:在表上建立索引
-
DROP INDEX:删除索引
DCL用来控制数据库的访问,包括如下SQL语句:
-
GRANT:授予访问权限
-
REVOKE:撤销访问权限
-
COMMIT:提交事务处理
-
ROLLBACK:事务处理回退
-
SAVEPOINT:设置保存点
-
LOCK:对数据库的特定部分进行锁定
模式
-
模式: 组织相关数据库对象的一个逻辑概念, 与数据库对象的物理存储无关. 一个模式只能属于一个数据库用户而且模式的名称与用户的名称相同
-
Oracle 数据库的每个用户都拥有唯一的模式. 默认情况下, 用户所创建的所有模式对象都保存在自己的模式中.在 Oracle 数据库中模式与用户账号为一一对应的关系
-
如果要从一个模式中引用另一个模式中的对象, 可以使用 点表示法. 不同模式中的对象名可以重复.
用户的默认表空间
-
表空间是数据库的逻辑存储设备, 它把数据库信息组织成物理存储空间.
-
表空间由数据文件组成.**用户的各种模式对象如表 **索引 **过程 **触发器等 都是放在表空间中
-
对每个数据库用户, 都可以设置一个默认表空间. 当用户创建一个新的数据库对象(如表), 并且不明确地为此对象指定表空间时, Oracle 会把所创建的这个新数据库对象存放到用户默认的表空间中.
-
如果不给用户指定默认表空间, 则用户的默认表空间为 USERS 表空间
权限管理
-
在为一个 Oracle 数据库系统创建用户之后, 这些用户既不能与数据库服务器连接, 也不能做任何事情, 除非他们具有执行特定数据库操作的权限.
-
Oracle 中的数据库访问权限类型共有两种:
系统权限: 一种功能很强的权限, 他向用户提供了执行某
一种或某一类型的数据库操作的能力.
对象权限: 控制用户是否能在特定数据库对象(如表, 视图
或存储过程) 上执行特定类型的操作.
使用系统权限
-
用户连接到数据库必须具备 create session 权限.
-
如果用户具有 create any procedure 系统权限, 则能够创建, 修改, 删除或执行任何存储过程, 程序包和函数
-
如果用户具有 create any table 系统权限, 则能够在自己的模式中创建, 修改, 删除或查询任何表
-
开发人员一般需要 create table, create view 和 create type 系统权限.
基本 SELECT 语句
SELECT *|{[DISTINCT] column|expression [alias],...}
FROM table;
•SELECT 标识 选择哪些列。
•FROM 标识从哪个表中选择。
选择全部列
SELECT *
FROM departments;
选择特定的列
SELECT department_id, location_id
FROM departments;
注 意
-
SQL 语言大小写不敏感。
-
SQL 可以写在一行或者多行
-
关键字不能被缩写也不能分行
-
各子句一般要分行写。
-
使用缩进提高语句的可读性。
使用数学运算符
SELECT last_name salary, salary + 300 FROM employees;
操作符优先级(*** / + -** )
-
乘除的优先级高于加减。
-
同一优先级运算符从左向右执行。
-
括号内的运算先执行。
定义空值
-
空值是无效的,未指定的,未知的或不可预知的值
-
空值不是空格或者0。
SELECT last_name, job_id, salary, commission_pct
FROM employees;
列的别名
列的别名: 重命名一个列,便于计算。
紧跟列名,也可以在列名和别名之间加入关键字‘AS’,别名使用双引号,以便在别名中包含空格或特殊的字符并区分大小写。
连接符
连接符:
-
把列与列,列与字符连接在一起。
-
用 ‘||’表示。
-
可以用来‘合成’列。
SELECT last_name||job_id AS "Employees"
FROM employees;
字符串
-
字符串可以是 SELECT 列表中的一个字符,数字,日期。
-
日期和字符只能在单引号中出现。
-
每当返回一行时,字符串被输出一次。
SELECT last_name ||' is a '||job_id
AS "Employee Details"
FROM employees;
去除重复行
在 SELECT 子句中使用关键字 ‘DISTINCT’ 取出重复行。
SELECT DISTINCT department_id
FROM employees;
SQL 语句与 SQL*Plus 命令
SQL
-
一种语言
-
ANSI 标准
-
关键字不能缩写
-
使用语句控制数据库中的表的定义信息和表中的数据
SQL*Plus
-
一种环境
-
Oracle 的特性之一
-
关键字可以缩写
-
命令不能改变数据库中的数据的值
-
集中运行