MySQL建表命令
时间: 2025-06-19 14:28:52 浏览: 14
### MySQL 创建表命令语法与示例
在 MySQL 中,创建表的基本语法如下:
```sql
CREATE TABLE table_name (
column1_name data_type constraints,
column2_name data_type constraints,
...
PRIMARY KEY (column_name),
FOREIGN KEY (column_name) REFERENCES parent_table(column_name)
);
```
此语法中,`table_name` 是新表的名称,`column1_name`, `column2_name` 等是表中的列名,`data_type` 指定每列的数据类型,`constraints` 用于定义约束条件(如 NOT NULL、UNIQUE、PRIMARY KEY 等)[^1]。
#### 示例:创建一个学生信息表
以下是一个具体的例子,展示如何使用 MySQL 命令创建一个名为 `students` 的表,包含学生的学号、姓名、年龄和性别字段。
```sql
CREATE TABLE students (
student_id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
age INT,
gender ENUM('M', 'F'),
PRIMARY KEY (student_id)
);
```
在这个示例中:
- `student_id` 是一个整数类型的主键,并启用了自动递增功能。
- `name` 是一个最大长度为 50 的字符串,且不能为空。
- `age` 是一个整数类型,表示学生的年龄。
- `gender` 使用了枚举类型,允许值为 'M'(男性)或 'F'(女性)[^1]。
#### 示例:创建带外键约束的表
假设需要创建一个课程表 `courses` 和一个选课表 `enrollments`,其中 `enrollments` 表通过外键关联到 `students` 表。
```sql
CREATE TABLE courses (
course_id INT NOT NULL AUTO_INCREMENT,
course_name VARCHAR(100) NOT NULL,
PRIMARY KEY (course_id)
);
CREATE TABLE enrollments (
enrollment_id INT NOT NULL AUTO_INCREMENT,
student_id INT NOT NULL,
course_id INT NOT NULL,
PRIMARY KEY (enrollment_id),
FOREIGN KEY (student_id) REFERENCES students(student_id),
FOREIGN KEY (course_id) REFERENCES courses(course_id)
);
```
上述代码中,`enrollments` 表通过 `student_id` 和 `course_id` 分别引用了 `students` 和 `courses` 表中的主键[^1]。
#### 注意事项
在创建表时,可以同时添加索引以优化查询性能。例如,为 `students` 表的 `name` 列创建一个普通索引:
```sql
CREATE INDEX idx_name ON students(name);
```
或者使用 `ALTER TABLE` 语句为现有表添加索引[^2]。
---
###
阅读全文
相关推荐


















