关系数据库语言SQL

上传人:飞*** 文档编号:52328910 上传时间:2018-08-20 格式:PPT 页数:111 大小:845.50KB
返回 下载 相关 举报
关系数据库语言SQL_第1页
第1页 / 共111页
关系数据库语言SQL_第2页
第2页 / 共111页
关系数据库语言SQL_第3页
第3页 / 共111页
关系数据库语言SQL_第4页
第4页 / 共111页
关系数据库语言SQL_第5页
第5页 / 共111页
点击查看更多>>
资源描述

《关系数据库语言SQL》由会员分享,可在线阅读,更多相关《关系数据库语言SQL(111页珍藏版)》请在金锄头文库上搜索。

1、第三章 关系数据库语言SQL3.1 SQL概述 3.2 SQL的数据定义功能 3.3 SQL的数据查询功能 3.4 SQL的数据操纵功能 3.5 视图操作小结SQL (Structured Query Language)是结构化查询语言 的缩写,SQL 简洁、方便实用、功能齐全,已成为目前 应用最广的关系数据库语言。 SQL的功能包括数据查询、数据操纵、数据定义和数据控 制四个部分。本章将结合实例讲解怎样利用SQL编写程 序实现对数据库的定义、查询、更新及控制操作。 其次,将介绍视图的概念,以及利用SQL对视图进行操作 。本章概要3.1 SQL 概 述 一、SQL的发展及标准化SQL语言是当前

2、最为成功、应用最为广泛的关系数据库语言, 其发展主要经历了以下几个阶段: 1974年,由IBM公司的Chamberlin和Boyce提出,当时称 为SEQUEL(Structured English Query Language); 197579年,IBM公司对其进行了修改,并用于其 SYSTEM R关系数据库系统中; 1981年 IBM推出其商用关系关系数据库SQL/DS,并将其 名字改为SQL。由于SQL语言功能强大,简洁易用,因此得到 了广泛的使用; 1986年,第一个SQL标准由ANSI(美国国家标准局)公 布,称为SQL86。之后,SQL标准不断修改和完善,又推出 SQL89、SQL

3、92、SQL99等。基本表(Base Table):是独立且实际存在的表。一个关系对应一个基本表,一个或多个基本表对应一个存储文件。视图(View):是一个虚拟的表,是从一个或几个基本表导出的表。它本身不独立存在于数据库中,数据库中只存放 视图的定义而不存放视图对应的数据,这些数据仍存放在 导出视图的基本表中。当基本表中的数据发生变化时,从 视图中查询出来的数据也随之改变。索引(Index):是定义在基本表上的快速查找路径。一个表可以有若干个索引,它们也存放在存储文件中。二、 有关SQL的基本概念可以在S基础上定义一个年龄情况视图SA_VSA_V(SNO,SNAME,SAGE)它是从S 表中在

4、SNO,SNAME,SAGE上投影得到的。在数据库中只存有SA_V的定义,而不存放该视图的定义。在用户看来,视图是通过不同路径去看一个实际表 ,就象一个窗口一样,我们通过窗户去看外面的高楼, 可以看到高楼的不同部分,而透过视图可以看到数据库 中自己感兴趣的内容。例如:学生数据库中有学生基本情况表S S(SNO,SNAME,SSEX,SAGE,SDEPT) 此表为基本表,对应一个存储文件。 SQL语言支持数据库的三级模式结构,如图3.1所示。 其中外模式对应于视图和部分基本表,模式对应于全部 基本表,内模式对应于存储文件。 SQL视图1视图2基本表1基本表2基本表3基本表4存储文件1存储文件2外

