学习oracle的语句管理之前,我们需要了解oracle的体系结构
oracle database 数据库是由 数据库 + 实例组成
- 实例:实例是数据库启动时初始化的一组进程和内存结构
- 数据库:数据库则指的是用户存储数据的一些物理文件
从概念上来看, 实例是暂时的,它不过是一组逻辑划分的内存结构和进程结构,实例会随着进程的关闭而关闭,但是数据库不一样,数据库是一堆物理文件,数据库是永久存在磁盘上的(除非文件损坏),数据库和实例通常是一对一的,这种结构我们称为单实例体系结构;
段:
段就是包含所有数据的逻辑结构,表的最典型例子就是表,还有索引段,撤销段等等
表空间:
表空间从逻辑上是多个段的结合,在物理上是多个数据文件的集合,相当于在段和数据文件的对应中加入了一个中间层来解决这种多对多的关系
-
大体结构如下
- 数据库 -> 实例 -> 表空间 - > 数据文件
假设要开发一个项目:
1. 创建表空间
2. 创建用户 root
3. 用户去建表
- 创建表空间
语法:
create tablespace 表空间的名称
datafile ‘存放的位置’
size 初始大小
autoextend on
next 每次增长多少
需要注意的是,需要登陆管理员账号 system ,如果没有切换的话,会报出以下错误
下面是我建表空间的语句
create tablespace shenzhen //项目名
datafile 'c:\shenzhen.dbf' //oracle存放路径
size 100m //初始大小 100兆
autoextend on //自动扩展,当内存不够的时候
next 10m //每次扩展 10兆
-- 删除表空间
drop tablespace shenzhen;
创建用户(需要在system用户账号中执行)
create user zhangsan //账号
identified by zs408 //密码
default tablespace shenzhen; //管理的表空间
创建完用户后不能立即使用,需要授权后才能使用,如果没授权,会出现以下问题
角色级别
授权操作:
//给自己最大的权限,体验一把boss的感觉
grant dba to zhangsan;
授权了,才可以登陆我们原先创建的用户
创建一个表
基本类型
char(最大长度) : 固定长度字符串
char(10) hello , 占10个, 不满10 用空格补满
varchar2(最大长度) : 可变长度字符串
varchar2(10) hello , 占5个
number(总长度,小数位数)
date : 年月日时分秒
timestamp : 时间戳 , 精确到毫秒
Long : 大字符串类型, 最大支持保存2G
CLOB : Character Large Object 字符串大对象 最大支持4G
BLOB : Binary Large Object 二进制大对象 4G (可放电影)
建表模板
create table demo(
name varchar2(10),
age number(10,2)
);
修改表
重定义列
alter table demo modify name number(10,2);
添加列
alter table demo add id number;
一次添加多列
alter table demo add (class number, cname varchar2(20));
删除表
drop table demo;
以下语句跟mysql有一点小小的区别
修改列名
alter table demo rename column class to cid;
删除列名
alter table demo drop column cid;
五大外键约束,,,
- 单表约束
primary key 主键约束 唯一非空
not null 非空约束
unique 唯一约束
check 检查约束
create table person(
pid number primary key,
name varchar2(20) unique,
age number not null,
sex varchar2(20) check(sex in('男','女','妖'))
);
约束大概是
pid 唯一 非空
name 必须唯一
age 不能为空
sex 只能存 '男' '女' '妖'
如果插入数据违反了以上任何一条规则,都会导入数据无法插入
-多表约束
foreign key 外键约束
演示外键约束前我们需要搭建环境,
创建俩个表,分别是主表 从表
主表
create table category(
cid number primary key,
cname varchar2(20)
);
从表
create table product(
pid number primary key,
pname varchar2(20),
cno number
);
alter table product add foreign key(cno) references category (cid);
外键约束有什么用我就不多说了,,找度娘把
本章就降讲到这里,撤退 吃饭