MySQL表的结构定义
在MySQL中,表是数据存储的基本单位。表的结构定义包括表名、列名、数据类型、约束等内容,是创建和管理表的关键。本文将详细介绍MySQL表的结构定义。
创建表
语法
CREATE TABLE table_name (
column1 datatype [optional modifiers],
column2 datatype [optional modifiers],
...
PRIMARY KEY (one or more columns)
);
示例
创建一个名为students的表,包含id、name和age三列,其中id为主键,name和age都是字符串类型:
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50),
age VARCHAR(3)
);
修改表
添加列
语法
ALTER TABLE table_name
ADD column_name datatype;
示例
在students表中添加一个gender列,数据类型为字符串:
ALTER TABLE students
ADD gender VARCHAR(10);
修改列
语法
ALTER TABLE table_name
MODIFY column_name datatype [optional modifiers];
示例
将students表中的age列数据类型改为整型:
ALTER TABLE students
MODIFY age INT;
删除列
语法
ALTER TABLE table_name
DROP COLUMN column_name;
示例
在students表中删除gender列:
ALTER TABLE students
DROP COLUMN gender;
约束
约束是对表中数据进行限制的规则,包括主键、唯一约束、非空约束、默认值约束等。
主键约束
主键约束用于标识表中的一个列,该列的值必须唯一。主键可以是一个列或多个列的组合。
语法
CREATE TABLE table_name (
column1 datatype PRIMARY KEY,
column2 datatype,
...
);
示例
在students表中,将id列设置为主键:
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50),
age VARCHAR(3)
);
唯一约束
唯一约束用于标识表中的一个列,该列的值必须唯一,但可以包含NULL值。
语法
CREATE TABLE table_name (
column1 datatype UNIQUE,
column2 datatype,
...
);
示例
在students表中,将name列设置为唯一:
CREATE TABLE students (
id INT,
name VARCHAR(50) UNIQUE,
age VARCHAR(3)
);
非空约束
非空约束用于标识表中的一个列,该列的值不能为NULL。
语法
CREATE TABLE table_name (
column1 datatype NOT NULL,
column2 datatype,
...
);
示例
在students表中,将name列设置为非空:
CREATE TABLE students (
id INT,
name VARCHAR(50) NOT NULL,
age VARCHAR(3)
);
默认值约束
默认值约束用于标识表中的一个列,在插入新数据时,如果该列的值没有指定,则使用默认值。
语法
CREATE TABLE table_name (
column1 datatype DEFAULT default_value,
column2 datatype,
...
);
示例
在students表中,将age列设置默认值为18:
CREATE TABLE students (
id INT,
name VARCHAR(50),
age VARCHAR(3) DEFAULT '18'
);
总结
MySQL表的结构定义包括表名、列名、数据类型、约束等内容,是创建和管理表的关键。在实际应用中,需要根据不同的业务场景选择不同的约束类型,以保证数据的完整性和一致性。