MySQL数据库设计三范式

举报
酸菜鱼. 发表于 2022/09/11 10:54:23 2022/09/11
【摘要】 MySQL数据库设计三范式1NF:字段不可分;2NF:有主键,非主键字段依赖主键;3NF:非主键字段不能相互依赖;解释:1NF:原子性 字段不可再分,否则就不是关系数据库;2NF:唯一性 一个表只说明一个事物;3NF:每列都与主键有直接关系,不存在传递依赖;基本sql语句1.自然连接(natural join)自然连接将表中具有相同名称的列自动进行匹配,自然连接不必指定任何同等连接条件也不能...

MySQL数据库设计三范式
1NF:字段不可分;
2NF:有主键,非主键字段依赖主键;
3NF:非主键字段不能相互依赖;
解释:

1NF:原子性 字段不可再分,否则就不是关系数据库;

2NF:唯一性 一个表只说明一个事物;

3NF:每列都与主键有直接关系,不存在传递依赖;

基本sql语句
1.自然连接(natural join)
自然连接将表中具有相同名称的列自动进行匹配,自然连接不必指定任何同等连接条件也不能认为指定哪些列需要被匹配,自然连接得到的结果表中,两表中名称相同的列只出现一次。

select * from employee natural join department;
1
2.内连接(inner join):产生的结果是A和B的交集(相同列里面的相同值)
内连接查询能将左表和右表中能关联起来的数据连接后返回,返回的结果就是两个表中所有相匹配的数据。

select * from TableA as A inner join TableB B on A.PK = B.PK;
select * from TableA as A inner join TableB B on A.PK > B.PK;
3.外连接(outer join)
内连接是要显示两张表的内存,而外连接不要求如此,外连接可以依据连接表保留左表,右表或全部表的行为而分为左外连接右外连接和全连接。

select * from TableA as A left(right/full) join TableB as B on A.PA = B.PK;
1
Full Join:产生的结果是A和B的并集(如果没有相同的值会用null作为值)
3.外连接(outer join)
内连接是要显示两张表的内存,而外连接不要求如此,外连接可以依据连接表保留左表,右表或全部表的行为而分为左外连接右外连接和全连接。

select * from TableA as A left(right/full) join TableB as B on A.PA = B.PK;
1
Full Join:产生的结果是A和B的并集(如果没有相同的值会用null作为值)
4.交叉连接(cross join)
又称笛卡尔连接,交叉连接返回两个集合的笛卡尔积。

select * from TableA cross join TableB;
1
左连接:

SELECT
song.name
FROM
song
LEFT JOIN
(SELECT song_id FROM list_song WHERE song_list_id BETWEEN 24 AND 50) s
ON
song.id = s.song_id

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。