MySQL是一种非常流行的关系型数据库,主键、外键、非空、唯一和默认值是MySQL中常用的约束,以保证数据的准确性和完整性。下面将对这些约束及创建表的方法进行详细讲解。
MySQL主键
在MySQL中,主键是一种用于唯一标识表中每一条记录的字段或一组字段。每一张表都必须有一个主键,主键可以是单个字段或多个字段的组合。主键的值必须唯一,不允许为空。我们一般可以使用PRIMARY KEY
来创建主键,例如下面的SQL语句:
CREATE TABLE student (
id INT NOT NULL,
name VARCHAR(20),
age INT,
PRIMARY KEY (id)
);
以上示例中,我们定义了一个名为“student”的表,其中id
字段是主键,可以标识该表中的每一条记录。
MySQL外键
在MySQL中,外键是用于建立两张表之间关联的一种机制。外键表示一个表中的字段,该字段的值是另一张表中特定字段的值。外键可以用来保证表之间的数据一致性,避免数据冗余。我们可以使用FOREIGN KEY
来定义一个外键。
例如,在student
表中,我们可以定义一个外键来关联class
表中的class_id
字段:
CREATE TABLE class (
class_id INT NOT NULL,
class_name VARCHAR(30),
PRIMARY KEY (class_id)
);
CREATE TABLE student (
id INT NOT NULL,
name VARCHAR(20),
age INT,
class_id INT NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (class_id) REFERENCES class(class_id)
);
以上示例中,我们定义了一个名为“class”的表和一个名为“student”的表,其中在student
表中有一个外键class_id
,它引用了class
表中的主键class_id
。
MySQL非空约束
在MySQL中,非空约束指定某个字段值必须填写,不允许为空。我们可以在创建表时使用NOT NULL
来添加非空约束。
例如,在创建student
表时,我们可以对name
字段添加非空约束:
CREATE TABLE student (
id INT NOT NULL,
name VARCHAR(20) NOT NULL,
age INT,
PRIMARY KEY (id)
);
以上示例中,我们定义了一个名为“student”的表,其中name
字段添加了非空约束。
MySQL唯一约束
在MySQL中,唯一约束用于确保某个字段中的值在表中是唯一的。我们可以在创建表时使用UNIQUE
来添加唯一约束。
例如,我们可以在创建student
表时,对name
字段添加唯一约束:
CREATE TABLE student (
id INT NOT NULL,
name VARCHAR(20) UNIQUE,
age INT,
PRIMARY KEY (id)
);
以上示例中,我们定义了一个名为“student”的表,其中name
字段添加了唯一约束。
MySQL默认约束
在MySQL中,默认约束是指当插入新记录时,如果该字段没有填写值,就会默认使用一个预设的值。我们可以在创建表时使用DEFAULT
来添加默认约束。
例如,在创建student
表时,我们可以对age
字段添加默认约束:
CREATE TABLE student (
id INT NOT NULL,
name VARCHAR(20),
age INT DEFAULT 18,
PRIMARY KEY (id)
);
以上示例中,我们定义了一个名为“student”的表,其中age
字段添加了默认约束,默认值为18。
MySQL创建表的方法
在MySQL中,创建表可以使用CREATE TABLE
语句。使用该语句时,必须指定表名,以及每个字段的名称、数据类型、约束等信息。
例如,以下是一个创建一个名为“user”的表的示例:
CREATE TABLE user (
id INT NOT NULL,
name VARCHAR(20) NOT NULL,
age INT DEFAULT 18,
PRIMARY KEY (id),
UNIQUE (name)
);
以上示例中,我们定义了一个名为“user”的表,其中包含了id
、name
和age
三个字段,其中id
字段为主键,name
字段添加了非空和唯一约束,age
字段添加了默认约束。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mysql主键,外键,非空,唯一,默认约束及创建表的方法 - Python技术站