DDL用于定义数据库的结构,比如创建、修改或删除数据库对象,包括如下SQL语句:

  1. CREATE TABLE:创建数据库表
  2. ALTER   TABLE:更改表结构、添加、删除、修改列长度
  3. DROP   TABLE:删除表
  4. CREATE  INDEX:在表上建立索引
  5. DROP    INDEX:删除索引

A.CREATE TABLE:创建数据库表

准备条件:具备创建表的权限和存储空间;制定表名,列名,数据类型,尺寸

create table 语句

必须具备:create table 权限、储空间

DDL数据定义语言

B.ALTER TABLE:更改表结构、添加、删除、修改列长度

  • 追加一个新列(使用ADD子句追加一个新列)

DDL数据定义语言

  • 改一个列 (可以修改列的数据类型,尺寸和默认值)

DDL数据定义语言

  • 删除一个列(使用drop column子句删除不再需要的列)

DDL数据定义语言

C.DROP TABLE 删除表

    • Drop命令

Drop table 表名

例如:删除商品表 Drop table dommodity

注意:所有正在运行的相关事务被提交,所有相关索引被删除,用drop删除表数据,不但会删除表中的数据,连表结构也被删除了,drop table 语句不能回滚

 

    • Truncate命令

Truncate table 表名;

例如:删除商品表

Delete table commodity

注意:用truncate删除表数据,只是删除表中的数据,表结构不会被删除,释放表的存储空间!

删除整个表的数据时,过程是系统一次性删除数据,效率比较高,truncate不能回滚。

Truncate 删除释放空间

        

    • Delete 命令

Delete 表名

例如:删除商品表 delete commodity

注意:delete删除表数据,只是删除表中的数据,表结构不会被删除!

虽然也是删除整个表的数据,但是过程是系统一行一行地删,效率比truncate

Delete 删除是不释放空间的

 

 

D.CREATE INDEX:在表上建立索引

创建索引的情况:

  • 列中数值分布范围很广
  • 列经常在where子句或连接条件中出现
  • 表经常被访问而且数据量很大,访问的数据大概占数量总量的2%4%
  • 表经常更新

 

自动创建:在定义 primary_key unique 约束后系统自动在相应的列上创建唯一性索引

手动创建:用户可以在其它列上创建非唯一的索引,以加速查询

DDL数据定义语言

E.DROP INDEX:删除索引

使用 drop index 命名删除索引

drop index index;

删除索引upper_last_name_idx

drop index upper_last_name_idx;

--只有索引的拥有者或者drop any index权限的用户才可以删除索引

--删除操作是不可以回滚的

相关文章: