第4章%20SQL语言3

合集下载

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

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

4.2.8 利用空值查询
SQL支持空值,当然也可以利用空值进 行查询。 假设在订购单关系中,一名职工正在准 备订购单,但尚未选定供应商,这样若把信 息存入数据库,则供应商号和订购日期两个 属性均为空值,在前面给出的订购单记录中 有3个这样的记录。
例4.23 找出尚未确定供应商的订购单。 SELE * FROM 订购单 WHER 供应商号IS NULL 结果是: E6 NUIL OR77 NULI E1 NULL OR80 NUIJL E3 NUIJL OR90 NUI„L 注意:查询空值时要使用IS NULL,而= NULL是无效的,因为空值不是一个确定的 值,所以不能用“=”这样的运算符进行比较。
例4.20 求在WH2仓库工作的职工的最高工资值。
SELECT MAX(工资) FROM 职工 WHERE 仓库号=”WH2”
4.2.7 分组与计算查询
利用GROUP BY子句进行分组计算查询。 GROUP BY短语的格式如下: Group by 字段名 having 条件 可以按一列或多列分组,还可以用HAVING 进一步限定分组的条件。 例4.21 求每个仓库的职工的平均工资。 SELECT 仓库号,AVG(工资) FROM 职工 GROUP BY 仓库号
可以看到,在这个命令中含有两个 SELECT—FROM—WHERE查询块,即内 层查询块和外层查询块,内层查询块检索 到的仓库号值是WHl和WH2,这样就可以 写出等价的命令: SELE 城市 FROM 仓库 WHERE 仓库号; IN(”WHl”,”WH2”) 这里IN相当于集合运算符∈。
例4.9查询所有职工的工资都多于1210元的仓 库的信息。 这个检索要求也可以描述为:没有一个职工的工 资少于或等于1210元的仓库的信息。 不在以下范围 这样可以有SQL命令: SELE * FROM 仓库 WHER 仓库号 NOT IN; (SELECT 仓库号 FROM 职工 WHERE ; 工资<=1210) 内层SELECT—FROM—WHERE查询块指出所 有职工的工资少于或等于1210元的仓库的仓库号值 的集合,然后从仓库关系中检索元组的仓库号属性 值不在该集合中的每个元组。

关系数据库标准语言SQL

关系数据库标准语言SQL
该系统将待传输的数字电信号直接在光源的发光过程中 进行调制,使光源发出的光本身就是已调制光,又称为 内调制光纤通信系统。目前广泛采用。
(2)外调制光纤通信系统
该系统是在光源发出光之后,在光的输出通路上加调制 器(如电光晶体等)进行调制,又称为间接调制光纤通 信系统。
(3)外差光纤通信系统
该系统又称为相干光通信系统。在研制中。
SQL
视图1
视图2
外模式
基本表1
基本表2
存储文件1
基本表3
基本表4 模 式
存储文件2
内模式
4.2 网上书店数据库
为此定义网上书店数据库,其中包括5个表 用户表:USER1(ID,NAME,PASSWORD,ADDRESS,
POSTCODE,EMAIL,HOMEPHONE,CELLPHONE, OFFICEPHONE) 图书类型表:SORTKIND(ID,NAME) 图书表:PRODUCT(ID,NAME,DESCRIPTION, PRICE,IMG,ZUOZHE,SORTKIND_ID) 订单表:USER1_ORDER(ID,STATUS,COST,DATE, USER1_ID) 订单条目表:ORDER_ITERM(ID,AMOUNT, PRODUCT_ID,ORDER_ID) 关系的主码加下划线表示。
第4章 关系数据库标准语言SQL
本章主要内容
由于SQL语言的标准化,所以大多数关系型数据库系 统都支持SQL语言,它已经发展成为多种平台进行交 互操作的底层会话语言,成为数据库领域中一个主 流语言。这一章将详细介绍SQL的核心部分:数据定 义、数据查询、数据更新和嵌入式SQL。
本章学习目标
熟练掌握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提出

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

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)颁布的。

数据库应用第4章 SQL复杂查询

数据库应用第4章 SQL复杂查询

