最近因为要准备面试,才发现原来之前自以为玩的不错的数据库根本就还差得远,你看看,这些你还有印象吗?
就拿我们经常使用的sql语句说:
一、基础语法:
1、选择:select* from table1 where 范围
2、插入:insert into table1(field1,field2) values(value1,value2)
3、删除:delete from table1 where 范围
4、更新:update table1 set field1=value1 where 范围
二、很常用的语法:
1、In的用法
嵌套查询:select * from TableNameA where Field1 in (select Field1 from TableNameB where Field2='李小明' )
2、like的用法
这里的like就像是我们在做ITOO用到的Contain的用法,都是用来进行模糊查询的。
select * from TableName where Field like '%明%'
3、排序
排序唯一需要注意的就是哪个是升序,哪个是降序
语法:select * from TableName order by field1,field2 [desc]/[asc]
4、总数:selectcount * as totalcount from table1
5、求和:select sum(field1) as sumvalue from table1
6、平均:select avg(field1) as avgvalue from table1
7、最大:select max(field1) as maxvalue from table1
三、高级sql语句
1、Union级联查询
UNION 运算符通过组合其他两个结果表(例如TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。
当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自
TABLE1就是来自 TABLE2。
select * from Table1 where field1 ='A'
union
select * from Table2 where field2='B'
2、except
except的用法和union一样,只是它的作用是:EXCEPT 运算符通过包括所有在TABLE1 中但不在 TABLE2 中的
行并消除所有重复行而派生出一个结果表。当 ALL随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。
3、left outer join:
左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
4、right outer join:
右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
5、full outer join:
全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。