5、模式模式内模式图3.1 SQL语言支持的关系数据库的三级逻辑结构 SQL语言类似于英语的自然语言,简洁易用。 SQL语言是一种非过程语言,即用户只要提出“干什么”,不必关 心具体操作过程,也不必了解数据的存取路径,只要指明所需 的数据即可。 SQL语言是一种面向集合的语言,每个命令的操作对象是一个或 多个关系,结果也是一个关系。 SQL语言既是自含式语言,又是嵌入式语言。可独立使用,也可 嵌入到宿主语言中。 自含式语言可以独立使用对数据库操作,适用于终端用户、 DBA等;嵌入式语言嵌入在高级语言中使用,供应用程序员开发应用 程序。 SQL语言具有数据查询、定义、操纵和控制四种功能一体化的特 点

6、。三、 SQL语言的主要特点3.2 SQL的数据定义功能 SQL使用数据定义语言(Data Definition Language,简称DDL)实现其数据定义功能,可对数据库模式、基本表、视图、索引等对象进行创建、修改和撤消。当用SQL语句定义表时,需要为表中的每一个字段设置一个数据类型,用来指定字段所存放的数据是整数、字符串、货币 或是其它类型的数据。SQL的数据类型主要支持以下数据类型:1. 整型数据类型:依整数数值的范围大小,有BIT, INT , SMALLINT, TINYINT四种。2. 精确数值类型:用来定义可带小数部分的数字,有 NUMERIC和DECIMAL两种。二者相同,但

7、建议使用 DECIMAL。如:123.0、8000.56一、SQL的数据类型4. 日期时间数据类型:用来表示日期与时间,依时 间范围与精确程度可分为DATETIME与 SMALLDATETIME两种。如:1998-06-08 15:30:00 5. 字符串数据类型:用来表示字符串的字段。包括 :CHAR, VARCHAR, TEXT三种,如:“数据库” 6. UNICODE字符串数据类型:UNICODE是双字 节文字编码标准,包括NCHAR, NVARCHAR与 NTEXT三种。与字符串数据类型相类似,但UNICODE 的一个字符用2字节存储,而一般字符数据用一个字节 存储。3. 近似浮点数值

8、数据类型:当数值的位数太多时,可用 此数据类型来取其近似值,用FLOAT和REAL两种。 如:1.23E+108. 货币数据类型:用来定义与货币有关的数据 ,分为 MONEY 与SMALLMONEY两种,如: 123.00009.标记数据类型:有UNIQUEIDENTIFIER , TIMESTAMP两种,此数据类型通常系统自动产 生,而不是用户输入的,TIMESTAMP记录数据 更新的时间戳印,而UNIQUEIDENTIFIER用来识别每一批数据的唯一性。7. 二进制数据类型:用来定义二进制码的数据。有: BINARY, VARBINARY,IMAGE 三种,通常用 十六进制表示:如:5F3

9、C各种数据类型的有关规定如下表: 数据 类型数据内容与范围占用的字节BIT0, 1, NULL实际使用1BIT,但会 占用1BYTE,若一个 数据中有数个BIT字段 ,则可共占1个BYTEINT-231到231-14BYTESSMALLINT-215至215-12BYTESTINYINT0至2551BYTESNUMERIC-1038-1至1038-11-9位数使用5BYTES 10-19位数使用9BYTES 20-28位数使用13BYTES 29-38位数使用17BYTESDECIMAL-1038-1至1038-15-17BYTES因长度而异 ,与NUMERIC相同FLOAT-1.79E+30

10、6至 1.79E+308, 最多可表 示53位数8BYTESREAL -3.40E+38到3.40E+38 ,最多可表示24位数4BYTESDATETIME1753/1/1至9999/12/318BYTESSMALLDATETIME1900/1/1至2079/6/64BYTESCHAR1-8000个字符1个字符占1B,尾端空 白字符保留VARCHAR1-8000个字符1个字符占1B,尾端空 白字符删除。TEXT231-1个字符1个字符占2B,最大可 存储2GBNCHAR1-4000个字符1个字符占2B,尾端空 白字符保留NVARCHAR1-4000个字符1个字符占2B,尾端空 白字符删除NTE

11、XT230-1个字符1个字符占2B,最大可 存储2GBBINARY1-8000个字符在存储时,SQL SERVER会另外增加4B ,尾 端空白字符会保留 VARBINARY1-8000个字符在存储时,SQL SERVER会另外增加4B ,尾 端空白字符会删除 IMAGE231-1个字符最大可存储2GBMONEY-263-263-18BSMALLMONEY-231-231-14BTIMESTAMP16进制8BUNIQUEIDENTIFIER全局唯一标识符( GUID)可用NEWID()函数生成 一个该种类型的字段值 。一、创建数据库模式模式定义语句如下: CREATE SCHEMA AUTHOR

12、IZATION 3.2.1 模式的定义和删除例1CREATE SCHEMA “S-T” AUTHORIZATION ZHANG;例2CREATE SCHEMA AUTHORIZATION ZHANG;删除模式语句如下: DROP SCHEMA 二、删除模式例3 DROP SCHEMA ZHANG CASCADE ;3.2.2 基本表的定义、删除和修改一、定义基本表 语句格式 CREATE TABLE ( , , ); :所要定义的基本表的名字 :组成该表的各个属性(列) :涉及相应属性列的完整性约束 条件 :涉及一个或多个属性列的完整 性约束条件 例题 例1 建立一个“学生”表Student,

13、它由学号Sno、姓名Sname 、性别Ssex、年龄Sage、所在系Sdept五个属性组成。其中 学号不能为空,值是唯一的,并且姓名取值也唯一。CREATE TABLE Student(Sno CHAR(5) NOT NULL UNIQUE, Sname CHAR(20) UNIQUE, Ssex CHAR(2) ,Sage INT,Sdept CHAR(15); 定义基本表(续)常用完整性约束 主码约束: PRIMARY KEY 唯一性约束:UNIQUE 非空值约束:NOT NULL参照完整性约束PRIMARY KEY与 UNIQUE的区别?例题 (续)例2 建立一个“学生选课”表SC,它由

14、学号Sno、课程号Cno,修课 成绩Grade组成,其中(Sno, Cno)为主码。CREATE TABLE SC(Sno CHAR(5) ,Cno CHAR(3) , Grade int,Primary key (Sno, Cno),FOREIGN KEY( Sno)REFERENGES Student( Sno),FOREIGN KEY( Cno)REFERENGES Course( Cno) );例题 (续)二、删除基本表 DROP TABLE RESTRICT|CASCADE; 基本表删除 数据、表上的索引都删除表上的视图往往仍然保留,但 无法引用删除基本表时,系统会从数据字典中删去有

15、关该 基本表及其索引的描述 (标准中没有,认为表建立后就永久存在)例题例5 删除Student表DROP TABLE Student CASCADE;三、修改基本表ALTER TABLE ADD 完整性约束 DROP ALTER COLUMN ;:要修改的基本表 ADD子句:增加新列和新的完整性约束条件 DROP子句:删除指定的完整性约束条件 ALTER COLUMN子句:用于修改列名和数据类型例题 例1 向Student表增加“入学时间”列,其数据类型为日期型。ALTER TABLE Student ADD Scome DATE;不论基本表中原来是否已有数据,新增加的列一律 为空值。 语句格

16、式(续)删除属性列直接/间接删除把表中要保留的列及其内容复制到一个新表中删除原表再将新表重命名为原表名直接删除属性列:(新)例:ALTER TABLE Student Drop Scome;例2 将年龄的数据类型改为半字长整数。ALTER TABLE Student ALTER COLUMN Sage SMALLINT;注:修改原有的列定义有可能会破坏已有数据例题 例3 删除学生姓名必须取唯一值的约束。ALTER TABLE Student DROP UNIQUE(Sname); 一、索引的作用在日常生活中我们们会经经常遇到索引,例如图书图书 目 录录、词词典索引等。借助索引,人们们会很快地找到需要 的东东西。索引是数据库库随机检检索的常用手段,它实际实际 上就 是记录记录 的关键

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号