数据库中的DDL与DML、DCL语言以及范式定义

DDL语句,数据定义语言,用于操作表,主要由create、alter、drop 和 truncate 四个关键字完成,简单说也就是对表的列操作

最可能需要关注的是修改表结构–alter:
包括增加列定义、修改列定义、重命名列、删除列 等操作。

   1.增添列
		alter table 表名 
		add
		(
		  字段名 字段类型 [非空约束] [默认值],
		  ...
	 	 字段名 字段类型 [非空约束] [默认值]
		);
		增加字段
		要增加一个字段,使用下面这样的命令: 

	    ALTER TABLE products ADD column_add varchar default('');(如果你没有声
	    明  DEFAULT子句,那么缺省是空值)。 

<特此注意这里容易写成ALTER TABLE products ADD COLUMN number varchar default(’’);是错误的写法,没有’COLUMN ',切记切记>

   	2.修改列定义:
		如果列里有数据(也有可能严格的限制不能存在任何数据在该列):
                    A.修改的列范围不能小于列里目前字段的最大长度。
					B.不能跨类型修改
						alter table 表名 
						modify 列名 数据类型 [默认值];
    3.修改列名
		alter table 表名 change 旧列名 新列名 列类型 [默认值];
        列类型可以更改,但是如果换了类型的话必须要给长度
        如果不更改类型,那么只给原类型,可以不给长度
        ALTER TABLE stu_hehetwo change stuu_age stu_age varchar(4);

实际中我在PL/SQL用以下生效

alter table testtp rename column oldcolumn to newcolumn;

    4.更改列的数据类型

        ALTER TABLE products ALTER COLUMN price TYPE numeric(10,2);

实际中我在PL/SQL使用有效以下有效: alter testt modify sourcecolumn varchar(40);(原本是varchar2 30字符的)

	5.从数据表中删除列
	
		alter table 表名 drop 列名;

alter testt drop column deletec

通过以上实践以及观察得出,若是针对列和表,增加的项则无需关键字column或者table,而针对现有字段列和表,则需要带上指定的关键字种类column或者table,一些诀窍的总结这一句话算是.

	6.为某列增加Check限制约束
		业务>>增加一列description 并添加CHECK的限制约束:
	 	ALTER TABLE products ADD COLUMN description text CHECK (description <> '');
		也可以建表后对某列的单独增添的CHECK的限制约束;
		ALTER TABLE products ADD CHECK (number<> '');
	7.增添唯一约束
		ALTER TABLE products ADD CONSTRAINT some_name UNIQUE (product_no);
	8.增添外键约束
		语法>>ALTER TABLE t2    ADD CONSTRAINT 约束名 FOREIGN KEY (关联字段) 		 
		references t1(关联字段);
		*ALTER TABLE products ADD CONSTRAINT Fk_products_id FOREIGN KEY 
		(group_id) REFERENCES product_groups(id);*
	9.增添非空约束
	 	ALTER TABLE products ALTER COLUMN product_no SET NOT NULL;
	 	删掉则>>ALTER TABLE products ALTER COLUMN product_no DROP NOT NULL;
	 	(要记得非空约束没有名字。) 
	 	给字段改名字
	10.给一个字段重命名 

		ALTER TABLE products RENAME COLUMN product_no TO product_number;

	11.定义一个表的重命名: 

		ALTER TABLE products RENAME TO items;

A.得到所有表空间的DDL语句>>

SET SERVEROUTPUT ON
SET LINESIZE 1000
SET FEEDBACK OFF
set long 999999------显示不完整
SET PAGESIZE 1000----分页
---去除storage等多余参数
 
SELECT DBMS_METADATA.GET_DDL('TABLESPACE', TS.tablespace_name)
FROM DBA_TABLESPACES TS;

额外可用资源与信息
B.获得单个表和索引DDL语句的方法>>

set heading off; 
set echo off;Set pages 999; 
set long 90000; 
spool get_TABLE_ddl.sql 
select dbms_metadata.get_ddl('TABLE','TABLE_NAME'[,'SCHEMA_NAME']) from dual;
select dbms_metadata.get_ddl('INDEX','INDEX_NAME'[,'SCHEMA_NAME']) from dual;spool off;

DML,数据操纵语言,用于添加、修改和删除表中的行。主要由insert、update 和 delete 三个关键字完成,简单说也就是对表的行操作

DCL,作为数据库中的数据控制语言,主调度有以下几个关键字Commit,Rollback,Savepoint

其他关键字:Alter System,Connect,Allocate

一句打油诗可以帮助记忆>>
一增一删一改DML;(insert,delete,update)
一建一构二除DDL;(creat,alter,drop,truncate)
交了滚了存了DCL;(Commit,Rollback,Savepoint)
系统连接结合其他搞.(Alter System,Connect,Allocate)

范式

在数据仓库的模型设计中目前一般采用第三范式,它有着严格的数学定义。从其表达的含义来看,一个符合第三范式的关系必须具有以下三个条件 :
• 每个属性值唯一,不具有多义性 ;
• 每个非主属性必须完全依赖于整个主键,而非主键的一部分 ;
• 每个非主属性不能依赖于其他关系中的属性,因为这样的话,这种属性应该归到其他关系中去。

你可能感兴趣的:(数据库开发)