mysql创建表的sql语句(mysql创建表的sql语句外键)
MySQL是一个广泛使用的关系型数据库管理系统,创建表是数据库设计的步。在MySQL中,可以使用CREATE TABLE语句来创建表。CREATE TABLE语句的基本语法如下:
CREATE TABLE 表名 (
列名1 数据类型1,
列名2 数据类型2,
…
列名n 数据类型n
);
其中,表名表示要创建的表的名称,列名表示表中的列名,数据类型表示列的数据类型。下面是一个示例的CREATE TABLE语句:
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT
);
在上面的示例中,我们创建了一个名为students的表,该表包含三个列:id、name和age。id列的数据类型为INT,name列的数据类型为VARCHAR(50),age列的数据类型为INT。
2. 创建表时指定列的约束
除了指定列的数据类型,我们还可以在CREATE TABLE语句中为列指定约束。常见的列约束包括主键约束、约束、非空约束和默认值约束。
(1)主键约束:主键用于标识表中的每一行数据,可以通过PRIMARY KEY关键字来指定主键约束。示例代码如下:
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT
);
在上面的示例中,我们将id列指定为主键。
(2)约束:约束用于确保列中的数据是的,可以通过UNIQUE关键字来指定约束。示例代码如下:
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50) UNIQUE,
age INT
);
在上面的示例中,我们将name列指定为列。
(3)非空约束:非空约束用于确保列中的数据不为空,可以通过NOT NULL关键字来指定非空约束。示例代码如下:
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT
);
在上面的示例中,我们将name列指定为非空列。
(4)默认值约束:默认值约束用于为列指定默认值,当插入数据时,如果没有指定该列的值,则会使用默认值。可以通过DEFAULT关键字来指定默认值约束。示例代码如下:
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50) DEFAULT ‘Unknown’,
age INT
);
在上面的示例中,我们将name列的默认值指定为’Unknown’。
3. 创建表时添加外键约束
在MySQL中,可以通过外键约束来定义表之间的关系。外键约束用于确保一个表的列值与另一个表的列值之间的一致性。在创建表时,可以使用FOREIGN KEY关键字来添加外键约束。
(1)单个外键约束:如果要在一个表中添加单个外键约束,可以使用以下语法:
CREATE TABLE 表名 (
列名1 数据类型1,
列名2 数据类型2,
…
列名n 数据类型n,
FOREIGN KEY (外键列名) REFERENCES 另一个表名(另一个表的列名)
);
示例代码如下:
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50),
class_id INT,
FOREIGN KEY (class_id) REFERENCES classes(id)
);
在上面的示例中,我们在students表中添加了一个外键约束,该约束将class_id列与classes表中的id列关联起来。
(2)多个外键约束:如果要在一个表中添加多个外键约束,可以使用以下语法:
CREATE TABLE 表名 (
列名1 数据类型1,
列名2 数据类型2,
…
列名n 数据类型n,
FOREIGN KEY (外键列名1) REFERENCES 另一个表名1(另一个表的列名1),
FOREIGN KEY (外键列名2) REFERENCES 另一个表名2(另一个表的列名2),
…
);
示例代码如下:
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50),
class_id INT,
teacher_id INT,
FOREIGN KEY (class_id) REFERENCES classes(id),
FOREIGN KEY (teacher_id) REFERENCES teachers(id)
);
在上面的示例中,我们在students表中添加了两个外键约束,分别将class_id列与classes表中的id列关联起来,将teacher_id列与teachers表中的id列关联起来。
4. 创建表时指定外键约束的操作
在创建表时,可以通过ON DELETE和ON UPDATE子句来指定外键约束的操作。
(1)ON DELETE子句:当参照表中的行被删除时,可以指定要执行的操作。常见的操作包括CASCADE、SET NULL、SET DEFAULT和RESTRICT。
示例代码如下:
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50),
class_id INT,
FOREIGN KEY (class_id) REFERENCES classes(id) ON DELETE CASCADE
);
在上面的示例中,当classes表中的行被删除时,与之关联的students表中的行也会被删除。
(2)ON UPDATE子句:当参照表中的行被更新时,可以指定要执行的操作。常见的操作包括CASCADE、SET NULL、SET DEFAULT和RESTRICT。
示例代码如下:
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50),
class_id INT,
FOREIGN KEY (class_id) REFERENCES classes(id) ON UPDATE CASCADE
);
在上面的示例中,当classes表中的行被更新时,与之关联的students表中的行也会被更新。
通过以上几个方面的阐述,我们可以了解到如何使用MySQL的CREATE TABLE语句来创建表,并且如何指定列的约束和添加外键约束。创建表时,合理地使用列约束和外键约束可以提高数据库的数据完整性和一致性。
文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/84638.html<