- 1、本文档共40页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
初级sql开辟指南
初级SQL开发指南
Select语句概要
数据库中数据的提取(查询)使用select 语法,主要有以下几点作用
提取的数据(有哪些信誉好的足球投注网站)
提取的数据进行排序(排序)
执行计算或汇总
Select文表达方法
Select 列名1,列名2
Select 列名1,列名2 ← 查询要显示的列结果
From 表名 ← 数据库中表名
Where 查询条件 ← 条件表达式
SQL文处理Select 语句顺序步骤
我们将说明数据库在处理查询的时候,不同阶段都会产生中间结果表.这些产生出来的中间结果表都是在数据库后台运行的我们无法观察到.我们最终看到的数据就是最后的中间结果表.从句from从数据库中检索出来第一个中间结果表开始,到select从句结束.分为以下几步
From 指定查询的表1通过from关键字将要查询的表中的所有数据读
From 指定查询的表
取到中间结果表。(包括表中所有数据行与列,行
数不变,列数不变)
Where选择满足条件的行
Where选择满足条件的行
2在where关键字后面加上要读取数据的条件,生
成一个新的中间结果表。
Group by分组
Group by分组
3 如果业务需要分组,可以通过Group by 将视图进
行分组,在次生成一个新的中间结果表。
having 分组
having 分组条件
4 使用having关键字为分组后的逻辑视图进行条件
筛选,来生成一个中间结果表。
select 选择列
select 选择列
5 通过select语句在最终的中间结果表中选择列。
查询数据时,数据库后台中间结果表变化过程
我们将从数据库在执行SQL查询计划的时候,数据库内部的变化与运行的原理来理解SQL语句执行过程.(数据库中分为2种视图,1为物理视图通过create view 语句创建,2为逻辑视图,就是我们提到的中间结果表)
(人员信息表)
编号
名称
部门
职务
年龄
性别
电话
122
李晶晶
人力
职员
26
女
2234555
123
张金
人力
职员
29
男
3322123
124
王力
机材
经理
35
男
2245553
125
李心
机材
职员
21
女
3332233
例:给出所有职务为职员的用户名称,部门,电话.
步骤一 执行from 表名称(人员信息表),数据库会在(人员信息表)表中进行一个全表扫描,将所有表信息放入一个逻辑视图中, 逻辑视图包括表中的全部的行于列的数据.
步骤一 产生的中间结果表
122
李晶晶
人力
职员
26
女
2234555
123
张金
人力
职员
29
男
3322123
124
王力
机材
经理
35
男
2245553
125
李心
机材
职员
21
女
3332233
步骤二 通过where职务=职员 的判断条件将步骤一中产生的逻辑视图的数据进行过滤,将满足条件的行产成一个新的逻辑视图.
步骤二 产生的中间结果表
122
李晶晶
人力
职员
26
女
2234555
123
张金
人力
职员
29
男
3322123
125
李心
机材
职员
21
女
3332233
步骤三 通过select 名称,部门,电话 语句把步骤二的逻辑视图中,名称,部门,电话列的数据取出生成一个新视图.select 语句指定那些列必须出现在最终逻辑视图中.
步骤三 产生的中间结果表
李晶晶
人力
2234555
张金
人力
3322123
李心
机材
3332233
步骤四 将产生的逻辑视图发送到客户端.完成本次SQL查询计划.
SQL编写顺序与逻辑视图生成过程.
Select 名称,部门,电话 ← 步骤三 生成最终逻辑视图
From 员工信息表 ← 步骤一 生成全表逻辑视图
Where 职务=职员 ← 步骤二 生成符合条件的逻辑视图
多表信息查询表达方法
Select 表1.列名, 表2.列名 ← 选择要表示的列
From 表1, 表2 ← 要合并查询的表
Where 表1.ID1=表2.ID1 ← 多表连接条件
当多个表进行联合查询的时候,会发生一张表(A)中的数据行乘以别一张表(B)中的数据行,也就是A*B=所有查询数据.该结果产生的合并表数据被我们称为笛卡儿积.通常笛卡儿积会产生很多重复行的数据,我们要使用连接条件也就是A表和B表中指定的连接列来过滤掉重复和多余的笛卡儿积.
A 表B表
A 表
B表
笛卡儿积
A*B中间结果表
WHERE 选择符合条件的行,生成中间结果表
SELECT 选择列
生成最终结果
通过from关键字后的表名称,到数据库中
文档评论(0)