Oracle入门(二)之SQL
一、SQL组成
SQL的组成 核心SQL主要有四个部分:
1、数据定义语言即SQL DDL(Data Definition Language ),用于定义 SQL模式、基本表、视图、索引等结构。
CREATE、ALTER、DROP、REVOKE、GRANT
2、数据操纵语言 即SQL DML(Data Manipulation Language)。
数据操纵分成数据查询和数据更新两类。其中数据更新又分成插入、删除和修改三种操作。
SELECT、INSERT、UPDATE、DELETE
3、数据控制语言DCL(Data Control Language) 这类语言用于实现用户权限授予或者取消,保证数据安全性。
主要包括Grant 、 Revoke 、 Deny 、 Commit 、 Savepoint 、 Rollback等。
4、嵌入式SQL语言的使用规定 这一部分内容涉及到SQL语句嵌入在宿主语言程 序中的规则。
VC、VB、Delphi、Java等
二、Oracle主要数据类型
Character 数据类型
Number 数据类型
Date 数据类型
Raw 和 Long Raw 数据类型
LOB 数据类型有Blob、Clob、Nclob
三、create
1、创建用户
create user 【用户名】 identified by 【密码】 [default tablespace 【表空间名】quota 100m on 【表空间名】 password expire]
[]里面的内容可以省略,如果省略,默认表空间为本用户的表空间,不分配表空间,密码不过期
2、创建表
create table 【表名】(
【属性】 【类型】 [ 【约束】]
...
)
[default tablespace 【表空间】] --默认表空间
[temporary tablespace 【表空间】] --临时表空间
[
PCTUSED 10 --使用空间,删除数据小于该容量进行插入操作
PCTFREE 10 --空闲空间
INITRANS 1 --块事务表大小,默认值为2
MAXTRANS 100 --块事务表最大值
STORAGE ( --存储空间设置
INITIAL 1048576 --初始分配
NEXT 1048576 --下次分配
PCTINCREASE 0 --分配扩长比,0为最合适的,否则每次分配都是前一次的(100+x)%倍分配
MINEXTENTS 1
MAXEXTENTS 512
FREELISTS 1
FREELIST
GROUPS 1
Buffer_pool Recycle
]
参数名称 | 缺省值 | 最小值 | 最大值 | 说明 |
INITIAL | 5(数据块) | 2(数据块) | 操作系统限定 | 分配给Segment的第一个Extent的大小,以字节为单位,这个参数不能在alter语句中改变,如果指定的值小于最小值,则按最小值创建。 |
NEXT | 5(数据块) | 1(数据块) | 操作系统限定 | 第二个Extent的大小等于NEXT的初值,以后的NEXT值=前一NEXT大小乘以(1+PCTINCREASE/100),如果指定的值小于最小值,则按最小值创建。 如果在alter语句中改变NEXT的值,则下一个分配的Extent将具有指定的大小,而不管上一次分配的Extent大小和PCTINCREASE参数值。 |
MINEXTENTS | 1(Extent) 回滚段为2个Extent |
1(Extent) 回滚段为2个Extent |
操作系统限定 | Segment第一次创建时分配的Extent数量 |
MAXEXTENTS | 根据数据块大小而定 | 1(Extent) 回滚段为2个Extent |
无限制 | 随着Segment中数据量的增长,最多可分配的Extent数量 |
PCTINCREASE | 50% (Oracle816中为0%) |
0% | 操作系统限定 | 指定第三个及其后的Extent相对于上一个Extent所增加的百分比, 如果PCTINCREASE为0,则Segment中所有新增加的Extent的大小都相同,等于NEXT的值, 如果PCTINCREASE大于0,则每次计算NEXT的值(用上面的公式), PCTINCREASE不能为负数。 创建回滚段时,不可指定此参数,回滚段中此参数固定为0。 |
OPTIMAL | ---- | 不能小于回滚段初始分配空间 | 操作系统限定 | 仅与回滚段有关,当回滚段因为增长、扩展而超过此参数的设定范围时,Oracle系统会根据情况动态地重新分配Extents,试图收回多分配的Extent。 |
FREELISTS | 1 | 1 | 数据块大小限制 | 只能在CREATE TABLE、CLUSTER、INDEX中指定FREELISTS和FREELIST GROUPS参数。 模式对象中每一个自由列表组中自由列表的数量 |
FREELIST GROUPS | 1 | 1 | 取决于Oracle并行实例的数量 | 用户创建的数据库对象的自由列表组的数量,只有用OPS并行服务器选项时才使用这一参数,一个实例对应一个组。 |
BUFFER_POOL | ---- | ---- | ---- | 给模式对象定义缺省缓冲池(高速缓存),该对象的所有块都存储在指定的高速缓存中,对于表空间或回滚段无效。 |
3、创建角色
create role 【角色名】;