您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > 第三章 关系数据库 标准语言SQL(一)
第三章关系数据库标准语言SQL3.1SQL的产生和发展SQL(StructuredQueryLanguage)1974年Boyce和Chamberlin提出1975-1979,SystemR实现1986美国国家标准局(AmericanNationalStandardInstitute)批准SQL作为美国标准1987,ISO也将SQL作为标准3.1.2SQL的特点SQL的功能:数据查询(DataQuery)、数据操纵(DataManipulation)、数据定义(DataDefinition)、数据控制(DataControl)SQL的特点:综合统一、高度非过程化、面向集合的操作方式、以同一种语法结构提供两种使用方法、语言简洁,易学易用一、综合统一SQL将数据的查询、操纵、定义和控制功能等高度集成。在使用SQL的数据库系统中,不仅用SQL来定义关系模式、录入数据,也用SQL来完成查询、更新和数据维护,还用SQL来完成数据库的重构及安全性控制等。二、高度非过程化SQL的非过程化程度是很高,即使在关系数据语言中,SQL的非过程化程度也高于关系代数。在SQL中进行对数据的操作,只需指出要“做什么”,不用指出“怎么做”,在书写SQL的语句时,不用考虑数据存取的路径和操作的顺序,这些具体的工作将由RDBMS自己去完成。三、面向集合的操作方式是所有关系数据语言的共同特点,每一个操作的对象和结果都是关系或构成关系的元组集合,一个操作语句可以完成对若干元组的处理。四、以同一种语法结构提供两种使用方式SQL既可以独立(自含)使用,也可以宿主使用(嵌入到高级语言中,如嵌入到C、C++、Java等语言的程序中)。在这两种不同的使用方式下,SQL的语法是基本一致的,这大大地改善了用户和设计人员之间的交流。五、语言简洁,易学易用SQL虽然功能很强,但语言简洁,语法容易理解。SQL中,核心功能仅用几个动词来表达。3.1.3SQL语言的基本概念作为一种关系数据语言,SQL支持数据库的三级模式结构。如下图所示:SQL对关系数据库模式的支持外模式对应于视图和部分基本表,模式对应于基本表,内模式对应于存储文件。基本表是本身独立存在的表,在SQL中,每一个关系模式被称为一个基本表。每个外模式被称为一个视图。每一个基本表对应一个或多个存储文件,内模式即由各存储文件及相应的若干索引组成。同时,在SQL中元组被称为行,属性被称为列。对SQL中的这些概念有如下说明:一个SQL数据库是表的集合;每一个表是行的集合,每一行则是固定数目列值的序列;基本表和视图合称为表;基本表是物理上实际存在的表,也称实表,其中存放有真实的数据;视图则是从一个或几个基本表导出的表,它本身并不保存真实数据,是虚表。用户可以在基本表上进行各种查询操作和存储操作,也可以在视图上进行可行的查询和有限制的存储操作。从用户观点看,视图和基本表是一样的,都是关系。一个基本表可以存储在一个或多个存储文件中,一个存储文件也可以存放一个或多个基本表。3.2学生-课程数据库学生-课程模式S-T:学生表:Student(Sno,Sname,Ssex,Sage,Sdept)课程表:Course(Cno,Cname,Cpno,Ccredit)学生选课表:SC(Sno,Cno,Grade)Student表学号Sno姓名Sname性别Ssex年龄Sage所在系Sdept200215121200215122200215123200515125李勇刘晨王敏张立男女女男20191819CSCSMAISCourse表课程号Cno课程名Cname先行课Cpno学分Ccredit1234567数据库数学信息系统操作系统数据结构数据处理PASCAL语言516764243424SC表学号Sno课程号Cno成绩Grade200215121200215121200215121200215122200215122123239285889080数据库的体系结构:数据库是存储和管理数据的对象;从逻辑上看,数据库的逻辑存储结构指的是数据库是由哪些性质的信息所组成,所有与数据处理操作相关的信息都存储在数据库中。从物理上看,SQLServer2005数据库是指用于存储数据库的文件及文件组。数据库的物理存储结构则是讨论数据库文件是如何在磁盘上存储的。逻辑数据库:逻辑角度的数据库呈现为各种数据库对象,这些数据对象是用于编写数据库应用系统和管理数据库的单位。SQLServer2005的数据库对象主要包括表(table)、视图(view)、索引(index)、默认(default)、存储过程(storedprocedure)、触发器(trigger)和约束(constraint)等。SQLServer2005数据库逻辑组成:SQLServer2005数据库分为三类:系统数据库:master、model、msdb、tempdb示例数据库:AdventureWorks、AdventureWorksDW用户数据库:根据用户需要创建的数据库管理单位;物理数据库:物理角度的SQLServer2005数据库呈现为各种操作系统文件。在默认安装路径C:\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\Data目录下存放了数据库的数据文件。SQLServer2005的每个数据库都必须包含下面两类文件。数据文件:用于存放所有数据和数据库中建立的所有逻辑对象。又分为主要数据文件和次要数据文件。日志文件:记录了用户对数据库进行的所有操作。1)主要数据文件(PrimaryDataFile)a)主数据文件简称主文件,它是数据库的关键文件,包含了数据库的启动信息。b)每个数据库必须有且仅能有一个主文件;c)其默认扩展名为.MDF;d)唯一的2)次要(辅助)数据库文件(SecondaryDataFile)a)辅助数据文件简称辅(助)文件,用于存储未包括在主文件内的其他数据。b)辅助文件的默认扩展名为.NDF。c)辅助文件是可选的,根据具体情况,可以创建多个辅助文件,也可以不用辅助文件。一般当数据库很大时,有可能需要创建多个辅助文件;而数据库较小时,则只要创建主文件而不需要辅助文件。d)零个、一个或多个3)日志文件(TransactionLogFile)a)日志文件用于保存恢复数据库所需的事务日志信息。b)每个数据库至少有一个日志文件,也可以有多个。c)日志文件的扩展名为.LDF。d)至少一个4)数据库文件组a)为了便于分配和管理,SQLServer允许将多个文件归纳为同一组,并赋予此组一个名称,这就是文件组。b)主文件组(PrimaryFileGroup)c)用户定义文件组(SecondaryFileGroup)创建及管理数据库:在建立用户逻辑组件之前(如基本表)必须首先建立数据库。而建立数据库时完成的最实质任务是向操作系统申请用来存储数据库数据的物理磁盘存储空间。这些存储空间以操作系统文件的方式体现,它们的相关信息将存储在master数据库及其系统表中。创建SQLServer2005数据库可以在ManagementStuio中以图形界面的方式交互完成,或者在查询界面下通过SQL语句完成。1.界面方式管理数据库2.命令方式下管理数据库1)界面方式创建数据库以学生-课程数据库为例,在ManagementStuio中以图形界面的方式练习创建数据库,修改数据库。详见PPT操作流程逻辑名称:数据文件和日志文件名称文件类型:数据文件及日志文件文件组:各个数据文件所属的文件组名称初始大小:文件大小自动增长:文件按指定的大小增长,也可限制到最大容量。路径:存放文件的物理目录文件名:显示数据文件和日志文件的物理名称在数据库创建后,数据文件和日志物理文件名就不能更改了,对已存在的数据库可以进行如下修改:1.改变文件的大小和增长方式2.增加或删除数据文件3.增加或删除日志文件4.增加或删除数据文件组2)命令方式下管理数据库创建数据库:CREATE修改数据库:ALTER删除数据库:DROP在使用T-SQL语句创建数据库中,其核心是CREATEDATABASE语句。该语句基本语法格式是:CREATEDATABASEdatabase_name/*指定数据库名*/[ONfile子句]/*指定数据库文件和文件组属性[LOGONfile子句]/*指定日志文件属性*/file子句NAME=logical_file_name,FILENAME=’os_file_name’[,SIZE=size][,MAXSIZE={max_size|UNLIMITED}][,FILEGROWTH=grow_increment])[,...n]例1:要求创建一个学生-课程数据库(名称为student)。Createdatabasestudent例2:要求在本地磁盘D创建一个学生-课程数据库(名称为student1),只有一个数据文件和日志文件,文件名称分别为stu和stu_log,初始大小都为3MB,增长方式分别为10%和1MB,数据文件最大为500MB,日志文件大小不受限制。CREATEDATABASEstudent1ONPRIMARY(NAME=stu,FILENAME='D:\stu.mdf',SIZE=3MB,MAXSIZE=500MB,FILEGROWTH=10%)LOGON(NAME=stu_log,FILENAME=‘D:\stu_log.ldf’,SIZE=3MB,MAXSIZE=unlimited,FILEGROWTH=1MB)命令方式下管理数据库主要内容:增加或删除数据文件、改变数据文件的大小和增长方式、增加或删除日志文件、改变日志文件的大小和增长方式、增加或删除文件组语法格式Alterdatabasedatabase_name{addfilefilespec[,…n][tofilegroupfilegroupname]|addlogfilefilespec[,…n]|removefilelogical_file_name[withdelete]|modifyfilefilespec|modifyname=new_databasename|addfilegroupfilegroup_name|removefilegroupfilegroup_name|modifyfilegroupfilegroup_name}例:将两个数据文件和一个事务日志文件添加到Student数据库中ALTERDATABASEStudentADDFILE(NAME='Arch4',FILENAME='C:\Archdat4.ndf',SIZE=10MB,MAXSIZE=200MB,FILEGROWTH=10),(NAME='Arch5',FILENAME='C:\Archdat5.ndf',SIZE=10MB,MAXSIZE=200MB,FILEGROWTH=10)GOALTERDATABASEStudentADDLOGFILE(NAME='Archlog3',FILENAME='C:\archlog3.ldf',SIZE=10MB,MAXSIZE=200MB,FILEGROWTH=10)GO3)命令方式删除数据库语法格式:DROPDATABASE〈,数据库名组〉例1:将数据库student删除,可使用下述语句。DROPDATABASEstudentGO3.3数据定义关系数据库系统支持三级模式结构,模式,外模式,内模式对应于关系数据库的三个基本对象:表、视图和索引。SQL的数据定义功能主要有定义表、定义视图和定义索引。SQL的数据定义功能:模式定义、表定义、视图和索引的定义建立数据库最重要的一步就是创建其中的数据表,即决定数据库包括哪些表,每个表中包含哪些字段,每个字段的数据类型等。创建表的实质就是定义表结构及约束等属性,在创建数据表之前,先要设计表,即确定表的名字、所包含的各字段名、字段的数据类型、长度、是否可为空值等等,这些属性构成表结构。定义、删除与修改基本表一、定义基本表CREA
本文标题:第三章 关系数据库 标准语言SQL(一)
链接地址:https://www.777doc.com/doc-5497822 .html