连接的分类
连接分为4种类型:内连接,外连接, 连接分为 种类型:内连接,外连接, 种类型 交叉连接,自然连接。 交叉连接,自然连接。 内连接:使用关键字inner,仅显示两个 内连接:使用关键字 , 连接表中匹配的行, 可以省略。 连接表中匹配的行,inner可以省略。 可以省略 外连接:使用关键字outer,有左外连接、 外连接:使用关键字 ,有左外连接、 右外连接和完全外连接三种。 右外连接和完全外连接三种。
左外连接:left outer,结果集中包含左 左外连接: , 表中所有行及右表中匹配的行。 表中所有行及右表中匹配的行。 右外连接: 右外连接:right outer,结果集中包含 , 右表中所有行及左表中匹配的行。 右表中所有行及左表中匹配的行。 完全外连接: 完全外连接:full outer,结果集中包括 , 连接表中的所有行,不管它们是否匹配。 连接表中的所有行,不管它们是否匹配。
use xscj 学号,姓名,专业名, select 学号,姓名,专业名,总学分 into communication_xs from xs 专业名='通信工程' ='通信工程 where 专业名='通信工程'
Exe3:在xscj数据库中, Exe3:在xscj数据库中,查询选修了 数据库中 101号课程 成绩大于等于80 号课程, 80分的计 101号课程,成绩大于等于80分的计 算机专业的学生情况, 算机专业的学生情况,并将查询结 果放入xs_101表中。 xs_101表中 果放入xs_101表中。
MAX: MAX:求最大值 MIN: MIN:求最小值 SUM: SUM:求和 求选修101 101课程的学生平均成绩 例4-8 求选修101课程的学生平均成绩

第4章结构化查询语言SQL

第4章结构化查询语言SQL

第4章结构化查询语言SQL学习目标在本章中将学习:l SQL语言的特点及功能l SQL的数据查询功能l SQL的数据操作功能l SQL的数据定义功能4.1SQL语言概述SQL全称是“结构化查询语言(Structured Query Language)”,最早是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。

SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言得到了广泛的应用。

如今无论是Oracle,Sybase,Informix,SQL server这些大型的数据库管理系统,还是像Visual FoxPro,PowerBuilder这些微机上常用的数据库开发系统,都支持SQL语言作为查询语言。

4.1.1 SQL语言的特点1.综合统一SQL语言集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体,语言风格统一,可以独立完成数据库生命周期中的全部活动,包括定义关系模式、录入数据以建立数据库、查询、更新、维护、数据库重构、数据库安全性控制等一系列操作要求,这就为数据库应用系统开发提供了良好的环境。

在关系模型中实体和实体间的联系均用关系表示,这种数据结构的单一性带来了数据操作符的统一。

2.非过程化语言SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。

所有SQL语句接受集合作为输入,返回集合作为输出。

SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。

SQL不要求用户指定对数据的存放方法。

这种特性使用户更易集中精力于要得到的结果。

所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段。

3.面向集合的操作方式SQL语言采用集合操作方式,不仅查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。

SQL教程(四)

