数据库三大范式sql语句
时间: 2024-05-09 12:13:40 浏览: 9
数据库的三大范式是指在设计关系型数据库时需要遵循的规范,以确保数据的完整性和一致性。具体而言,第一范式(1NF)要求每个字段只能包含原子性的值,第二范式(2NF)要求每个非主键字段都必须完全依赖于主键,第三范式(3NF)要求每个非主键字段之间不能相互依赖。下面是三大范式的详细介绍和示例:
1. 第一范式(1NF):要求关系中的每个属性都是不可再分的原子值,即每个属性都不可再分成更小的部分。例如,一个人的姓名和姓氏应该作为两个不同的属性存储,而不是将它们合并成一个属性。
2. 第二范式(2NF):在满足第一范式的基础上,要求关系中的非主键属性必须完全依赖于主键,而不能存在部分依赖关系。例如,如果一个订单号确定一个产品和数量,则产品和数量应该作为一个表的属性,而不是将它们作为订单表的属性。
3. 第三范式(3NF):在满足第二范式的基础上,要求关系中的非主键属性之间不能存在传递依赖关系。例如,如果一个订单号确定一个产品类型,则产品类型和产品描述应该作为不同的表的属性,而不是将它们作为订单表的属性。
下面是一些SQL语句的示例:
1. 创建表时指定主键:
```
CREATE TABLE orders (
order_id INT PRIMARY KEY,
product_name VARCHAR(50),
quantity INT,
price DECIMAL(10,2),
customer_id INT
);
```
2. 添加外键:
```
ALTER TABLE orders
ADD CONSTRAINT fk_customer
FOREIGN KEY (customer_id)
REFERENCES customers(customer_id);
```
3. 查询语句:
```
SELECT order_id, product_name, quantity, price
FROM orders
WHERE customer_id = 1;
```