第四章-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概述

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

数据库应用第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 空间查询语言

4 空间查询语言

SQL:数据查询语言DQL
总结
SELECT语句充分体现了SQL语言的特征 非过程化:仅需要指明查询结果所符合的条件,而不需要 指定如何得到查询结果 面向集合:可以对整个元组集合进行操作,而不需要枚举 和以某种次序遍历集合中的每个元组
SQL:数据操纵语言DML
SQL语言中数据操纵语句包括
C c1 c2
a2
a1
b2
b3
c1
c2
关系代数
交(Intersection) 既属于R又属于S的元组组成的集合。 R∩S SELECT A,B,C FROM R WHERE IN ( SELECT A,B,C FROM S);
A a1 a2 B b2 b2 C c2 c1
关系代数
差(Difference)
order by <列名> [asc|desc]{,<列名> [asc|desc]}
输出结果关系按照order by子句中指定的输出属性列来排序,可以依次指定多个排 序属性列
条件表达式构成
包含各属性列和运算函数,以及用于各种数据类型值的比较符 用逻辑联结词(NOT、AND、OR)联结表达式项,形成更加复杂的复合条件
SQL:数据定义语言DDL
操作方式 操作对象 创建
基本表Table CREATE TABLE CREATE VIEW CREATE INDEX
删除
DROP TABLE DROP VIEW DROP INDEX
修改
ALTER TABLE
视图View
索引Index
SQL:数据定义语言DDL
SQL中,任何时候都可以执行一个数据定义语句,随 时修改数据库结构。数据库定义随时修改,不必一开 始就完全合理。

关系数据库查询语言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语句的操作。

第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语言采用集合操作方式,不仅查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。

第4章 标准查询语言SQL

第4章 标准查询语言SQL
(TNO CHAR(4) NOT NULL, TN CHAR(8) NOT NULL, SEX CHAR(2) NOT NULL CHECK(SEX IN('男','女')), AGE INT NOT NULL CHECK(AGE>18), ZC CHAR(10), DEPT VARCHAR(12), PRIMARY KEY(TNO)) (应在实际环境中演示)
(2)<列名>:规定了该列(属性)的名称。一个表中不能有两列同名。 (3)<数据类型>:规定了该列的数据类型。各具体DBMS所提供的数据类型是不同的; 本书使用的是SQL Server 2005中规定的数据类型。 (4)完整性约束:完整性约束规则在该命令中较为复杂,为了学习方便,没有把命令 的全部内容一次写出来,这里主要用到下列三类子句:
SQL语言的主பைடு நூலகம்特点
(2)高度非过程化。 SQL语言与各种关系数据库DBMS中的语言一样是一 种高度非过程化语言。使用时,只要指明“做什么?” 不必像高级语言那样指明“怎样做?”,因此用户无 需了解文件与数据的存取路径,这种存取路径的SQL 语句的操作过程是由系统自动来完成。这不仅大大减 轻了编程人员的负担,还有利于提高数据的独立性。
定义数据库内基本表
实例说明: (1)“教师”表:T,由教师编号(TNO)、姓名(TN)、性别(SEX)、 年龄(AGE)、职称(ZC)和所在专业(DEPT)6个属性组成。可记为: T(TNO,TN,SEX,AGE,ZC,DEPT) (2)“课程”表:C,由课程号(CNO)、课程名(CN)、课程性质 (CX)和学分(CT)4个属性组成。可记为: C(CNO,CN,CX,CT) (3)“教师授课”表:TC,由教师编号(TNO)、课程号(CNO)、教 龄(YEAR)3个属性组成,这里的教龄是指教授这门课的教龄。可记为: TC(TNO,CNO,YEAR)

计算机二级VFP第4章(sql)

计算机二级VFP第4章(sql)

一、判断题(20分)1、SQL语句的核心是数据查询。

2、查询设计器默认的查询去向是浏览窗口。

3、使用sql语句进行分组查询时,为了去掉不满足条件的小组,应该在group by后面使用where子句。

4、查询设计器中的“筛选”选项卡对应于sql语句中的where。

5、在使用查询设计器时,如果是单表查询,连接选项卡是肯定不需要设置的。

6、在select语句中,可以使用eof()函数。

7、在sql中,修改数据表结构的命令是modify structure。

8、在sql的alter table命令中增加字段的子句是drop。

9、用insert-sql语句可以插入记录的部分字段值。

10、用insert-sql语句可以插入多条记录。

11、select-SQL可以为输出的字段重新命名。

12、select-SQL语句不能重新指定列的顺序。

13、用select-sql语句进行统计查询时,要统计学生表中女生的人数应使用函数count。

14、如果要在屏幕上直接看到查询的结果,“查询去向”应选择浏览或屏幕。

15、如果学生表中有“所在系”字段,要统计全系有多少个系,可以用命令子句select count(distinct 所在系)。

16、select-sql中,top子句必须放在order by子句之后。

17、在select-sql中,空值用null表示。

18、在sql中的delete命令功能是物理删除记录。

19、在用select-sql进行多表查询时,多表的连接分为内连接、左连接、右连接和完全连接。

20、select-sql可以将查询结果追加到已有的数据表中。

二、选择题(40分)1、在SQL语句中,与表达式“工资BETEEN 2000 AND 2800”功能相同的表达是()A、工资>=2000 and 工资>=2800B、工资>=2000 or 工资>=2800C、工资>=2000 and 工资<=2800D、工资>=2000 or 工资<=28002、不属于SQL数据定义功能的是()A、CREAT TABLEB、CREAT VIEWC、ALTER TABLED、UPDATE3、在SQL查询时,使用where子句指出的是()A、查询目标B、查询结果C、查询条件D、查询视图4、执行“select * from stock into stock stock order by 单价”()A、会产生一个按“单价”升序排列的文件。

数据库原理及应用-第4章-SQL语言

数据库原理及应用-第4章-SQL语言

建立学生表student,由学号、姓名、性别、年龄 、系别5个属性组成.
CREATE TABLE student
(Sno char(8) primary key, Sname char(20) not null ,
Ssex char(1) default ‘男’, Sage int check(Sage>=0 and Sage <=120),
Transact-SQL命令格式的约定
在Transact-SQL语言的命令格式中,
[ ]括起来的内容表示是可选的;
[,…n]表示重复前面的内容;
< >括起来表示在实际编写语句时,用相应的内容替代;
{ }括起来表示是必选的; 类似A|B的格式:表示A和B只能选择一个,不能同时都 选。
数据类型
系统数据类型 SQL Server预先定义好的,可以直接使用。
选择表中的若干行
1)消除重复的行:DISTINCT
1. 查询所有选修过课的学生的学号 SELECT Sno FROM SC
等价于:
SELECT ALL Sno FROM SC
结果中保留了重复的行
SELECT DISTINCT Sno FROM SC
结果中消除了重复的行
2)查询满足条件的元组
通过WHERE子句实现 常用的查询条件
约束 constraint
约束是SQL Server提供的自动保持数据库完整 性的一种方法 。
主键约束 primary key 主键能够唯一地确定表中的每一条记录,主键不能取空值。 主键约束可以保证实体的完整性。
唯一性约束 unique •唯一性约束用于指定一个或多个列的组合值具有唯一 性,以防止在列中输入重复的值。 •使用唯一性约束的字段允许为空值; •一个表中可以允许有多个唯一性约束; •可以把唯一性约束定义在多个字段上;

第4章 MySQL数据库及SQL语言简介

