第4章 关系型数据库标准语言SQL

合集下载

第4章_结构化查询语言SQL-6学时

第4章_结构化查询语言SQL-6学时
例2:检索出成绩大于80分的学号、姓名、性别和成绩 。
说明1:
SELECT S••F联Tro接Um条D短件E语:N:两T后.个学面表接号进多行,姓个联表名接时查,,性询两别的个前,表成提之是绩间一用;定逗有号“隔相开同。” FROM STUDENT,S的C字O段R名E。; WHERE 成•联绩接>的8方0法A:如N:D表“名Ss1Tt.u字Ud段eDn名tE.学=N表号T名=.学s2c.字o号r段e.=学名S号C”ORE.学号
无条件查询小结:
6)结果排序 【例】查询显示COURSE表中的所有信息,并按学分 升序排序。
SELECT * FROM COURSE ORDER BY 学分
2、单表条件查询----SELECT … FROM …WHERE …
【格式】SELECT [ALL | DISTINCT] <字段列表> FROM <表> [WHERE <条件表达式> ]
1975~1979,IBM San Jose Research Lab的关系数据库管 理系统原型System R实施了这种语言
SQL-86是第一个SQL标准
(ANSI)
SQL-89、SQL-92(SQL2)、SQL-99(SQL3) (ANSI)
●现状:大部分DBMS产品都支持SQL,成为操作数据库的标 准语言
第四章 结构化查询语言SQL
本章主要内容
4.1 数据查询 4.2 数据操作 4.3 数据定义 本章作业
SQL语言的基本概述
●SQL:Structured Query Language 缩写
结构化查询语言,目前关系型数据库的通用语言。
●SQL的发展
1974年,由Boyce和Chamberlin提出

关系数据库标准语言SQ

关系数据库标准语言SQ

WHERE (职工.仓库号=仓库.仓库号) AND (工资>1230)
例4.7 找出工作在面积大于400的仓库的职工 号以及这些职工工作所在的城市. 分析 条件:面积>400 联接条件:(职工.仓库号=仓库.仓库号) 查询涉及表:仓库,职工 查询结果字段:职工号,城市 语句:SELE 职工号,城市 FROM 仓库,职工 WHERE;

(面积>400) AND (职工.仓库号=仓库.仓库号)
3、嵌套查询


外查询的条件来自内查询的结果
在SQL语句中,一个SELECT-FROM-WHERE语句称 为一个查询块。将一个查询块嵌套在另一个查询块的 WHERE子句或HAVING短语的条件中的返回多个值 NOT IN :属于关系 联接条件:公共字段名 IN SELE 公共字段名 (相当于联接中条件:表1.公共字段名=表2.公共字 段名)
6、简单的计算查询
SQL不仅具有一般的检索能力,而且还有计 算方式的检索 用于计算检索的函数: COUNT()--- ------计数 SUM()--------------求和 AVG()---------求平均值 MAX()---------求最大值 MIN()----------求最小值
查询产生新字段
例4.10 找出和职工E4工资相同的所有职工. SELE 职工号 FROM 职工 WHERE 工资 =(SELE 工资 FROM 职工 WHERE 职工号 =“E4”) 注意:= 与 IN 之间的关系,等号可以用IN 来 替换,而IN不能用=替换 =:返回的值是一个具体的值 IN:返回的是多个值
4、几个特殊运算符
第四章 关系数据库标准语言SQL
罗盛
一、SQL概述

第4章 关系数据库标准语言——SQL

第4章 关系数据库标准语言——SQL

