第3章SQL语言 U八◆《回
返回 1 第3章 SQL语言
本章概要 >SQL是结构化查询语言( Structured Query Language) 的缩写,其功能包括数据查询、数据操纵、数据定义 和数据控制四个部分。 >SQL语言简洁、方便实用、功能齐全,已成为目前应 用最广的关系数据库语言。 本章要求 了解SQL语言的特点, 掌握SQL语言的四大功能及使用方法, 重点掌握其数据査询功能及其使用。 U八◆《回
返回 2 本章概要 ➢ SQL是结构化查询语言(Structured Query Language) 的缩写,其功能包括数据查询、数据操纵、数据定义 和数据控制四个部分。 ➢ SQL 语言简洁、方便实用、功能齐全,已成为目前应 用最广的关系数据库语言。 ➢ 本章要求 ➢了解 SQL语言的特点, ➢掌握SQL语言的四大功能及使用方法, ➢重点掌握其数据查询功能及其使用
31SQ语言的基本概念与特点 31SQL语言的发展及标准化 >3.111SQL语言发展史 SQL语言是当前最为成功、应用最为广泛的关系数据库语言, 其发展主要经历了以下几个阶段: 1.1974年由 CHAMBERLIN和 BOYEE提出,当时称为 SEQUEL(STUCTURED ENGLISH QUERY LANGUAGE); 2.IBM公司对其进行了修改,并用于其 SYSTEM R关系数据库 系统中; 3.1981年IBM推出其商用关系关系数据库 SQL/DS,并将其名 字改为S①L,由于SOL语言功能强大,简洁易用,因此得到 广泛的使用; 4.今天广泛应用于各种大型数据库,如 SYBASE、 INFORMIX、 ORACLE、DB2、 INGRES等,也用于各种小型数据库,如 FOXPRO、 ACCESS。 U八◆《回
返回 3 3.1 SQL语言的基本概念与特点 3.1.1 SQL语言的发展及标准化 ➢ 3.1.1.1 SQL语言发展史 SQL语言是当前最为成功、应用最为广泛的关系数据库语言, 其发展主要经历了以下几个阶段: 1. 1974 年 由 CHAMBERLIN 和 BOYEE 提 出 , 当时称为 SEQUEL(STUCTURED ENGLISH QUERY LANGUAGE); 2. IBM公司对其进行了修改,并用于其SYSTEM R关系数据库 系统中; 3. 1981年IBM推出其商用关系关系数据库SQL/DS,并将其名 字改为SQL,由于SQL语言功能强大,简洁易用,因此得到 了广泛的使用; 4. 今天广泛应用于各种大型数据库,如SYBASE、INFORMIX、 ORACLE、DB2、INGRES等,也用于各种小型数据库,如 FOXPRO、ACCESS
>3.1.1.2SQL语言标准化 随着关系数据库系统和SQL语言应用的日益广泛 SQL语言的标准化工作也在紧张革进行着,十多年来 已制订了多个SQL标准; 1.1982年,美国国家标准化局( AMERICAN NATIONAL STANDARD INSTITUTE,简称ANSⅠ)开始制定SQL 标准; 2.1986年,美国国家标准化协会公布了SQL语言的第一个 标准SQL86: 3.1987年,国际标准化组织(ISO)通过了SQL86标准; 4.1989年,国际标准化组织(ISO)对SQL86进行了补充, 推出了SQL89标准; 5.1992年,ISO又推出了SQL92标准,也称为SQL2; 6.目前SQL99(也称为SQL3)在起草中,增加了面向对象 的功能。 U八◆《回
返回 4 ➢ 3.1.1.2 SQL语言标准化 随着关系数据库系统和SQL语言应用的日益广泛, SQL语言的标准化工作也在紧张革进行着,十多年来 已制订了多个SQL标准; 1. 1982年,美国国家标准化局(AMERICAN NATIONAL STANDARD INSTITUTE,简称ANSI)开始制定SQL 标准; 2. 1986年,美国国家标准化协会公布了SQL语言的第一个 标准SQL86; 3. 1987年,国际标准化组织(ISO)通过了SQL86标准; 4. 1989年,国际标准化组织(ISO)对SQL86进行了补充, 推出了SQL89标准; 5. 1992年,ISO又推出了SQL92标准,也称为SQL2; 6. 目前SQL99(也称为SQL3)在起草中,增加了面向对象 的功能
312SQL语言的基本概念 首先介绍两个基本概念:基本表和视图。 基本表( BASE TABLE):是独立存在的表,不是由 其它的表导出的表。一个关系对应一个基本表,一个 或多个基本表对应一个存储文件。 视图(ⅤIEW):是一个虚拟的表,是从一个或几个 基本表导出的表。它本身不独立存在于数据库中,数 据库中只存放视图的定义而不存放视图对应的数据, 这些数据仍存放在导出视图的基本表中。当基本表中 的数据发生变化时,从视图中查询出来的数据也随之 改变。 U八◆《回
返回 5 3.1.2 SQL语言的基本概念 ➢ 首先介绍两个基本概念:基本表和视图。 ➢ 基本表(BASE TABLE):是独立存在的表,不是由 其它的表导出的表。一个关系对应一个基本表,一个 或多个基本表对应一个存储文件。 ➢ 视图(VIEW):是一个虚拟的表,是从一个或几个 基本表导出的表。它本身不独立存在于数据库中,数 据库中只存放视图的定义而不存放视图对应的数据, 这些数据仍存放在导出视图的基本表中。当基本表中 的数据发生变化时,从视图中查询出来的数据也随之 改变
例如:学生数据库中有学生基本情况表 STUDENT(SNO, SNAME SSEX,SAGE, SDEPT),此表 为基本表,对应一个存储文件。可以在其基础上定义 个男生基本情况表 STUDENT MALE(SNO, SNAME SAGE SDEPT) 它是从 STUDENT中选择SSEX=男的各个行,然 后在 SNO SNAME SAGE SDEPT上投影得到的。 在数据库中只存有 STUDENT MALE的定义,而 STUDENT MALE的记录不重复存储 在用户看来,视图是通过不同路径去看一个实际表, 就象一个窗口一样,我们通过窗户去看外面的高楼 可以看到高楼的不同部分,而透过视图可以看到数 据库中自己感兴趣的内容。 U八◆《回
返回 6 ➢ 例如:学生数据库中有学生基本情况表 STUDENT(SNO,SNAME,SSEX,SAGE,SDEPT),此表 为基本表,对应一个存储文件。可以在其基础上定义 一个男生基本情况表 STUDENT_MALE(SNO,SNAME,SAGE,SDEPT), ➢它是从STUDENT中选择SSEX=’男’的各个行,然 后在SNO,SNAME,SAGE,SDEPT上投影得到的。 ➢在数据库中只存有STUDENT_MALE的定义,而 STUDENT_MALE的记录不重复存储。 ➢在用户看来,视图是通过不同路径去看一个实际表, 就象一个窗口一样,我们通过窗户去看外面的高楼, 可以看到高楼的不同部分,而透过视图可以看到数 据库中自己感兴趣的内容
>SOL语言支持数据库的三级模式结构,如图3.1所示 其中外模式对应于视图和部分基本表,模式对应于基 本表,内模式对应于存储文件。 SQL 视图1 视图2 外模式 基本表1 基本表2 基本表3 基本表4 模式 存储文件1 存储文件2 内模式 图3.1SQL语言支持的关系数据库的三级逻辑结构 U八◆《回
返回 7 SQL 视图1 视图2 基本表1 基本表2 基本表3 基本表4 存储文件1 存储文件2 外模式 模式 内模式 图3.1 SQL语言支持的关系数据库的三级逻辑结构 ➢SQL语言支持数据库的三级模式结构,如图3.1所示。 其中外模式对应于视图和部分基本表,模式对应于基 本表,内模式对应于存储文件
313SQL语言的主要特点 1.SQL语言类似于英语的自然语言,简洁易用。 2.SQL语言是一种非过程语言,即用户只要提出“干什么” 即可,不必管具体操作过程,也不必了解数据的存取路 径,只要指明所需的数据即可 3.SQL语言是一种面向集合的语言,每个命令的操作对象 是一个或多个关系,结果也是一个关系。 4.SQL语言既是自含式语言,又是嵌入式语言。可独立使 用,也可嵌入到宿主语言中。 自含式语言可以独立使用交互命令,适用于终端用 户、应用程序员和DBA; 嵌入式语言使其嵌入在高级语言中使用,供应用程 序员开发应用程序 U八◆《回
返回 8 3.1.3 SQL语言的主要特点 1. SQL语言类似于英语的自然语言,简洁易用。 2. SQL语言是一种非过程语言,即用户只要提出“干什么” 即可,不必管具体操作过程,也不必了解数据的存取路 径,只要指明所需的数据即可。 3. SQL语言是一种面向集合的语言,每个命令的操作对象 是一个或多个关系,结果也是一个关系。 4. SQL语言既是自含式语言,又是嵌入式语言。可独立使 用,也可嵌入到宿主语言中。 ➢ 自含式语言可以独立使用交互命令,适用于终端用 户、应用程序员和DBA; ➢ 嵌入式语言使其嵌入在高级语言中使用,供应用程 序员开发应用程序
5.SQL语言具有 数据查询( QUERY) 数据定义( DEFINITION) 数据操纵( MANIPULATION) 数据控制( CONTROL) 四种语言一体化的功能。 下面以 SQLSERVER为例分别介绍其各个功能。各例 题中所用的基本表如图112所示。 U八◆《回
返回 9 5. SQL语言具有: • 数据查询(QUERY) • 数据定义(DEFINITION) • 数据操纵(MANIPULATION) • 数据控制(CONTROL) 四种语言一体化的功能。 下面以SQL SERVER 为例分别介绍其各个功能。各例 题中所用的基本表如图1.12所示
320L数据定义 >SQL语言使用数据定义语言( DATA DEFINITION LANGUAGE,简称DDL)实现其数据定义功能,可 对数据库用户、基本表、视图、索引进行定义和撤消。 321字段数据类型 >当用SQL语句定义表时,需要为表中的每一个字段设 置一个数据类型,用来指定字段所存放的数据是整数、 字符串、货币或是其它类型的数据。 > SQL SERVER的数据类型有很多种,分为以下9类: 1.整数数据类型:依整数数值的范围大小,有BI INT, SMALLINT, TINYINT四种。 2.精确数值类型:用来定义可带小数部分的数字,有 NUMERIC和 DECIMAL两种。二者相同,但建议使 用 DECIMAL。如:1230、800056 U八◆回
返回 10 3.2 SQL数据定义 ➢ SQL语言使用数据定义语言(DATA DEFINITION LANGUAGE,简称DDL)实现其数据定义功能,可 对数据库用户、基本表、视图、索引进行定义和撤消。 3.2.1 字段数据类型 ➢ 当用SQL语句定义表时,需要为表中的每一个字段设 置一个数据类型,用来指定字段所存放的数据是整数、 字符串、货币或是其它类型的数据。 ➢ SQL SERVER 的数据类型有很多种,分为以下9类: 1. 整数数据类型:依整数数值的范围大小,有BIT, INT , SMALLINT, TINYINT四种。 2. 精确数值类型:用来定义可带小数部分的数字,有 NUMERIC和DECIMAL两种。二者相同,但建议使 用DECIMAL。如:123.0、8000.56