一、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;//显示回