一、常用sql语句类型
1、DDL 数据定义语言 (create语句 alter语句等)
2、TPL 事物处理语言
3、DCL 数据控制语言
4、DML 数据操作语言(select 、update 、insert 、 delete)
二、join连接
1、内连接 inner join
2、全外连接 full outer join
3、左外连接 left outer join
4、右外连接 right outer join
5、交叉连接 cross join
前面4中都需要on来作为条件 cross连接不需要on作为条件 查询的结果是笛卡尔积 即两个表的数据相乘
三、不能更新在from从句中出现的表的数据
update user1 set over ='1111' where user1.username in (select b.username from user1 a join user2 b on a.username =b.username );
此句会报1093错误 ERROR 1093 (HY000)
此句应该改为:
update user1 a join ( select b.username from user1 a join user2 b on a.username =b.username ) b on a.username =b.username set a.over ='1111'
四、子查询效率一般要低于连接查询效率,并且数据量越大,效果月明显
----子查询:select a.user_name ,a.over ,(select over from user2 b where a.user_name = b.user_name ) as over 2 from user1 a;
--连接查询:select a.user_name ,a.over ,b.over as over2 from user1 a left join user2 b on a.user_name = b.user_name;
五、结果集行转列的几种方式
1、cross join
2、case when