Oracle | DDL&约束&DCL&TCL
Oracle数据库解锁账户alter user <账户名> account unlock; Oracle 数据类型
数据伪列
DDL数据定义语言DDL,主要用于创建/修改/删除数据库的各种对象,如表、视图、索引、同义词、序列等。DDL语句主要包括 表:TABLE创建表CREATE TABLE <表名>( <列名> <数据类型> [<DEFAULT 默认值>] [<约束>],<列名> <数据类型> [<DEFAULT 默认值>] [<约束>],... [CONSTRAINT <约束名> <约束类型>(约束列)] ) 修改表修改表中列 1.增加列: ALTER TABLE <表名> ADD ( <列名> <数据类型> [<DEFAULT 默认值>] [<列级约束>],<列名> <数据类型> [<DEFAULT 默认值>] [<列级约束>],... ) 2.修改列: ALTER TABLE <表名> MODIFY ( <列名> <数据类型> [<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.仅复制表的结构: CREATE TABLE <表名> AS SELECT <目标列表达式> FROM <表> WHERE 1 = 2; 重命名RENAME <旧名称> TO <新名称> 视图:VIEW视图 (VIEW):虚拟表,不占物理空间。 创建视图CREATE [OR REPLACE] [FORCE] VIEW <视图名> [(列名1,列2,...)] AS SELECT... [WITH CHECK OPTION] [WITH READ ONLY];
删除视图DROP VIEW <视图名> 索引:INDEX索引:加快查询速度 创建索引CREATE [UNIQUE] INDEX <索引名> ON <表名> (<列名> [ASC | DESC],... ) [INITRANS n] [MAXTRANS n] [PCTFREE n] [TABLESPACE <表空间名>] [STORAGE storage] [NOSORT]
修改索引重建索引 ALTER INDEX <索引名> REBUILD; 合并索引 ALTER INDEX <索引名> COALESCE; 删除索引DROP INDEX <索引名> 同义词:SYNONYM同义词:数据库对象的一个别名,操作权限不变,简化对象访问。 创建同义词CREATE [PUBLIC] SYNONYM <表名同义词> FOR <用户>.<表名> 删除同义词DROP [PUBLIC] SYNONYM <同义词> 序列:SEQUENCE序列 (SEQUENCE): 序列号生成器,为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)。不占用磁盘空间,占用内存。 其主要用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值。 创建序列CREATE SEQUENCE <序列名> [INCREMENT BY n] [START WITH n] [MAXVALUE n | NOMAXVALUE] [MINVALUE n | NOMINVALUE] [CYCLE | NOCYCLE] [CACHE n | NOCACHE];
序列的两个伪列
修改序列ALTER SEQUENCE [<用户>.]<序列名> [INCREMENT BY n] [START WITH n] [MAXVALUE n | NOMAXVALUE] [MINVALUE n | NOMINVALUE] [CYCLE | NOCYCLE] [CACHE n | NOCACHE]; 删除序列DROP SEQUENCE <序列名> 约束-CONSTRAINT约束CONSTRAINT,用于限制表的数据的类型。 CONSTRAINT <约束名> <约束类型>(约束列) 非空约束:NOT NULL非空约束:NOT NULL <列名> <数据类型> NOT NULL 唯一约束:UNIQUE唯一约束:UNIQUE <列名> <数据类型> UNIQUE CONSTRAINT uk_cloumn UNIQUE(<列名>); 主键约束:PRIMARY KEY主键约束:PRIMARY KEY,非空+唯一 CONSTRAINT pk_cloumn PRIMARY KEY(<列名>); 联合主键: CONSTRAINT pk_cloumn PRIMARY KEY(<列名1>,<列名2>,...); 检查约束:CHECKCONSTRAINT ck_cloumn CHECK(<列名> IN (值1,值2...)) CONSTRAINT ck_cloumn CHECK(<列名> BETWEEN 值1 AND 值2) 外键约束:FOREIGN KEYCONSTRAINT fk_cloumn FOREIGN KEY (<列名1>,<列名2>...) REFERENCES <表名>(<列名1>,<列名2>...) ON DELETE <CASCADE|SET NULL> 数据库安全-DCL数据控制语言DCL,用于授予/回收用户/角色访问数据库的权限,DCL语句即 授予权限:GRANTGRANT <权限> ON <对象类型> <对象名> TO <用户> [WITH GRANT OPTION]
收回权限:REVOKEREVOKE <权限> ON <对象类型> <对象名> FROM <用户> [CASCADE|RESTRICT]
角色:ROLE角色(ROLE):一组数据库操作权限的集合。 1.创建角色: CREATE ROLE <角色名> 2.为角色授权: GRANT <权限> ON <对象类型> <对象名> TO <角色> 3.将角色授权给其他角色或用户: GRANT <角色1> ON <对象类型> <对象名> TO <角色2>,<用户> 事务-TCL事务:用于保证数据完整性。由一组DML语句组成,这组DML语句要么全部成功,要么全部失败。 事务特性:ACID
事务锁事务并发不一致性导致的问题:
--于是引入事务锁,以保证数据的完整性。 四种隔离级别:
事务处理-TCL事务控制语言TCL,用于事务的提交/回滚。TCL语句即 提交:COMMIT事务提交
回滚:ROLLBACK回滚 保存点:SAVEPOINTsavepoint?<savepoint_name> 回滚至保存点rollback to savepoint <savepoint_name> 数据库设计范式实际设计原则:根据业务尽可能的减少多表查询,不必完全遵循设计范式。 第一范式:确保表中每个字段都不可拆分。 第二范式:消除了部分函数依赖;确保表中每列都与主键相关(主要针对联合主键)。 第三范式:消除了传递函数依赖;确保每列与主键直接相关,而不是间接相关。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |