sql了解一下 2 数据库设计和多表查询

关系型数据   重点在于 '关系' 。

1 在建一个表前,你需要问自己'你的表在描述什么事物?实体是什么?它有哪些属性?'

比如一个实体:人。人有什么?姓名,年龄,身高,性别,电话……里面的内容根据你的需求进行调整。

为了让每个数据行(每条记录)都有独一无二的标识项,需要主键。

然后你继续思考:在建表的过程中,你可选择的唯一标识属性是什么?什么是独一无二的,可以加以区分的属性,身份证号?电话?或者是简单的id,这也是必不可少的。

 

注意:

主键不能为null,如果是null,他就不可能是唯一的,因为其他记录也可能包含null,而且主键必须简洁,而且不能修改。

 

主键除了(某些现实中的属性,唯一性数据,如身份证号)还可以使用虚构,人造的的主键(如id),not null 和 atuo_increment都是常用的配合着,如果修改已存在的表,使用alter table就可以了。

 

3   你的列是否包含原子性数据,可让查询简单又直逼要害呢?

(不遵循原子性的体现是什么?如某一列,某个格子里包含不止一个数据,1,f,8jks,n或你的列有好几个,但是列的意义是重复的,尽管名字不同,属性冲突,太过相似也不可以)

 

4    关于外键:

 

5    表和表之间的关系

一对一,一对多,多对对。

 

一对多:a表中一条数据对应b表中多条数据。

多对多:将e表主键,d表主键独立在在l表中,即第三章表。如一个人有很多兴趣,但一项兴趣也属于很多人。

关于别名:列别名,表别名,查询结果作为别名。

 

六    连结join

1内连接(相等连接) on  关键字,2不等连接(返回任何不相等的记录),3自然连接(连接的列在两张表中名称都相同,两张表有相同的列名),左连接,右连接,外连接等。

连结运算是什么?以A表中的列作为桥梁,将B表中满足条件的列汇集到同一结果之中。

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值