第4章 MySQL数据库及SQL语言简介
普通文本字符串:CHAR和VARCHAR CHAR指的是定长字符串,在定义时指定字符串的长度,若存入字符串实际长度小于指定长
度,保存时在右侧填充空格以达到指定的长度,在访问该数据时再把空格去掉,因此CHAR类型的 数据末尾不能有空格,
VARCHAR指的是变长字符串,在定义时指定字符串的最大长度,保存时按存入字符串的实 际长度分配存储空间,在访问该数据时不会去掉尾部空格。
4.3 MySQL数据类型
4.3.1 数值型 MySQL中支持的数值型包括:整型TINYINT、SMALLINT、MEDIUMINT、
INT、BIGINT,浮点小数型FLOAT、DOUBLE,定点小数型DECIMAL。 整数类型 浮点小数类型和定点小数类型
4.3 MySQL数据类型
4.3.2 字符串型 1. 文本字符串:普通文本字符串和长文本字符串
4.2 SQL概述及功能
4.2.2 SQL的特点及命令动词 1. SQL语言的特点 支持三级数据模式 全体基本表构成了数据库的全局逻辑模式,视图和部分基本表(被用户直接操作)构成了数 据库的外模式,而数据库的存储文件和索引文件则构成了数据库的内模式。
4.2 SQL概述及功能
4.2.2 SQL的特点及命令动词 2. SQL语言的三大功能及命令动词 数据定义:create、alter和drop 数据操纵:select、insert、delete和update 数据控制:grant和revoke
4.3 MySQL数据类型
4.3.3 日期时间型 DATE类型仅存储日期而不存储时间,TIME类型仅存储时间,DATETIME和TIMESTAMP都 是既存储日期也存储时间,如果需要表示年月日时分秒,DATETIME和TIMESTAMP都是可以选 择的数据类型。 4.3.4 选择数据类型的原则

第四章T-SQL语言、存储过程触发器例题

第四章T-SQL语言、存储过程触发器例题

第四章T-SQL语言部分例题【例4-13】创建一个只有一个主数据文件SchoolTest(不指定该文件的大小)的数据库。

CREATE DATABASE SchoolTestON(NAME=SchoolTest_Data,FILENAME='D:\SchoolTest_Data.MDF')【例4-14】建立学生表T_StudentTest。

CREATE TABLE T_StudentTest (StudentCode CHAR(8) NOT NULL UNIQUE, /*唯一性约束,不许取空值*/StudentName V ARCHAR(16) NOT NULL,Sex CHAR(2) NOT NULL,LiveInDorm BIT DEFAULT 1, /*默认值为1*/Constraint StudentPK Primary Key(StudentCode) /* StudentCode为主键约束*/ )【例4-15】建立成绩表T_GradeTest。

CREATE TABLE T_GradeTest(StudentCode CHAR(8) NOT NULL , /*不许取空值*/Grade REAL DEFAULT 0 , /*默认值为0*/Constraint GradeCK Check(Grade>=0 AND Grade<=100)/*检查约束0>= Grade<=100*/)【例4-16】删除T_GradeTest表DROP TABLE T_GradeTest【例4-17】在T_Student表的姓名(StudentName)字段上建立升序索引。

CREATE INDEX NameIndex on T_Student (StudentName)【例4-18】在T_Student表的学号(StudentCode)字段上建立唯一降序索引。

CREATE UNIQUE INDEX StudentCodeIndex on T_Student (StudentCode DESC)【例4-19】删除T_Student表中索引名称分别为NameIndex和StudentCodeIndex的两个索引。

数据库说课课件

数据库说课课件