4.2 SQL的数据定义
4.2.1 基本表的创建、修改和删除 4.2.2 索引的创建和删除
4.2 SQL的数据定义
SQL的数据定义功能包括:定义基本表、定义视图、定义索引。除此之外, 还有定义数据库、定义规则、定义存储过程等。SQL的数据定义语句如表 4-2所示。 表4-2 SQL的数据定义语句
操作方式 操作对象 创建 表 CREATE TABLE 删除 DROP TABLE 修改 ALTER TABLE
视图
CREATE VIEW
DROP VIEW
索引
CREATE INDEX
DROP INDEX
4.2.1 基本表的创建、修改和删除
1.
基本表的创建 一般格式如下:
CREATE TABLE<表名>(<列名><数据类型>[列级完整性 约束条件] [,<列名><数据类型>[列级完整性约束条件]]… [,<表级完整性约束条件>] );
4.2.1 基本表的创建、修改和删除
5. 基本表的删除 随着时间的变化,有些基本表无用了,可将其删除。删除基本表命 令的一般格式为: DROP TABLE<表名>[RESTRICT│CASCADE]; 说明: CASCADE(级联):表示在删除基本表时,不仅表中的数据和 此表的定义将被删除,而且此表上建立的索引、视图、触发器等 有关对象一般也都被删除。 RESTRICT(限制):表示在删除基本表时,只有在没有视图或 约束引用基本表 S 中的列时才能执行,否则拒绝删除。 如执行DROP TABLE S语句后,将基本表S的定义(表框架)连同它 的所有元组、索引以及由它导出的所有视图全部删除,并释放相 应的存储空间。

习题4 关系数据库标准语言SQL

习题4 关系数据库标准语言SQL

习题4 关系数据库标准语言SQL 一、选择题11. SQL是哪几个英文单词的缩写__________。

16.在V isual FoxPro中,使用SQL命令将学生STUDENT中的学生年龄AGE字段的值增加1,应该使用的命令是__________。

A. REPLACE AGE WITH AGE+1B. UPDA TE STUDENT AGE WITH AGE+1C. UPDA TE SET AGE WITH AGE+1D. UPDA TE STUDENT SET AGE=AGE+117.如果学生表STUDENT是使用下面的SQL语句创建的:CREA TE TABLE STUDENT(SNO C(4)PRIMARY KEY NOTNULL);SN C(8);SEX C(2);AGE N(2) CHECK(AGE>15 AND AGE<30)下面的SQL语句中可以正确执行的是________。

A. INSERT INTO STUDENT(SNO,SEX ,AGE)values("S9","男",17)B. INSERT INTO STUDENT(SNO,SEX, AGE)values("李安琦","男",20)C. INSERT INTO STUDENT(SNO,AGE)values("男",20)D. INSERT INTO STUDENT(SNO,SN)values("S9","安琦",16)18.使用SQL语句从表STUDENT中查询所有姓王的同学的信息,正确的命令是______。

A. SELECT * FROM STUDENT WHERE LEFT(姓名,2)= "王"B. SELECT * FROM STUDENT WHERE RIGHT(姓名,2)= "王"C. SELECT * FROM STUDENT WHERE TRIM(姓名,2)= "王"D. SELECT * FROM STUDENT WHERE STR(姓名,2)= "王"习题4 关系数据库标准语言SQL- 119 -26.下面有关交叉表查询的说法中,正确的是_________。

vf第四章关系数据库标准语言SQL

vf第四章关系数据库标准语言SQL

结果中有重复值,如果要 去掉重复值只需要指定DISTINCT短语:
SELECT DISTINCT 工资 FROM 职工 DISTINCT 短语的作用是去掉查询结果中 的重复值。
例4.2检索仓库关系中的所有元组。
sele * from 仓库
*代表要显示的所有字段
• HAVING短语必须跟随GROUP BY使用,它 用来限定分组必须满足的条件;
• ORDER BY短语用来对查询的结果进行排序。
4.2.1简单查询
基于单个表的查询,可以有简单的查询条件。这 样的查询由SELECT和FROM短语构成无条件查询, 或由SELECT 、 from 、 WHERE短语组成条件查询。 例4.1从职工表中检索所有工资值。 SELECT 工资 FROM 职工 SELECT 职工号,工资 FROM 职工
例4.7 找出工作在面积大于400的仓库的职工 号以及这些职工工作所在的城市。
SELE 职工号,城市 FROM 仓库,职工
WHERE(面积>400)AND(职工.仓库号= 仓库.仓库号)
4.2.3嵌套查询
基于多个关系的查询,这类查询所要求的结 果出自一个关系,但相关的条件却涉及多个关系。 例4.8哪些城市至少有一个仓库的职工工资为 1250元?
• 自然联接:当连接属性具有相同属性名,连接 条件取相等条件时,去掉得复属性的等值连接 称为自然连接。
SQL的核心是查询。SQL的查询命令也 称作SELECT命令,它的基本形式由 SELECT-FROM-WHERE查询块组成,多 个查询块可以嵌套执行。VFP的SQL SELECT命令的语法格式如下:(见书p128)
例4.3检索工资多于1230元的职工号。 Sele 职工号 from 职工 where 工资>1230

