sql 容易被忽视的点

1 dual

select查询语句只有select就可以,但为了规范,凑结构,可以加个dual

例:select now() from dual;

这个概念是Oracle中的。在mysql中可写可不写。

 

2 dropdeletetruncate的区别

drop用于删除数据库,数据表的字段,删除表

delect:

1可以带条件删除  

2)可以删除全表数据,但只能删除表的数据,不能删除表的约束     

使用delete from删除的数据可以回滚

truncate用于删除全表的数据

1)不能带条件删除

2即可以删除表的数据,也可以删除表的约束

3使用truncate table删除的数据不能回滚

 

3 连接查询

注意格式:select 要查的字段(这里如果有重复的字段名,要指明是哪张表里的) from 1 join on 2 on 相等的条件 where条件 group by 等等。

其实质就是把两张表合为一张表,然后像在一张表中那样操作。

三张表(或更多)连接:from 1 join 2 on 1.字段=2.字段 join 3 on ...

 

4 子查询用“=”还是用in

当子查询中的结果返回的值只有一条时,就可以用等于,

当不确定只有一条时,就要用in了,

只有一条也可以用in,所以用in最为保险

 

5 多对多的关系

建表时,关系成表,但最好不要用联合主键,也建一个自己的主键id,然后和实体相关的建成外键。

 

posted @ 2018-11-19 16:18  后知后觉0107  阅读(158)  评论(0编辑  收藏  举报