我在 CSDN 学院发布的 SQL 入门视频教程。
第一范式(1NF)定义了组织数据库最基本的规则:
1NF的第一个规则
你必须定义数据项。这表示检查需要存储的数据,将数据组织成列,定义每列数据的类型,最后将相关的列组成表。
例如,你可以将所有关于会议地点的列放入Location表,将所有与会议成员相关的列放入MemberDetails表,等等。
1NF的第二个规则
下一步是确保没有重复数据。考虑一下表:
CREATE TABLE CUSTOMERS(ID INT NOT NULL,NAME VARCHAR (20) NOT NULL,AGE INT NOT NULL,ADDRESS CHAR (25),ORDERS VARCHAR(155)
);
(ID INT NOT NULL,NAME VARCHAR (20) NOT NULL,AGE INT NOT NULL,ADDRESS CHAR (25),ORDERS VARCHAR(155)
);
如果我们使用拥有多个订单的客户信息填充该表,将会获得类似以下结果:
ID | NAME | AGE | ADDRESS | ORDERS |
---|---|---|---|---|
100 | Sachin | 36 | Lower West Side | Cannon XL-200 |
100 | Sachin | 36 | Lower West Side | Battery XL-200 |
100 | Sachin | 36 | Lower West Side | Tripod Large |
但是根据1NF,我们需要确保不存在重复的数据。所以我们将该表拆分成两部分,然后通过一个键进行关联:
CUSOMTERS表:
CREATE TABLE CUSTOMERS(ID INT NOT NULL,NAME VARCHAR (20) NOT NULL,AGE INT NOT NULL,ADDRESS CHAR (25),PRIMARY KEY (ID)
);
(ID INT NOT NULL,NAME VARCHAR (20) NOT NULL,AGE INT NOT NULL,ADDRESS CHAR (25),PRIMARY KEY (ID)
);
该表将会包含以下记录:
ID | NAME | AGE | ADDRESS |
---|---|---|---|
100 | Sachin | 36 | Lower West Side |
ORDERS表:
CREATE TABLE ORDERS(ID INT NOT NULL,CUSTOMER_ID INT NOT NULL,ORDERS VARCHAR(155),PRIMARY KEY (ID)
);
(ID INT NOT NULL,CUSTOMER_ID INT NOT NULL,ORDERS VARCHAR(155),PRIMARY KEY (ID)
);
该表将会包含以下记录:
ID | CUSTOMER_ID | ORDERS |
---|---|---|
10 | 100 | Cannon XL-200 |
11 | 100 | Battery XL-200 |
12 | 100 | Tripod Large |
1NF第三个规则
第一范式的最后一个规则就是为每个表创建一个主键,以上创建的表已经包含了主键。
原文地址:.htm
上一页 下一页
本文发布于:2024-01-29 10:51:28,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170649669314759.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |