第4章TS①L与可编程对象 4.1 T-SQL 4.2视图 4.3存储过程 44触发器
第4章 T-SQL与可编程对象 4.1 T-SQL 4.2 视图 4.3 存储过程 4.4 触发器
4.1 T-SQL 41.1T-SQL概述 ◆SQL:结构化查询语言( Structure Query Language ◆关系型数据库管理系统的标准语言:按照ANSI (美国国家标准协会)的规定,最初由IBM公司 在七十年代中期开发成功。 ◆T-SQL语言是微软公司在 SQL Server中对SQL扩 展
4.1 T-SQL 4.1.1 T-SQL概述 SQL:结构化查询语言(Structure Query Language) 关系型数据库管理系统的标准语言:按照ANSI (美国国家标准协会)的规定,最初由IBM公司 在七十年代中期开发成功。 T-SQL语言是微软公司在SQL Server中对SQL扩 展
1.T-SQL语言的特点 1)非过程化 过程描述出来,不仅要告诉计算机“做什么”,而且述 要告诉计算机“怎么做”。 ◆非过程化语言,不必描述解决问题的全过程,只需提出 “做什么”,至于“如何做”的细节则由语言系统本身 去完成并给出操作的结果 2)两种不同的使用方式 口联机交互方式:SQL语言既可独立使用 嵌入程序设计语言中:例如C#程序设计语言中。 不论使用何种方式,TSQL语言的语法结构基本相同。 3)高度一体化 集数据定义语言(DDL)、数据操纵语言(DM)、数据 控制语言(DCL)和T-SL增加的语言元素于一体,可独 立完成数据库生命周期的所有活动 4)语言简洁、易学易用
1. T-SQL语言的特点 1)非过程化 面向过程的程序设计语言,必须一步一步地将解题的全 过程描述出来,不仅要告诉计算机“做什么”,而且还 要告诉计算机“怎么做”。 非过程化语言,不必描述解决问题的全过程,只需提出 “做什么”,至于“如何做”的细节则由语言系统本身 去完成并给出操作的结果。 2)两种不同的使用方式 联机交互方式: SQL语言既可独立使用 嵌入程序设计语言中:例如C#程序设计语言中。 不论使用何种方式,T-SQL语言的语法结构基本相同。 3) 高度一体化 集数据定义语言(DDL)、数据操纵语言(DML)、数据 控制语言(DCL)和T-SQL增加的语言元素于一体,可独 立完成数据库生命周期的所有活动。 4) 语言简洁、易学易用
2.TSQL语言的组成元素 数据定义语言DDL( Data Definition Language) □定义数据库结构、各对象及属性的语句 口例如: Creat database Student ◆数据库操纵语言DML( Data Manipulation Language) □实现对数据库基本操作的语句,主要包括査询、 插入、修改、删除等 ◆数据库控制语言DCL( Data Control language) □保证数据库一致性和完整性 ◆T-SQL增加的语言元素 变量、运算符、函数、流程控制语句和注解等
2. T-SQL语言的组成元素 数据定义语言DDL(Data Definition Language) 定义数据库结构、各对象及属性的语句 例如:Creat DATABASE Student 数据库操纵语言DML(Data Manipulation Language) 实现对数据库基本操作的语句,主要包括查询、 插入、修改、删除等 数据库控制语言DCL(Data Control Language) 保证数据库一致性和完整性 T-SQL增加的语言元素 变量、运算符、函数、流程控制语句和注解等
3.T-SQL书写规则 在TSQL语句中,不区分字母大小写。为阅读方便,约 定 (1)用大写字母书写TSQL语句中关键字; (2)用小写字母书写语句中的标识符、表达式以及各种参 数 4.注释 (1)单行注释 (2)多行注释/米…米
3. T-SQL书写规则 • 在T-SQL语句中,不区分字母大小写。为阅读方便,约 定: (1) 用大写字母书写T-SQL语句中关键字; (2) 用小写字母书写语句中的标识符、表达式以及各种参 数。 4. 注释 (1)单行注释 – (2)多行注释 /*…*/
4.1.2数据定义语言DDL 1.数据定义语言用于定义数据库中的对象,包括数据库、 表、视图、索引、存储过程、触发器等的建立或修改。 表4-1SQL数据定义语言DDL 操作方式 操作对象 创建 删除 修改 使用 数据库 CREATE DROP ALTER USE DATABASE DATABASE DATABASE 基本表 CREATE TABLE DROP TABLE ALTER TABLE 视图 CREATE VIEW DROP VIEW| ALTER VIEW 索引 CREATE INDEX DROP INDEX 存储过程CRAT DROP ALTER PROCEDURE PROCEDURE PROCEDURE 触发器 CREATE TRIGGER DROP TRIGGER ALTER TRIGGER
4.1.2 数据定义语言DDL 1. 数据定义语言用于定义数据库中的对象,包括数据库、 表、视图、索引、存储过程、触发器等的建立或修改。 操作对象 操作方式 创建 删除 修改 使用 数据库 CREATE DATABASE DROP DATABASE ALTER DATABASE USE 基本表 CREATE TABLE DROP TABLE ALTER TABLE 视图 CREATE VIEW DROP VIEW ALTER VIEW 索引 CREATE INDEX DROP INDEX 存储过程 CREATE PROCEDURE DROP PROCEDURE ALTER PROCEDURE 触发器 CREATE TRIGGER DROP TRIGGER ALTER TRIGGER 表4-1 SQL数据定义语言DDL
41.2数据定义语言DL 打开文件 查找它围[: Projects 名称 修改日期 型大小 student 我的项目 我的电脑 ALLOW ROW LOCK 文件名(N 打开(O) 件类型(所有文件 取消
4.1.2 数据定义语言DDL 2. 使用SSMS生成SQL脚本 (1) 右击要生成脚本的数据库对象,在右键菜单 中选择“编写…脚本”->“Create到”- >“新查询编辑窗口” (2) 在“查询编辑”窗口中可查看、复制、保存 脚本 (3) 使用“文件”->“打开”可打开脚本文件
4.1.2数据定义语言DDL 3.常用DL语句 (1)创建数据库语句( CREATE DATABASE) 4数据库星性 SchoolTest 选择页 脚本帮助 上常规 文件 上文件组 更改跟踪 日备份 权限 数据库上次备份日期 无 上扩展属性 数据库日志上次备份日期 镜像 曰数据库 事务日志传送 SchoolTest 状 所有者 仓健日期 2016/8/3015:04:05 大小 81 MB 可用空间 1.14MB 用户数 维护 排序规则 Chinese prc ci as oculi e sree 08.LD的心
1)创建一个数据库SchoolTest ; 2)数据库主数据文件SchoolTest,物理文件为 “D:\SchoolTest.mdf”, 大小为3MB; 3)系统将自动在“D:\”中创建大小为1MB、名为 “SchoolTest_log.LDF”的日志文件。 【例4-1】创建一个只有一个主数据文件 SchoolTest的 数据库(不指定该文件的大小) 。 CREATE DATABASE SchoolTest ON (NAME=SchoolTest, FILENAME='D:\SchoolTest.MDF') 3.常用DDL语句 (1) 创建数据库语句(CREATE DATABASE) 4.1.2 数据定义语言DDL
4.1.2数据定义语言DDL (2)打开和删除数据库语句 e Microsoft SQL Server Management Studio 文件(日编辑(E)视图(查询(Q)项目(P)调试(D)工具(窗口WM社区(C 旦新建查询N岛国舀团舀绳 ?执行√器回即唱 对象资源管理器 vXsQLQuerylsql-(local), School (sa(53)* 连接O)·想了 USE School DROP DATABASE SchoolTest B 6.(SQL Server 10.0.1600-sa 日□数据库 田□系统数据库 □数据库快照 t U BookStore +I School 田□安全性
(2)打开和删除数据库语句 •USE 数据库名 /*选择当前要操作的数据库 */ USE SchoolTest •DROP DATABASE 数据库名/*删除数据库 */ USE School -- 当前数据库必须更改! DROP DATABASE SchoolTest 4.1.2 数据定义语言DDL
4.1.2数据定义语言DDL (3)建立表语句( CREATE TABLE) 对象资源管理器 1 X SQLQuery1sql-(oca). School (sa(53)* 连接O)·掣■了S E CREATE TABLE T StudentTest Studentcode CHAR(8) NOT NULL UNIQUE, 田dbo. Grade StudentName VARCHAR(16) NOT NULL 出固 dbo. Major Sex CHAR (2) NOT NULL 田 dbo. Student 五 veInDOrm BIT DEFAULT1 日回{dbo. T StudentTest Constraint studentPk Primary Key (studentcode) 日□列 StudentCode(PK, char(8), not null) a StudentName(varchar( 16), not null) 目sex(char(2, not null) 国 LiveInDorm(bit,nu 田□键 日□约束 da DF T Student Livel_6A30C649 田□触 田□素引 追消息 □统计信息 命令已成功完成 田国 dbo. Teacher 取空值, Livelndorm的默认值为1,并将 StudentCode设定 为主键约束
(3)建立表语句(CREATE TABLE) 【例4-2】建立学生表T_StudentTest。 CREATE TABLE T_StudentTest ( StudentCode CHAR(8) NOT NULL UNIQUE, StudentName VARCHAR(16) NOT NULL, Sex CHAR(2) NOT NULL, LiveInDorm BIT DEFAULT 1, Constraint StudentPK Primary Key(StudentCode) ) 在School数据库中创建一个新的空表T_StudentTest。在 字段的定义中确定StudentCode、StudentName、Sex不可 取空值,LiveInDorm的默认值为1,并将StudentCode设定 为主键约束。 4.1.2 数据定义语言DDL