数据库SQL语言课件.ppt
《数据库SQL语言课件.ppt》由会员分享,可在线阅读,更多相关《数据库SQL语言课件.ppt(144页珍藏版)》请在三一办公上搜索。
1、1,第3章 SQL语言,2,本章概要,SQL是结构化查询语言(Structured Query Language)的缩写,其功能包括数据查询、数据操纵、数据定义和数据控制四个部分。SQL 语言简洁、方便实用、功能齐全,已成为目前应用最广的关系数据库语言。本章要求了解 SQL语言的特点,掌握SQL语言的四大功能及使用方法,重点掌握其数据查询功能及其使用。,3,3.1 SQL语言的基本概念与特点,实例1:大一新生报到时需要经历一系列的报到流程,其中包括建立学生信息数据库,以下是学生信息数据库建立的过程,,这里,我们假设建立的是一个关系数据库,新生数据即是一个二维表,那么学生表的结构是什么?包含什么
2、内容?,4,3.1 SQL语言的基本概念与特点,3.1.1 SQL语言的发展及标准化3.1.1.1 SQL语言发展史 SQL语言是当前最为成功、应用最为广泛的关系数据库语言,其发展主要经历了以下几个阶段:1974年由CHAMBERLIN和BOYEE提出,当时称为SEQUEL(STUCTURED ENGLISH QUERY LANGUAGE);IBM公司对其进行了修改,并用于其SYSTEM R关系数据库系统中;1981年 IBM推出其商用关系关系数据库SQL/DS,并将其名字改为SQL,由于SQL语言功能强大,简洁易用,因此得到了广泛的使用;今天广泛应用于各种大型数据库,如SYBASE、INFO
3、RMIX、ORACLE、DB2、INGRES等,也用于各种小型数据库,如FOXPRO、ACCESS。,5,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进行了补充,
4、推出了SQL89标准;5.1992年,ISO又推出了SQL92标准,也称为SQL2;6.SQL/99:Core level跟其他8种相应的level,包括递归查询,程序跟流程控制,基本的对象(object)支持包括oids;7.SQL/2003:包含了XML相关内容,自动生成列值(column values);8.2005-09-30:“Data is the next generation inside.SQL is the new HTML”!Tim Oeilly提出了Web 2.0理念,称数据将是核心,SQL将成为“新的HTML;9.SQL/2006:定义了SQL与XML(包含XQuer
5、y)的关联应用;10.2006:Sun公司将以SQL基础的数据库管理系统嵌入Java V6;11.2007:SQL Server 2008(Katmi)在过去的SQL2005基础上增强了它的安全性,主要在:简单的数据加密,外键管理,增强了审查,改进了数据库镜像,加强了可支持性。,6,3.1.2 SQL语言的基本概念首先介绍两个基本概念:基本表和视图。基本表(BASE TABLE):是独立存在的表,不是由其它的表导出的表。一个关系对应一个基本表,一个或多个基本表对应一个存储文件。视图(VIEW):是一个虚拟的表,是从一个或几个基本表导出的表。它本身不独立存在于数据库中,数据库中只存放视图的定义而
6、不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。当基本表中的数据发生变化时,从视图中查询出来的数据也随之改变。,7,例如:学生数据库中有学生基本情况表STUDENT(SNO,SNAME,SSEX,SAGE,SDEPT),此表为基本表,对应一个存储文件。可以在其基础上定义一个男生基本情况表STUDENT_MALE(SNO,SNAME,SAGE,SDEPT),它是从STUDENT中选择SSEX=男的各个行,然后在SNO,SNAME,SAGE,SDEPT上投影得到的。在数据库中只存有STUDENT_MALE的定义,而STUDENT_MALE的记录不重复存储。在用户看来,视图是通过不同路径去
7、看一个实际表,就象一个窗口一样,我们通过窗户去看外面的高楼,可以看到高楼的不同部分,而透过视图可以看到数据库中自己感兴趣的内容。,8,图3.1 SQL语言支持的关系数据库的三级逻辑结构,SQL语言支持数据库的三级模式结构,如图3.1所示。其中外模式对应于视图和部分基本表,模式对应于基本表,内模式对应于存储文件。,9,3.1.3 SQL语言的主要特点1.综合统一。SQL语言具有:数据查询(QUERY);数据定义(DEFINITION)数据操纵(MANIPULATION);数据控制(CONTROL)四种语言一体化的功能。2.高度非过程化 即用户只要提出“干什么”即可,不必管具体操作过程,也不必了解
8、数据的存取路径,只要指明所需的数据即可。3.面向集合的操作方式 SQL语言是一种面向集合的语言,每个命令的操作对象是一个或多个关系,结果也是一个关系。4.以同一种语法结构提供两种使用方式 SQL语言既是自含式语言,又是嵌入式语言。可独立使用,也可嵌入到宿主语言中。自含式语言可以独立使用交互命令,适用于终端用户、应用程序员和DBA;嵌入式语言使其嵌入在高级语言中使用,供应用程序员开发应用程序。,10,主要特点(5)语言简洁、易学易用:核心功能只有8个动词,语法简单,接近英语,11,3.2 SQL数据定义,SQL语言使用数据定义语言(DATA DEFINITION LANGUAGE,简称DDL)实
9、现其数据定义功能,可对数据库用户、基本表、视图、索引进行定义和撤消。,12,3.2 SQL数据定义,3.2.1 字段数据类型当用SQL语句定义表时,需要为表中的每一个字段设置一个数据类型,用来指定字段所存放的数据是整数、字符串、货币或是其它类型的数据。SQL SERVER 的数据类型有很多种,分为以下9类:1.整数数据类型:依整数数值的范围大小,有BIT,INT,SMALLINT,TINYINT四种。2.精确数值类型:用来定义可带小数部分的数字,有NUMERIC和DECIMAL两种。二者相同,但建议使用DECIMAL。如:123.0、8000.56,13,3.近似浮点数值数据类型:当数值的位数
10、太多时,可用此数据类型来取其近似值,用FLOAT和REAL两种。如:1.23E+104.日期时间数据类型:用来表示日期与时间,依时间范围与精确程度可分为DATETIME与SMALLDATETIME两种。如:1998-06-08 15:30:005.字符串数据类型:用来表示字符串的字段。包括:CHAR,VARCHAR,TEXT三种,如:“数据库”6.UNICODE字符串数据类型:UNICODE是双字节文字编码标准,包括NCHAR,NVARCHAR与NTEXT三种。与字符串数据类型相类似,但UNICODE的一个字符用2字节存储,而一般字符数据用一个字节存储。7.二进制数据类型:用来定义二进制码的数
11、据。有:BINARY,VARBINARY,IMAGE 三种,通常用十六进制表示:如:OX5F3C,14,8.货币数据类型:用来定义与货币有关的数据,分为MONEY 与SMALLMONEY两种,如:123.00009.标记数据类型:有UNIQUEIDENTIFIER,TIMESTAMP两种,此数据类型通常系统自动产生,而不是用户输入的,TIMESTAMP记录数据更新的时间戳印,而UNIQUEIDENTIFIER用来识别每一笔数据的唯一性。各种数据类型的有关规定如下表:,15,16,17,18,3.2.2 定义、修改和撤消数据库的用户3.2.2.1 建立数据库用户数据库用户是指能够登录到数据库,并
12、能够对数据库进行存取操作的用户。当SQL SERVER系统安装完毕后,数据库管理员就可以通过CREATE USER语句建立其他数据库用户了。语法格式为:CREATE USER IDENTIFIED BY 指定数据库用户的帐号名字,即用户标识符,指用户登录到数据库系统时使用的口令,这里的用户名和口令可以与用户登录到操作系统时所使用的用户名和口令不同。,19,例3.1 建立一个新用户,其名称为ZHANGSAN,登录口令为123。CREATE USER ZHANGSAN IDENTIFIED BY 1233.2.2.2 更改数据库用户的口令数据库用户最初的口令是由数据库管理员指定的,数据库用户可以用
13、ALTER USER命令来更改它,ALTER USER语句的基本语法格式为:ALTER USER IDENTIFIED BY 例3.2 将用户ZHANGSAN的口令改为456。ALTER USER ZHANGSAN IDENTIFIED BY 456,20,3.2.2.3 删除用户随着数据库应用的发展和变化,数据库的用户也会发生变化。如果某些数据库用户不再需要使用数据库,数据库管理员就可以使用DROP USER把该用户删掉,DROP USER 语句的基本语法格式为:DROP USER 例3.3 删除用户ZHANGSANDROP USER ZHANGSAN注意:删除数据库用户之前应首先删除该用户
14、建立的数据库对象,包括基本表、视图、索引等,否则系统将不允许删除这个用户。,21,3.2.2 建立数据库CREATE DATABASE 3.2.3 创建、修改和删除数据表3.2.3.1 创建数据表数据表是关系数据库的基本组成单位,它物理地存储于数据库的存储文件中。1.创建一个数据表时主要包括以下几个组成部分:(1)字段名(列名):字段名可长达128个字符。字段名可包含中文、英文字母、下划线、#号、货币符号(¥)及AT符号()。同一表中不许有重名列;(2)字段数据类型:见表3.2;(3)字段的长度、精度和小数位数;,22,字段的长度:指字段所能容纳的最大数据量,但对不同的数据类型来说,长度对字段
15、的意义可能有些不同。对字符串与UNICODE数据类型而言,长度代表字段所能容纳的字符的数目,因此它会限制用户所能输入的文本长度。对数值类的数据类型而言,长度则代表字段使用多少个字节来存放数字。对BINARY、VARBINARY、IMAGE数据类型而言,长度代表字段所能容纳的字节数。精度和小数位数精度是指数中数字的位数,包括小数点左侧的整数部分和小数点右侧的小数部分;小数位数则是指数字小数点右侧的位数。例如:数字12345.678,其精度为8,小数位数为3;所以只有数值类的数据类型才有必要指定精度和小数位数。,23,经常以如下所示的格式来表示数据类型以及它所采用的长度、精度和小数位数,其中的N代
16、表长度,P代表精度,S表示小数位数。BINARY(N)-BINARY(10)CHAR(N)-CHAR(20)NUMERIC(P,S)-NUMERIC(8,3)但有的数据类型的精度与小数位数是固定的,对采用此类数据类型的字段而言,不需设置精度与小数位数,如:如果某字段采用INT数据类型,其长度固定是4,精度固定是10,小数位数则固定是0,这表示字段将能存放10位数没有小数点的整数。存储大小则是4个字节。(4)NULL值与DEFAULT值DEFAULT值表示某一字段的默认值,当没有输入数据时,则使用此默认的值。,24,2.创建数据表的SQL语法格式在SQL语言中,使用语句CREATE TABLE创
17、建数据表,其基本语法格式为:CREATE TABLE(,|)是合法标识符,最多可有128个字符,如S,SC,C,不允许重名。:DEFAULT DEFAULT:若是某字段设置有默认值,当该字段未被输入数据时,则以该默认值自动填入该字段。,25,例3.4 建立一学生表CREATE TABLE S(SNO CHAR(8),SN VARCHAR(20),AGE INT,SEX CHAR(2)DEFAULT 男,DEPT VARCHAR(20);执行该语句后,便产生了学生基本表的表框架,此表为一个空表。其中,SEX列的缺省值为“男”。,26,实例2:设某商业集团数据库中有三个实体集。一是“仓库”实体集,
18、属性有仓库号、仓库名和地址等;二是“商店”实体集,属性有商店号、商店名、地址等;三是“商品”实体集,属性有商品号、商品名、单价。1.创建仓库表,商店表,商品表。,27,实例2:设某商业集团数据库中有三个实体集。一是“仓库”实体集,属性有仓库号、仓库名和地址等;二是“商店”实体集,属性有商店号、商店名、地址等;三是“商品”实体集,属性有商品号、商品名、单价。设仓库与商品之间存在“库存”联系,每个仓库可存储若干种商品,每种商品存储在若干仓库中,每个仓库每存储一种商品有个日期及存储量,它的关系模式是:库存(仓库号,商品号,日期,库存量);1.使用SQL创建仓库表,商店表,商品表以及库存表。2.要求仓
19、库表中仓库号为主键,仓库地址唯一。商店表中商店号为主键,商店名不能为空值。商品表中商品号为主键,单价大于0。,28,3.定义完整性约束在SQL SERVER中,对于基本表的约束分为列约束和表约束。列约束是对某一个特定列的约束,包含在列定义中,直接跟在该列的其他定义之后,用空格分隔,不必指定列名;表约束与列定义相互独立,不包括在列定义中,通常用于对多个列一起进行约束,与列定义用,分隔,定义表约束时必须指出要约束的那些列的名称。完整性约束的基本语法格式为:CONSTRAINT 约束名:约束不指定名称时,系统会给定一个名称。,29,约束类型:在定义完整性约束时必须指定完整性约束的类型。在SQL SE
20、RVER中可以定义五种类型的完整性约束,下面分别加以介绍:(1)NULL/NOT NULL是否允许该字段的值为NULL。NULL值不是0也不是空白,更不是填入字符串“NULL”,而是表示“不知道”、“不确定”或“没有数据”的意思。当某一字段的值一定要输入才有意义的时候,则可以设置为NOT NULL。如主键列就不允许出现空值,否则就失去了唯一标识一条记录的作用只能用于定义列约束,其语法格式如下:CONSTRAINT NULL|NOT NULL,30,例3.5 建立一个S表,对SNO字段进行NOT NULL约束。CREATE TABLE S(SNO CHAR(10)CONSTRAINT S_CON
21、S NOT NULL,SN VARCHAR(20),AGE INT,SEX CHAR(2)DEFAULT 男,DEPT VARCHAR(20);当SNO为空时,系统给出错误信息,无NOT NULL约束时,系统缺省为NULL。其中S_CONS为指定的约束名称,当约束名称省略时,系统自动产生一个名字。如下列功能同上,只是省略约束名称。,31,CREATE TABLE S(SNO CHAR(10)NOT NULL,SN VARCHAR(20),AGE INT,SEX CHAR(2)DEFAULT 男,DEPT VARCHAR(20);,32,(2)UNIQUE约束UNIQUE约束用于指明基本表在某一
22、列或多个列的组合上的取值必须唯一。定义了UNIQUE约束的那些列称为唯一键,系统自动为唯一键建立唯一索引,从而保证了唯一键的唯一性。唯一键允许为空,但系统为保证其唯一性,最多只可以出现一个NULL值。UNIQUE既可用于列约束,也可用于表约束。UNIQUE用于定义列约束时,其语法格式如下:CONSTRAINT UNIQUE例3.6 建立一个S表,定义SN为唯一键。CREATE TABLE S(SNO CHAR(6),SN CHAR(8)CONSTRAINT SN_UNIQ UNIQUE,SEX CHAR(2),AGE NUMERIC(2);,33,其中SN_UNIQ为指定的约束名称,约束名称可
23、以省略,如下例:CREATE TABLE S(SNO CHAR(6),SN CHAR(8)UNIQUE,SEX CHAR(2),AGE NUMERIC(2);UNIQUE用于定义表约束时,其语法格式如下:CONSTRAINT UNIQUE(,),34,例3.7 建立一个S表,定义SN+SEX为唯一键。CREATE TABLE S(SNO CHAR(5),SN CHAR(8),SEX CHAR(2),CONSTRAINT S_UNIQ UNIQUE(SN,SEX);系统为SN+SEX建立唯一索引,确保同一性别的学生没有重名。(3)PRIMARY KEY约束PRIMARY KEY约束用于定义基本表
24、的主键,起唯一标识作用,其值不能为NULL,也不能重复,以此来保证实体的完整性。,35,PRIMARY KEY与UNIQUE约束类似,通过建立唯一索引来保证基本表在主键列取值的唯一性,但它们之间存在着很大的区别:在一个基本表中只能定义一个PRIMARY KEY约束,但可定义多个UNIQUE约束;对于指定为PRIMARY KEY的一个列或多个列的组合,其中任何一个列都不能出现空值,而对于UNIQUE所约束的唯一键,则允许为空。注意:不能为同一个列或一组列既定义UNIQUE约束,又定义PRIMARY KEY约束。PRIMARY KEY既可用于列约束,也可用于表约束。PRIMARY KEY用于定义列
25、约束时,其语法格式如下:CONSTRAINT PRIMARY KEY,36,例3.8 建立一个S表,定义SNO为S的主键CREATE TABLE S(SNO CHAR(5)NOT NULL CONSTRAINT S_PRIM PRIMARY KEY,SN CHAR(8),AGE NUMERIC(2);PRIMARY KEY用于定义表约束时,即将某些列的组合定义为主键,其语法格式如下:CONSTRAINT S PRIMARY KEY(),37,例3.9 建立一个SC表,定义SNO+CNO为SC的主键CREATE TABLE SC(SNO CHAR(5)NOT NULL,CNO CHAR(5)NO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 SQL 语言 课件
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5985448.html