数据库定义语言(DDL)

本文介绍了SQL的DDL部分,包括CREATE、DROP、ALTER等语句用于创建、删除和修改数据库对象。详细讨论了如何修改表名、添加和删除字段、设置主键和外键约束、添加注释、指定字符集以及删除表的操作。同时,提到了查看表存在性和定义的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库定义语言(DDL)

SQL语言分为四个部分:

(1)DML(数据库操作语言):用来插入、修改和删除表中的数据,如:INSERT、UPDATE、DELETE语句

(2)DDL(数据库定义语言):在数据库中创建或删除数据库对象等操作,如:CREATE、DROP、ALTER等语句

(3)DQL(数据库查询语言):用来对数据库中的数据进行查询,如:SELECT语句

(4)DCL(数据库控制语言):用来控制数据库组件的存取许可,存取权限,如:GRANT、PEVOKE等

在一个数据库中,表名是唯一的。可以通过SQL语句对已创建的表修改表名,语法如下

ALTER TABLE<旧表名> RENAME [TO] <新表名>;

其中,TO为可选参数,使用与否不影响结果。仅修改表名,表结构不变。

向已存在的表中添加新的字段,添加字段的语法如下

ALTER TABLE 表名 ADD 字段名 数据类型 [属性]

数据表中一个字段中包含字段名和数据类型,因此如果实现修改字段,可以包括修改字段名和修改数据存储的类型,其SQL语句的写法

ALTER TABLE 表名 CHANGE 原字段名 新字段名 数据类型 [属性] 

其中,“原字段名”指修改前的字段名,“新字段名”,指修改后的字段名,“数据类型”指修改后的数据类型,如果不需要修改数据类型,则和原数据类型保持一致,但“数据类型”不能为空

删除字段是将数据表中的某个字段从表中移除,语法如下

ALTER TABLE 表名 DROP 字段名;

1、添加主键约束

ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY 表名(主键字段);

2、添加外键约束

ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY (外键字段) REFERENCES 关联表名(关联字段)

创建表的语法如下

CREATE TABLE [IF NOT EXISTS] 表名(
	字段1 数据类型 [字段属性|约束] [索引] [注释],
	字段2 数据类型 [字段属性|约束] [索引] [注释],
	···
	字段n 数据类型 [字段属性|约束] [索引] [注释],
)[表类型][表字符集][注释];

(1)单字段主键

在定义字段的同时指定主键,语法如下

CREATE TABLE [IF NOT EXISTS] 表名(
	字段1 数据类型 PRIMARY KEY,
	···
);

在定义完所有字段之后指定主键,语法如下

CREATE TABLE [IF NOt EXISTS] 表名(
	字段1 数据类型,
	···
	[CONSTRAINT<约束名>] PRIMARY KEY[列名]
);

例如

CREATE TABLE student(
	`studentNo` INT(4) PRIMARY KEY,
	···
);

CREATE TABLE student(
	`studentNo` INT(4),
	···
	PRIMARY KEY(`id`)
);

(2)多字段联合主键

主键由多字段组成,语法如下

CREATE TABLE [IF NOT EXISTS] 表名(
	···
	PRIMARY KEY [字段1,字段2···]
);

例如

CREATE TABLE tb_temp(
	`id` INT(4),
	`name` VARCHAR(11),
	···
	PRIMARY KEY (`id`,`name`)
);

3、注释

在创建表的同时可以为表或字段添加说明性文字,即注释。注释是使用COMMENT关键字来添加的。例如:

CREATE TABLE test(
	`id` int(11) UNSIGNED COMMENT '编号'
)COMMENT='测算表';

4、编码格式设置

创建表时指定字符集,语法如下

CREATE TABLE [IF NOT EXISTS] 表名(
	#省略代码
)CHARSET=字符集合;

创建完表之后,如果需要查看一下表是否存在,可以使用查看表的SQL命令,语法如下

SHOW tables;

如果需要查看表的定义,可以通过执行SQL语句DESCRIBE来实现,语法如下

DESCRIBE 表名;

DESC 表名;

例如,查看myschool数据库中的student表,SQL语法如下

USE myschool;
DESCRIBE `student`;

在删除表之前要判断数据库中表是否存在,如果存在,则先删除,然后创建,需使用IF EXISTS语句进行判断,删除表的语法

DROP TABLE [IF EXISTS] 表名;

例如

DROP TABLE `student`;

数据库默认使用当前MySQL默认的存储引擎,有时为了达到数据库的特殊功能要求,也可重新设置表的存储类型,语法如下

CREATE TABLE 表名(
	#省略代码
)ENGINE=存储引擎

例如:创建myisam表并设置为MyISAM类型,SQL语句如下

CREATE TABLE `myisam`(
	id INT(4)
)ENGINE=MyISAM;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值