Q第4章TSQL与可编程对象 4.1 T-SQL 4.2视图 4.3存储过程 4.4触发器
第4章 T-SQL与可编程对象 4.1 T-SQL 4.2 视图 4.3 存储过程 4.4 触发器
4.1 T-SQL 4.1.1T-S哑L概述 ◆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)两种不同的使用方式 联机交互方式:SL语言既可独立使用 嵌入程序设计语言中:例如C#程序设计语言中 不论使用何种方式,T-SQL语言的语法结构基本相同 3)高度一体化 ◆集数据定义语言(DDL)、数据操纵语言(DM)、数据 控制语言(DCL)和TSQL增加的语言元素于一体,可独 立完成数据库生命周期的所有活动 4)语言简洁、易学易用
1. T-SQL语言的特点 1)非过程化 面向过程的程序设计语言,必须一步一步地将解题的全 过程描述出来,不仅要告诉计算机“做什么”,而且还 要告诉计算机“怎么做”。 非过程化语言,不必描述解决问题的全过程,只需提出 “做什么”,至于“如何做”的细节则由语言系统本身 去完成并给出操作的结果。 2)两种不同的使用方式 –联机交互方式: SQL语言既可独立使用 –嵌入程序设计语言中:例如C#程序设计语言中。 不论使用何种方式,T-SQL语言的语法结构基本相同。 3) 高度一体化 集数据定义语言(DDL)、数据操纵语言(DML)、数据 控制语言(DCL)和T-SQL增加的语言元素于一体,可独 立完成数据库生命周期的所有活动。 4) 语言简洁、易学易用
2.T-SQL语言的组成元素 ◆数据定义语言DDL( ata Definition Language) 定义数据库结构、各对象及属性的语句 例如: Creat database Student ◆数据库操纵语言D( 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增加的语言元素 变量、运算符、函数、流程控制语句和注解等
Q 3.T-SQL书写规则 在T-SQL语句中,不区分字母大小写。为阅读方便,约 定 (1)用大写字母书写TSQL语句中关键字; (2)用小写字母书写语句中的标识符、表达式以及各种参 数 4.注释 (1)单行注释 (2)多行注释/*……*/
3. T-SQL书写规则 • 在T-SQL语句中,不区分字母大小写。为阅读方便,约 定: (1) 用大写字母书写T-SQL语句中关键字; (2) 用小写字母书写语句中的标识符、表达式以及各种参 数。 4. 注释 (1)单行注释 – (2)多行注释 /*…*/
4.1.2数据定义语言DL 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 存储过程 CREATE 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
Q4.1.2数据定义语言DL 打开文件 查找范围 ects 名称修改日期 大小 自 student 桌面 我的项目 ALLOW ROW LOCK 文件名(N) 打开(O) 件类型(T:所有文件 取
4.1.2 数据定义语言DDL 2. 使用SSMS生成SQL脚本 (1) 右击要生成脚本的数据库对象,在右键菜单 中选择“编写…脚本”->“Create到”- >“新查询编辑窗口” (2) 在“查询编辑”窗口中可查看、复制、保存 脚本 (3) 使用“文件”->“打开”可打开脚本文件
Q4.1.2数据定义语言DL 3.常用DDL语句 (1)创建数据库语句( CREATE DATABASE) 数据库属性 SchoolTest 选择页 脚本·帮助 上常规 文件 上选项 日备份 上更改跟踪 上权限 数据库上次备份日期 扩展属性 数据库日志上次备份日期 镜像 日数据库 事务日志传送 SchoolTest 所有者 仓建日期 2016/8/3015:04:05 大小 81 MB 可用空间 1.14MB 用户数 日维护 排序规 Chinese PRC CI As 0 leste log.Lr一时日心又什
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
Q4.1.2数据定义语言DL (2)打开和删除数据库语句 E: Microsoft SQL Server Management Studio 文件(编辑(E)视图(查询(Q)项目(P)调试(D)工具(窗口(社区(C 新建查询N出出|岛园固函冯 a t School !执行∞√器回 对象资源管理器 1 x SQLQueryl. sql-(local). School (sa(53)" 连接O·群要了 USE School DROP DATABASE SchoolTest B 6. (SQL Server 10.0.1600-sa) 日数据库 团□系统数据库 □数据库快照 + BOoksTore 田目 School 田□安全性
(2)打开和删除数据库语句 •USE 数据库名 /*选择当前要操作的数据库 */ USE SchoolTest •DROP DATABASE 数据库名/*删除数据库 */ USE School -- 当前数据库必须更改! DROP DATABASE SchoolTest 4.1.2 数据定义语言DDL
Q4.1.2数据定义语言DL (3)建立表语句( CREATE TABLE) 对象资源管理器 v X sQLQuerylsql-(oca). School (sa(53).L 连接O)·要■了回 B 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 LiveInDorm BIT DEFAULT 1 日回{dbo. T StudentTes Constraint studentPk Primary Key(student code) 日□列 StudentCode(PK,char(8),not a StudentName(varchar(16),not 国Sex(char(2), not nul) 国 LiveIn Dorm( bit, null 田□键 日□约束 a DF T. Student Livel 6A30C649 田□触发器 田□素引 消息 田□统计信息 命令已成功完成 田国 dbo. Teacher 取空值, Live Inform的默认值为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