x14-2014-2015学年02期-数据库应用技术-项目10-t-sql基础知识x

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

--第1批处理结束
declare @name varchar(10)
declare @age smallint , @msg varchar(50)
go
--第2批处理结束
select @name='刘伟', @age=21
set @msg='欢迎使用SQL Server 2005'
go
--第3批处理结束
create view V_教师信息
as
select 教师编号,教师姓名,教师性别,系编号 as 所属系
from 教师表
go
select * from V_教师信息
• 例:一个无效的批处理。
use xsgl2005 go
出错的原因:是select 之缺少一个 go,即create view不是唯一的语句。
(2)不能在一个批处理中ALTER TABLE 修改表的结构,然后在同一个批 处理中引用刚修改的表结构。(引用新列)
(3)不能在删除了一个对象后,在同一个批处理中再次引用这个对象。 (4)不能在一个批处理中引用其他批处理定义的变量。(作用域) (5)在一个批处理中如果包括多个存储过程,则在执行第一个存储过程时
• 任务:查询学号为100101的学生的姓名和出生日期, 将分别赋值给变量 @name 和 @birth_date.
use xsgl2005 go declare @number char(9), @name char(8) ,@birth_date datetime set @number='100101' select @name=姓名, @birth_date =出生日期 --将查询结果赋给变量 from 学生表 where 学号=@number select @name as 姓名 ,@birth_date as 出生日期--引用变量 go
名称
print getdate() Print @@connections --登录的次数
EXECUTE语句不能省略。
改变显示方式
例: 利用查询分析器执行两个批处理,用 以显示班级表中的信息。
代码如下: use xsgl2005 go
该例中包含两个批处理:
第一个批处理仅包含一个语句,打开 xsgl2005数据库; 第二个批处理包含两个语句,显示提示信息 和显示“班级”表中的信息。
print '班级表包括以下的信息:'
• 视图的使用 • 数据索引
第8章 T-SQL语言
——基础知识 教学内容
基础知识: 使用批处理 使用脚本 使用注释 标识符
常量 变量
T-SQL系统内置函数
T-SQL的运算符
第8章 T-SQL语言
—— 基础知识
学习目标
认知目标:
– 了解批处理、脚本、注释的含义 – 了解T-SQL语言标识符的命名规则 – 掌握常量的书写格式和基本用途 – 掌握运算符的使用方法
四、标识符
课堂练习1:判断下列哪些标识符是合法的?哪些是不合法的?
– _AbC
X yz
– @a1
√where
×
– #proc – 7table
##xs
a√s
×


