MySQL入门基础教程大全(8)

实体A对实体B为1对1,则在表A或表B中创建一个字段,存储另一个表的主键值

MySQL入门基础教程大全

实体A对实体B为1对多:在表B中创建一个字段,存储表A的主键值

MySQL入门基础教程大全

实体A对实体B为多对多:新建一张表C,这个表只有两个字段,一个用于存储A的主键值,一个用于存储B的主键值

MySQL入门基础教程大全

想一想:举些例子,满足一对一、一对多、多对多的对应关系

逻辑删除

对于重要数据,并不希望物理删除,一旦删除,数据无法找回

删除方案:设置isDelete的列,类型为bit,表示逻辑删除,默认值为0

对于非重要数据,可以进行物理删除

数据的重要性,要根据实际开发决定

示例

设计两张表:班级表、学生表

班级表classes

id

name

isdelete

学生表students

id

name

birthday

gender

clsid

isdelete

```

10 备份和恢复 备份

运行mysqldump命令

mysqldump –uroot –p 数据库名 > python.sql; # 按提示输入mysql的密码 恢复

连接mysql,创建新的数据库

退出连接,执行如下命令

mysql -uroot –p 新数据库名 < python.sql # 根据提示输入mysql密码 11 消除重复行

在select后面列前使用distinct可以消除重复的行

distinct的使用需要放在第一个字段的位置,针对第一个字段进行去重。

select distinct1,... from 表名; 例: select distinct gender from students;

例如,统计下在学生表的所有的学生班级

select distinct class from student; 12 where条件的运算符进阶 空判断

注意:null与''是不同的

判空is null

例1:查询没有填写个性签名的学生

select * from student where description is null;

判非空is not null

例2:查询填写了个性签名的学生

select * from student where description is not null;

例3:查询填写了身高的男生

select * from student where description is not null and sex=1; 运算符优先级

优先级由高到低的顺序为:小括号,not,比较运算符,逻辑运算符

and比or先运算,如果同时出���并希望先算or,需要结合()使用

13 连接查询[连表查询、多表查询]

当查询结果的列来源于多张表时,需要将多张表连接成一个大的数据集,再选择合适的列返回

mysql支持三种类型的连接查询,分别为:

内连接查询(inner join)

查询的结果为两个表匹配到的数据

使用内连接,必须保证两个表都会对应id的数据才会被查询出来。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/e89071a8349d877d32dc0f176eafdb36.html