SQL语句的使用(二)

来源:互联网 发布:windows arp攻击 编辑:程序博客网 时间:2024/05/02 01:51

由于近来需要用SQL Server做项目,又因原来粗浅地学过些许简单的SQL语句,故现在结合网上的一些资料写些实用的SQL语句,方便日后给自己查阅,也能和大家一起交流。

1.between的用法

select * fromtableName where Field betweenvalueMin and valueMax

select * fromtableName where Field not between valueMin and valueMax

在*的地方,也可以替换成具体的字段名。

2.in的用法

select * fromtableName where Field  in (value1,value2,...)

select * from tableName where Field not in (value1,value2,...)

3.外连接的用法

左外连接

select tableName1.id, tableName2.id,name,sex,password from tableName1 left out join b on tableName1.id = tableName2.id

右外连接

select tableName1.id, tableName2.id,name,sex,password from tableName1 right out join b on tableName1.id = tableName2.id

全外连接

select tableName1.id, tableName2.id,name,sex,password from tableName1 all/full out join b on tableName1.id = tableName2.id

注意:当进行连接的表中有相同名字的字段,需要用表名.字段名来读取数据

4.子查询

select* from tableName1 whereField in (select Field fromtableName2)

其实,式子中第一个Field和第二个Field是不同的。SQL中的子查询是非常重要的一部分,也是比较难学的一部分,因为逻辑性需要比较强,所以在这里不多做介绍,之后有时间会单独整理一篇出来。

5.查询表中前N条数据

select top 5 fromtableName

这里的top 5中的数字5是可变的,可以任意改变,但注意不能超过表中的数据条数总和

select top N fromtableName order by Field

这里在语句的后面加上order by这个关键字,就是按照某个字段进行排序。

6.两张关联表,删除主表中已经在副表中没有的信息

delete from tableName1 where not exists (select * fromtableName2 where tableName1.Field=tableName2.Field)

7.四表联查问题

select * from tableName1 left inner join tableName2 on tableName1.Field=tableName2.Field right inner join tableName3 on tableName1.Field=tableName3.Field inner join tableName4 on tableName1.Field=tableName4.Field

其实,这里的实质就是用内外连接对四个表进行关联。innner和out的区别就在于内连接和外连接的区别。

8.一条SQL语句搞定数据库分页

select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段

这个是网上原本的一个SQL语句,这里就作为分享,也有待探究。


暂时更新这么多内容,本人还是菜鸟阶级,所以只能跟大家分享这些比较浅显的内容。有句话说得好,革命尚未成功,同志仍需努力。

0 0
原创粉丝点击