第4章 结构化查询语言SQL(Structured Query Language).
第4章结构化查询语言SQL

第4章结构化查询语言SQLSQL(Structured Query Language)是一种用于管理和操作关系型数据库的语言。
它提供了一种简单而强大的方式来查询、插入、更新和删除数据库中的数据。
结构化查询语言SQL被广泛用于开发Web应用程序、管理企业数据库以及进行数据分析。
SQL的基本功能包括:1.数据查询:使用SELECT语句可以从数据库中检索数据。
SELECT语句可以指定要检索的列、要查询的表以及条件,并可以对检索结果进行排序和分组。
例如,可以使用以下SQL语句从"users"表中查询所有名字为"John"的用户:SELECT * FROM users WHERE name = 'John';2.数据插入:使用INSERT语句可以向数据库中插入新的数据。
INSERT语句可以指定要插入的表、要插入的列以及要插入的值。
例如,可以使用以下SQL语句将一个新的用户插入"users"表中:INSERT INTO users (name, age) VALUES ('John', 25);3.数据更新:使用UPDATE语句可以更新数据库中的现有数据。
UPDATE语句可以指定要更新的表、要更新的列以及新的值,还可以使用条件来确定要更新的数据行。
例如,可以使用以下SQL语句将"users"表中名字为"John"的用户的年龄更新为30:UPDATE users SET age = 30 WHERE name = 'John';4.数据删除:使用DELETE语句可以从数据库中删除数据。
DELETE语句可以指定要删除的表以及要删除的数据行的条件。
例如,可以使用以下SQL语句删除"users"表中名字为"John"的用户:DELETE FROM users WHERE name = 'John';SQL还提供了其他一些高级功能,例如聚合函数、连接查询、子查询、排序和分组等。
第四章结构化查询语言SQL

第四章 结构化查询语言——SQL
2、修改表结构
语句格式:
ALTER TABLE [<数据库名>. <所有者名>.]<基 本表名>{ADD<列定义>,…| ADD<表级完整 性约束>,…|DROP COLUMN<列名 >,…|DROP<约束名>,… }
语句说明:
❖由关键字可大体了解语句的含义; ❖用户给定的标识符由汉字、英文字母、
数字等组成的一串字符;
❖语句中英文字母不区分大小写 ❖每条SQL语句都可单独作为命令来使用,
又称SQL命令。 ❖该语句执行后,可用“USE<数据库名>”
语句把该数据库置为当前数据库。进行 操作时,在不指定的情况下默认是对当 前数据库的。
一般比较式:比较两个同类型的表达式的值, 属于单值与单值的比较;
第四章 结构化查询语言——SQL
专门比较式:又称判断式,单值与集合(多值)、 单值与一个取值范围的比较及对一个集合是否 为空的判断。常用的如下六种格式:
1.<列名><比较符>ALL<子查询> 当子查询(一条完整的SELECT语句)结果中的
3、删除记录: 语句格式: DELETE[FROM][<数据库名>. <所有者名
>.]<目的表名> [FROM=<源表名 >,…][WHERE<逻辑表达式>] 功能: 删除一个表中满足条件的所有行。 语句说明:P81
第四章 结构化查询语言——SQL
四、视图的建立、修改和删除
第4章_结构化查询语言SQL-6学时

说明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

