第四章SQL结构化查询语言 学习目的和要求 ◆定义子语言 ◆操纵子语言 ◆ MS SQL SERVER和 SYBASE中的TSQL Designed by Tao Hongcai 2021年2月23日1
Designed by Tao Hongcai 2021年2月23日 1 第四章 SQL结构化查询语言 学习目的和要求 ◆ 定义子语言 ◆ 操纵子语言 ◆ MS SQL SERVER和SYBASE中的T-SQL
41SQL语言特点及分级 SQL语言的特点 ①DDL:SQL子集,创建、修改和删除数据库、表和视图;定义 ICs;非标准索引的创建与删除。 ②DML:SQL子集,插入、删除、修改和查询表中数据。 ③嵌入( Embedded)与动态( Dynamic)SQL:嵌入SQL允许SQL代码 从宿主语言( Host Language)程序中调用;动态SQL允许在运行时 (run-time)构造并执行。 ④4 Triggers:在SQL:1999中支持,一组由DBMS执行的操作。 ⑤ Security:控制用户访问DB对象的机制。 ⑥ Transaction Management:相应命令,显式控制事务执行。 ⑦ Client- Server execution& Remote db access:客户应用程序如 何连接DB和如何访问DB中的数据。 Designed by Tao Hongcai 2021年2月23日2
Designed by Tao Hongcai 2021年2月23日 2 4.1 SQL语言特点及分级 一. SQL语言的特点 ② DML:SQL子集,插入、删除、修改和查询表中数据。 ③ 嵌入(Embedded)与动态(Dynamic) SQL:嵌入SQL允许SQL代码 从宿主语言(Host Language)程序中调用;动态SQL允许在运行时 (run-time)构造并执行。 ⑤ Security:控制用户访问DB对象的机制。 ④ Triggers:在SQL:1999中支持,一组由DBMS执行的操作。 ⑥ Transaction Management:相应命令,显式控制事务执行。 ⑦ Client-Server Execution & Remote DB Access:客户应用程序如 何连接DB和如何访问DB中的数据。 ① DDL:SQL子集,创建、修改和删除数据库、表和视图;定义 ICs;非标准索引的创建与删除
二.SQL-92的分级 ① Entry SQL:接近SQL-89。 ② Intermediate sql:包含SQL-92近一半的新特点。 ③Fu!SQL:完全版SQL。 Designed by Tao Hongcai 2021年2月23日3
Designed by Tao Hongcai 2021年2月23日 3 二. SQL-92的分级 ② Intermediate SQL:包含SQL-92近一半的新特点。 ③ Full SQL:完全版SQL。 ① Entry SQL:接近SQL-89
42定义子语言DDL 回答如下问题: 1.定义子语言的三个命令关键字? 2.数据库定义? 3表定义? 4.视图定义? 5索引定义? Designed by Tao Hongcai 2021年2月23日4
Designed by Tao Hongcai 2021年2月23日 4 4.2 定义子语言DDL 回答如下问题: 1.定义子语言的三个命令关键字? 2.数据库定义? 3.表定义? 5.索引定义? 4.视图定义?
定义子语言的三个命令关键字 (1 Create (2)Drop (3)Alter 说明 ①各个命令关键字后应紧跟所要定义的对象关键字,如数据库 为 DATABASE、表为 TABLE、视图为ⅥEW、索引为 INDEX。 例如: CREATE DATABASE、 DROP DATABASE、 ALTER DATABASE 等等 ② SQL SERVER中可用此三命令的数据库对象有: DATABASE、 TABLE、ⅥEW、|NDEX、TR|GGER、 PROCEDURE、RULE、 DEFAULT、 UNCT|0N。 ③ SQL SERVER中,有几个数据库对象没有 ALTER命令,如: INDEX、RULE、 DEFAULT没有 ALTER。 Designed by Tao Hongcai2021年2月23日5
Designed by Tao Hongcai 2021年2月23日 5 一.定义子语言的三个命令关键字 说明: (1) Create (2) Drop (3) Alter ① 各个命令关键字后应紧跟所要定义的对象关键字,如数据库 为DATABASE、表为TABLE、视图为VIEW、索引为INDEX。 例如:CREATE DATABASE、DROP DATABASE、ALTER DATABASE 等等。 ② SQL SERVER中可用此三命令的数据库对象有:DATABASE、 TABLE、VIEW、INDEX、TRIGGER、PROCEDURE、RULE、DEFAULT、 FUNCTION。 ③ SQL SERVER中,有几个数据库对象没有ALTER命令,如: INDEX、RULE、DEFAULT没有ALTER
二.定义数据库 1.数据库及日志 数据库:在中/大型数据库系统中,数据库是一个存储空 间,用于存放数据库中的数据库对象,包括表、视图、索引 存储过程、触发器、与数据库安全性有关的控制机制以及其它 对象等。 日志(Log):是数据库故障恢复的重要手段和方法。用 于记录对数据库的各种操作及所涉及的相关数据,实际上也需 要一个存储空间。为安全起见,一般与数据库分开存放 Designed by Tao Hongcai2021年2月23日6
Designed by Tao Hongcai 2021年2月23日 6 二.定义数据库 1.数据库及日志 数据库:在中/大型数据库系统中,数据库是一个存储空 间,用于存放数据库中的数据库对象,包括表、视图、索引、 存储过程、触发器、与数据库安全性有关的控制机制以及其它 对象等。 日志(Log):是数据库故障恢复的重要手段和方法。用 于记录对数据库的各种操作及所涉及的相关数据,实际上也需 要一个存储空间。为安全起见,一般与数据库分开存放
2.创建数据库( CREATE DATABASE) Create database命令语法 CREATE DATABASE数据库名 [0N [[.nlI LOG ON filespec>[.n11 ∷= PRIMARY ([NAME=逻辑名, FILENAME=“0S文件的路径及名字 [,SZE=文件初始大小] ,MAXS|ZE={最大值| UNLIMITED}] [,FL! EGROWTH=文件大小增量值]) Designed by Tao Hongcai2021年2月23日7
Designed by Tao Hongcai 2021年2月23日 7 CREATE DATABASE 数据库名 [ ON [ [ ,...n ] ] ] [ LOG ON { [ ,...n ] } ] Create Database命令语法: 2.创建数据库(CREATE DATABASE) ::= [ PRIMARY ] ( [ NAME = 逻辑名 , ] FILENAME = ‘OS文件的路径及名字’ [ , SIZE = 文件初始大小 ] [ , MAXSIZE = { 最大值 | UNLIMITED } ] [ , FILEGROWTH = 文件大小增量值 ] ) [ ,...n ]
示例 Create Database stu data On Primary Name StuFile1 Filename =c:\ production data\ StuFile1 mdf Size =10MB MaxSize =1000MB Filegrowth 10MB Name Stu File2 Filename =c: production data\ StuFile2 ndf Size =10MB MaxSize =1000MB Filegrowth=10%) Log On Name Stulog Filename =c: production data\ Stulog Idf Size =10MB MaxSize =1000MB Filegrowth 10MB Designed by Tao Hongcai2021年2月23日8
Designed by Tao Hongcai 2021年2月23日 8 Create Database StuData On Primary ( Name = StuFile1, Filename = `c:\production\data\StuFile1.mdf', Size = 10MB, MaxSize = 1000MB, FileGrowth = 10MB), ( Name = StuFile2, Filename = `c:\production\data\StuFile2.ndf', Size = 10MB, MaxSize = 1000MB, FileGrowth = 10%) Log On ( Name = Stulog, Filename = `c:\production\data\Stulog.ldf', Size = 10MB, MaxSize = 1000MB, FileGrowth = 10MB) 示例:
说明: ①主数据文件扩展名为.mdf; ②次数据文件扩展名为.ndf; ③日志文件扩展名均为.df。 Designed by Tao Hongcai 2021年2月23日9
Designed by Tao Hongcai 2021年2月23日 9 ① 主数据文件扩展名为.mdf; 说明: ② 次数据文件扩展名为.ndf; ③ 日志文件扩展名均为.ldf
3.修改数据库( ALTER DATABASE) Alter database命令语法 ALTER DATABASE数据库名 I ADD FILE[.nI MODIFY FILE filespec REMOVE FILE逻辑文件名 ADD LOG FILE filespec > MODIFY NAME=新数据库名 ∷ (NAME≡逻辑文件名 [, NEWNAME=新逻辑文件名 [, FILENAME=“0s文件的路径及名字 [,S|ZE=文件的初始大小] ,MAXS|ZE=最大的文件尺寸 , FILEGROWTH=文件大小增量]) Designed by Tao Hongcai 2021年2月23日10
Designed by Tao Hongcai 2021年2月23日 10 ALTER DATABASE 数据库名 { ADD FILE [ ,...n ] | MODIFY FILE | REMOVE FILE 逻辑文件名 | ADD LOG FILE [ ,...n ] | MODIFY NAME = 新数据库名 } ::= ( NAME = 逻辑文件名 [ , NEWNAME = 新逻辑文件名 ] [ , FILENAME = ‘OS文件的路径及名字’ ] [ , SIZE =文件的初始大小 ] [ , MAXSIZE =最大的文件尺寸 [ , FILEGROWTH = 文件大小增量 ] ) 3.修改数据库(ALTER DATABASE) Alter Database命令语法: