一、DDL
DDL(data definition language)数据库定义语言:
-
Create table 语句建立表
Create table t1 (name char(8), Salary number(5) default 0, Content char(4 char), Hiredate date );
-
在现有表的基础上建立表
Create table t2 as select ename name,sal salary from emp;
-
修改表结构
alter table t1 modify(name char(4)); alter table t2 modify(name char(8));
-
修改表的名称
rename t1 to t_1;
-
修改列的名称(10g 才可以)
alter table t3 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 table_name='EMP' AND column_name='SAL';
-
丢弃表
Drop table t2; #并没有将表真的删除,只是改了名称。
-
将回收站的表还原
FLASHBACK TABLE t2 TO BEFORE DROP; # 还原表的同时修改表的名称。 FLASHBACK TABLE T2 TO BEFORE DROP RENAME TO TT2;
-
清空回收站内指定的表
PURGE TABLE T2; # 清除当前用户的回收站,不会影响其它用户的回收站 PURGE RECYCLEBIN; # 绕过回收站,彻底的删除表,在10G 前是没有回收站的,就是彻底的删除。 # 回收站内没有的表是不容易恢复的,我只能取备份来恢复了。 Drop table t2 PURGE;
二、DML
DML(data manipulation language)数据操纵语言:
-
从无到有
insert into
Insert into t1(c1,c2,c3) values(v1,v2,v3);
关键字写全,列的个数和数据类型要匹配。这种语法每次只能插入一行。
-
数据变化
update set
Update emp set sal=sal+1; Update emp set sal=2000 where empno=7900; Update emp set comm=null where deptno=30;
-
删除数据
delete where
Delete t1;--所有的行都删除。 Delete emp2 where sal>2000;
-
表的融合
merge into
MERGE INTO table_name table_alias USING (table|view|sub_query) alias ON (join condition) WHEN MATCHED THEN UPDATE SET col1 = col_val1, col2 = col2_val WHEN NOT MATCHED THEN INSERT (column_list) VALUES (column_values);