Oracle DBA 基础之 DDL 语句
DDL 语句
数据库对象:表、视图、序列、索引、同义词
数据库对象的命名规则:
-必须以字母开头
-不得超过30个字符
-A-Z,a-z,0-9,_,$,#
-不得与同一个schema下的其他相同类型数据库对象重名
-不得为 ORACLE 保留的关键字
------创建表
CREATE TABLE [SCHEMA].TABLE_NAME
(COLUMN DATA_TYPE [DEFAULT EXPR] [,...]);
需要指定:列名、列数据类型、和列的长度
------查看某个SCHEMA下的数据库对象
hr@PROD> select object_name,object_type from user_objects;
hr@PROD> create table t(t int,name char(19));
Table created.
hr@PROD> select object_name,object_type from user_objects where object_name = 'T';
OBJECT_NAME OBJECT_TYPE
-------------------- -------------------
T TABLE
hr@PROD> SELECT TABLE_NAME FROM USER_TABLES WHERE TABLE_NAME = 'T';
TABLE_NAME
------------------------------
T
属于其他用户的表不会出现在当前用户的schema中
可以使用表的owner_name作为表的前缀进行访问
hr@PROD> conn / as sysdba
Connected.
sys@PROD> insert into hr.T values(1,'xiang');
1 row created.
sys@PROD> select * from hr.T;
T NAME
---------- ---------------------------------------------
1 xiang
--------------创建表时指定 DEFUALT 选项
CREATE TABLE DEPT
(DEPTNO NUMBER(2),
DNAME VARCHAR2(14),
LOC VARCHAR2(13),
CREATE_DATE DATE DEFAULT SYSDATE);
数据类型:
varchar2(size)
char(size)
number(p,s)
date
long 已作废
clob character data 最大可达 4GB
raw
long raw
blob binary data 最大可达4GB
bfile binary data 存储在外部文件(操作系统文件),最大可达 4GB
rowid 在 64 位系统上表示表中的某个行的唯一地址
timestamp
Date with fractional seconds
interval year to month
stored as an interval of year and months
interval day to second stored as an interval of days, hours,minutes, and seconds
hr@PROD> select rowid,id,hire_date from hire_dates;
ROWID ID HIRE_DATE
------------------ ---------- ---------
AAARUwAAEAAAAGVAAA 1 06-AUG-12
CREATE TABLE HIRE_DATES
(ID NUMBER(2),
HIRE_DATE DATE DEFAULT SYSDATE);
hr@PROD> select * from hire_dates;
no rows selected
hr@PROD> insert into hire_dates values (1,default);
1 row created.
hr@PROD> select * from hire_dates;
ID HIRE_DATE
---------- ---------
1 06-AUG-12
---------插入的时候指定列
hr@PROD> insert into hire_dates(id) values (1);
1 row created.
hr@PROD> select * from hire_dates;
ID HIRE_DATE
---------- ---------
1 06-AUG-12
---------------------Constraints 约束
Constraints enforce rules at table level
Constraints prevent the deletion of a table if there are dependencies.
Oracle 中有如下约束:
NOT NOLL 确保列中不会插入 NULL 值
UNIQUE 确保列中不会插入重复的值
PRIMARY KEY NULL+UNIQUE,每个表有且只能有一个逐渐
FOREIGN KEY 完整性约束,一个表A上的外键是另一个表B的主键,如果你要往表A插入数据,则外键列必须在表B的主键列中有值。