一、创建和管理表(DDL)
总:crate table /truncate table /alter table /reanme…to/drop table …操作完以后,自动commit;所以,rollback对其操作,没有效果
1、查询数据字典
select table_name from user_tables --查看用户定义的表
select DISTINCT object_type from user_objects --查看用户定义的各种数据库对象
select * from user_catalog --查看用户定义的表,视图,同意词和序列
2、表名和列名命名规则
- 必须以字母开头
- 必须在1-30个字符之间
- 必须只能包含 A–Z, a–z, 0–9, _, $, 和 #
- 必须不能和用户定义的其他对象重名
- 必须不能是Oracle 的保留字
3、创建表
create table 表名 (列名+数据类型/约束属性,列名+数据类型/约束属性,列名+数据类型/约束属性)
4、数据类型
VARCHAR2(size) --可变长字符数据
CHAR(size) --定长字符数据
NUMBER(p,s) --可变长数值数据
DATE --日期型数据
LONG --可变长字符数据,最大可达到2G
CLOB --字符数据,最大可达到4G
BLOB --二进制数据,最大可达到4G
BFILE --存储外部文件的二进制数据,最大可达到4G
ROWID --行地址
5、子查询创建表
create table 新建表 as select * from 表2;
–新建表的同时,把表2的列名、属性和数据一起复制到新建表中。
create table 新建表 as select * from 表2 where 1=2;
–新建表时,只复制列名和属性。不复制数据。
6、修改数据
Alter table表名 add (列名 属性);
–使用add 子句追加一个新列。
alter table 表名 modify (原列名 属性));
–修改一个列。
alter table 表名 drop column 列名;
–删除一个列。
alter table 表名 rename column 原列名 to 改名;
–重命名一个列。
7、删除语句
drop table 表名;
①数据和结构都被删除
②所有正在运行的相关事务被提交
③所有相关索引被删除
④不能回滚
truncate table 表名;
–删除表中所有的数据,不能回滚。
delete from 表名;
–在未提交前,可以回滚。
8、重命名表
rename 表1 to表2;
–重命名表。
9、添加数据
insert into 表 values();
–给表添加数据,不能为空的列,不可以插入null值。
二、数据处理(DML)
1、增
insert into 表名 values
–添加一条记录
insert into 表1
select from 表2
Where
–从其它表拷贝数据
2、改
update表 set where;
–修改表数据。
3、删
delete from 表 where;
–删除表数据。
4、查
select 表;
–查询表数据。
三、数据控制(DCL)
DCL用来控制数据库的访问,包括如下SQL语句:
(grant)GRANT:授予访问权限
(revoke)REVOKE:撤销访问权限
(commit)COMMIT:提交事务处理
(rollback)ROLLBACK:事务处理回退
(savepoint)SAVEPOINT:设置保存点
(lock)LOCK:对数据库的特定部分进行锁定
四、约束
对创建的表的列属性,字段进行的限制。诸如:not null /unique/primanry key/foreign key/check