# [Mysql] 的创建

> 来源：梦飞idc云平台 | 原文：https://www.mfisp.com/19610.html | 发布：2023-04-14 | 更新：2023-04-14 | 分类：建站教程

1.创建表

 

创建表的作用在于指定表字段的类型+属性(约束)

 

创建表使用CREATE TABLE关键字进行操作

 

语法结构

 

CREATE TABLE 表名(

 

字段名 数据类型 属性/约束,

 

...

 

字段名 数据类型 属性/约束,

 

[PRIMARY KEY(字段名)]

 

注意

 

1.表名和字段名需唯一

 

2.属性/约束中，默认允许设置NULL

 

理解NULL

 

NULL不等于空串，空串是有效值

 

不要把NULL值与空串相混淆。NULL值是没有值，它不是空串。如果指定''(两个单引号，其间没有字符)，这在NOT NULL列中是允许的。空串是一个有效的值，它不是无值。NULL值用关键字NULL而不是空串指定

 

3.属性/约束中，默认值DEFAULT设置必须是常数，不允许使用函数作为默认值

 

4.属性/约束AUTO_INCREMENT

 

每个表只允许一个AUTO_INCREMENT列

 

CREATE TABLE customers

 

(

 

cust_id int NOT NULL AUTO_INCREMENT,

 

cust_name char(50) NOT NULL,

 

cust_address char(50) NULL,

 

cust_city char(50) NULL,

 

.....

 

PRIMARY KEY(cust_id)

 

);

 

AUTO_INCREMENT告诉Mysql，本列每当增加一行记录时进行自动增量。每次执行一个INSERT操作，Mysql自动对该列增量,给该列赋予下一个可用的值。这样给每个行分配一个唯一的cust_id，从而可以用作主键值

 

例:在test数据库中创建pet表

 

CREATE TABLE pet  
 (   
 id int NOT NULL AUTO_INCREMENT,  
 name VARCHAR(225) NOT NULL,  
 owner VARCHAR(225) DEFAULT 'Odin',  
 species VARCHAR(225),  
 sex CHAR(1),  
 birth DATE,  
 death DATE,  
 PRIMARY KEY(id)  
 );  
在创建新表时，指定的表名必须不存在，否则将出错。如果要防止意外覆盖已有的表，SQL要求首先手动删除该表，然后再重建它，而不是简单地用创建表语句覆盖它。如果仅想在一个表不存在时创建它，应该在表名后给出IF NOT EXISTS，它不检查已有表的模式是否与你打算创建的表模式相匹配。它只是查看表名是否存在，并且仅在表名不存在时创建它

---
本页由 梦飞idc云平台（https://www.mfisp.com）提供。站点导航见 https://www.mfisp.com/llms.txt