二、SQL数据库的体系结构
SQL支持数据库的三级模式结构,如图4―1所示。从图中可以看出,模式与基 本表相对应,外模式与视图相对应,内模式对应于存储文件。基本表和视图都 是关系。
1.基本表(Base Table) 基本表是模式的基本内容。每个基本表都是一个实际存在的关系。
SQ L用 户
SQ L用 户
基本表 1
视图 1 基本表 2
视图 2
外 模式
基本表 3
模式
存 储文 件1
存 储文 件2
存 储文 件3 内 模式
图4―1 SQL支持的数据库模式
二、SQL数据库的体系结构
2.视图(View) 视图是外模式的基本单位,用户通过视图使用数据库中基于基本表的数据(基本表也可作
为外模式使用)。 视图是虚表,实际并不存在,只有定义存放在数据字典中。
学会关系数据库规范设计的方法和步骤;
了解数据库系统的实现技术;
具备使用关系数据库软件开发数据库应用
系统的能力 。
《数据库原理一》课堂教学+研讨(30学时)内容及安排:
第四章 结构化查询语言SQL (12学时)
第一章 数据库发展史
(3学时)
第二章 数据库系统结构 (3学时)
第六章 实体联系模型
2. 确定范围:列名 [NOT] BETWEEN <下限> AND <上限>
例: 查询年龄在20到25之间的学生姓名
3. 确定集合:列名 [NOT] IN(<值序列>
例: 查询选择了c1、c4、c6课号的学生学号和成绩
4. 涉及空值的查询:列名 IS [NOT] NULL
例:列出所有成绩为空的学生学号
SELECT语句中:
第4章 结构化查询语言SQL

4.2.2 定义视图
1.视图的建立 (1)从单个表派生的视图 (2)从多个表派生的视图 2.视图的删除 视图由于是从表中派生出来的,所以不存在修改结 构的问题,但是视图可以删除。
第4章 结构化查询语言SQL
SQL查询功能 4.3 SQL查询功能
SQL查询命令 4.3.1 SQL查询命令
标准SQL基本查询命令: 命令格式:
第4章 结构化查询语言SQL
4.3.4 嵌套查询
嵌套查询是指在SELECT-FROM-WHERE查询模块内部再 嵌入另一个查询模块,称之为子查询。嵌套查询只能对 外层查询排序,不能对内层查询排序。集合成员资格的 比较操作的形式如下:
(集合1)IN(集合2):用于指出包含在子查询模块的查询结果中。 (集合1)NOT IN(集合2):用于指出不包含在子查询模块的查询结果 中。
第4章 结构化查询语言SQL
③VALUES(<表达式1>[,<表达式2>,...]): 指定新记录中字段的值。如果省略了字段名,那么 必须以表结构中字段的顺序指定字段值。 ④FROM ARRAY<数组名>: 将指定一维数组中的元素值插入到新记录中。 ⑤FROMMEMVAR: 将内存中与字段名相同的内存变量的值插入到新记 录的字段中。如果与字段同名的内存变量不存在,该字 段则保持为默认值或空。
4.4.3 修改
命令格式: UPDATE<表名> SET<字段名1>=<表达式1>[,<字段名2>=<表达式 2>...] WHERE<条件>
第4章 结构化查询语言SQL
功能: 用指定的表达式值,更新表中相应记录的字段值。 说明: ①SET<字段名1>=<表达式1>[,<字段名2>=<表达 式2>...]: 指定要改写的字段名和相应的新值。 ②WHERE<条件>: 只有满足条件的记录中相应字段值才会被改写。可 以指定多个条件,各个条件之间用AND或OR连接。
第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 数据查询

1.简单查询
简单查询由Select 和From短语构成(无条件 查询)或由Select、From和where 短语构成 (条件查询)。 例4.11 从职工关系中检索仓库WH2的所有 员工的工资。 Select 工资 from 职工 where 仓库号 =”WH2”
去掉重复值
6.分组与计算查询
利用group by 子句进行分组计算查询使用 得非常广泛。可以按一列或多列分组,还 可以用having进一步限定分组的条件。
例4.19 求各仓库职工的平均工资。 Select 仓库号,avg(工资) as 平均工资 from 职工 group by 仓库号
例4.20求至少有两个职工的各仓库的平均工资。
Select count(*) as 人数,sum(工资) as 工资合计,avg(工资) as 平均工资, Max(工 资) as 最高工资,min(工资) as 最低工资 From 职 工 where 仓库号=“WH2” 注:as 之后的名称用来代替表达式作为查 询结果的列名
第4部分结构化查询 语言SQL
Structured Query Language
4.3 查询功能
SQL的核心是查询。SQL是查询命令是Select命 令,Visual FoxPro 的SQL Select 命令的常用语 法格式如下: Select …… From …… [where ……] [group by……][having……] [union [all]……] [order by ……]
这里由于没有使用 Distinct,所以不会去掉 结果中的重复值。如果要去掉重复值只需 要指定Distinct短语: Select Distinct 工资 from 职工
第4章 结构化查询语言SQL

课程号CNO 1 2 3 2 3
成绩GRADE 92 85 88 90 80
2013-5-16
12
SQL的数据定义(3)
课程号CNO 1 2 3 4 5 6 7 课程名CNAME 数据库 数学 信息系统 操作系统 数据结构 数据处理 C语言 表程表实例 先修课CPNO 5 1 6 7 6 学分CCREDIT 4 2 4 3 4 2 4
表
索引 视图
CREATE TABLE
CREATE INDEX CREATE VIEW
DROP TABLE
DROP INDEX DROP VIEW
ALTER TABLE
2013-5-16
11
SQL的数据定义(2)
例4.1 定义一个教务管理数据库JWGL,它包含3个表: 学生表:S(SNO,SNAME,SEX,AGE,SDEPT) 课程表:C(CNO,CNAME,CPNO,CCREDIT) 学生选课表:SC(SNO,CNO,GRADE)
2013-5-16
3
本章难点
(1)对SELECT查询语句的理解。
(2)对视图更新操作的限制。 (3)涉及游标的SQL DML的使用方式。
2013-5-16
4
本章概述
结构化查询语言SQL(Structured Query Language)是关系数据库 的标准语言,对关系模型的发展和商用DBMS的研制起着重要的作用。SQL语 言是介乎于关系代数和元组演算之间的一种语言。本章详细介绍SQL的核心 部分内容:数据定义、数据查询、数据更新和嵌入式SQL。
2013-5-16
17
定义、修改与删除基本表(3)
例4.2 建立一个“学生”表S。 CREATE TABLE S (SNO CHAR(9) PRIMARY KEY, /* 列级完整性约束条件,SNO
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学生
课程
学生号
姓名
性别 专业
0101001 王明 0102005 刘芹
0202003 张鲁 0303001 赵红 0304006 刘川 0501001 张江 0502003 沈艳
男 女
男 女 男 男 女
计算机 电子
电子 电气 通信 通信 电子
课程 课程名 号 C001 C++语言
课程 学分 4
C004 操作系统 3
E002 电子技术 5 X003 信号原理 4
X005 软件工程 4
选课
学生号 0101001 0101001 0102005 0202003 0202003 0202003 0303001 0304006
课程号 C001 C004 E002 C001 C004 X003 C001 E002
成绩 78 62 73 94 65 80 76 72
商品表1
商品代号 DBX-134 DSJ-120 DSJ-180 DSJ-340 KTQ-12 WBL-6 XYJ-13 XYJ-20 分类名 电冰箱 电视机 电视机 电视机 空调器 微波炉 洗衣机 洗衣机 单价 1456 1865 2073 3726 2800 640 468 873 数量 8 15 10 5 12 10 20 12
第4章 结构化查询语言
SQL(Structured Query Language)
SQL简介
• 定义: SQL是Structured Query Language的缩写,是美国国家标准局 (ANSI)从1986年首次推出的一种 关系数据库语言。相继的版本SQL86、 SQL89、 SQL2和SQL3。 • 功能:数据定义(DDL)、数据操纵 (DML)和数据控制(DCL)
2、select x.*, 品牌 from 商品表1 x inner join 商品表2 y on x.商品代号=y.商品代号 where 数量<all (select 数量 from 商品表1 where 分类名=‘洗衣机’ or分类名=‘微 波炉’ )
4.1 数据库模式的建立和删除
• 建立数据库 • 删除数据库
4.2 表结构的建立与删除
• 建立表结构 • 修改表结构 • 删除表结构
4.3 表内容的插入、修改和删除
• 插入记录 • 修改记录 • 删除记录
4.4 视图的建立、修改和删除
• • • • 建立视图 修改视图内容 修改视图定义 删除视图
从商品表1中查询出不同分类名的个数。
例4-8
从商品表1中查询出所有商品的最大数量、最小数量、平均数量及 数量总合。
例4-9
从商品表1中查询出分类名为“电视机”的商品的种数、最高价、 最低价及平均价。
例4-10
从商品表1中查询出所有商品的最高价值、最低价值及总价值。
• 4.5.3 from 选项 from 表名 功能:凡是SQL语句涉及到的源表全部需 要在这里罗列出来。可以给更改表名。
例4-12、
从商品表1总查询出单价大于1500,同时数量大于等于 10的商品。
例4-13
从商品库中查询出产地为南京或无锡的所有商品的商 品代号、分类名、产地和品牌。
例4-14
从教学库中查询出选修至少两门课程的学生学号。
例4-15
从教学库中查询出选修了课程名为“操作系统”课程 的每个学生的姓名。
• 新版SQL:为了使查询语句更加结构化,已经把 查询连接条件从where选项中转移到from选项中, 并且还丰富了连接的功能。(左连接、右连接) 中间连接: from <表名1> inner join <表名2> on < 表名1>.<连接列名1> <比较符> <表名2>.<连接 列名2> 左连接: from <表名1> left[outer] join <表名2> on <表名1>.<连接列名1> <比较符> <表名2>.<连接 列名2> 右连接: from <表名1> right[outer] join <表名2> on <表名1>.<连接列名1> <比较符> <表名2>.< 连接列名2>
例4-16
1)从教学库中查询出所有学生的 选课情况,要求没选修任何课程 的学生信息也要反映出来。 2)查询出所有课程被学生选修的 情况。 3)查询出所有电子专业的学生选 课的全部情况。
格式一
• 〈列名〉〈比较符〉ALL(〈子查询〉) 当子查询的查询结果中的每一个都满足所 给的比较条件时,此比较式的值才为真, 否则为假。 1、select * 子查询 from 商品表1 where 单价>all (select 单价 from 商品表1 where 分类名=‘洗衣机’)
4.5 SQL查询
• 4.5.1 语句格式
Select [ALL|DISTINCT] <表达式1>[[AS]<列名1>][,| <表达式2>[[AS]<列名2> …
[ INTO ] from [where ..] [Group by..] [Having..] [Order by..]
•
4.5.2 Select 选项
商品表2
商品代号 DBX-134 DSJ-120 DSJ-180 DSJ-340 KTQ-12 WBL-6 XYJ-13 XYJ-20 产地 北京 南京 南京 北京 无锡 青岛 无锡 山西 品牌 雪花 熊猫 熊猫 牡丹 春兰 海信 小天鹅 海棠
例4-1
从商品表1中查询出每种商品的分类名。
例4- 2
例4-11
从教学库中查询出每个学生 选修每门课程的学生号、姓名、 课程号、课程名、成绩数据。
• 4.5.4 where 选项 where 条件 功能:1、包含筛选条件 (可以有多个筛选 条件,之间用AND,OR,NOT连接。) 。 2、指定源表之间的连接条件(如果多 于一个源表)。自然连接(=)、不等值连 接(<,<=,>,>=,<>)。 3、1和2之间用AND连接。
从商品表1中查询出所有商品的不同分类名。
例4- 3 例4- 4
从商品表1中查询出单价低于2000元的每一种产品的 商品代号、分类名和单价。
从商品表1中查询出分类名为“电视机”的所有商品。
例4-5从商品表1中查询来自每一种商品的价值。例4-6
从商品表1和商品表2中查询出按商品代号进行自然连接的结果。
例4-7