数据库第4章 SQL语言基础及数据定义功能

数据库第4章 SQL语言基础及数据定义功能

第4章SQL语言基础及数据定义功能用户使用数据库时需要对数据库进行各种各样的操作,如查询数据,添加、删除和修改数据,定义、修改数据模式等。

DBMS必须为用户提供相应的命令或语言,这就构成了用户和数据库的接口。

接口的好坏会直接影响用户对数据库的接受程度。

数据库所提供的语言一般局限于对数据库的操作,它不是完备的程序设计语言,也不能独立地用来编写应用程序。

SQL(Structured Query Language,结构化查询语言)是用户操作关系数据库的通用语言。

虽然叫结构化查询语言,而且查询操作确实是数据库中的主要操作,但并不是说SQL只支持查询操作,它实际上包含数据定义、数据查询、数据操作和数据控制等与数据库有关的全部功能。

SQL已经成为关系数据库的标准语言,所以现在所有的关系数据库管理系统都支持SQL。

本章将主要介绍SQL语言支持的数据类型以及定义基本表和索引的功能。

4.1 SQL语言概述SQL语言是操作关系数据库的标准语言,本节介绍SQL语言的发展过程、特点以及主要功能。

4.1.1 SQL语言的发展最早的SQL原型是IBM的研究人员在20世纪70年代开发的,该原型被命名为SEQUEL (Structured English QUEry Language)。

现在许多人仍将在这个原型之后推出的SQL语言发音为“sequel”,但根据ANSI SQL委员会的规定,其正式发音应该是“ess cue ell”。

随着SQL语言的颁布,各数据库厂商纷纷在其产品中引入并支持SQL语言,尽管绝大多数产品对SQL语言的支持大部分是相似的,但它们之间还是存在一定的差异,这些差异不利于初学者的学习。

因此,我们在本章介绍SQL时主要介绍标准的SQL语言,我们将其称为基本SQL。

从20世纪80年代以来,SQL就一直是关系数据库管理系统(RDBMS)的标准语言。

最早的SQL标准是1986年10月由美国ANSI(American National Standards Institute)颁布的。

北理工《实用数据库》期末考试精选题汇总【含答案解析】81

北理工《实用数据库》期末考试精选题汇总【含答案解析】81

《实用数据库》课程复习提纲第1章数据库系统概述本章要点掌握数据库最常用的术语和基本概念明确常用数据模型组成要素明确最常用的数据模型的区别及优缺点掌握数据库系统的三级模式结构了解数据库系统的组成具体内容1.在数据库方式下,信息处理中占据中心位置的是数据。

2.数据库在磁盘上的基本组织形式是文件。

3.DBS是指数据库系统。

4.数据库系统中,最早出现的数据模型是层次模型。

5.数据库技术的主要目的是有效地管理和存取大量的数据资源。

6.与“文件”结构相比,“数据库”结构有些什么不同?•数据的结构化。

文件由记录组成,但各文件之间缺乏联系。

数据库中数据在磁盘中仍以文件形式组织,但这些文件之间有着广泛的联系。

数据库的逻辑结构用数据模型来描述,整体结构化。

数据模型不仅描述数据本身的特点,还要描述数据之间的联系。

•数据独立性。

文件只有设备独立性,而数据库还具有逻辑独立性和物理独立性。

•访问数据的单位。

访问文件中的数据,以记录为单位。

访问数据库中的数据,以数据项(字段)为单位,增加了系统的灵活性。

