欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

DDL、DML、TCL

程序员文章站 2022-05-15 14:22:29
一、DDL 1、创建表(CREATE) (1)数据库对大小写不敏感,只对字符串大小写敏感。 (2)使用create关键字创建表。(-- 表示注释)。 (3)将一个查询结果集作为一张表。可用于将多张表连成一张表的操作。 2、删除表(DROP)、DESC关键字、TRUNCATE关键字 (1)使用DESC ......

一、ddl

1、创建表(create)

  (1)数据库对大小写不敏感,只对字符串大小写敏感。

  (2)使用create关键字创建表。(-- 表示注释)。

格式:
create table 表名(
    字段名1 字段值1,
    字段名2 字段值2
);  --分号可以不加,多个字段间用逗号隔开。

举例:
create table emp(
    name varchar2(20),
    birth date
);

  (3)将一个查询结果集作为一张表。可用于将多张表连成一张表的操作。

create table 表名 as select * from emp;

 

2、删除表(drop)、desc关键字、truncate关键字

  (1)使用desc关键字查看表结构。

格式:
desc 表名;

举例:
desc emp;

  (2)使用drop关键字删除表。

格式:
drop table 表名:

举例:
drop table emp;

  (3)使用truncate关键字删除表数据,但不删除表结构。

格式:
truncate table 表名:

举例:
truncate table emp;

 

3、default关键字、not null关键字

  (1)default关键字用于给字段添加默认值。如果未使用default给字段定义默认值,那么无论是什么字段,其默认均为null。

  (2)字符串要用单引号引上,区分大小写。

create table emp1(
    name varchar2(20) default 'tom'
);

  (3)not null是一种约束条件,确保字段有值,不能为null。

create table emp1(
    name varchar2(20) not null
);

 

4、修改表名(rename)

  (1)rename关键字用于修改表名,但修改后的新表名不能为当前数据库中的已存在的表名。

格式:
rename table 原表名  to  新表名;

举例:
rename table emp to employee;

 

5、修改表结构(alert)

  (1)alter关键字用于修改表结构。

  (2)修改列时类型通常不变,长度尽量变大。修改后,仅对以后将插入的数据有效,不影响之前的数据,且长度由大改小时,可能不成功。

格式:
alter table 表名 add(列定义);  --添加列
alter table 表名 drop(列名);  --删除列
alter table 表名 modify(现有列  列值);  --修改列

举例:
alter table emp add id varchar2(20);
alter table emp drop id;
alter table emp modify name varchar2(30);

 

 

二、dml

1、dml、tcl间的关系

  (1)执行dml操作后,不会立即修改数据库中的表,会保存在内存中。

  (2)若想真正修改数据库中的表数据,需要执行tcl事务操作,如commit,才算真正的修改。


2、增加与插入数据(insert)

  (1)使用insert关键字可以实现增加与插入数据。

  (2)插入日期数据时,默认格式为rr-mon-dd,一般自定义格式,使用to_date()函数转换。

格式:
insert into 表名[(列名1,列名2……)]  values(属性1, 属性2);

举例:
insert into employee(s_id, s_name) values('10012', 'jarry')
insert into employee(s_id, s_name, birth) values('10022', 'tom', to_date('2019-06-13', 'yyyy-mm-dd'));

 

3、更新表数据(update)  

  (1)使用update关键字可以实现数据的更新。

格式:
update 表名 set 列名1 = 值1[,列名2 = 值2]
[where 条件]         其中[]表示可忽略。但where最好写,否则是对整张表进行操作。

举例:
update liuyihong_staff 
set d_id = 2, s_salary = 3000
where s_id = 10022

 

4、删除数据(delete)

  (1)删除数据,以行为单位。

格式:
delete feom 表名
where name = 'tom';     //若无where,则删除的是整张表

delete from 表名 
等价于
truncate table 表名 ,
但delete是dml语句,可以进行回退(rollback)操作,且delete可以有条件的删除。
删除后不会立即释放其空间,便于回退。
truncate是ddl语句,直接删除表中数据,但不破坏表结构,删除后直接释放空间。
且truncate执行效率比delete高。