×
×
五、常量
• 常量的含义
– 在运行过程中保持不变的量,是表示特定数据值的符 号
• 常量的书写格式
– 取决于它所表示的值的数据类型。
课堂练习2:判断下列数常值量型是常什量么类型常量?
注意
如果一个批处理中存在一个语法错误,则所有 的语句都将无法通过编译。
一个批处理以GO语句结束。 GO命令只能独占 一行。
在一个GO命令行中不能包含其他T-SQL语句 ,但可以使用注释文字。
• 例:一个批处理的例子。
use xsgl2005 go
本例的SQL语句组包含三个批处理。由于 create view必须是一个批处理中的唯一语句 ,所以需要用GO命令将create view语句与其 上下的语句隔离开。 Go命令不是SQL语句。
✓select rtrim(ltrim(@class_number)) + ' 班共有:'+ltrim(rtrim(str( @class_count ))) +'名学生'
将聚合函数的值赋值给变量
use xsgl2005 go declare @class_count smallint --班级人数据 declare @class_number char(20) set @class_number='1001' select @class_count =count(学号) from 学生表 where 班号=@class_number select @class_number + ' 班共有:'+str( @class_count ) +'名学生' go
• 说明: – select语句不能同时完成赋值和查询两种操作
实例3:给@age、@name、@msg赋值。 – select @name=‘刘伟’,@age=21
– set @msg=‘欢迎使用SQL Server 2005’
为多个变量赋值
• 例:以下的批处理声明了三个变量,通过选择列表中 当前所引用的值对它们赋值,并在select语句的 where子句使用。
– 整18型9常4量 0x二1进2制Ef常量 2.5E浮2点型常量1.52 精确数字型常量
货币常量
– $12 -$23.5 – ‘123’ ‘w34’ – ‘2006-04-24’
字符串常量
‘’
日期时间型常量
六、变量
• 局部变量:
——1.类型
– 用户自己定义的变量,用于在语句之间传递数据
– 局部变量名以@符号开头
• 命名规则
– 标识符的长度可以为1-128个字符 – 标识符的第一个字符必须为字母、下划线、@、#
• 以@为首的标识符表示1个局部变量。 • 以#为首的标识符表示1个临时数据库对象。 • 对于表或存储过程,名称前包含一个#时表示局部临时对象,
而两个#(“##”)则表示为全局临时对象。
– 标识符内不允许有空格,也不允许为SQL中的关键字
六、变量
• 语法格式为: ——4.局部变量的显示
– print 表达式
必须是char、varchar;或可以隐式地转化
– select 表达式 [,…n]
成字符型的常量或变量表达式。
注意与赋值的区别。
实例4:显示@age、@name、@msg的值。 print @name print @age select @name as 姓名, 年龄=@age, @msg 欢迎词
局部变量的应用
将聚合函数的值赋值给变量
use xsgl2005 go --定义变量 declare @name varchar(10) declare @age smallint , @msg varchar(50) --为变量赋值 select @name='刘伟', @age=21 set @msg='欢迎使用SQL Server 2005' --显示变量的值 print @name print @age select @name as 姓名, 年龄=@age, @msg 欢迎词
select @name as 姓名, 年龄=@age, @msg 欢迎词
六、变量
——6.全局变量
• 全局变量(了解) (在整个实例范围内起作用)
– 是系统定义的变量,用于存储系统的特定信息 – 用户不能建立全局变量,也不能修改其值(只读) – 全局变量名以@@符号开头 – 全局变量在整个SQL Server系统内使用。 – 局部变量的名称不能与全局变量同名。
第8章 T-SQL语言 —— 基础知识
主讲:倪宁
a
1
复习:
• 设计数据库
– 收集、分析数据→建立概念模型(ER图)→建立逻辑模型 (关系模式) →关系规范化:1NF → 2NF → 3NF
• 数据库的操作
– 创建、修改、删除数据库
• 数据表的操作
– 创建、修改、删除数据表、添加表约束
• 数据查询
– 基本查询、汇总查询、子查询、连接查询
select * from 班级表
go
一、使用批处理
• 特点
如果一个批处理中的某条语句包含了语法错误,则整个批 处理都不能被编译和执行。
如果一个批处理中的某条语句出现执行错误,这时可能有 两个结果:
(1)如:违反约束,仅终止当前语句,其前其后语句正常执行。 (2)如:引用不存在的对象,终止当前语句和其后语句,其前语句
实例2:分别定义一个整型变量和两个字符型变量。
– declare @name varchar(10) – declare @age smallint , @msg varchar(50)
• 注意:局部变量未被赋值之前,其值为null。
六、变量
——3.局部变量的赋值
• 语法格式:(两种方式)
–set @变量=表达式 –select @变量=表达式 [,…n]
六、变量
——5.局部变量的作用域
• 作用域的含义 – 是指可以使用该变量的范围 。
• 局部变量的作用域 – 从声明它的地方开始,到声明它的批处理或存储过程的结尾。 (另一个go 出现为止)
六、变量
实例5:分析下列局部变量—的—作5用.局域,部执变行语量句的后,作会出用现域什么问题?
演示
use xsgl2005 go
– 使用时,必须先声明(系统初始化为null)
• 局部变量的作用范围只在批处理、触发器、存储过 程中起作用。
• 局部变量在赋值或引用之前,需先声明局部变量的 数据类型,实现按类型分配存储空间。
六、变量
——2.局部变量的声明
• 语法格式 – declare @变量名 数据类型[,…n]
• 说明 – 数据类型可以是系统定义的或用户定义的类型
create view V_教师信息
as
select 教师编号,教师姓名,教师性别,系编号as 所属系 from 教师表
select * from V_教师信息这里缺少一个GO
go
在建立批处理时,有如下的限 制:
(1) 某些特殊的SQL命令,不能与其它语句共同在一个批处理中,如: CREATE DEFAULT、CREATE PROCEDURE、CREATE RULE、CREATE TRIGGER Βιβλιοθήκη Baidu CREATE VIEW
三、使用注释
• 注释的作用: – 说明代码的含义,增强代码的可读性; – 可以把程序中暂时不用的语句注释掉,使它们暂时不被执行,需要时可恢 复。
• 类型: – 行内注释:用于注释单行。 • --(两个减号) – 块注释:用于注释多行。
• /*……*/
四、标识符
• 标识符的含义
– 是指用户定义的变量名、函数名、存储过程名、库名、 表名、索引名、视图名等各种名称。(字符序列)
能力目标:
– 掌握变量的声明、赋值和显示方法(重点) – 掌握系统内置函数的使用方法(难点)
一、使用批处理
• 批处理的含义
批处理---以一条命令的方式来处理一组命令的过程。 批处理语句是一条或多条SQL语句的集合。以GO语句作为
批处理的结束标志。
SQL Server将批处理语句编译成一个可执行单元,此单元 称为执行计划。每个批处理可以编译成单个执行计划,从 而提高执行效率。如果批处理包含多条SQL语句,执行这 些语句所需的所有优化步骤将编译在单个执行计划中。
• 例: 使用全局变量查看SQL Server的版本、当前 所使用的SQL Server服务器名称,以及到当前日 期和时间为止试图登录的次数。
• 代码如下:
print '当前所用的SQL Server版本信息如下:' Print @@version --显示版本信息 print ' ' --换行 print '当前所用的SQL Server服务器: ' + @@servername --显示服务器
– 脚本可以直接在查询分析器等工具中输入并执行,也可以 保存在文件中,再由查询分析器打开执行。
说明:一个脚本中可能包含一个或多个批处理。为了在脚本 中给批处理定界,用关键字GO标识一个批处理的结束。
✓脚本作用:
将语句保存为脚本文件,可以使多台计算机执行 相同的操作。
例如:将在一台服务器的查询分析器上编写的 SQL语句在另一台服务器上运行。
正常执行。
一个批处理中出现的语法和执行错误,都不影响其前和其 后的批处理。(只影响本批处理)
实例1:分析批处理的特点。
二、使用脚本
• 脚本定义: – 将一个或多个批处理组织到到一起就是一个脚本。将脚本 保存到磁盘上就称为脚本文件(.sql)。
– 使用脚本文件对重复操作或在几台计算机之间交换SQL语 句是非常有用的。
相关文档
最新文档