目录
数据更新操作:插入、修改、删除
复制表:CREATE TABLE 新表名 AS 数据来源(SELECT 语句)
可以复制全部数据或者复制部分数据
1. 插入:
(1)插入单值
标准写法(推荐)
INSERT INTO 表名(列名1, 列名2, ...) VALUES(值1, 值2, ...);
INSERT INTO (SELECT 列名1, 列名2, ... FROM myemp) VALUES(值1, 值 2, ...);
INSERT INTO 表名(列名1, 列名2, ...) SELECT 值1, 值2, ... FROM dual;
(2)利用子查询插入数据(批量插入)
INSERT INTO 表名(列名1, 列名2, ...) SELECT 语句;
//如果要进行大量数据的插入(装载)操作,可以利用“/*+APPEND*/”关键字来实现
INSERT /*+APPEND*/ INTO 表名(列名1, 列名2, ...) SELECT 语句;
(3)向多个表插入数据
//1、无条件多表插入
INSERT ALL
INTO表1 VALUES(值1, 值2, ...)
INTO表2 VALUES(值1, 值2, ...)
......
子查询;
//2、有条件多表插入
INSERT ALL | FIRST
WHEN 条件 THEN INTO 表1(列1, 列2, ...)
WHEN 条件 THEN INTO 表2(列1, 列2, ...)
......
ELSE INTO 表n(列1, 列2, ... )
子查询;
(4)多表插入的应用
非关系型数据库向关系型数据库的转换
2. 修改:
//1、全部修改
UPDATE 表名 SET 列=值, 列=值;
//2、局部修改
UPDATE 表名 SET 列=值, 列=值 WHERE 条件;
3. 删除:
1、全部删除
DELETE [FROM] 表名;
2、局部删除
DELETE FROM 表名 WHERE 条件;
//截断表:彻底删除数据,使其不能进行回滚
TRUNCATE TABLE 表名;
//oracle 中的一些关键字
ROWNUM 表示行号
COL[UMN]命令
HEADING 指定列标题名字
JUSTIFY 字体对齐方式
CLEAR 清除样式
FORMAT 字体格式
//压缩列值
BREAK ON 列名 [SKIP 值](组和组之间的距离)
COMPUTE 配合使用才可以分组统计
COMPUTE 组函数 LABEL 内容 OF 求值列 ON 分组列
//设置标题和页脚
TTITLE 对齐方式 名字
BTITLE 对齐方式 名字
TTITLE OFF
BTITLE OFF
//层次查询
SELECT [level] 列名
FROM 表名
[WHERE]
[START WITH 列名=值]
[CONNECT BY 条件]
表操作:增、删、查
1、新建表
CREATE TABLE 表名 (
列名 数据类型 [DEFAULT 默认值],
列名 数据类型 [DEFAULT 默认值],
...
);
2、删除表(回收站操作)
//将表放进回收站里
DROP TABLE 表名;
//从回收站里恢复表
FLASHBACK TABLE 表名 TO BEFORE DROP;
//查询回收站里的表
SELECT object_name, original_name, operaction, type FROM recyclebin;
//不经过回收站删除表
DROP TABLE 表名 purge;
//从回收站里删除某个表
PURGE TABLE 表名;
//清空回收站
PURGE RECYCLEBIN;
3、修改表
//增加新的列
ALTER TABLE 表名 add(列名 数据类型 DEFAULT 默认值, ...);
//修改列的类型和长度、非空约束
ALTER TABLE 表名 MODIFY(列名 数据类型 DEFAULT 默认值, ...);
//修改列名
ALTER TABLE 表名 RENAME COLUNM 现列名 TO 新列名;
//删除列
ALTER TABLE 表名 DROP COLMUN 列名;
//表的重命名
RENAME 旧名 TO 新名;
//修改列的状态
ALTER TABLE 表名 SET UNUSED COLUNM 列名;
//删除无用的列
ALTER TABLE 表名 DROP UNUSED COLUMNS;
//为表添加注释
COMMENT ON TABLE 表名 IS 注释内容;
约束
根据约束的位置进行分类:
(1)列级别约束 ( 2)表级别约束
约束的分类:(根据类型进行分类)
(1)主键约束:表示唯一的,不能为空的 primary key
(2)唯一约束:表示唯一的 unique
(3)非空约束:表示不能为空(只有列级别)not null
(4)检查约束:检查一个列的内容是否合法 check
(5)外键约束:关联性 references 表名(列名)
注:通过使用 CONSTRAINT 可以自定义约束名称,便于出错是判断错误类型
CONSTRAINT 约束名称 约束类型(列名);
范例:
CONSTRAINT person_pid_pk PRIMARY KEY(pid);
CONSTRAINT fk_emp_dept FOREIGN KEY(deptno) REFERENCES dept(deptno);
追加约束
ALTER TABLE 表名 ADD 约束;
范例:
alter table emp add constraint emp_empno_uq unique(empno);
删除约束
ALTER TABLE 表名 DROP CONSTRAINT 约束;(推荐)
ALTER TABLE 表名 列名 DROP 约束;
范例:
alter table emp drop constraint emp_empno_uq;
查看约束
SELECT * FROM user_constraints WHERE table_name = 表名;
范例:
SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME = emp;
约束的禁用与启动
ALTER TABLE 表名 DISABLE CONSTRAINT 约束名 [CASCADE];
注:添加cascade表明要让所有的依赖约束都失效
ALTER TABLE 表名 ENABLE CONSTRAINT 约束名;
范例:
alter table emp disable constraint emp_empno_uq [cascade];
alter table emp enable constraint emp_empno_uq;
视图
视图:获取一个或多个表中的数据集合
CREATE [OR REPLACE] [FORCE UNFORCE] VIEW 视图名
AS
SELECT语句
[with check option 约束]
[with read only]
REPLACE 如果已存在,则修改
FORCE 表存在不存在都创建视图
UNFORCE 表不存在不创建视图
with check option 把约束也创建
with read only 只读
删除视图
DROP VIEW 视图名 [CASCADE CONSTRAINT];
注:指定 CASCADE CONSTRAINT 子句以删除引用视图中唯一键和主键的所有参照完整性约束
同义词(SYNONYM)
同义词是数据库中表、视图、索引或其他模式对象的别名,是一种映射关系
创建同义词:
create 【public】 synonym 同义词名 for 用户名.表名;
删除同义词:
drop 【public】 synonym 同义词名;
查看同义词:
select * from dba_synonyms;
序列
序列:按照一定规则自动增加/减少数字的这一种数据库对象
CREATE SEQUENCES 序列名
[INCREAMENT BY n]
[START WITH n]
[MAXVALUE n]
[MINVALUE n]
[CYCLE|NOCYCLE] 是否继续生产
[CACHE n|NOCACHE]; 预先存储空间
NEXTVAL 伪列:序列返回的下一个值
CURRVAL 伪列:序列返回的当前值
CURRVAL 在被引用之前,必须先使用NEXTVAL来产生一个序列值
修改序列
ALTER SEQUENCE 序列名
[START WITH n]
[MAXVALUE n]
[MINVALUE n]
[CYCLE | NOCYCLE]
[CACHE n | NOCACHE];
删除序列
DROP SEQUENCE 序列名;
注:ROWID 伪列,系统自动生成,ROWID表示的每个数据库中的记录的物理地址,这个物理地址是唯一的,好处是可以快速定位到记录上
数据对象编号 相关文件编号 块编号 行编号
000000 fff BBBBBB RRR