文档章节

Sql server--数据查询

Ethan-GOGO
 Ethan-GOGO
发布于 2015/08/31 14:25
字数 1158
阅读 62
收藏 2

一 数据查询

1 其基本语法格式为 

Select 字段列表 --⽤用于指定输出字段 
[ INTO 新表 ] --将检索结果存储到⼀一个新的数据库表中 
[FROM 数据源]--⽤用于指定检索的数据来源 
[ WHERE 搜索条件 ] --⽤用于指定对记录的过滤条件 
[ Group by 分组表达式 ] --对检索到的记录进⾏行分组 
[ Having 搜索表达式 ] --也⽤用于指定对记录的过滤条 件,但要与Group By⼦子句⼀一起使⽤用 
[ORDER By 排序表达式[ASC|DESC]] --对检 索到的记录进⾏行排序处理


使⽤用ALLDISTINCT TOP指定记录⾏行数 

(1) ALL:默认关键字,将返回符合条件的全部记录,而且允许在查询结果中包含重复记录。

Select ALL work_id From worker 

(2) TOP关键字: TOP关键字⽤用于限制查询结果显⽰示的⾏行数,其可以返回表中前n⾏行或 前一个百分数的数据。 

SELECT TOP 3 (PERCENT) * from Worker order by worker_id desc 

(3) DISTINCT:⽤用于去除查询的结果集中重复的记录
SELECT DISTINCT Ware_Name from Ware 

3 多表查询

SQL提供了内连接、外连接、交叉连接、多表 连接等多种连接⽅方式 

1> 内部联接查询 

两表连接查询:
--显⽰示职⼯工信息及每个职⼯工对应的货物销售情况
Inner join 语句: 
select 字段列表 from 表1 inner join 表2 on 主表.主键 = 从表.外键
SELECT *(word_id,…) FROM Worker INNER JOIN SellON Worker.Work_id=Sell.Work_Id  (where word.id='500' 带条件)

Where 语句
select 字段列表 from 表1,表2 where 主表.主键 = 从表.外键
select * from worker ,sell where worker.work_id=sell.work_id 


多表连接查询:
SELECT 字段列表 FROM 表1 , 表2 ,表3
Where 表1.字段=表2.字段 and 表2.字段=表3.字段

2> 外部联接查询 

SELECT 字段列表 FROM 表1 <FULL/LEFT/RIGHT> OUTER JOIN 表2 ON 条件表达式 

向左连接 :返回左表所有行,及左表中每行在右表中的匹配行,若无,返回NULL

向右连接:返回右表所有行,及左表中每行在右表中的匹配行,若无,返回NULL

全外连接:返回左右表所有行,及左表中每行在右表中的匹配行,若无,返回NULL

select *from sell right outer join ware on ware.ware_id = sell.ware_id

交叉连接:两个表的记录交叉组合,不管有无匹配,左表每一行和右表每一行均结合,其结果中的记录⾏行数=左表⾏行数*右表⾏行数 

select *from worker cross join sell

4 ⼦查询(嵌套查询) 

如果⼀一个Select语句能够返回⼀一个单值或⼀一列值,并嵌套在⼀一 个Select、Insert、Update或Delete语句中,则称之为⼦子查询或内层查询 

格式⼀: 

Select * from 表名 where 字段名 关系运算符 (⼦子查询) 

select *from sell where sell_price = (select max(sell_price) from sell)

格式二: 

Select * from 表名 where 字段名 [not] in (⼦子查询) 

