MySQL基础(六):DDL语句

  • 本博客是《MySQL基础》系列博客的第六部分,主要介绍SQL语句中的DDL语句中CREATE、ALTER、DROP的基本用法。
  • 本博客既为方便自己查看复习而作,亦为你而作,望能有所裨益
  • 学习交流请联系 April_0911@163.com

DDL简介

DDL,即Data Definition Language,数据定义语言,用于如数据库、表、索引等数据的定义。

DDL用法

DDL常用的语句有三个:CREATEDROPALTER。其用法简介如下:

关键词用途
CREATE创建 数据库(Database)、表(Table)、索引(Index)、视图(View)
DROP删除 数据库(Database)、表(Table)、索引(Index)、视图(View)、约束条件(Constraint)
ALTER修改 约束条件(Constraint)

CREATE

创建数据库

CREATE DATABASE <数据库名> ; -- 采用默认的字符集和校验集

CREATE DATABASE <数据库名> DEFAULT CHARACTER SET <字符集> COLLATE <校验集>;

创建数据表

CREATE TABLE <数据库名>.<数据表名>(
<字段1> <数据类型> <约束条件>,
<字段2> <数据类型> <约束条件>,
···························,
primary key(<联合主键一>,<联合主键二>,···) -- 在创建联合主键时使用
constraint <连接名> foreign key(<外键一>,<外键二>,···) 
references <被连接的表名>(<主键一>,<主键二>,···) 
-- 在创建外键时使用,添加其他约束条件时也用CONSTRAINT
)
ENGINE = <引擎名> -- 不写此句则默认引擎为InnoDB
DEFAULT CHARACTER SET = <字符集> -- 字符集设定,不写此句则为默认字符集
COLLATE = <校验集> -- 不写此句则为默认校验集
COMMENT = `<注释内容>`; -- 添加注释内容,不写则意味着无注释

创建索引及视图

创建索引以及视图的相关方法会在之后的专题提到,在此先不予以介绍

ALTER

在学习更改表的约束条件的语法时,我们有必要先学习下两个常用语法:

desc <数据库名>.<数据表名>; -- 查看表结构,desc 也可以用 describe 代替

show create table <数据库名>.<数据表名>; -- 显示创建该数据表时使用的 CREATE 语句

如此,我们便可以对要修改的表有个大致了解,从而方便后续操作

更改表设置

/*以下内容为方便起见,没有指定数据库名,默认其在已经选定的同一数据库下*/

alter table <数据表名> character set <新字符集>, collate <新校验集>, 
engine <新引擎名> comment '<新注释>' rename [to] <新数据表名>; 
-- 更改表的名字及基本设置,可单项修改,也可多项并发,to可加可不加
ALTER TABLE test ENGINE[=]MyISAM , COMMENT[=]'四月天' rename test_1; 
-- 等号可加可不加

更改字段

alter table <数据表名> modify <字段名> <更改内容>; 
-- 改变字段的部分内容,如数据类型,默认值和注释
alter table test modify A int default 99 comment 'CSDN'; 
-- 更改test表中的A字段的数据类型为int。默认值为99,注释为CSDN

alter  table <数据表名> change <字段名> <新字段名> <更改内容>; 
-- change比modify多了一个修改字段名的功能,但不能单独修改,必须增加其他更改内容

添加字段

alter table <表名> add <字段名> <数据类型> <约束条件>; --  增加新的字段及其设置
alter table test add id int unique not null auto_increment;
-- 在test表中增加新的一列,字段名为id,数据类型为整数,索引唯一、非空、自增
alter table test add id_test1 decimal(5,3) unsigned not null 
comment '无问西东' default 911;
-- 增加的内容可以有注释和默认值

alter table <表名> add <新字段名> <数据类型> <约束条件> after <老字段名>;
-- 在老字段名后面加入一个新的字段及其相关设置 

DROP

删除数据库

drop database <数据库名>;

删除数据表

drop database <数据库名>.<数据表名>;
/* 有的表有外键约束,此时应先去掉约束
 alter table <连接的表> drop foreign key <外键名>;
 再删除表 */

删除字段

TRUNCATE table <数据表名> 
-- 清空表内容,相比drop和delete,速度更快
alter table <数据表名> drop column <字段名>;
-- 当字段关联到其他表时,其删除方法同上

删除索引及视图

删除索引以及视图的相关方法会在之后的专题提到,在此先不予以介绍

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值