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表中满足条件的列汇集到同一结果之中。

 

猜你喜欢

转载自blog.csdn.net/Kurapika47/article/details/84819662