自己写sql也有一年多的时间,从今天起开始记录下一些sql技巧,供大家分享。
1.在sql语句的插入字段为sql语句,sql中的‘’干扰外面的sql语句
比如这样
insert into student (ID,code,name,sql)values('1','001','张三','insert into student (ID)values('1') where name='李四'')
这样肯定会报错,因为‘会影响外面sql语句
这时我们要修改为这样
insert into student (ID,code,name,sql)values('1','001','张三','insert into student (ID)values(''1'') where name=''李四''')
注意在里面sql语句添加双单引号。
2、in 和 or的区别
使用or时比较麻烦
select * from student where name='张三' or <span style="font-family: Arial, Helvetica, sans-serif;">name='李四' </span>
当使用in时
<pre name="code" class="sql">select * from student where name in('张三','李四')
这样判断少时显不出来,当一旦判断比较多时in的效果比较明显;or适合不同字段的判断,in适合同字段判断。
3、union 和union all
首先他们的union对象是有相同字段的表格
把相同字段的结合起来,上边有六个相同字段。union把相同的过滤掉,union all把所有的都列出来。
这个主要用途是提取表格的相同信息。
4、表格join
分为内连接,外连接,完全连接和交叉连接
内连接:最常用的连接,保证左右有数据;
外连接:包含左连接,右连接,全连接,没有数据的一侧为null;
完全连接:与内连接外连接综合类似;
交叉连接:笛卡尔积,不解释;
多表连接:
连接两个数据表的用法: