标签:check 表达 提交 comm 数据完整性 一致性 整数 ber 删除数据库
CREATE
创建、ALTER
修改、TRUNCATE
截断 、DROP
删除。NOT NULL
、唯一约束 UNIQUE
、主键约束 PRIMARY KEY
、检查约束 CHECK
、外键约束 FOREIGN KEY
。GRANT
授予、REVOKE
回收。COMMIT
提交、ROLLBACK
回滚,SAVEPOINT
保存点。alter user <账户名> account unlock;
‘abc‘
||
ROWID
:数据库中每一行都有一个行地址,rowid伪列返回该行地址。rowId值可以唯一标识数据库中的一行。ROWNUM
:返回一个数值代表行的次序。通过使用rownum,用户可以限制查询返回的行数。数据定义语言DDL,主要用于创建/修改/删除数据库的各种对象,如表、视图、索引、同义词、序列等。DDL语句主要包括 CREATE
创建、ALTER
修改、DROP
删除。
CREATE TABLE <表名>(
<列名> <数据类型> [<DEFAULT 默认值>] [<约束>],
<列名> <数据类型> [<DEFAULT 默认值>] [<约束>],
...
[CONSTRAINT <约束名> <约束类型>(约束列)]
)
修改表中列
1.增加列:
ALTER TABLE <表名> ADD (
<列名> <数据类型> [<DEFAULT 默认值>] [<列级约束>],
<列名> <数据类型> [<DEFAULT 默认值>] [<列级约束>],
...
)
2.修改列:
ALTER TABLE <表名> MODIFY (
<列名> <数据类型> [<DEFAULT 默认值>] [<列级约束>],
<列名> <数据类型> [<DEFAULT 默认值>] [<列级约束>],
...
)
3.删除列:
ALTER TABLE <表名> DROP COLUMN <列名>
4.重命名列:
ALTER TABLE <表名> RENAME <旧名> TO <新名>
修改表中属性:
1.添加约束:
ALTER TABLE <表名> ADD CONSTRAINT <约束名> <约束类型>(约束列);
2.删除约束:
ALTER TABLE <表名> DROP CONSTRAINT <约束名>;
TRUNCATE TABLE <表名>
1.删除表:
DROP TABLE <表名>
2.截断表:
1.复制表的结构与数据:
CREATE TABLE <表名> AS
SELECT <目标列表达式>
FROM <表>
WHERE <查询条件>
2.仅复制表的结构:WHERE 1 = 2
CREATE TABLE <表名> AS
SELECT <目标列表达式>
FROM <表>
WHERE 1 = 2;
RENAME <旧名称> TO <新名称>
视图 (VIEW):虚拟表,不占物理空间。
CREATE [OR REPLACE] [FORCE] VIEW <视图名>
[(列名1, 列2,...)]
AS
SELECT...
[WITH CHECK OPTION]
[WITH READ ONLY];
FORCE:强制创建视图
WITH CHECK OPTION:检查约束视图
WITH READ ONLY:只读视图
DROP VIEW <视图名>
索引:加快查询速度
CREATE [UNIQUE] INDEX <索引名>
ON <表名> (<列名> [ASC | DESC], ... )
[INITRANS n]
[MAXTRANS n]
[PCTFREE n]
[TABLESPACE <表空间名>]
[STORAGE storage]
[NOSORT]
UNIQUE:唯一索引
INITRANS:初始事务入口数
MAXTRANS:最大事务入口数
PCTFREE:索引数据块空闲空间的百分比
NOSORT:不排序
重建索引
ALTER INDEX <索引名> REBUILD;
合并索引
ALTER INDEX <索引名> COALESCE;
DROP INDEX <索引名>
同义词:数据库对象的一个别名,操作权限不变,简化对象访问。
CREATE [PUBLIC] SYNONYM <表名同义词>
FOR <用户>.<表名>
DROP [PUBLIC] SYNONYM <同义词>
序列 (SEQUENCE): 序列号生成器,为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)。不占用磁盘空间,占用内存。
其主要用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值。
CREATE SEQUENCE <序列名>
[INCREMENT BY n]
[START WITH n]
[MAXVALUE n | NOMAXVALUE]
[MINVALUE n | NOMINVALUE]
[CYCLE | NOCYCLE]
[CACHE n | NOCACHE];
INCREMENT BY:定义步长
START WITH:定义序列初始值
MAXVALUE / MINVALUE:定义序列最大值/最小值
NOMAXVALUE:默认最值
CYCLE / NOCYCLE:表示序列达到限定值后是否循环
CACHE n:对序列进行内存缓冲,提前生成n个序号存入缓存,默认n=20
NOCACHE:不对序列进行内存缓冲
ALTER SEQUENCE [<用户>.]<序列名>
[INCREMENT BY n]
[START WITH n]
[MAXVALUE n | NOMAXVALUE]
[MINVALUE n | NOMINVALUE]
[CYCLE | NOCYCLE]
[CACHE n | NOCACHE];
DROP SEQUENCE <序列名>
约束CONSTRAINT,用于限制表的数据的类型。
CONSTRAINT <约束名> <约束类型>(约束列)
非空约束:NOT NULL
<列名> <数据类型> NOT NULL
唯一约束:UNIQUE
<列名> <数据类型> UNIQUE
CONSTRAINT uk_cloumn UNIQUE(<列名>);
主键约束:PRIMARY KEY,非空+唯一
CONSTRAINT pk_cloumn PRIMARY KEY(<列名>);
联合主键:
CONSTRAINT pk_cloumn PRIMARY KEY(<列名1>,<列名2>,...);
CONSTRAINT ck_cloumn CHECK(<列名> IN (值1,值2...))
CONSTRAINT ck_cloumn CHECK(<列名> BETWEEN 值1 AND 值2)
CONSTRAINT fk_cloumn FOREIGN KEY (<列名1>,<列名2>...) REFERENCES <表名>(<列名1>,<列名2>...) ON DELETE <CASCADE|SET NULL>
数据控制语言DCL,用于授予/回收用户/角色访问数据库的权限,DCL语句即 GRANT
授予、REVOKE
回收。
GRANT <权限>
ON <对象类型> <对象名>
TO <用户>
[WITH GRANT OPTION]
WITH GRANT OPTION:可传播权限,即将该权限再授予其他用户。
REVOKE <权限>
ON <对象类型> <对象名>
FROM <用户> [CASCADE|RESTRICT]
CASCADE:级联
RESTRICT:限定
角色(ROLE):一组数据库操作权限的集合。
1.创建角色:
CREATE ROLE <角色名>
2.为角色授权:
GRANT <权限>
ON <对象类型> <对象名>
TO <角色>
3.将角色授权给其他角色或用户:
GRANT <角色1>
ON <对象类型> <对象名>
TO <角色2>,<用户>
事务:用于保证数据完整性。由一组DML语句组成,这组DML语句要么全部成功,要么全部失败。
事务并发不一致性导致的问题:
--于是引入事务锁,以保证数据的完整性。
四种隔离级别:
事务控制语言TCL,用于事务的提交/回滚。TCL语句即 COMMIT
提交、ROLLBACK
回滚,SAVEPOINT
保存点。
事务提交 COMMIT
:将事务中对数据库的修改进行永久保存。
回滚 ROLLBACK
:取消事务中对数据库进行的修改。
savepoint <savepoint_name>
rollback to savepoint <savepoint_name>
实际设计原则:根据业务尽可能的减少多表查询,不必完全遵循设计范式。
第一范式:确保表中每个字段都不可拆分。
第二范式:消除了部分函数依赖;确保表中每列都与主键相关(主要针对联合主键)。
第三范式:消除了传递函数依赖;确保每列与主键直接相关,而不是间接相关。
标签:check 表达 提交 comm 数据完整性 一致性 整数 ber 删除数据库
原文地址:https://www.cnblogs.com/liziczh/p/9353049.html