SQL那些事儿(一)

自己写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;

完全连接:与内连接外连接综合类似;

交叉连接:笛卡尔积,不解释;


多表连接:

连接两个数据表的用法:
     FROM Member INNER JOIN MemberSort ON Member.MemberSort=MemberSort.MemberSort
     语法格式可以概括为:
     FROM 表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号
   
     连接三个数据表的用法:
     FROM (Member INNER JOIN MemberSort ON Member.MemberSort=MemberSort.MemberSort) INNER JOIN MemberLevel ON Member.MemberLevel=MemberLevel.MemberLevel
     语法格式可以概括为:
     FROM (表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号
   
     连接四个数据表的用法:
     FROM ((Member INNER JOIN MemberSort ON Member.MemberSort=MemberSort.MemberSort) INNER JOIN MemberLevel ON Member.MemberLevel=MemberLevel.MemberLevel) INNER JOIN MemberIdentity ON Member.MemberIdentity=MemberIdentity.MemberIdentity
     语法格式可以概括为:
     FROM ((表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号) INNER JOIN 表4 ON Member.字段号=表4.字段号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值