DDL语句,数据定义语言,用于操作表,主要由create、alter、drop 和 truncate 四个关键字完成,简单说也就是对表的列操作
最可能需要关注的是修改表结构–alter:
包括增加列定义、修改列定义、重命名列、删除列 等操作。
1.增添列
alter table 表名
add
(
字段名 字段类型 [非空约束] [默认值],
...
字段名 字段类型 [非空约束] [默认值]
);
增加字段
要增加一个字段,使用下面这样的命令:
ALTER TABLE products ADD COLUMN number varchar default('');(如果你没有声
明 DEFAULT子句,那么缺省是空值)。
2.修改列定义:
如果列里有数据:
A.修改的列范围不能小于列里目前字段的最大长度。
B.不能跨类型修改
alter table 表名
modify 列名 数据类型 [默认值];
3.修改列名
alter table 表名 change 旧列名 新列名 列类型 [默认值];
列类型可以更改,但是如果换了类型的话必须要给长度
如果不更改类型,那么只给原类型,可以不给长度
ALTER TABLE stu_hehetwo change stuu_age stu_age varchar(4);
4.更改列的数据类型
ALTER TABLE products ALTER COLUMN price TYPE numeric(10,2);
5.从数据表中删除列
alter table 表名 drop 列名;
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)
范式
在数据仓库的模型设计中目前一般采用第三范式,它有着严格的数学定义。从其表达的含义来看,一个符合第三范式的关系必须具有以下三个条件 :
• 每个属性值唯一,不具有多义性 ;
• 每个非主属性必须完全依赖于整个主键,而非主键的一部分 ;
• 每个非主属性不能依赖于其他关系中的属性,因为这样的话,这种属性应该归到其他关系中去。