第2章数据库设计本章要点•了解数据库设计的任务与步骤•了解需求分析阶段的任务•掌握实体-联系模型•掌握E-R图的概念及设计方法•掌握关系模型的概念•了解数据库的实施、使用与维护具体内容1.实体集的联系类型有如下3种类型:(1)一对一联系设有实体集A与实体集B,如果A中的一个实体,至多与B中的一个实体关联,反过来,B中的一个实体,至多与A中的一个实体关联,称A与B是“一对一”联系类型,记作(1:1)。

(2)一对多联系设有实体集A与实体集B,如果A中的一个实体,与B中可以有多个实体关联,反过来,B中的一个实体,至多与A中的一个实体关联,称A与B是“一对多”联系类型,记作(1∶n)。

(3)多对多联系设有实体集A与实体集B,如果A中的一个实体,与B中可以有多个实体关联,反过来,B中的一个实体,与A中可以有多个实体关联,称A与B是多对多联系类型,记作(m∶n)。

关系数据库查询语言SQL

关系数据库查询语言SQL

关系数据库查询语⾔SQL授课⽅式:以下所有的例⼦都在sql server 中进⾏现场调试其执⾏结果,或者让学⽣上讲台练习,让学⽣体会其具体的含义第四章关系数据库查询语⾔SQL(8学时)第1节关系数据库标准语⾔SQL ——查询部分⼀、SQL概述1.SQL标准SQL(Structured Query Language):结构化数据库查询语⾔。

SQL作为⼀个ANSI标准,现在最新的标准是SQL99!是介于关系代数和关系演算之间的结构化查询语⾔,功能包括数据查询(Data Query )、数据操纵(Data Manipulation)、数据定义(Data Definition)、数据控制(Data Control)2.SQL的特点1)综合统⼀SQL语⾔集数据定义语⾔DDL、数据操纵语⾔DML、数据控制语⾔DCL功能于⼀体,语⾔风格统⼀。

可独⽴完成数据库⽣命周期中的全部活动,包括:定义关系模式、建⽴数据库、插⼊数据、查询、更新、维护、数据库重构、数据库安全性控制等⼀系列操作要求,为数据库应⽤系统开发提供了良好的环境。

由于关系模型中实体间连续军⽤关系表⽰,这种数据结构单⼀性带来了数据操作的统⼀,查找、插⼊、删除、修改等每⼀种操作只需要⼀种操作符,从⽽克服了⾮关系系统由于信息表⽰⽅式多样性带来的操作复杂性。

2)⾼度⾮过程化SQL语⾔只要提出“做什么”,⽆须指明“怎么做”!!⽤户⽆须了解存取路径,存取路径的选择及SQL语句的操作过程由系统⾃动完成。

减轻了⽤户的负担,提⾼了数据独⽴性。

3)⾯向集合的操作⽅式Sql 语⾔采⽤集合操作⽅式,不仅操作对象、查询结果可以是元组集合,⽽且⼀次插⼊、删除、更新操作的对象可是元组的集合。

4)以同⼀种语法结构提供两种使⽤⽅式既是⾃含式语⾔,⼜是嵌⼊式语⾔。

⾃含式语⾔:能独⽴的⽤于联机交互的使⽤⽅式,⽤户可以在终端键盘上直接键⼊SQL 命令对数据库进⾏操作。

在SQL SERVER 2000种现场演⽰SQL语句的操作。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SQL命令动词
表4-1 SQL命令动词 SQL功能 数据查询 数据定义 数据操纵 数据控制 命令动词 SELECT CREATE、DROP 、ALTER INSERT、UPDATE、DELETE GRANT、REVOKE
Visual FoxPro程序设计(等级考试版)
4.2 查 询 功 能

4.2.4 嵌套查询 例:查询具有最高工资的职工的信息。 嵌套查询: SELECT * FROM zg WHERE 工资=; (SELECT MAX(工资) FROM zg) 结果显示如下图所示:
Visual FoxPro程序设计(等级考试版)
4.2.4 嵌套查询
思考:查询有职工的工资高于“E3”的工资的仓库的所
Visual FoxPro程序设计(等级考试版)
4.2.6 排序 SQL SELECT命令可以对查询结果进行排序,实现 排序的短语是ORDER 了BY,具体格式如下: ORDER BY Order_Item [ASC | DESC][,Order_Item [ASC |DESC]…]
ORDER BY短语中的每个Order_Item都必须对应查询 结果中的一列。
4.2.5 几个特殊运算符 例4.7 查询工资在1220~1270元之间的职工所有信息。
SELECT * FROM zg WHERE 工资 BETWEEN 1220 AND 1270
等价于 SELECT * FROM zg WHERE 工资>=1220 AND 工 资<=1270
Visual FoxPro程序设计(等级考试版)
例4.2 从zg关系中检索工资多于1220元的职工号。 SELECT 职工号 FROM zg WHERE 工资>1220 结果显示如图4-3所示:
图4-3 检索工资结果
Visual FoxPro程序设计(等级考试版)
例4.3 检索在仓库WH2或WH1工作,并且工资少于 1250元的职工的职工号。 SELECT 职工号 FROM zg WHERE (仓库号=“WH2” OR 仓库号=“WH1”) AND 工资<1250
4.2.5 几个特殊运算符 例: 在dgd关系中查询在2001年7月1日至7月31日之间签 订过订单的职工的职工号。 SELECT 职工号 FROM dgd WHERE 订购日期 BETWEEN {^2001-7-1} AND {^2001-7-31} 等价于 SELECT 职工号 FROM dgd WHERE 订购日期>= {^2001-7-1} AND 订购日期<={^2001-7-31}
Visual FoxPro程序设计(等级考试版)
4.2.3 简单的连接查询
例4.4 找出工作在面积大于340的仓库的职工的职工号 和职工所在的城市。
SELECT 职工号,城市 FROM ck,zg; WHERE ck.仓库号=zg.仓库号 AND 面积>340 结果显示如下图所示:
Visual FoxPro程序设计(等级考试版)
条件查询——由SELECT、FROM和WHERE短语构成 条件查询

SELECT select_Item FROM TableName WHERE FilterCondition
指定查 询条件
Visual FoxPro程序设计(等级考试版)
4.2.2 简单查询
例4.1 从zg关系中检索所有职工的工资值。
Visual FoxPro程序设计(等级考试版)
加入 DISTINCT 后的SELECT命令如下: SELECT DISTINCT 仓库号 FROM zg WHERE 工资>1210 结果显示如下图所示:
Visual FoxPro程序设计(等级考试版)
4.2.3 简单的连接查询

简单的连接查询是一类基于多个表的查询
思考:什么样的嵌套查询可以被转换为连接查询?
例:将“例4.5 查询哪些城市的仓库至少有一个职工工 资为1220元?”改用连接查询来做。
Visual FoxPro程序设计(等级考试版)
4.2.5 几个特殊运算符 SQL SELECT有如下几个特殊运算符: BETWEEN…AND——介于…和…之间,并且包括两 个边界值。

Visual FoxPro程序设计(等级考试版)
4.2.5 几个特殊运算符 例4.8 从gys关系中查询出全部公司的信息,不要工厂 和其他供应商的信息。 SELECT * FROM gys WHERE 订货商名 like “%公 司” 查询结果:
Visual FoxPro程序设计(等级考试版)
4.2.5 几个特殊运算符 例: 从学生关系中检索出所有王姓学生的信息。
在城市及其面积。
[ 参考答案 ]
注:2007年9月全国计算机等级考试二级(VFP)笔试 试卷第一大题——选择题,第(33)小题:“查询选 修课程号为‘101’的课程得分最高的同学”与此题类似。
Visual FoxPro程序设计(等级考试版)
附:嵌套查询与连接查询之间的转换 有些嵌套查询可以转换为连接查询,但也有一些嵌套 查询不能被转换为连接查询。
SQL是一种一体化的语言,它包含数据定义、数据 查询、数据操纵和数据控制等方面的功能,可以完成 数据库活动中的全部工作。

