您的位置:首页 > 其它

表操作

2016-04-19 17:20 260 查看

1、常用字段类型

VARCHAR2 (size) 可变长度的字符串, 必须规定长度

CHAR(size) 固定长度的字符串, 不规定长度默认值为1

NUMBER(p,s) 数字型p是位数总长度, s是小数的长度, 可存负数,最长38位. 不够位时会四舍五入.

注意: Integer只是个别名。number才是实际类型

INT、INTEGER 是 NUMBER 的受限子类型(只表示整数),相当于 NUMBER(38)。

DATE 日期和时间类型

LOB 超长字符, 最大可达4G

CLOB 超长文本字符串

BLOB 超长二进制字符串

2、 创建表时给字段加默认值 和约束条件

ORACLE支持五种类型的完整性约束

NOT NULL (非空)–防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值.

CHECK (检查)–检查在约束中指定的条件是否得到了满足.

UNIQUE (唯一)–保证在指定的列中没有重复值.在该表中每一个值或者每一组值都将是唯一的.

PRIMARY KEY (主键)–用来唯一的标识出表的每一行,并且防止出现NULL值,一个表只能有一个主键约束.

POREIGN KEY (外部键)–通过使用公共列在表之间建立一种父子(parent-child)关系,在表上定义的外部键可以指向主键或者其他表的唯一键.

3、创建表

1

create table test (id number,name varchar(10));


2

CREATE TABLE DEPT(
EPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY,
DNAME VARCHAR2(14),
LOC VARCHAR2(13)) ;


3

CREATE TABLE region(
ID number(2) NOT NULL PRIMARY KEY,
postcode number(6) default '0' NOT NULL,
areaname varchar2(30) default ' ' NOT NULL);


default 为默认值

4、用子查询建表

create table 表名 as +查询语句


5、 插入列(字段)

alter table 表名 add 新列列名 列数据类型
[default 0 not null] (添加列默认值为0)

alter table 表名 drop 列名
(删除列)

alter table 表名 alter column 列名 新添加的数据类型
(修改列)

6、删除表

drop table 表名


delete from 表名
(后面不跟where语句,则也删除表中所有的数据)

truncate table 表名


delete 属于DML,当不commit时不生效而truncate 和 drop 则是直接生效,不能回滚。

truncate 和 delete 不删除表的结构,只是针对表中的内容删除

drop语句将删除表的结构,被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态.

truncate 会释放占用空间,而drop 和 delete不会。

速度:drop>truncate>dalete

7、 连表查询

select gl.oi,gl.data,gl.a,dv.a,dl.a,gs.a,
from a gl,b dv,c dl,d gs
where  dv.oi=gl.oi and dv.data=gl.data and
dl.oi=gl.oi and dl.data=gl.data and
gs.oi=gl.oi and gs.data=gl.data and
GL.OI_=1


*where执行为从左到右

ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾.、

联合查询效率较高,分四类:内联inner join 、左联left outer join 、

右联right outer join 、全联full outer join

(取决是否消除笛卡尔积)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: