日期:2014-05-16  浏览次数:20454 次

Oracle的基本语法——DDL & DML

一、DDL和DML的区别

DDL和DML都是数据库语言,DDL是数据库模式定义语言(Data Definition Language),主要包括创建、修改数据库表。DML是数据操纵语言(Data Manipulation Language),主要包括insert 、update、delete等。

二、DDL语句

1.创建数据库表

?

要指明表的名称、列的名称、列的数据类型、列的宽度、是否有默认值等。

create table stu(
	name char(8),
	salary number(5) default 0,
	content char(4 char),
	hiredate date
	);	//name为8个字节,content为4个字。

?在现有表的基础上建立表

create table t1 as select ename name,sal salary from emp;//可以给列改别名
create table t2 (c1,c2,c3)as select ename,empno,sal from emp where 9=1;
//不想要数据,只建立表结构,c1,c2,c3是给列起的别名

?注:表的命名规则

(1)标准ASCII码描述;

(2)必须以字母开头;

(3)不能是保留字;

(4)可以包含大小写字母、数字、$、#;

(5)不能和所属用户的其它对象重名。千万不要使用汉语做表和列的名称,因为汉语是 ASCII 码所不能描述的,ORACLE 的核心是 ASCII 编写的,你使用汉语只是一时痛快,后患无穷。

2.查询当前用户所拥有的表

?

select object_name,object_type from user_objects;
//user_objects当前用户所拥有的所有对象,不包含你建立的public对象

?

select table_name from user_tables;
//user_tables当前用户所拥有的表,拥有表的一切权利

?

select * from tab;
//tab是当前用户拥有的表和视图

?3.修改表信息

?

修改表的结构

如果列为null,可以随便修改列的类型和宽度

如果有数据,修改会受到限制,但不会破坏数据

如果不改变类型,只改变宽度的话,加大宽度是可以的

alter table t1 modify(name char(12));
alter table t1 modify(name number(12));//如果列为null,可以改变列的类型

?修改表的名称

rename t1 to t_1;	//必须是表的owner才可以修改表的名称

?修改列的名称

alter table t4 rename column c1 to name;

添加表注释

comment on table emp is 'employee table';	//添加注释
select comments from user_tab_comments where table_name = 'emp';	//查询表注释

?添加列注释

comment on column emp.sal is '员工工资';	//添加列注释
select comments from user_col_comments 
where tab_name='emp' and column_name='sal';	//查询列注释

?丢弃表

drop table t2;
//此语句并没有将表真的删除,只是改了名称
show recyclebin;//显示回