DDL用于定义数据库的结构,比如创建、修改或删除数据库对象,包括如下SQL语句:
- CREATE TABLE:创建数据库表
- ALTER TABLE:更改表结构、添加、删除、修改列长度
- DROP TABLE:删除表
- CREATE INDEX:在表上建立索引
- DROP INDEX:删除索引
A.CREATE TABLE:创建数据库表
准备条件:具备创建表的权限和存储空间;制定表名,列名,数据类型,尺寸
create table 语句
必须具备:create table 权限、储空间
B.ALTER TABLE:更改表结构、添加、删除、修改列长度
- 追加一个新列(使用ADD子句追加一个新列)
- 改一个列 (可以修改列的数据类型,尺寸和默认值)
- 删除一个列(使用drop column子句删除不再需要的列)
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 约束后系统自动在相应的列上创建唯一性索引
手动创建:用户可以在其它列上创建非唯一的索引,以加速查询
E.DROP INDEX:删除索引
使用 drop index 命名删除索引
drop index index;
删除索引upper_last_name_idx
drop index upper_last_name_idx;
--只有索引的拥有者或者drop any index权限的用户才可以删除索引
--删除操作是不可以回滚的