版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 SQL 编程课程教案 版本号:SQL 编程 1.0 密级:受控文档 课程标准化 2017 年 1 月 12 日 1.文档属性 2.文档变更过程 第 1 章 总述 版本 修正日期 修正人 描述 文档属性 内容 项目/任务名称: 项目/任务编号: 文档名称: 文档编号: 文档状态: 作者: 实训部 Azure.NET 开发组 文档评审通过日期: 评审负责人签字: 参考模板: 1.1编写目的开发方向课程标准化,本文档针对 SQL 编程课程内容进行设计 1.2总体课程安排 1.3参考资料 第 2 章 数据库系统概述 课程 章节 课时 SQL 编程 数据库系统概述 2 SQLServer 简介与安装
2、2 T-SQL 语言基础 2 数据库管理 2 数据表管理 4 T-SQL 数据语言操作 4 T-SQL 单表查询 8 T-SQL 多表查询 8 T-SQL 子查询 4 视图 2 索引 2 T-SQL 编程 8 事务 2 存储过程 4 触发器 4 数据备份与还原 2 总计 60 2.1章节目标了解数据库管理技术的发展 了解数据、数据库、数据库系统的概念 了解数据模型 掌握解关系数据库概念 2.2数据管理技术的发展1. 人工管理阶段 无系统管理软件,数据与程序不具有独立性 数据不单独保存 数据不能共享 2. 文件系统阶段 数据以“文件”形式可长期保存在外部存储器的磁盘上。 数据的逻辑结构与物理结构
3、有了区别,但比较简单。 应用程序与数据的关系:出现交叉; 数据的存取基本上以记录为单位,但记录不能共享,共享以文件为单位; 缺点:数据冗余度大 、数据和程序缺乏独立性 、增删数据困难 3. 数据库系统阶段 面向全组织的复杂的数据结构(结构化、集成化); 数据冗余度小,易扩充; 引进 DBMS,实现了数据的:独立性、安全性、完整性、并发控制 数据的最小存取单位是数据项;实现数据共享的最小单位是数据项。 2.3基础概念2.3.1 数据描述事物的符号 可以有多种形式:数字、文字、图形、图像、声音等 2.3.2 数据库存放数据的地方 需要长期存放在计算机内的、有组织的、可共享的数据集合物理形式是存储在
4、磁盘上的一个或多个数据文件 2.3.3 数据库管理系统 是操纵和管理数据库的大型软件 可建立、使用和维护数据库 它对数据库进行统一管理和控制,保证数据库的安全性和完整性 2.3.4 数据库系统数据库系统实际上是一个应用系统,它由数据库、数据库管理系统,应用开发工具构 成。数据库是数据库系统操作的对象。 2.3.5 数据模型 数据模型指数据库管理系统中数据的存储结构。2.5 小节详细讲述。 2.4.1 生活中应用举例 超市收银员扫描条码,就能调出商品价格,便于快速结账。 火车售票员录入出发地和目的就能调出车次、价格及车票剩余数量,利于快速售票。 到营业厅输入手机号和时间段就能打印出通话记录单 。
5、 录入你的 QQ 账号和 可以登录 QQ。 网站发布的新闻、可转载的网络小说、网络视频、博客文章。 2.4.2 案例分析 案例描述: 有一天我去货运中心取快递,首先要接触的是货运中心的对外服务窗口(应用系统), 服务窗口会对客户(用户)的身份进行验证,出示证件或其他的一些方式和方法。客户(用户)身份验证通过之后就可以进行通过服务窗口索取服务(发出一些命令)来传给仓库的自动化管理系统(DBMS)会对这些命令再一次进行验证,验证通过就提供相应的服务(返回相应的结果),验证失败会拒绝服务(返回一个错误)。 案例解析: 数据库系统-货运中心 数据库-货运中心的货场或者是仓库 数据-存储在货场或者是仓库
6、中的货物 数据库管理系统-在货运中心一系列的管理体制规则下仓库自动化管理系统 数据库管理员-仓库的库管员 应用系统-货运中心对外的服务窗口 操作系统-公司或者集团,是一个基础环境的作用 这样就可以将数据库系统的运行描述为一个货运中心的运转。 2.5数据库技术发展数据模型是数据库系统的核心和基础。对数据库技术发展阶段的划分应该以数据模 型的发展演变作为主要依据和标志。 2.5.1 初级阶段 第一代数据库:出现了层次模型、网状模型的数据库。 n 层次模型: 是一种树型结构,它由节点和连线组成,其中节点表示实体,连线表示实体间的关系。 XX科技公司 项目部 公司软件部 销售部 项目1 项目2 李广
7、高明 赵华 王明 n 网状模型: 数据记录将组成网中的节点,而记录和记录之间的关联组成节点之间的连线,从而构成一个复杂的网状结构,很容易反映实体间的关系,每条记录不但包括自身的信息同时还包括对相关信息位置的描述。 X X科 技 公 司 公 司 销 售 部 公 司 软 件 部 高 明 李 广 项 目 1赵 华 项 目 2 缺点:说明数据纵向发展,但横向关系难以建立。数据重复出现,造成维护的不便。 2.5.2 中级阶段第二代数据库关系模型 记录和记录之间通过属性之间的关系来进行连接。 保证数据独立性,并形成数据集之间的关系。 2.5.3 高级阶段 新一代数据库面向对象模型 将面向对象的思想和数据库
8、技术结合起来,可以使数据系统的分析、设计与人们对客观世界的 认识一致。 优点: 伸缩性和扩展性,处理复杂的数据模型和关系模型。 利用继承的方法实现数据的重用,避免数据冗余。 提高了对大对象(文本、图像、视频)信息的描述、操纵和检索能力。 缺点: 缺乏像关系型数据模型那样坚实成熟的理论基础。 糟糕的运行效率。 2.6关系型数据库2.6.1 了解关系型数据库 所谓关系型数据库,是指采用了关系模型来组织数据的数据库。关系型数据库简单的可以理解为二维数据库,表的格式就如 Excel,有行有列。常用的关系数据库有 Oracle, SqlServer,Informix,MySql,SyBase 等。(也即
9、是我们平时看到的数据库,都是关系型数据库)。 关系型数据库并不是唯一的高级数据库模型,也完全不是性能最优的模型,但是关系型数据库确实是现今使用最广泛、最容易理解和使用的数据库模型。大多数的企业级系统数据库都采用关系型数据 库,关系型数据库的概念是掌握数据库开发的基础,所以本节的问题也成为.NET 面试中频繁出现的问题之一。 2.6.2 重点了解内容 关系:可以理解为一张二维表,每个关系都具有一个关系名,就是通常说的表名。 元组:可以理解为二维表中的一行,在数据库中经常被称为记录。 属性:可以理解为二维表中的一列,在数据库中经常被称为字段。 域:属性的取值范围,也就是数据库中某一列的取值限制。
10、关键字:一组可以唯一标识元组的属性。数据库中常称为主键,由一个或多个列组成。 关系模式:指对关系的描述,其格式为:关系名(属性 1,属性 2,属性 N)。在数据库中通常称为表结构。 2.6.3 关系型数据库优点 容易理解:二维表结构是非常贴近逻辑世界的一个概念,关系模型相对网状、层次等其他模型来说 更容易理解。 使用方便:通用的 SQL 语言使得操作关系型数据库非常方便,程序员甚至于数据管理员可以方便地在逻辑层面操作数据库,而完全不必理解其底层实现。 易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大降低了数据冗余和数据不一致的概率。 2.7本章作业知识问答: 数据库、数据
11、库管理系统、数据库系统的概念及关系? 数据模型的概念及发展阶段? 什么是关系型数据库? 第 3 章 SQL Server 简介与安装3.1章节目标掌握 SQL Server2014 的安装与配置 掌握 Widow 验证模式和混合模式登录 掌握 SQL Server 服务的开启与停止 掌握 SQL SERVER 2014 的编程管理工具 3.2初步认识 SQL ServerSQL Server 是 Microsoft 公司推出的一种关系型数据库系统。 SQL Server 是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,实现了与 WindowsNT 的有机结合,提供了
12、基于事务的企业级信息管理系统方案。 3.3SQL Server 主要特性高性能设计,可充分利用 WindowsNT 的优势。 系统管理先进,支持 Windows 图形化管理工具,支持本地和远程的系统管理和配置。 强壮的事务处理功能,采用各种方法保证数据的完整性。 支持对称多处理器结构、存储过程、ODBC,并具有自主的 SQL 语言。 SQLServer 以其内置的数据复制功能、强大的管理工具、与 Internet 的紧密集成和开放的系统结构为广大的用户、开发人员和系统集成商提供了一个出众的数据库平台。 3.4SQL Server2014 的安装 SQL Server 2014 安装文档.doc
13、x 3.5启动和停止 SQL Server 服务 3.5.1 通过本机计算机管理启动停止服务 1.在“开始”菜单上,右键单击“我的电脑”,再单击“管理”。 2.在“计算机管理”中,展开“服务和应用程序”,再单击“服务”。 3.在服务列表中,双击“SQL Server Browser”。 4.在“SQL Server 浏览器属性”窗口中,单击“启动”或“停止”。 5.在服务启动或停止时,单击“确定”。 3.5.2 使用命令行来启动停止服务 1.在“开始”菜单上,单击“运行”。 2.在“运行”对话框中,键入 cmd。 3.在命令提示符下,通过 net stop mssqlserver 停止服务;通
14、过 net start mssqlserver 启动服务。 3.5.3 使用 SQL Server 配置管理器启动停止服务 通过程序菜单找到“SQL Server 配置管理器” 3.6SQL Server 的身份验证模式使用 Microsoft SQL Server 安装向导的“身份验证模式”页选择安全模式,用来验证对本系统的客户端和服务器连接。如果选择“混合模式”,则必须输入并确认 SQL Server 系统管理员 (sa) 。设备建立起对 SQL Server 的成功连接之后,安全机制对于 Windows 身份验证和混合模式是相同的。 3.6.1Windows 身份验证模式用户通过 Mic
15、rosoft Windows 用户帐户连接时,SQL Server 使用 Windows 操作系统中的 信息验证帐户名和。这是默认的身份验证模式,比混合模式安全得多。Windows 身份验证使用 Kerberos 安全协议,通过强的复杂性验证提供策略强制,提供帐户锁定支持,并且支持过期。 安全说明: 请尽可能使用 Windows 身份验证。 如果选择 Windows 身份验证,安装程序会创建一个在默认情况下禁用的 sa 帐户。若要使用混合模式身份验证并在安装完成后激活 sa 帐户,请参阅 SQL Server 联机中的主题“如何更改服务器身份验证模式”。 重要提示: 设置强对于确保系统的安全至
16、关重要。切勿设置空或弱 sa 。 3.6.2 混合模式混合模式(Windows 身份验证或 SQL Server 身份验证) 允许用户使用 Windows 身份验证或 SQL Server 身份验证进行连接。通过 Windows 用户帐户连接的用户可以使用 Windows 验证的受信任连接。 如果必须选择“混合模式身份验证”并要求使用 SQL 登录以适应旧式应用程序,则必须为所有 SQL 帐户设置强。这对于属于 sysadmin 角色的帐户(特别是 sa 帐户)尤其重要。 注意:提供 SQL Server 身份验证只是为了向后兼容。请尽可能使用 Windows 身份验证。 输入 选择“混合模式
17、身份验证”时,请输入并确认系统管理员 (sa) 登录名。是抵御入侵者的第一道防线,因此设置强对于系统安全是绝对必要的。切勿设置空或弱 sa 。 注意:SQL Server 可包含 1 到 128 个字符,包括字母、符号和数字的任意组合。如果选择“混合模式身份验证”,则必须输入强 sa 才能进入安装向导的下一页。 3.7本章作业 知识问答: 怎么启动和停止 SQL Server 服务? SQL Server 两种身份验证模式 第 4 章 T-SQL 语言基础4.1章节目标了解 T-SQL 语言的基本常识 了解 T-SQL 标识符 掌握 T-SQL 数据类型 了解批处理和注释 了解 T-SQL 运
18、算符 4.2T-SQL 语言概述4.2.1T-SQL 概述Transact-SQL 简称 T-SQL。T-SQL 语言是标准的 SQL Server 的扩展,是标准的 SQL 程序设计语言的增强版,是用以程序与 SQL Server 沟通的主要语言。T-SQL 是 SQL Server 系统产品独有的,其他的关系数据库不支持 T-SQL。它提供了类似 C 语言的基本功能,如变量说明、功能函数、程序流程控制语句等。 4.2.2T-SQL 语言组成数据定义语言(DLL):用于在数据库系统中对数据库,表,视图,索引等数据库对象进行创建和管理。 数据控制语言(DCL):用于实现对数据库中数据的完整性,
19、安全性等的控制。 数据操纵语言(DML):用于插入,修改,删除和查询数据库中的数据。 4.2.3T-SQL 语句构成每条 SQL 语句均由一个谓词开始,该谓词描述这条语句要产生的动作,如 Select 或 Update 关键字。谓词后紧跟一个或多个子句,子句中给出了被谓词作用的数据或提供谓词动作的详细信息,每一条子句都由一个关键字开始。 4.2.4T-SQL 语句分类变量说明语句:用来说明变量的命令。 数据定义语句:用来建立数据库,数据库对象和定义列,大部分是以 Create 开头的命令。 数据操纵语句:用来操纵数据库中数据的命令,如 Select,Insert,Update,Delete 等
20、等。 数据控制语句:用来控制数据库组件的存取许可,存取权限等命令,如 Grant, Revoke 等等。 流程控制语句:用于设计应用程序流程的语句,如 If While 和 Case 等等。 内嵌函数:说明变量的命令。 其令:嵌于命令中使用的标准函数。 4.2.5 简单 T-SQL 语言的使用1.Create database 语句 语法格式为:Create database 数据库名,创建一个数据库 2. Drop database 语句 语法格式为:Drop database 要删除的数据库名,删除一个数据库 3. Create table 语句 语法格式为:Create table 表名
21、( 列名 1 数据类型, 列名 2 数据类型, 列名 3 数据类型, . )创建一个数据表 4. Drop table 语句 语法格式为:Drop table 要删除的表名,删除一个数据表 5. Insert 语句 向表中插入数据使用 Insert 语句,语法格式为:Insert 表名 (字段 1,字段 2,.,字段n) values (值 1,值 2,.,值 n)。 对于向表中的所有非标识列字段插入数据,简写为下面格式:Insert 表名 values (值 1,值 2,.,值 n)。 6. Update 语句 更改表中的内容是由 Update 语句实现的,语法格式为:Update 表名 s
22、et 字段 1=值 1,字段 2=值2,.,字段 n=值 n where 条件 1 and 条件 2 and.and 条件 n 其中不加 where 和后面的条件是更新表中所有内容,加上 where 和后面的条件是只更新符合条件的内容。 7. Delete 语句 删除数据表中的内容通过 Delete 语句实现,语法格式为:Delete 表名 where 条件 1 and 条件 2 andand 条件 n,其中不加 where 和后面的条件是删除数据表中的所有内容,加上 where 和后面的条件是只删除符合条件的内容。 8. SeLect 语句 查询数据表中的内容是通过 Select 语句实现的
23、,语法格式为:Select 子段 1,子段 2,.,子段 n from 表 where 条件 1 and 条件 2 andand 条件 n。查询数据表中的所有子段的格式为:Select * from 表 where 条件 1 and 条件 2 andand 条件 n。其中不加 where 和后面的条件是查询数据表中的所有内容,加上 where 和后面的条件是只查询符合条件的内容。 4.3标识符4.3.1 什么是标识符 标示符是指用来标识某个实体的一个符号。在不同的应用环境下有不同的含义。 1)在日常生活中,标示符是用来指定某个东西、人,要用到它,他或她的名字;在数学中解方程时,我们也常常用到这
24、样或那样的变量名或函数名。 2)在 SQL Server 中,标识符是用来标识数据库对象的名称,SQL Server 中的所有内容都可以有标识符。 服务器、数据库和数据库对象(例如表、视图、列、索引、触发器、过程、约束及规则等)都可以有标识符。 大多数对象要求有标识符,但对有些对象(例如约束),标识符是可选的。 4.3.2 标识符分类根据使用方式,SQL Server 将标识符分为常规标识符和分隔标识符。 1.常规标识符 常规标识符符合标识符的格式规则,常规标识符就是不需要使用分隔标识符进行分隔的标识符。如变量名等,常规标识符必须符合如下格式规则: 第一个字符必须是字母、下划线(_)、at 符
25、号()和数字标记(#)。 第一个字符后,可以是字母、基本拉丁字母、数字、$、_、和#。 标识符不能是 Transact-SQL 的保留字。 不允许嵌入空格或其他特殊字符。 常规标识符和分隔标识符包含的字符数必须在 1128。 以符合开始的标识符名称具有特殊的用途: 以开始的标识符表示局部变量或参数。 以开始的标识符表示全局变量。 以#开始的标识符表示临时表或过程。 以#开始的标识符表示全局临时对象。 2.分隔标识符 如果标识符遵从标识符格式的所有规则,则既可以使用分隔符,也可以不使用分隔符。对不符合标识符的格式规则的标识符必须进行分隔。 (1)分隔标识符类型 被引用的标识符用双引号(“”)分隔
26、开。 括在括号中的标识符用方括号( )分隔。 (2)分隔标识符的使用 当在对象名称或对象名称的组成部分中使用保留字时,推荐不要使用保留关键字作为对象名称,可用分隔标识符引用对象直到可改变其名称。 4.4数据类型数据类型是一种属性,用于指定对象可保存的数据的类型,SQL Server 中支持多种数据类型,包括字符类型、数值类型以及日期类型等。数据类型相当于一个容器,容器的大小决定了装的东西的多少,将数据分为不同的类型可以节省磁盘空间和资源。 SQL Server 将数据类型分为系统数据类型及用户自定义数据类型。 4.4.1 系统数据类型 1.整数数据类型 整数数据类型是最常用的数据类型之一。具体
27、类型名称、表示范围和有效存储空间如下表所示: 2浮点数据类型 浮点数据类型用于存储十进制小数。浮点数据类型包括精确的小数数据和近似的小数数据类型。精确的小数类型包括 decimal 和 Numeric 两种,近似的小数类型包括 float 和 real 两种。如下表所示: 数据类型 描述 存储 9,223,372,036,854,775,807 之间的所有数字。 数据类型 描述 存储 Tinyint 允许从 0 到 255 的所有数字。 1 字节 Smallint 允许从 -32,768 到 32,767 的所有数字。 2 字节 Int 允许从 -2,147,483,648 到 2,147,4
28、83,647 的所有数字。 4 字节 8 字节 Bigint 允许介于 -9,223,372,036,854,775,808 和 3.货币数据类型 货币数据类型用于存储货币值,包括 money 和 smallmoney 两种类型。 4.字符数据类型 字符数据类型可以用来存储各种字母、数字符号、特殊符号。如下表所示: 数据类型 描述 备注 char(n) 固定长度的字符串。最多 8,000 个字符。 ANSI 字符串 可变长度的字符串。最多 8,000 个字符。 varchar(n) 数据类型 描述 存储 Smallmoney 介于 -214,748.3648 和 214,748.3647 之间
29、的货币数据。 4 字节 Money 介于 -922,337,203,685,477.5808 和 922,337,203,685,477.5807 之间的货币数据。 8 字节 decimal(p,s) 固定精度和比例的数字。允许从 -1038 +1 到 1038 - 1 之间的数字。 p 参数指示可以存储的最大位数(小数点左侧和右侧)。p 必须是 1 到 38 之间的值。默认是 18。 s 参数指示小数点右侧存储的最大位数。s 必须是 0 到 p 之间的值。默认是 0。 5-17 字节 numeric(p,s) 等价于 decimal 5-17 字节 float(n) 从 -1.79E + 3
30、08 到 1.79E + 308 的浮动精度数字数据。 参数 n 指示该字段保存 4 字节还是 8 字节。float(24) 保存 4 字节,而 float(53) 保存 8 字节。n 的默认值是 53。 4 或 8 字节 Real 从 -3.40E + 38 到 3.40E + 38 的浮动精度数字数据。 4 字节 5.日期和时间数据类型 6.二进制数据类型 数据类型 描述 存储 datetime 从 1753 年 1 月 1 日 到 9999 年 12 月 31 日,精度为 3.33 毫秒。 8 bytes datetime2 从 1753 年 1 月 1 日 到 9999 年 12 月
31、31 日,精度为100 纳秒。 6-8 bytes 4 bytes smalldatetime 从 1900 年 1 月 1 日 到 2079 年 6 月 6 日,精度为 1 分钟。 Date 仅存储日期。从 0001 年 1 月 1 日 到 9999 年 12 月 31日。 3 bytes Time 仅存储时间。精度为 100 纳秒。 3-5 bytes datetimeoffset与 datetime2 相同,外加时区偏移。 8-10 bytes timestamp 存储唯一的数字,每当创建或修改某行时,该数字会更新。timestamp 基于内部时钟,不对应真实时间。每个表只能有一个 ti
32、mestamp 变量。 varchar(max) 可变长度的字符串。最多 1,073,741,824 个字符。 可变长度的字符串。最多 2GB 字符数据。 Text nchar(n) 固定长度的 Unicode 数据。最多 4,000 个字符。 可变长度的 Unicode 数据。最多 4,000 个字符。 可变长度的 Unicode 数据。最多 536,870,912 个字符 可变长度的 Unicode 数据。最多 2GB 字符数据。 Unicode 字符串 nvarchar(n) nvarchar(max) Ntext 7.逻辑数据类型 BIT:占用 1 个字节的存储空间,其值为 0 或 1
33、。如果输入 0 或 1 以外的值,将被视为 1。 BIT 类型不能为 NULL。 char、varchar、nchar、nvarchar 的区别 (1)定长或变长 所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格 在其后面填充,使长度达到相应的长度;有 var 前缀的,表示是实际存储空间是变长的,比如 varchar,nvarchar 变长字符数据则不会以空格填充,比较例外的是,text 存储的也是可变长。 (2)Unicode 或非 Unicode 数据库中,英文字符只需要一个字节存储就足够了,但汉字和其他众多非英文字符,则 需要两个字节存储。如果英文与汉字同时存
34、在,由于占用空间数不同,容易造成混乱,导致读取出来的字符串是乱码。Unicode 字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。而前缀 n 就表 示 Unicode 字符,比如 nchar,nvarchar,这两种类型使用了 Unicode 字符集。 (3) 基于以上两点来看看字段容量 (4) 实际使用 如果数据量非常大,又能 100%确定长度且保存只是 ansi 字符,那么 char 能确定长度又不一定是 ansi 字符或者,那么用 nchar; 对于超大数据, 如文章内容,使用 nText 其他的通用 nvarchar CHA
35、R char,varchar nchar,nvarchar 最多 8000 个英文,4000 个汉字 可存储 4000 个字符,无论英文还是汉字 数据类型 描述 存储 binary(n) 固定长度的二进制数据。最多 8,000 字节。 varbinary(n) 可变长度的二进制数据。最多 8,000 字节。 varbinary(max) 可变长度的二进制数据。最多 2GB 字节。 Image 可变长度的二进制数据。最多 2GB。 4.4.2 用户自定义数据类型 SQL Server 允许用户在系统数据类型的基础上建立自定义的数据类型当数据库中的多个表中必须存储相同数据类型的数据,且需确保这些列
36、具有相同的数据类型、长度和为空性时,可以是使用用户自定义的数据类型,例如,在建议主外键约束关系时,使 用用户自定义数据类型时,就可以确保多个表中使用同一字段的一致性。 学习提示:用户自定义数据类型如果创建在 model 数据库中,它将能应用于所有用户定义的新数据库中;如果创建在用户定义的数据库中,则该数据类型只会作用在该数据库中的对象上。 语法格式: 语法说明: Type_name: 指定新数据类型的名称,必须符合标识符规则。 CREATE TYPEschema_name. type_name FROM base_type NULL|NOT NULL CHAR 存储定长数据很方便,CHAR 字
37、段上的索引效率级高,比如定义 char(10),那么不论你存储的数据是否达到了 10 个字节,都要占去 10 个字节的空间。 VARCHAR 存储变长数据,但存储效率没有 CHAR 高,如果一个字段可能的值是不固定长度的, 我们只知道它不可能超过 10 个字符,把它定义为 VARCHAR(10)是最合算的。VARCHAR 类型的实际长度是它的值的实际长度+1。为什么+1呢?这一个字节用于保存实际使用了多大的长度。 从空间上考虑,用 varchar 合适;从效率上考虑,用 char 合适,关键是根据实际情况找到权衡点。 TEXT text 存储可变长度的非 Unicode 数据,最大长度为 23
38、1-1(2,147,483,647)个字符。NCHAR、NVARCHAR、NTEXT 这三种从名字上看比前面三种多了个N。和 char、varchar 比较起来,nchar、nvarchar 最多存储 4000 个字符,不论是英文还是汉字;而 char、varchar 最多能存储8000 个英 文,4000 个汉字。可以看出使用 nchar、nvarchar 数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失。 base_type: 指定新数据类型的基数据类型。 【示例 1】:创建数据类型。在 Student 数据库中,创建用户自定义数据类型 UTName,其基
39、类型为varchar,长度 50,不为空。 SQL Server 还提供 DROP TYPE 命令来删除自定义数据类型,如果需要删除用户自定义数据类型 UTName,其语法格式如下。 4.5批处理和注释4.5.1 批处理所谓批处理是指从客户机传递到服务器上的一组完整的数据和 SQL 指令。在一个批处理中,可以只包含一条 SQL 指令,也可以包含多条指令。批处理的所有语句被当作一个整体整体,而被成批地分析、编译和执行,若这一批处理中存在一个语法错误,则所有的语句都无法通过编译。 所有的批处理指令以 GO 作为结束的标志,当编译器读到 GO 时,它就会把 GO 前面的所 有指令当作一个批处理,并包
40、装成一个数据包发送给服务器。 【示例 2】 建立一个批处理完成查询。 USE 学生数据库打开数据库 GO SELECT * FROM 学生基本表WHERE 系别名称=信息学院 GO -删除用户自定义类型DROP TYPE UTName GO - 创建自定义数据类型 UTName CREATE TYPE UTName FROM VARCHAR(50) NOT NULL GO 4.5.2 注释注释语句是置于语句中的不可执行的字符串,在程序中加入注释说明,增强程序的可读性。 在 SQL SERVER 中有两种编写注释方式: 1. 嵌入行内的注释语句 使用两个连字符(-)创建嵌入地内的注释语句,该符号
41、将注释语句与语句分开。这个注释语句字符也可以使某一行语句无效 2. 块注释语句 在注释文本的起始和结束处输入“/*”和“*/”。 4.6运算符运算符是一种符号,用来指定在一个或多个表达式中执行的操作,他能够用于执行算术运算、字符串连接、赋值以及在字段、常量和变量之间进行比较,在 SQL Server 中,运算符包括算术运算符、位运算符、比较运算符、逻辑运算符、连接运算符、赋值运算符、以及一元运算符。 4.6.1 算术运算符算术运算符可以在两个表达式上执行数 算,这两个表达式可以是任何数值数据类型。 运算符 作用 + 加法运算 - 减法运算 * 乘法运算 / 除法运算,返回商 加(+) 和减()
42、运算符也可用于对日期型数据进行运算,还可进行数字字符数据与数值类型数据进行运算。 【示例 3】举例说明算术运算 4.6.2 位运算符位运算符用于对两个表达式进行的位操作,这两个表达式可为整型或与整型兼容的数据类型。 【示例 4】举例说明按位运算符 a(168)的二进制表示:0000 0000 1010 1000, b(73) 的二进制表示:0000 0000 0100 1001。(a &b): 0000 0000 1010 1000 0000 0000 0100 1001 0000 0000 0000 1000 运算符 运算名称 运算规则 & 按位与 两个位均为 1 时,结果为 1,否则为 0
43、 | 按位或 只要一个位为 1,结果为 1,否则为 0 按位异或 两个位置不同时,结果为 1,否则为 0 SELECT 3*2 AS 乘法, 3/2 AS 除法,9%4 AS 余数 SELECT GETDATE()-20 AS 20 天前, GETDATE()+20 AS 20 天后 SELECT 2017 - 15 AS 数字字符+, 2017 + 15 AS 数字字符- % 求余运算,返回余数 4.6.3 比较运算符比较运算符(又称为关系运算符)用于测试两个相同类型表达式的顺序、大小、相同与否。 比较运算结果有三种值:正确(TRUE)、错误(FALSE)、未知(UNKNOWN)。 比较表达
44、式用于 if 语句和 while 语句的条件、where 子句和 having 子句的条件。 【示例 5】举例说明比较运算符 -比较数字大小 IF 4523.2 PRINT 正确 ELSE PRINT 错误 -比较字符串顺序 运算符 含义 运算符 含义 = 等于 大于 不等于 小于 != 大于等于 ! 不大于 (a | b): 0000 0000 1010 1000 0000 0000 0100 1001 0000 0000 1110 1001 (a b): 0000 0000 1010 1000 0000 0000 0100 1001 0000 0000 1110 0001 4.6.4 逻辑
45、运算符 逻辑运算符可以把多个逻辑表达式连接起来测试,以获得其真实情况。返回带有 TRUE、 FALSE 或 UNKNOWN 的 Boolean 数据类型。 运算符 含义 ALL 如果一组的比较都为 TRUE,则返回 TRUE。 AND 如果两个布尔表达式都为 TRUE,则返回 TRUE。 ANY 如果一组的比较中任何一个为 TRUE,则返回 TRUE。 BETWEEN 如果操作数在某个范围之内,则返回 TRUE。 EXISTS 如果子查询包含一些行,则返回 TRUE。 IN 如果操作数等于表达式列表中的一个,则返回 TRUE。 LIKE 如果操作数与一种模式相匹配,则返回 TRUE。 NOT
46、对任何其他布尔运算符的值取反。 OR 如果两个布尔表达式中的一个为 TRUE,则返回 TRUE。 IF abcdabed PRINT 正确 ELSE PRINT 错误 -比较日期顺序 IF GETDATE()2017-02-14 PRINT yes ELSE PRINT no 4.6.5 连接运算符字符串连接运算符(+)可以实现字符串之间的连接。 【示例 6】字符串连接 4.6.6 赋值运算符指给局部变量赋值的 SET 和 SELECT 语句中使用的“=” 【示例 7】 赋值运算符 4.6.7 一元运算符一元运算符指只有一个操作数的运算符,包含+(正)、-(负)和(按位取反) 【示例 8】按位
47、取反运算符 设 a 的值为 9 (1001),则a 的值为 6(0110) 4.6.8 运算符优先级 当一个复杂的表达式有多个运算符时,运算符优先级决定执行运算的先后次序,执行的顺序会影响所得到的运算结果。 优先等级相同时,一元运算符按从右向左的顺序运算,二元运算符对其从左到右进行运算。 DECLARE num1 INT,num2 INT SET num1=1 SET num2=2 SELECT num1+num2 AS 结果 SELECT (ab+cd+efg) AS 字符串连接 SOME 如果在一组比较中,有些为 TRUE,则返回 TRUE。 4.7本章作业4.7.1 知识问答1.T-SQL 语言的分类包含什么? 2.标识符分类有什么? 3.SQL Server 常用的系统数据类型有哪些? 4.运算符包含哪几种? 运算符 优先级 +(正)、-(负)、(按位 NOT) 1 *(乘)、/(除)、%(模) 2 +(加)、(+ 串联)、-(减) 3 =、 =、 =、!=、!、! 比较运算符 4 (位异或)、&(位与)、|(位或) 5 NOT 6 AND 7 ALL、ANY、B
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年吐鲁番职业技术学院单招职业倾向性考试题库附答案详解(b卷)
- 2026年厦门工学院单招综合素质考试题库及一套答案详解
- 2026年四川三河职业学院单招综合素质考试题库及完整答案详解1套
- 2026年四川工业科技学院单招职业技能测试题库附参考答案详解(综合卷)
- 快递行业市场竞争与未来发展前景
- 危重患者深静脉血栓风险评估与预防
- 保持角膜塑形镜清洁的方法
- 临终病人护理经验查房
- 大班妇女节活动总结
- 2026四川雅安职业技术学院附属医院招聘1人考试备考试题及答案解析
- 2026年山东圣翰财贸职业学院单招职业技能考试题库及答案解析
- GB 14249-2026电子衡器安全要求
- 2025四川绵阳市五八机器人科技有限责任公司外部招聘19人(第三批次)笔试参考题库附带答案详解
- 高血压饮食护理实践指南(2025年版)
- 2026第二师铁门关市公安局招聘警务辅助人员(36人)笔试备考题库及答案解析
- 2025年3月天津高考英语真题 试题版
- 2026内蒙古地质矿产集团有限公司社会招聘65人备考题库带答案详解(b卷)
- 高速公路工程竣工验收管理办法
- 人教版五年级上册数学《观察物体》练习题
- 颅脑肿瘤垂体腺瘤
- 2023年新改版教科版六年级下册科学全册教案(新课标)
评论
0/150
提交评论