oracle各种语法操作的汇总第四部分
表的操作:
1.建表
语法格式
CREATE TABLE 表名(
列1 数据类型 【default+默认值】,
列2 数据类型 【default+默认值】,);
eg. CREATE TABLE EMP(
sname VARCHAR2 default user,
sid VARCHAR2(16),
sage NUMBER(3));
2.删除表
将表放到回收站 DROP TABLE strdent;
从回收站回复表 FLASHBACK TABLE 表名 TO BEFORE DROP; (只能删除最近删除的表)
删除表(不经过回收站)DROP TABLE 表名 PURGE;
从回收站删除表 PURGE TABLE 表名;
查看回收站里的表 SELECT object_name,original_name,operation, type FROM recyclebin;
清空回收站 PURGE recyclebin;
3.修改表
(1)增加列
ALTER TABLE 表名 ADD (列名1 数据类型 【DEFAULT 默认值】)
(2)修改列的数据类型与长度
ALTER TABLE 表名 MODIFY(列名1 数据类型)
(3)修改列的名字
ALTER TABLE 表名 RENAME COLUMN 原名 to 现名
(4)删除列
ALTER TABLE 表名 DROP COLUMN 列名
(5)修改列的无效状态
ALTER TABLE 表名 SET UNUSED COLUMN 列名
(6)删除无效的列
ALTER TABLE 表名 DROP UNUSED COLUMNS
4.表的重命名
RENAME 旧的表名 TO 新的表名
约束对表的强制规定
约束的分类:
1)主键约束:不能重发,不能为空
2)唯一约束:不能重复,可以为空
3)非空约束:不可以为空
4)检查约束:检查一个列的内容是否合法
5)外键约束
主键的约束操作:
CREATE TABLE 表名(
列1 数据类型 【default 默认值】 PRIMARY KEY,
列2 数据类型 【default 默认值】);
根据约束的位置分类
1)表级别约束(定义了所有的列后再定义约束)
eg.create table tb_stu4 (
id int,
name varchar(20),
sex char(4),
-- 当创建好表的结构之后,跟着就可以添加约束了
primary key(id),
);
2)列级别约束(列级定义是在定义列的同时定义约束)
eg.create table tb_stu6 (
id int primary key,
name varchar(20) not null,
sex char(4) check(sex = ‘男’ or sex = ‘女’),
age int check(age > 0 and age < 65),
);
主键可以为多个------联合主键
eg.create table test
(sno char(12),
name char(4),
CONSTRAINT PK_test PRIMARY KEY (sno,name) -- 联合主键
);
检查约束(CHECK)
eg.CREATE TABLE person(
AGE NUMBER(3) NOT NULL CHECK(age between 0 and 150)
);
尽量使用表级别约束
外键约束
eg.CREATE TABLE employee(
Empno number(5) primary key,
Ename varchar2(10),
Deptno number(3) REFERENCES department(deptno)
);
追加约束
ALTER TABLE 表名 ADD 约束
eg.ALTER TABLE person ADD PRIMARY KEY(pid)
删除约束
ALTER TABLE 表名 DROP 约束
eg.ALTER TABLE person DROP PRIMARY KEY;
eg.ALTER TABLE person DROP constraint person_pid_pk
删除非空约束用修改列
alter table emp modify column_name null;
alter table emp modify column_name not null;
约束的禁用与启动
ALTER TABLE 表名 DISABLE 约束
eg.ALTER TABLE person disable primary key;
eg.ALTER TABLE person disable constraint person_pid_pk;
启动约束
ALTER TABLE 表名 enable 约束
查看约束
select constraint_name from user_constraints where table_name="大写的表名"
视图:来自一个过多个表上的数据结合
CREATE VIEW 视图名 AS SELECT 语句
CREATE 【或者 REPLACE】【FORCE UNFORCE】 VIEW 视图名
AS
SELECT 语句
【WITH CHECK OPTION 约束】
【WITH READ ONLY 】
删除视图
DROP VIEW 视图名
查看视图
SELECT * FROM user_views
同义词(仅数据库管理员拥有创建删除同义词权限)
CREATE SYNONYM 同义词名 FOR 对象名
删除同义词:
DROP SYNONYM 同义词名
序列:按照一定的规则能够自动增加减少数字的一种数据库对象
CREATE SEQUENCE 序列名
【INCREMENT BY N】
【START WITH N】
【MAXVALUE N】
【MINVALUE N】
【CYCLE NOCYCLE】
【CACHE N NOCACHE】
eg.创建序列test_seq,初始值为10,每次增2,最大100,最小9,循环,每次存储10
CREATE SEQUENCE test_seq
START WITH 10
INCREMENT BY 2
MAXVALUE 100
MINVALUE 9 (到了100再从9开始)
CYCLE
CACHE 10;
伪列
CURRVAL:表示序列返回的当前值
NEXTVAL:表示序列返回的下一个值
注:在使用CURRVAL前,要先用NEXTVAL来产生一个值
eg.select test_seq NEXT_VAL FROM dual;
select test_seq CURRVAL FROM dual;