关于SQLSERVER中用SQL语句查询的一些个人理解

作为一个编程菜鸟说真的很难有什么见解,也就是写给一些刚学习编程的人,希望能给他们一些帮助吧!

SQLSERVER作为刚开始入门学习的数据库,SQL语句也并不算太难!说白了也就是建库,建表,建约束,对数据库表进行增删改查!

但是今天主要讲的是查询,最重要也是最难的一部分!

首先呢看这样一段代码:

select DNAME as 区县,SNAME as 街道,hos_type.HTID as 户型,PRICE as 价格,CONTENTS as 描述,COPY as 备注 from hos_house left outer
join sys_user on sys_user.UID=hos_house.UID
join hos_street on hos_street.SID=hos_house.SID
join hos_district on hos_district.DID=hos_street.SDID
join hos_type on hos_type.HTID=hos_house.HTID
and hos_house.UID in
(
 select UID from sys_user where UNAME=‘张三‘
 )

这段代码用了左外连接查询,查询了张三所有的房屋信息!

select top 5 * from hos_house where
(
  HMID not in
  (
   select top 5 HMID from hos_house order by HMID
  )
)

这是一段简单的分页!

select HTNAME as 户型,UNAME as 姓名,DNAME as 区县,SNAME as 街道 from hos_house left outer
join sys_user on sys_user.UID=hos_house.UID
join hos_street on hos_street.SID=hos_house.SID
join hos_district on hos_district.DID=hos_street.SDID
join hos_type on hos_type.HTID=hos_house.HTID
where hos_district.DID in
(
 select SDID from hos_street where SDID in
  (
   select SID from hos_house group by SID having (COUNT(*)>=1)
  )group by SDID having (COUNT(*)>=2)
)order by SDID

这段代码比较难,查询了所在街道的,小区最少有一个小区,一个小区最少有两个租房信息,这段代码看懂不难,难得是自己写是否想的周全!

时间: 2024-11-08 23:55:01

关于SQLSERVER中用SQL语句查询的一些个人理解的相关文章

Sqlserver的SQL语句实现分页查询

在应用程序的开发中,如果数据库中的数据量过于的庞大,则需要针对查询数据做分页处理,取出对应分页中的数据,在Sqlserver分页的语句写法中,有两种比较常用,一种是数据表中含有自增量Id的情况,可以根据Id的大小顺序进行分页,另一种是数据库中不存在Int类型的Id的情况,此时就需要通过Row_Number函数来实现分页. (1)数据表中存在自增量Id的情况 假设我们查询的表名称为Student,包含的字段有:Id(Id号,自增变量).Name(姓名).BirthDay(出生日期).按出生日期从早

使用sql语句查询日期在一定时间内的数据

使用sql语句查询日期在一周内的数据 select * from ShopOrder where datediff(week,ordTime,getdate()-1)=0   //查询当天日期在一周年的数据 select * from ShopOrder where datediff(day,ordTime,getdate()-1)=0   //查询当天的所有数据 SELECT * FROM A where datediff(d,datetime,getdate()) <=30 //前30天 S

JAVA中用 SQL语句操作小结

1.添加记录(INSERT) 使用SQL语句的INSERT命令可以向数据库中插入记录,INSERT命令的基本形式为: INSERT INTO 表名 [(字段名1,字段名2-)] VALUES (值1,值2,-) 若在输入记录时,每个字段均有内容,可省略表名后的字段名. 该SQL语句用于将值1,值2--值n分别赋给字段1,字段2,--字段n, 并为表增加一条记录.在使用该命令时要注意下面两个规则: 插入的值必须和列一一对应. 插入值的数据类型必须和对应列的数据类型相一致. 比如使用下面这个命令就可

在hibernate中用sql语句

在hibernate中用sql语句,语句是createSQLquery 查出来的是,一列或者多列的数据,要将其转化为对象,有两种方式, 对于已经被hibernate所管理的实体类,在后面加.addentity 然后用花括号在sql语句中,select之后from之前,每一个{表名.*},就可以查询出对象. 对于数据传输的dto类,用setresulttransformer.然后在select之后 from之前,把列名和dto的属性名一一as起来. 百万级的数据存储,用外键关联会降低效率 可以选择

sql语句查询后几行数据并倒着排列

$conn = mysql_connect("数据库地址","用户名","密码"); if(!$conn) { die("mysql conn failed"); } else{ mysql_query("SET NAMES 'utf8'"); mysql_select_db("数据表",$conn); if(!$conn) { die("database selected f

sql语句查询同一表内多字段同时重复的记录 sql数据库重复记录删除

分享下用sql语句删除数据库中重复记录的方法.比如现在有一人员表 (表名:peosons) 若想将姓名.身份证号.住址这三个字段完全相同的记录查询出来select p1.* from persons p1,persons p2 where p1.id<>p2.id and p1.cardid = p2.cardid and p1.pname = p2.pname and p1.address = p2.address可以实现上述效果.几个删除重复记录的SQL语句 1.用rowid方法2.用gr

sql语句查询经纬度范围

指定一个经纬度,给定一个范围值(单位:千米),查出在经纬度周围这个范围内的数据. 经度:113.914619 纬度:22.50128 范围:2km longitude为数据表经度字段 latitude为数据表纬度字段 SQL在mysql下测试通过,其他数据库可能需要修改 SQL语句如下: select * from location where sqrt( ( ((113.914619-longitude)*PI()*12656*cos(((22.50128+latitude)/2)*PI()/

提高SQL语句查询效率

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from t where num=0 3.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放

sql语句查询重复的数据

查找所有重复标题的记录:SELECT *FROM t_info aWHERE ((SELECT COUNT(*)FROM t_infoWHERE Title = a.Title) > 1)ORDER BY Title DESC一.查找重复记录1.查找全部重复记录Select * From 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1)2.过滤重复记录(只显示一条)Select * From HZT Whe