- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
33
33
在数据中,建表处理是很常见且很实用的方法。
表和表之间的关系有1:1
1:N
N:N
三种方式。
1对1的方式
span style=M
span style=Mfont-size: 18px;11 示例:一夫—妻
2思考:在一个表中保存着所有人的信息。有男有女,要求查询出所有的夫妻,即一男一女。
3注意下而:王五是光棍不应该能查询出来。/span
Kspan style=font-size:18px;CREATE TABLE person(
id INT,
NAME VARCHAR(10),
sex CHAR(l),
wife INT,
husband INT
);8INSERTINTOpersonINSERTINTOperson6INSERTINTOpersonINSERTINTOperson12INSERTINTO
);
8INSERT
INTO
person
INSERT
INTO
person
6INSERT
INTO
person
INSERT
INTO
person
12INSERT
INTO
person
VALUES(1/小花/O,0,3);
VALUES(2,玉芬
VALUES(3/张三
VALUES(4, 1 李四/I,2,0);
VALUES(5, 1 王五 J 1\0,0);
13 14
25//—对一关系的操作:查出每对夫妻的姓名
16CREATE VIEW w AS SELECT * FROM person WHERE sex=,0,;
17CREATE VIEW m AS SELECT * FROM person WHERE sex=,l,;
28〃不利用表与表之间的关系
19SELECT w.NAME AS 妻子》m.NAME AS 丈夫 FROM w’m WHERE w. husband=m. id AND 2Gm?wife二w? id;
22〃现在更先进的方式:利用表间的关系
22SELECT w.NAME AS 妻子,m.NAME AS 丈夫 FROM w INNER JOIN m ON w.husband=m. id AND m.wife=w.id;
/span
1对多的方式
21对多,多对1。
2—个人可以拥有多辆汽车,要求查询出某人所拥有的所有汽车。
3根据范式的要求,应该设计两张表,分别表示人的信息和汽车的信息。strong 4/strong
2〃步骤1:画E-R图
2〃步骤2:分别建实体表,并给多方的表添加外键约朿
3CREATE TABLE person2(
id VARCHAR(32) PRIMARY KEY,
pname VARCHAR(30),
sex CHAR(l)
7);
8CREATE TABLE car(
id VARCHAR(32) PRIMARY KEY,
cname VARCHAR(30),
price NUMERIC(10,2),
pid VARCHAR(32),
CONSTRAINT car^fk FOREIGN KEY(pid) REFERENCES person2(id)
14);
15DROP TABLE car;
16
1718〃步骤3:
17
18〃步骤3:为两个表添加测试数据
29〃实体表1
20INSERT
21INSERT
22INSERT
23INSERT
24INSERT
25SELECT
26
INTO
INTO
INTO
INTO
INTO
person2(id,pname,sex) person2(id,pname,sex) person2(id,pname,sex) person2(id,pname,sex) person2(id,pname,sex)
VALUES(Peel,,3ack,,I);
VALUES(,P002\ Tom/l);
VALUES (,P003\ Rose, 0);
VALUES(,P004,/Mary, e1);
VALUES (P005 J Mik J J「);
* FROM person2;
27
28////实体表2
29INSERT INTO car(id^cname,price,pid) VALUES( ,C001,/BMW1,123.5/P001);
3dNSERT INTO car(id, cname, price, pid) VALUES( C0021 / Benz , 123.5/P0011); 31INSERT INTO car(id,cname,price,pid) VALUES(C0031 / BMW,223.5/P001); 32
MINSERT INTO car(id,cname,price,pid) VALUES^C01U J BMW83?5JP003
文档评论(0)