MySQL建表语句的基本语法如下:
```sql
CREATE TABLE table_name (
column1 datatype1 [constraint1],
column2 datatype2 [constraint2],
...
columnn datatypen [constraintn]
);
```
其中:
`table_name` 是要创建的表的名称。
`column1, column2, ..., columnn` 是表中的列名。
`datatype1, datatype2, ..., datatypen` 是对应列的数据类型。
`constraint1, constraint2, ..., constraintn` 是对列的约束条件,如 `NOT NULL`, `AUTO_INCREMENT`, `UNIQUE`, `PRIMARY KEY`, `FOREIGN KEY` 等。
示例
```sql
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
```
在这个示例中:
`id` 列是整数类型,自动递增,并且是主键。
`username` 列是最大长度为50的字符串类型,不能为空。
`email` 列是最大长度为100的字符串类型。
`created_at` 列是时间戳类型,默认值为当前时间戳。
其他选项
还可以在创建表时指定表的选项,例如存储引擎和字符集:
```sql
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
```
在这个示例中:
`ENGINE=InnoDB` 指定了表的存储引擎为 InnoDB。
`DEFAULT CHARSET=utf8` 指定了表的默认字符集为 utf8。
注意事项
表名和列名:
表名和列名必须符合标识符规则,通常只包含字母、数字和下划线,并且区分大小写。
主键:
主键列必须指定为 `NOT NULL`,并且可以有 `AUTO_INCREMENT` 属性。
约束条件:
约束条件可以包括 `NOT NULL`, `UNIQUE`, `PRIMARY KEY`, `FOREIGN KEY` 等。
索引:
可以使用 `INDEX` 或 `KEY` 关键字为表中的某一列或多列创建索引,可以指定索引的名称和选项(如唯一索引、全文索引等)。