确定依据
综合性较强 学生无基础
重点 难点
难点
嵌套查询
加强练习
解决方法
阶梯设疑
分解整合
4.教法学法
教法 宏观:任务驱动;微观:问题牵引 学法
举一反三 综合能力 积极学习 分析能力 主动学习 理解能力 掌握知识 应用能力
提出 问题
分析 问题
解决 问题
总结 评价
引入内容 启发学生 布置任务 营造氛围
讲授知识 任务演示
1 2 3 4 SELECT格式 单表查询 多表查询 深入浅出 嵌套查询 掌握知识
培养独立思考 解决问题能力
突出重点
查询全体 学生的学 号与姓名
查询特定列 查询全体学生 查询全部列 的学号与姓名 查询计算列
FROM
S
7.板书设计
第四章标准查询语言SQL
重点:SQL查询语句 难点:SQL嵌套查询语句 知识框架 1.Select格式 2.简单查询 3.合并查询 4.嵌套查询
《数据库系统原理》说课 --第四章 标准查询语言SQL
内蒙古农业大学职业技术学院 计算机技术与信息管理系 闫凤
说课内容
教材分析
教学目标
重点难点
说课 内容
教学方法
教学手段 教学程序 板书(课件)设计
课后反思
信息管理专业 的专业技术课 数 据 库 设 计 能 力
1.教材分析
数据库核心
SQL Severe 数据库系统原理
Oracle
课程 地位
本章 地位
三、关系运算 四、标准查询语句SQL 五、数据库设计
access
第四章 标准查询语句 SQL
教材 选用 大纲 要求
大纲重点
内蒙古移动 公司数据库 《数据库原理应用教程》 俞俊浦 北京邮电大学

第4章 T-SQL语言

第4章 T-SQL语言


Select select select select
cast('2008-05-08 12:35:29.1234567' as time(7)) cast('2008-05-08 12:35:29.1234567' as date) cast('2008-05-08 12:35:29.123' as smalldatetime) cast('2008-05-08 12:35:29.123' as datetime)
4.1 T-SQL特点
一体化 两种使用方式,交互和嵌入 非过程化语言 简洁
4.2 T-SQL数据类型
分为系统数据类型和用户自定义数据类型 系统数据类型
数字型:整数,小数,负数、分数等
整数int,bigint,smallint,tinyint 非整型decimal(p,s),float
货币:money,smallmoney 日期:datetime,datetime2,date,time, datetimeoffset,smalldatetime
4.2 T-SQL数据类型--例子
Select cast('2007-05-03 12:35:29' as smalldatetime), cast('2007-05-08 12:35:30' as smalldatetime), cast('2007-05-08 12:59:59.998' as smalldatetime)
应用程序----作为一个批处理; 存储过程或触发器-----作为一个批处理; 由EXECUTE命令语句执行的字符串构成一个批处理
Select * from 客户表 Select * from 工作人员表 go

第四章 视图查询-SQL语句

第四章 视图查询-SQL语句


Байду номын сангаас


它是条件连接,这个条件称为连接条件或连 接谓词 可以是等值连接,也可以是不等值连接 新的关系的属性集是参加连接的关系的属性 的组合,不去除重复属性 Inner是缺省的连接方式 也可以用笛卡儿积 + 选择的方法实现
2.2.1 内联接
Join/inner join 列出两个表中仅满足联接条件的记录,为默认联接 类型。 例s22:查询每个已选课学生的全部信息及其选课 情况 SELECT xsda.*, xsxk.* FROM xsda INNER JOIN xsxk ON xsda.学号 = xsxk.学号; SELECT xsda.*, xsxk.* FROM xsda ,xsxk Where xsda.学号 = xsxk.学号;(笛卡尔乘积+选 择)
2.1.1选择列:投影运算



为列更改显示名称: select 列名1 as 新名称,…… from 表1 此用法并不实际更改数据表结构。 例s2:把rsda2中的name显示为职工姓名 Select name as 职工姓名,职称 from rsda2;
2.1.1选择列:投影运算


显示全部列 (1)select 后罗列出所有列名; (2)用*代替列名。 例s3:显示rsda中所有列 select * from rsda;

2.2.4 完全联接
Full outer join 完全联接:列出两个表的所有记录、不论是 否满足联接条件。 例s25: Select * from xsda full outer join xsxk on xsda.学号=xsxk.学号;

2.2.5 三表联接

数据库系统概论:第4章 关系数据库标准语言——SQL语言1

数据库系统概论:第4章 关系数据库标准语言——SQL语言1
26
4)删除完整性约束
例:删除“Height”属性列上的CHECK约束。 ALTER TABLE Student DROP
CONSTRAINT Chk1;
27
5)删除属性列
例:删除Student表中新增加的“Height”属性列。 ALTER TABLE Student DROP COLUMN Height;
2
2、SQL语言应用情况
(1) Oracle、Sybase、Informix、Ingres、 DB2、SQL Server、Rdb等大型数据库管理系统 实现了SQL语言; (2) Dbase、Foxpro、Acess等PC机数据库管理 系统部分实现了SQL语言; (3)可以在HTML(Hypertext Markup Language, 超文本标记语言)中嵌入SQL语句,通过WWW访 问数据库; (4)在VC、VB、Delphi、PB也可嵌入SQL语句。
/*外键约束*/ Credit NUMBER);
21
例3:建立一个学生选课表SC,所有约束条件均为表
级完整性约束。
CREATE TABLE SC
( Sno CHAR(8),
Cno CHAR(8),
Grade NUMBER,
PRIMARY KEY(Sno,Cno),
/*主键约束*/
FOREIGN KEY(Sno) REFERENCES Student(Sno)
25
3)增加完整性约束
例:给Student表中“Height”属性列增加一 个CHECK约束,要求学生的身高要超过140厘 米才行。 ALTER TABLE Student ADD CONSTRAINT Chk1 CHECK(Height>140);

数据库课件 第四章 结构化查询语言

数据库课件 第四章 结构化查询语言
其中: ADD-增加新列和新的完整性约束条件; DROP-删除指定列或者完整性约束条件; ALTER-修改原有的列定义,包括修改列名和数据类型。
4.2.2 基本表的修改
【例4.4】向抢修工程计划表salvaging增加‚工程项目负 责人‛列,数据类型为字符型。
注意:不论基本表中原来是否已有数据,新增加的列一律为空值。
4.3 数据查询
执行过程:
(1)读取FROM子句中基本表、视图的数据,执行笛卡 儿积操作;
(2)选取满足WHERE子句中给出的条件表达式的元组; (3)按GROUP子句中指定列的值分组,同时提取满足 HAVING子句中组条件表达式的那些组;
(4)按SELECT子句中给出的列名或列表达式求值输出;
(5)ORDER子句对输出的目标表进行排序,可选择升序 或降序.
• 结果集
– 查询操作的对象是关系,结果还是一个关系, 是一个结果集,而且是一个动态数据集。
4.3 数据查询
我们以电力抢修工程数据库 为例说明SELECT语 句的各种用法.
(a) stock表
4.3 数据查询
(b) salvaging表
4.3 数据Βιβλιοθήκη 询(c) out_stock表
4.3.1 单表查询
4.2.1 基本表的定义
(3)配电物资领料出库表: out_stock(prj_num, mat_num, amount, get_date, department) 主码为(prj_num, mat_num) 各属性含义如下: 工程项目编号(prj_num) 物资编号(mat_num) 领取数量(amount) 领料日期(get_date) 领料部门(department)
4.2.1 基本表的定义
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
行排序
以上短语是学习和理解SQL SELECT命令必须
掌握的,还有一些短语是VFP特有的。
4.2.1 简单查询
首先从几个简单的查询例子来说明
SELECT、FROM 和 WHERE短语的使用方法。
(以下例子均是基于档案表、选课表和课
程表)
档案表
学号
姓名
性别
专业
家庭住址
2004130101 李洪昆