SQL是一种高度非过程化的语言


SQL非常简洁
SQL可以直接以命令方式交互使用,也可以嵌入到 程序设计语言中以程序方式使用。
Visual FoxPro程序设计(等级考试版)
4.2.4 嵌套查询 嵌套查询——在SQL中,可以将一个select查询语句嵌 入到另一个select查询语句中,这称为嵌套查询。

将内嵌的select语句称为子查询。
标准的SQL允许子查询可以嵌套多层,但在VFP中, 不允许多层嵌套,即子查询不能再嵌套了。 一般来说,当查询所要求的结果出自一个关系,但 查询条件却涉及多个关系时。例如,当检索关系X中的 元组时,它的条件依赖于相关的关系Y中的元组的属性 值,这时使用SQL的嵌套查询功能将非常方便。
第4章 关系型数据库标准语言 ——SQL
Visual FoxPro程序设计(等级考试版)
内容提要
4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 SQL概述 查询功能 操作功能 定义功能 典型例题解析 小型案例实训 本章小结 习题
Visual FoxPro程序设计(等级考试版)
4.1 SQL概述
Visual FoxPro程序设计(等级考试版)
4.2.4 嵌套查询 例4.6 查询和职工E4工资相同的所有职工的记录 嵌套查询: SELECT * FROM zg WHERE 工资=; (SELECT 工资 FROM zg WHERE 职工号=“E4”) 结果显示如下图所示:
Visual FoxPro程序设计(等级考试版)
查询是SQL的核心 SQL的查询命令——SELECT
SQL-SELECT命令可以从一个表或多个表或视图 中检索数据

Visual FoxPro程序设计(等级考试版)
4.2.1 创建SELECT命令
SELECT命令详解:
(略)
Visual FoxPro程序设计(等级考试版)
4.2.1 创建SELECT命令
Visual FoxPro程序设计(等级考试版)
4.2.4 嵌套查询 例4.5 查询哪些城市的仓库至少有一个职工工资为1220 元? 嵌套查询: SELECT 城市 FROM ck WHERE 仓库号 IN; (SELECT 仓库号 FROM zg WHERE 工资=1220)
结果显示如下图所示:
SQL——Structured Query Language(结构化查询语 言)的缩写

SQL目前已成为关系数据库的标准语言。
现在所有的关系型数据库管理系统都支持SQL, VFP也不例外。

SQL包含了数据定义、数据操纵和数据控制功能。
Visual FoxPro程序设计(等级考试版)
SQL的主要特点

LIKE——字符串匹配运算符 通配符 “%” 表示0个或多个字符
通配符 “_”(下划线)表示一个字符(可以是一个 ASCII码字符,也可以是一个汉字字符)。
!= ——在SQL中“不等于”用“!=”表示,另外还可 以用否定运算符 NOT 写出等价的命令。

Visual FoxPro程序设计(等级考试版)


排序的顺序可以是升序(ASC)或降序(DESC)
可以按一列或多列排序,当指定多列排序时,各列列 名之间用“,”分隔。
Visual FoxPro程序设计(等级考试版)
4.2.6 排序 例4.9 查找出zg表中所有职工的信息并将结果按工资升 序排序。
SELECT * FROM zg ORDER BY 工资
可以在以下3个区域中创建SELECT命令: 在命令窗口中 在VFP程序中 在查询设计器中
Visual FoxPro程序设计(等级考试版)
4.2.2 简单查询
简单查询——是针对单个表的查询


查询仅涉及一个表,是一种最简单的查询。
无条件查——由SELECT和FROM短语构成无条件查询 SELECT select_Item FROM TableName
SELECT 工资 FROM zg 结果显示如图4-2所示:
图4-2 检索所有的工资值
Visual FoxPro程序设计(等级考试版)
例:检索zg关系的所有元组。 SELECT 仓库号,职工号,工资 FROM zg 或 SELECT * FROM zg 查询结果:
Visual FoxPro程序设计(等级考试版)

SELECT * FROM zg ORDER BY 工资 ASC
查询结果:
相关文档
最新文档