数据库定义语言(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;