财会
例4.4 检索出课程号为“1002”或“1004”, 并且成绩小于75分的学号和成绩。
SELECT 学号,成绩 FROM 选课表; WHERE 成绩<75 AND ; (课程号=’1002’ OR 课程号=’1004’)
结果是: 2004140101 50 2004150101 55
前面的几个例子在FROM之后只指定了一个关系,如 果有WHERE条件子句,系统首先根据指定的条件依次检 验关系中的每个记录,如果没有指定WHERE子句,则不 进行检验,然后选出满足条件的记录。
例4.13 求出来自“北京”的学生的总 成 绩。 SELECT SUM(成绩) FROM 选课表 ;
WHERE 学号 IN (SELECT 学号 ; FROM 档案表 WHERE ; 家庭住址=’北京’) 结果是:
295
上面的“WHERE 学号 IN”中的IN不能用 “=”代替,否则,屏幕上将出现“子查询 返
SQL已经成为关系数据库的标准语言
,所以关系数据库管理系统都支持SQL
,VFP也同样支持SQL。
4.1 SQL 概述 最早的SQL是1986年10月美国ANSI 公布的。随后ISO于1987年6月也正式 采纳它为国际标准,1989年又推出了 SQL98版,1992年又推出了SQL92新标 准版本。 SQL语言具有以下主要特点: (1)SQL是一种结构化的语言,它 包括数据定义、数据查询、数据操纵 和数据控制等方面的功能。 (2) SQL是一种非过程化的语言, 它不需要告诉计算机怎样做,只要用
例 4.10 按学分升序检索出选课表中的 所有信息。
SELECT * FROM 选课表 ORDER BY 成绩 结果是:
2004140101 1002 50
2004150101 1004 55 2004150101 1005 70 2004130101 1004 72 2004130101 1002 80 2004130102 1004 80 2004130102 1003 85 2004130101 1001 90 其中短语“ORDER BY 成绩”是按升序排列 ,默认情况下按升序排序,ASC可加也可不 加;如果按降序排序,ORDER BY子句后面 的字段名后必须加上DESC。
第五章
关系数据库标准语言SQL
SQL 概述 SQL 的查询功能 SQL 的操作功能 SQL 的定义功能
SQL是结构化查询语言 STRUCTURED QUERY LANGUAGE 的缩 写,可以说查询是SQL的最主要的组成 部分,但并不是它的全部, SQL还包 含数据定义、数据操纵和数据控制功 能等部分。
2004150101 1005 70
这里是对两列排序的例子,对多列同样可
以进行排序操作。
4.2.6 简单的计算查询 SQL 不但有查询功能,而且还有计算方 式的查询。用于计算查询的函数有: (1)COUNT---计数 (2)SUM---求和 (3)AVG---计算平均值 (4)MAX---求最大值 (5)MIN---求最小值 例4.12 求出学生来自多少个城市。 SELECT COUNT (DISTINCT 家庭住址); FROM 档案表 结果是: 3
选课表
课程号 1001 1002 1003 1003 1004 1002 1004 1005
课程表
课程号
课程名
学时数
1001
高等数学
80
1002
计算机基础
50
1003
数据库应用
70
1004
会计学
100
1005
经济学
100
成绩 90 80 72 85 80 50 55 70
学分 3 2
2.5 4 4
开课学期 1 1 2 3 4
查询的结果出自一个关系,但相关的条件 却涉及多个关系。
例4.7检索出成绩大于75分的学生的姓名。 SELECT 姓名 FROM 档案表 WHERE ; 学号 IN (SELECT 学号 FROM ; 选课表 WHERE 成绩>80)
结果是: 李洪昆 王倩
可以看到,这个命令中有两个SELECT-FROM-WHERE 查询 语句,即内外层查询块。这里的IN相当于集合运算符 ∈(属于)。
例4.9命令还可以写成下面的语句:
SELECT * FROM 选课表 WHERE ; (成绩 >= 80)AND (成绩 <=100)
( LIKE例题)
从课程表中检索出课程名中带有“学”字

课程号和课程名。
SELECT 课程号,课程名 FROM 课程表;
WHERE 课程名 LIKE “%学”
结果是:
北京
2004130102 王倩

财会
昆明
2004140101 李义

金融
昆明
2004140102 吴文英

金融
.null.
2004150101 刘留

营销
北京
2004150102 赵西

营销
西安
学号 2004130101 2004130101 2004130101 2004130102 2004130102 2004140101 2004150101 2004150101
1001
高等数学
1004 会计学
1005 经济学
LIKE 是字符串匹配运算符,通配符“%” 表示0个或多个字符,另外通配符“_”(下
4.2.5 排序 使用SQL SELECT 可以将查询结果排序 ,排序子句是 ORDER BY 。具体格式是: ORDER BY 字段名 [ASC|DESC][,字段名 [ASC|DESC]....] 其中: ASC表示升序,DESC表示降序
4.2.2 简单的联接查询
联接是关系的基本操作之一,联接查询
是一种基于多个关系的查询 。
例4.5 检索出成绩大于80分的学生的姓
名和专业。
SELECT 姓名,专业 FROM ;
档案表,选课表 WHERE (成绩>80) ;
AND (档案表.学号=选课表.学号)
结果是:
李洪昆 财会
王倩
财会
这里所要求检索的内容分别来自于选课表和档案表两个表,其 中的“档案表.学号=选课表.学号”是联接条件。
例4.14 检索学时数最多的课程名和学分。
SELECT 课程名,MAX(学时数) FROM ;
课程表ห้องสมุดไป่ตู้
结果是:
经济学
100
课程表中有两条满足条件的记录,但只显示满足条件
的第一条。
例4.15 检索出除北京之外的其他学生的平
均分。
SELECT AVG(成绩) FROM 选课表 ;
WHERE 学号 NOT IN;
(SELECT 学号 FROM 档案表 WHERE ;
家庭住址=’北京’)
结果是:
71.75
4.2.7 分组与计算查询
分组与计算查询的 GROUP BY 短语格
式如下:
GROUP BY 字段名1 [, 字段名2,....]
[HAVING <条件表达式>]
例4.16 求出每门课程的平均分。
SELECT 课程号,AVG(成绩) FROM ;
SELECT * FROM 选课表 结果是:
2004130101 1001 90 2004130101 1002 80 2004130101 1003 72 2004130102 1003 85 2004130102 1004 80 2004140101 1002 65 2004150101 1004 55
命令中的“*”是多字节通配符,表示
所有字段,这个命令相当于: SELECT 学号,课程号,成绩 FROM 选课表 在数据库中 * 代表多字节通配符,?代
表单字节通配符。 例4.3 检索出成绩大于80分的学号和成绩。 SELECT 学号,成绩 FROM 选课表;
WHERE 成绩>80 结果是:
2004130101 90 2004130102 85 这里的WHERE短语是查询条件,查询条 件条件可以是任意复杂的逻辑表达式。
例 4.8 检索出成绩小于60分的学生的所有 信息 SELECT * FROM 档案表 WHERE 学号 ;
NOT IN (SELECT 学号 FROM 选课表 ; WHERE 成绩>60) 结果是: 2004140101 李义 男 金融 昆明 2004140102 吴文英 女 金融 2004150102 赵西 男 营销 西安
例4.1 从档案表中查出专业名称。
SELECT 专业 FROM 档案表
结果是:
财会
可以看到查询结果中
财会
有重复值,如果要去
金融
掉重复值,需要指定
金融
DISTINCT 短语:
营销
营销
SELECT DISTINCT 专业 FROM 档案表 结果是:
财会 金融 营销 例 4.2 从选课表中查出所有记录。
例4.11先按课程号升序排列,再按学分
降序排列检索出选课表中的所有信息。
SELECT * FROM 选课表 ORDER BY ;
课程号,成绩 DESC
结果是:
2004130101 1001 90
2004130101 1002 80
相关文档
最新文档