12-3 程宗武
Oracle
1.Oracle体系结构
实例
一个 Oracle 实例(Oracle Instance)有一系列的后台进程(Backguound Processes)和内存结构 (Memory Structures)组成。一个数据库可以有 n 个实例。
用户
用户是在实例下建立的。不同实例可以建相同名字的用户。
表空间
表空间是 Oracle 对物理数据库上相关数据文件(ORA 或者 DBF 文件)的逻辑映射。一个数据库在逻 辑上被划分成一到若干个表空间,每个表空间包含了在逻辑上相关联的一组结构。每个数据库至少有一 个表空间(称之为 system 表空间)。 每个表空间由同一磁盘上的一个或多个文件组成,这些文件叫数据文件(datafile)。一个数据文件只能 属于一个表空间。
数据文件
数据文件是数据库的物理存储单位。数据库的数据是存储在表空间中的,真正是在某一个或者多个数 据文件中。而一个表空间可以由一个或多个数据文件组成,一个数据文件只能属于一个表空间。一旦数 据文件被加入到某个表空间后,就不能删除这个文件,如果要删除某个数据文件,只能删除其所属于的 表空间才行。
1.1 创建表空间
create tablespace creep
datafile 'C:\creep.dbf'
size 100m
autoextend on
next 10m
itlb 为表空间名称
datafile 指定表空间对应的数据文件(物理结构)
size 表空间的初始大小
autoextend on 自动增长 ,当表空间存储都占满时,自动增长
next 一次自动增长的大小
//删除表空间(不包含物理文件)
drop tablespace creep
drop tablespace creep including datafiles(包含物理文件)
1.2 创建用户
create user czw
identified by czw
default tablespace creep
[ACCOUNT LOCK|UNLOCK]
itlbuser 是账号
identified by 后面是密码(密码不能用数字开头)
default tablespace 后面是表空间
LOCK|UNLOCK 创建用户时是否锁定,默认为非锁定状态。锁定的用户无法正常的登录进行数据库操作
1.3 用户授权
CONNECT 角色 | RESOURCE 角色 | DBA 角色 |
---|---|---|
是授予最终用户的典型权利,最基本的。主要应用在临时用户,特别是那些不需 要建表的用户拥有 CONNECT 角色的用户,可以与服务器建立连接会话(session,客户端对服务器连接,称为会 话)。CREATE SESSION 建立会话 | RESOURCE提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器 (trigger)、索引(index)等。CREATE PROCEDURE 建立过程 CREATE SEQUENCE 建立序列 CREATE TABLE 建表 CREATE TRIGGER 建立触发器 CREATE TYPE 建立类型 | 拥有全部特权,是系统最高权限,只有 DBA 才可以创建数据库结构,并且系统权限也 需要 DBA 授出,且 DBA 用户可以操作全体用户的任意基表,包括删除 |
--赋予权限
GRANT CONNECT TO czw;
GRANT RESOURCE TO czw;
-- 回收权限
REVOKE 角色|权限 FROM 用户
--修改用户的密码语法是:
ALTER USER 用户名 IDENTIFIED BY 新密码
--修改用户处于锁定(非锁定)状态
ALTER USER 用户名 ACCOUNT LOCK|UNLOCK
2.Oracle数据类型
类型 | 含义 |
---|---|
CHAR(length) | 存储固定长度的字符串。参数length指定了长度,如果存储的字符串长 度小于length,用空格填充。默认长度是1,最长不超过2000字节。 |
VARCHAR | 字符串 |
VARCHAR2(length) | 存储可变长度的字符串。length指定了该字符串的最大长度。默认长度 是1,最长不超过4000字符。 |
NUMBER(n) | NUMBER(n)表示一个整数,长度是 n |
NUMBER(m,n) | NUMBER(m,n):表示一个小数,总长度是 m(默认38),小数是 n,整数是 m-n |
DATE | 存储日期和时间,存储纪元、4位年、月、日、时、分、秒,存储时间从 公元前4712年1月1日到公元后4712年12月31日。 |
TIMESTAMP | 不但存储日期的年月日,时分秒,以及秒后6位,同时包含时区。 |
CLOB | 存储大的文本,比如存储非结构化的XML文档,可存 4G |
BLOB | 存储二进制对象,如图形、视频、声音等,可存 4G |
3.表的管理
3.1 建表
create table person(
pid number(10) not null,
name varchar2(10),
gender number(1) default 1,
birthday date
);
insert into person(pid, name, gender, birthday)
values(1, 'a', 1, to_date('1997-12-29', 'yyyy-MM-dd'));
-- 插入数据过后需要提交事务才能完成对表的修改
3.2 添加约束
约束 | 描述 |
---|---|
not null (非空) | 如果在列上定义了not null,那么当插入数据时,必须为列提供,数据不能 为NULL。约束只能在列级定义,不能在表级定义。 |
unique (唯一) | 当定义了唯一约束后,该列值是不能重复的,但是可以为null。(null值可以重复) |
primary key (主键) | 用于唯一的标识表行的数据,当定义主键约束后,该列不但不能重复而 且不能为NULL。一张表最多只能有一个主键(联合主键),但是可以由多个unique约束。 |
foreign key (外键) | 用于定义主表和从表之间的关系,外键约束要定义在从表上,主表则必 须具有主键约束或是unique约束,当定义外键约束后,要求外键列数据必须在主表的主键列存在 或是为NULL。 |
check (检查) | 用于强制行数据必须满足的条件,假定在sal列上定义了check约束,并要求sal 列值在1000~2000之间,如果不在1000~2000之间就会提示出错。可以为Null |
default (默认) | 为列中的值设置默认值,default ....,如果已经定了值,默认值就无效了 |
近期评论