当前位置:文档之家› mysql建表语法

mysql建表语法

mysql建表语法
MySQL是一款广泛使用的开源关系型数据库,其内置的建表语法使用起来非常方便,可以极大地提高数据管理的效率,下面我们就来讲解下MySQL建表语法。

MySQL中,采用CREATE TABLE语句建立表,语法格式如下:
```
CREATE TABLE [table_name] (
field1 data_type [NULL | NOT NULL] [DEFAULT default_val], field2 data_type [NULL | NOT NULL] [DEFAULT default_val], ...
[CONSTRAINT [symbol_name]
{PRIMARY KEY | UNIQUE | CHECK | FOREIGN KEY}
(field_list)
]
)
```
其中,CREATE TABLE是建表操作的关键字;table_name是要创建的表的名称,field1, field2分别是表中的字段名,data_type是字段类型,NULL和NOT NULL用于设置字段是否为空,DEFAULT是用于设置默认值,symbol_name用于设置约束条件的名称,field_list 是约束的字段名的列表。

MySQL的数据类型有INTEGER,VARCHAR,LONGTEXT,DOUBLE,TEXT,
DATE,DATETIME等,具体内容可以参照MySQL文档。

每个表最多可
以有一个主键,用于标识表中的每一行记录,主键类型一般为INTEGER,如果要指定某个字段为主键,可以在字段定义时加上PRIMARY KEY约束,如:
```
CREATE TABLE person
(
id INTEGER PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
age INTEGER NOT NULL
)
```
此外,MySQL还可以通过设置UNIQUE约束,确保表中某列数据
的唯一性,如:
```
CREATE TABLE student
(
id INTEGER PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(10) NOT NULL,
age INTEGER NOT NULL,
tel VARCHAR(11) NOT NULL UNIQUE
)
```
CHECK约束,指定表中字段的值必须满足某一条件,如:
```
CREATE TABLE student
(
id INTEGER PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(10) NOT NULL,
age INTEGER NOT NULL,
tel VARCHAR(11) NOT NULL UNIQUE,
sex INTEGER NOT NULL CHECK (sex IN (1,2))
)
```
此外,MySQL还可以通过FOREIGN KEY约束,将两个表中的数据进行关联,如:
```
CREATE TABLE class
(
id INTEGER PRIMARY KEY AUTO_INCREMENT,
class_name VARCHAR(20) NOT NULL
)
```
```
CREATE TABLE student
(
id INTEGER PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(10) NOT NULL,
age INTEGER NOT NULL,
tel VARCHAR(11) NOT NULL UNIQUE,
sex INTEGER NOT NULL CHECK (sex IN (1,2)),
class_id INTEGER NOT NULL,
FOREIGN KEY (class_id) REFERENCES class(id)
)
```
最后,在建表操作完成后,可以使用DESCRIBE table_name查看表的结构,或者使用SHOW TABLE STATUS查看表的详细信息。

以上就是MySQL建表语法的相关介绍,从上面可以看出,MySQL 建表语法十分的简单易懂,并且功能非常强大,可以满足大部分数据建表的需求,对于开发者来说,掌握MySQL建表语法是非常有必要的,有助于提升数据处理和存储的能力。

相关主题