mysql 建表约束
时间: 2024-08-09 13:01:08 浏览: 49
mysql的语句
MySQL中的建表约束主要用于规定数据库表中数据的规则和限制,包括字段的数据类型、值的范围、唯一性等。约束可以提高数据的质量和安全性,并帮助防止错误数据的插入。以下是几种常见的MySQL建表约束:
### 1. NOT NULL 约束
NOT NULL 约束确保指定的列不允许为空值。
```sql
CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY,
FirstName VARCHAR(50),
LastName VARCHAR(50) NOT NULL
);
```
在这个例子中,`LastName` 列被设置为不允许空值。
### 2. UNIQUE 约束
UNIQUE 约束确保列或组合列中的所有值都是唯一的,不允许重复。
```sql
CREATE TABLE Students (
ID INT PRIMARY KEY,
Name VARCHAR(50) UNIQUE,
Course VARCHAR(50)
);
```
这里 `Name` 列被设置为唯一,意味着每个学生的姓名只能出现一次。
### 3. PRIMARY KEY 约束
PRIMARY KEY 约束标识了表中的主键,主键用于唯一识别每行记录。它结合了 UNQURE 和 NOT NULL 的特性。
```sql
CREATE TABLE Customers (
CustomerID INT AUTO_INCREMENT PRIMARY KEY,
FirstName VARCHAR(50),
LastName VARCHAR(50)
);
```
在这里,`CustomerID` 自动递增并作为主键,确保其唯一性和非空。
### 4. FOREIGN KEY 约束
FOREIGN KEY 约束用于建立两个表之间的关联。它确保外键列的值要么引用主键列,要么就是空值。
```sql
CREATE TABLE Orders (
OrderID INT AUTO_INCREMENT PRIMARY KEY,
ProductID INT,
CustomerID INT,
FOREIGN KEY (ProductID) REFERENCES Products(ProductID),
FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);
```
这个例子中,`Orders` 表中的 `ProductID` 和 `CustomerID` 都是外键,分别引用了 `Products` 和 `Customers` 表的主键。
### 5. CHECK 约束
CHECK 约束允许你设定更复杂的条件,例如数值的范围或者特定的文本格式。
```sql
CREATE TABLE Sales (
SaleID INT AUTO_INCREMENT PRIMARY KEY,
Amount DECIMAL(10, 2) CHECK (Amount >= 0)
);
```
这里的 `Amount` 列有一个检查约束,确保金额始终大于等于零。
通过这些约束,你可以有效地控制和管理数据库中的数据质量,保证应用程序能够正常运行。当设计数据库结构时,合理应用这些约束至关重要。
---
阅读全文