MySQL教程

什么是子查询

Preview
  • MySQL表的结构定义
  • 创建表
  • 语法
  • 示例
  • 修改表
  • 添加列
  • 语法
  • 示例
  • 修改列
  • 语法
  • 示例
  • 删除列
  • 语法
  • 示例
  • 约束
  • 主键约束
  • 语法
  • 示例
  • 唯一约束
  • 语法
  • 示例
  • 非空约束
  • 语法
  • 示例
  • 默认值约束
  • 语法
  • 示例
  • 总结

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表的结构定义包括表名、列名、数据类型、约束等内容,是创建和管理表的关键。在实际应用中,需要根据不同的业务场景选择不同的约束类型,以保证数据的完整性和一致性。