SQL教程(四)
9/38 9
数据查询-空行常量列 数据查询 空行常量列
查询空行 SELECT SName FROM Students WHERE SEmail IS NULL
思考:非空行怎么查?
使用常量列 SELECT 姓名=SName,地址= SAddress,'河北新龙' AS 学校 名称 FROM Students
7/38
7
数据查询-基础 数据查询 基础
查询全部的行和列 SELECT * FROM Students 查询部分行 SELECT SCode,SName,SAddress FROM Students WHERE SAddress = '河南新乡' SELECT SCode,SName,SAddress FROM Students WHERE SAddress <> '河南新乡'
2/38
2
目标
理解查询的机制 使用SELECT语句进行条件查询 使用 语句进行条件查询 在查询中返回限制行, 在查询中返回限制行,进行查询排序 在查询中使用表达式, 在查询中使用表达式,运算符和函数
3/38
3
什么是查询? 什么是查询?
SELECT * FROM SALES
查询请求 查询结果集 Application Logic SQL SERVER
17/38 17
系统函数
函数名 CONVERT 描述 用来转变数据类型 举例 SELECT CONVERT (VARCHAR (5), 12345) 返回:字符串12345 SELECT CURRENT_USER 返回:你登录的用户名 SELECT DATALENGTH ('中国A盟') 返回:7 SELECT HOST_NAME() 返回:你所登录的计算机的名字 SELECT SYSTEM_USER 返回:你当前所登录的用户名 SELECT USER_NAME(1) 返回:从任意数据库中返回"dbo"
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SQL的数据查询 4.3 SQL的数据查询
语句完整的句法: SELECT 语句完整的句法:
列名表(逗号隔开) SELECT 列名表(逗号隔开) FROM 基本表或视图序列 条件表达式] (此为和条件子句 此为和条件子句) [WHERE 条件表达式] (此为和条件子句) 列名序列] (分组子句 分组子句) [GROUP BY 列名序列] (分组子句) 组条件表达式] (组条件子句 组条件子句) [HAVING 组条件表达式] (组条件子句) BY列名 列名[ASC|DESC]..] (排序子句 排序子句) [ORDER BY列名[ASC|DESC]..] (排序子句)
北京交通大学
计算机与信息技术学院 许宏丽
83 - 10
例6:查询选修了课程但没参加考试的学 生的学号和姓名。 生的学号和姓名。
select s.sno,sn s, from s,sc where s.sno=sc.sno and g is null
北京交通大学
计算机与信息技术学院 许宏丽
83 - 11
测试满足条件的工资是否有重复数据。 测试满足条件的工资是否有重复数据。
北京交通大学
计算机与信息技术学院 许宏丽
83 - 18
ALL/ANY
• 与某个数据集中所有数据/任何一个进行比较。 与某个数据集中所有数据/任何一个进行比较。 • WHERE salary > all (SELECT salary FROM employee_tbl INDIAN’) WHERE city = ‘INDIAN ) INDIAN
SQL的数据查询 4.3 SQL的数据查询
SQL数据查询基本结构 SQL数据查询基本结构 select子句 select子句 重复元组的处理฀ from子句 重复元组的处理฀ from子句 where子句 where子句 更名运算 字符串操作 元组显示顺序
北京交通大学 计算机与信息技术学院 许宏丽 83 - 2
北京交通大学
计算机与信息技术学院 许宏丽
83 - 22
语法: 语法:
COUNT( NAME) COUNT((*)|(DISTINCT|ALL|]COLUMN NAME)) SUM( SUM( [DISTINCT] COLUMN NAME ) AVG( [DISTINCT] COLUMN NAME ) AVG( MAX( MAX( [DISTINCT] COLUMN NAME ) MIN( MIN( [DISTINCT] COLUMN NAME )
计算机与信息技术学院 许宏丽
83 - 9
select sno,sn from s where age not between 17 and 18 order by age
所表达的含义为:查询所有年龄小于17或大于 所表达的含义为:查询所有年龄小于17或大于 17 18岁的学生的学号和姓名 并按年龄升序排列。 岁的学生的学号和姓名, 18岁的学生的学号和姓名,并按年龄升序排列。 其中不包括年龄等于17或等于18岁的学生。 17或等于18岁的学生 其中不包括年龄等于17或等于18岁的学生。
北京交通大学
计算机与信息技术学院 许宏丽
83 - 6
查询所有女生的学号、姓名和年龄。 例2:查询所有女生的学号、姓名和年龄。 select sno,sn,age from s sex=‘F ; where sex= F’; 例3:查询所有年龄大于18岁的女生的学号和 查询所有年龄大于18岁的女生的学号和 18 姓名。 姓名。 select sn,sno from s sex=‘F ; where age>18 and sex= F’;
83 - 8
查询所有年龄在17 18岁之间的学生的 17到 例5:查询所有年龄在17到18岁之间的学生的 学号和姓名,并按年龄升序排列。 学号和姓名,并按年龄升序排列。
select sno,sn from s where age between 17 and 18 order by age
北京交通大学
注意比较双方的数据类型要一致。
北京交通大学
计算机与信息技术学院 许宏丽
83 - 12
3、逻辑操作符
• IS NULL(是否为空) NULL(是否为空) • BETWEEN(在某两个值之间) BETWEEN(在某两个值之间) • IN(一系列值中) IN(一系列值中) • LIKE(相似值的比较) LIKE(相似值的比较) • EXITS(是否存在符合条件的数据) EXITS(是否存在符合条件的数据) • UNIQUE(是否唯一) UNIQUE(是否唯一) • ALL/ANY(一组数据的所有/其中的任何一个) ALL/ANY(一组数据的所有/其中的任何一个) • AND/OR(逻辑与/或) AND/OR(逻辑与/
关系数据库SQL SQL语言 第4章 关系数据库SQL语言
4.1 4.2 4.3 4.4 4.5 SQL概述 SQL概述 SQL的数据定义 SQL的数据定义 SQL的数据查询 SQL的数据查询 SQL的数据更新 SQL的数据更新 嵌入式SQL 嵌入式SQL
北京交通大学
计算机与信息技术学院 许宏丽
83 - 1
北京交通大学
计算机与信息技术学院 许宏丽
83 - 19
AND/OR
• AND连接的条件必须都满足。 AND连接的条件必须都满足 连接的条件必须都满足。 • OR连接的条件至少满足一个。 OR连接的条件至少满足一个 连接的条件至少满足一个。 如:SELECT * FROM products_tbl WHERE cost > 10 and cost < 30 如:SELECT * FROM products_tbl WHERE prod_id = ‘7725 7725’ 7725 2345’ or prod_id = ‘2345 2345
北京交通大学 计算机与信息技术学院 许宏丽 83 - 7
查询所有姓赵的学生的学号和姓名, 例4:查询所有姓赵的学生的学号和姓名, 并按年龄升序排列。 并按年龄升序排列。
select sno,sn from s where sn like ‘赵%’ 赵 order by age
北京交通大学
计算机与信息技术学院 许宏丽
查找‘00’作为后两位数的值。 查找‘00’作为后两位数的值。 作为后两位数的值
WHERE salary LIKE
‘200% 200%’ 200%
查找‘200’作为前三位数的值。 查找‘200’作为前三位数的值。 作为前三位数的值
北京交通大学
计算机与信息技术学院 许宏丽
83 - 16
EXISTS
• 查询在指定表中是否存在一行符合某种条件 的数据。 的数据。 • WHERE EXISTS (SELECT employee_id FROM employee_tbl 3333’) WHERE employee_id = ‘3333 ) 3333
注意: DISTINCT统计唯一的行 统计唯一的行; 注意: DISTINCT统计唯一的行; DISTINCT不能用于COUNT( ),只能用于COUNT(column_name) 不能用于COUNT 只能用于COUNT DISTINCT不能用于COUNT(*),只能用于COUNT(column_name) AVG,SUM仅用于数字类型
北京交通大学
计算机与信息技术学院 许宏丽
83 - 23
例:表DTUDENT_TBL
s_id 9810021 9820201 9810089 9820067 9810125 name 王明 李春 赵芳 顾青 雷蕾 maths 67 56 78 53 80 comp 80 72 90 58 69 total 147 128 168 111 149
▲分类
1)单表查询 2)多表查询 A.连接查询 A.连接查询 B.子查询 B.子查询 ①一般子查询
②相关子查询
北京交通大学
计算机与信息技术学院 许宏丽
83 - 5
一、单表查询
例1:查看所有学生信息 select sno,sn,age,sex s; from s;
或:
select * s; from s;
Order of the clauses cannot be changed. Only SELECT and FROM are mandatory.
北京交通大学
计算机与信息技术学院 许宏丽
83 - 4
▲功能
SELECT用于检索和统计数据(结果:产生一个新表) SELECT用于检索和统计数据(结果:产生一个新表)。 用于检索和统计数据 功能:检索、 功能:检索、统计 使用方式:交互式使用、 使用方式:交互式使用、嵌入式使用
பைடு நூலகம்
北京交通大学
计算机与信息技术学院 许宏丽
83 - 20
三.库函数
函数通常是列名或表达式相连系的命令。 函数通常是列名或表达式相连系的命令。 1、统计函数 2、字符函数 3、算术函数
北京交通大学
计算机与信息技术学院 许宏丽
83 - 21
1、统计函数
• 统计函数:用于提供统计信息,如:累加、 统计函数:用于提供统计信息, 累加、 总和、平均值。 总和、平均值。 • 主要的统计函数: 主要的统计函数: • COUNT:统计行数或不为NULL的列数。 COUNT:统计行数或不为NULL的列数。 NULL的列数 • SUM:求和。 SUM:求和。 • MAX:求最大值。 MAX:求最大值。 • MIN:求最小值。 MIN:求最小值。 • AVG:求平均值。 AVG:求平均值。
北京交通大学
计算机与信息技术学院 许宏丽
83 - 13
IS NULL / IS NOT NULL
• WHERE salary IS NULL 工资为空值。 • WHERE salary = NULL
相关文档
最新文档