两两之间都要去看是不是有联系,才能把多个表的关联给设计起来的
如果有n张表 那么你需要查看的联系的数量是:
n!/2
如果从别的地方复制了很多sql语句 发现执行不了的话
那么自己:拆分它,因为它的格式排版可能在复制的时候出错了,一点点拆分来使用就可以了。
对于设计数据库而言,遵循3NF已经是很好的数据库了。
1 2 3NF我都会了
删除了毕业的学生,也不会影响到系名。
要进到mysql里面,在写sql语句的时候 才有分号不分号这种说法的
在使用什么mysqldump之类的,不写分号的。
这里说的是数据库里面,source XXX 意思是: 使用哪些sql语句来进行还原,使用哪里的语句来 进行还原。
无论是database层面还是说table层面,其实它的关键词是不怎么变化的,你也会发现,就是drop这些,都比较通用。
当然,数据库层面的话,就是use不加database关键字 其他都加的。
数据库编码问题解决:
MySQL问题记录——Incorrect string value: ‘……‘ for column ‘……‘ at row X
那么就肯定是编码问题,先去命令行查看这个数据库的编码
show create database db1;
alter database db1 character set utf8;
alter table user character set utf8;
对于表而言,还可以写成是:
alter table user convert to character set utf8;
表示对这个表进行改变它的编码的含义。
但是改变数据库的编码还未必能改变其中每个表的编码
所以说还是需要改变到具体某个表的编码去才对、
编码问题,首先考虑的是数据库的编码是不是出现问题,而不是复制的源编码是否有问题。
sqlyog的话,那么下面有写显示的。
多表查询的目的:消除没有用的数据。
以后写数据库,很多时候都是一个字段写成一行,方便加注释
然后的话关键字也要单独写一行。
因为的话 from where select这个是顺序呀!
所以说from后面先放了别名,在where和select后面就可以使用它们了。
嵌套的子查询都一定要用括号括起来。
子查询作为条件,如果是单行单列的查询结果,那么子查询可以作为这个 运算符的其中一个元素。