select * from sell where word_id in (select work_id form worker where position = ‘副经理

格式三: 

Select * from 表名 where [not] exists (⼦子查询) 


二 select的其他用法

1 设置别名

原字段名 [ AS ] ‘字段别名’ 
Use CPMSgoSELECT Work_id as '职⼯工编号',Work_name '职⼯工姓名',Sex '性别' from Worker

2 排序

SELECT * from Sell ORDER BY Sell_Price DESC(降序)/ASC升序

3,使⽤用集合函数返回汇总值 

Sum() 返回字段和                  Avg() 返回字段平均值 

Max() 返回字段最大值             Min() 返回字段最小值        Count() 返回字段数量

select sum(sell_price) from sell

4 GROUP BY —分组统计

例子:
1,统计男女职业的总人数
select sex as '性别',count (*) as '人数' from worker group by sex

2,统计每种货物的货物编号、名称及销售总计
ps: 货物名称和销售总计不在⼀一个表中,所以该题需要使⽤用多表查询、集合函数及分组汇总。
select a.ware_id,ware_name,sum(sell_price) from ware a inner join sell b on a.ware_id=b.ware_id group by a.ware_id,ware_name

5 compute统计

作用:用来计算总计或进⾏行分组⼩小计,总计值或⼩小计值将作为附加新⾏行出现在检索结果中,⼀一般⽤用在WHERE⼦子句之后。

         select *from worker compute count(work_id)

compute by 

之前统计男女的相当于创个新表,表示sex和count,若要分别展示男,女职员的所有的信息,并且统计他们的数量

select * from worker order by sex computer count(word_id) by sex
注意:使用computer by前必须有order by字句,而且前后的的字段必须相同

order by sex 将男女分开两个表显示数据,并且在表下还有他们的cnt 数量



© 著作权归作者所有

Ethan-GOGO
粉丝 13
博文 174
码字总数 82033
作品 0
广州
私信 提问
用链接服务器在异构数据库中查询数据

SQL Server提供了链接服务器用于分布式查询异构数据库。通过链接服务器可以链接到Oracle、Sybase、DB2、SQL Server等大型关系数据库,也可以连接到Access、Excel等文件数据库,甚至可以连接到...

浣熊干面包
2012/01/12
0
0
理解SQL SERVER中的逻辑读,预读和物理读

SQL SERVER数据存储的形式 在谈到几种不同的读取方式之前,首先要理解SQL SERVER数据存储的方式.SQL SERVER存储的最小单位为页(Page).每一页大小为8k,SQL SERVER对于页的读取是原子性,要么...

坦途abc
2018/02/27
0
0
SQL Server2008引擎组件

原文首发于it168,链接见http://tech.it168.com/a2011/0125/1153/000001153919.shtml   SQLServer2008引擎组件   首先让我们先来看看SQL Server2008的引擎组件,SQLServer2008有四大组件...

技术小美
2017/11/14
0
0
SQL Server 2008空间数据应用系列九:使用空间工具(Spatial Tools)导入ESRI格式地图数据

友情提示,您阅读本篇博文的先决条件如下:   1、本文示例基于Microsoft SQL Server 2008 R2调测。   2、具备 Transact-SQL 编程经验和使用 SQL Server Management Studio 的经验。   ...

beniao
2011/03/24
0
0
两种方式创建sqlserver链接服务器

版权声明:本文为EnweiTech原创文章,未经博主允许不得转载。 https://blog.csdn.net/English0523/article/details/80570735 创建链接服务器(SQL Server 数据库引擎) 本主题说明如何通过使...

天府云创
2018/06/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

分布式场景下如何保证消息队列实现最终一致性

考虑一个分布式场景中一个常见的场景:服务A执行某个数据库操作成功后,会发送一条消息到消息队列,现在希望只有数据库操作执行成功才发送这条消息。下面是一些常见的作法: 1. 先执行数据库...

中关村的老男孩
16分钟前
1
0
招银网络面试题、考点、知识点总结(Java岗)

java基础 全是基础不用多说肯定考的多,尤其是招银 OOP特性/java语言特性:封装、继承、多态 多态具体的表现:多态应用举例、如何调用父类方法(super)、重写和重载(重写父类方法的规则、构...

戎码益深
20分钟前
0
0
Mybatis深入源码分析之SQLSession一级缓存原理分析

源码分析图

须臾之余
24分钟前
0
0
成年人社交中的10个潜规则

前阵子我建议大家有空的时候,一定要去看《红楼梦》这本书。 原因就是从这本书,可以学习到很多很多人情世故,人情世故在学校里,老师几乎都不会教,所以我们只能靠自己去学。 只有自己去学了...

ZhangLG
26分钟前
1
0
在PyCharm中使用Pylint

简介 pylint是一个用于检查python代码中的错误,尝试强制执行编码标准的工具。它还可以查找某些类型错误,可以建议如何重构特定块的建议,并可以向您提供有关代码复杂性的详细信息。 官网:w...

哼_哼
26分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部