1、第 3 章数据库基础第 3 章数据库基础3.1 SQL Server 数据库管理系统数据库管理系统3.2 SQL Server Management Studio 的使用的使用3.3 标识符概述标识符概述3.4 SQL Server 内置系统数据库内置系统数据库3.5 SQL Server 系统内置函数系统内置函数第 3 章数据库基础3.1SQL Server 数据库管理系统数据库管理系统3.1.1SQL Server 概述概述SQL Server 是一个关系数据库管理系统。它最初是由 Microsoft、Sybase 和 Ashton_x0002_Tate 三家公司共同开发的,于 1988
2、年推出了第一个 OS/2 版本,随后推出了 SQL Server 7.0、SQL Server 2000、SQL Server 2008、SQL Server 2015、SQL Server 2019 等版本。第 3 章数据库基础3.1.2SQL Server 2008 R2 的安装的安装 安装需求安装需求SQL Server 2008 R2 支持 32 位和 64 位操作系统,这里主要介绍 SQL Server 2008 R2 64 位的安装需求。1)硬件需求(1)处理器:Pentium 兼容处理器或处理速度更快的处理器。CPU 最低为 1.0 GHz,建议不小于 2.0 GHz。(2)内存
3、:最小 512 MB,建议不小于 2 GB。第 3 章数据库基础(3)硬盘:在安装 SQL Server 2008 R2 时,需要系统驱动器提供至少 2 GB 的可用磁盘空间用来存储 Windows Installer 创建的安装临时文件。安全安装 SQL Server 2008 R2 需要约 2 GB 磁盘空间,SQL Server 2008 R2 各组件磁盘空间需求情况如表 3-1 所示。(4)显示器:VGA 或更高分辨率,SQL Server 图形工具要求 1024768 像素或更高分辨率。第 3 章数据库基础第 3 章数据库基础2)软件需求软件需求(1)框架支持:安装 SQL Serv
4、er 2008 R2 所需的软件组件有 SQL Server Native Client(SQL Server 本地客户端);.NET Framework 3.5 SP1(.NET 框架);SQL Server 2008 R2 安装程序支持文件。(2)软件:Microsoft Windows Installer 4.5 或更高版本。Microsoft 数据访问组件(MDAC)2.8 SP1 或更高版本。(3)操作系统:Windows 10 操作系统。第 3 章数据库基础 安装步骤安装步骤以 Windows 10 为操作系统平台,SQL Server 2008 R2 学习版安装文件已经下载到 D
5、盘的 sq 文件夹,其安装过程如下:(1)展开 D:sq 文件夹,双击“setup”安装应用程序,如图 3-2 所示。第 3 章数据库基础图 3-2 启动 SQL Server 2008 R2 安装文件第 3 章数据库基础(2)如果出现 Microsoft.NET Framework 安装对话框,则勾选接受许可并安装。必备组件安装完成后,安装向导进入“SQL Server 安装中心”,如图 3-3 所示。单击“全新安装或向现有安装添加功能”选项,安装向导进行“安装程序支持规则”检查。第 3 章数据库基础图 3-3 SQL Server 2008 R2 安装中心界面第 3 章数据库基础(3)通过
6、安装程序支持规则检查以后,进入“许可条款”操作界面,勾选“我接受许可条款”,如图 3-4 所示。再次检查安装程序支持文件,如果通过则进入“功能选择”界面。第 3 章数据库基础图 3-4“许可条款”界面第 3 章数据库基础(4)在如图 3-5 所示的“功能选择”界面单击“全选”按钮,单击“下一步”,进入“实例配置”界面。注意:“共享功能目录”的文件夹不可以更改,否则安装过程出错。第 3 章数据库基础图 3-5“功能选择”界面第 3 章数据库基础(5)在如图 3-6 所示的“实例配置”界面,用户可以使用默认实例名 MSSQLSERVER,也可以选择命名实例 SQLExpress,实例根目录为 C:
7、Program FilesMicrosoft SQL Server。单击“下一步”进入“服务器配置”界面。第 3 章数据库基础图 3-6“实例配置”界面第 3 章数据库基础(6)在“服务器配置”界面,根据选择的安装功能指定 SQL Server 服务的登录账户。可以为所有 SQL Server 服务分配相同的登录账户,也可以分别配置每个服务账户,还可以指定服务类型为自动、手动或禁用,如图 3-7 所示。第 3 章数据库基础图 3-7“服务器配置”界面第 3 章数据库基础(7)在“数据库引擎配置”界面,可以设置 SQL Server 实例的身份验证模式为Windows 身份验证模式或混合模式。在
8、“指定 SQL Server 管理员”栏,必须至少指定一个系统管理员,也可以添加或删除账户,如图 3-8 所示。单击“下一步”进入“Reporting Services 配置”界面。第 3 章数据库基础图 3-8“数据库引擎配置”界面第 3 章数据库基础(8)在“Reporting Services 配置”界面,指定要创建的 Reporting Services 安装的类型:安装本机模式默认配置、安装 SharePoint 集成模式默认配置、安装但不配置报表服务器,如图 3-9 所示。单击“下一步”进入“错误报告”界面,再单击“下一步”按钮,进入“安装规则”界面,然后进入“安装进度”界面。第
9、3 章数据库基础图 3-9“Reporting Services”配置界面第 3 章数据库基础(9)在“安装进度”界面,监视安装进度,如图 3-10 所示。图 3-10“安装进度”界面第 3 章数据库基础(10)安装完成后,“完成”页会提供指向安装摘要日志文件以及其他重要说明的链接,提示已完成 SQL Server 安装过程,单击“关闭”按钮,如图 3-11 所示。第 3 章数据库基础图 3-11安装完成界面第 3 章数据库基础3.2SQL Server Management Studio 的使用的使用SQL Server Management Studio(简称 SSMS)是一个访问、配置和
10、管理所有 SQL Server组件(数据库引擎、Analysis Services、Integration Services、Reporting Services 和 XQuery 等)的集成环境,提供用于配置、监视和管理 SQL 实例的工具,使用 SSMS 部署、监视和升级应用程序使用的数据层组件,以及生成查询和脚本,使各种技术水平的开发人员和管理员可以通过易用的图形工具和丰富的脚本编辑器使用和管理 SQL Server。第 3 章数据库基础3.2.1启动启动 SQL Server 2008 R2 服务器服务器1.使用使用 SQL Server 配置管理器启动服务配置管理器启动服务SQL S
11、erver 配置管理器是一种用于管理与 SQL Server 相关联的服务、配置 SQLServer 使用的网络协议以及从 SQL Server 客户端计算机管理网络连接配置的工具。打开 SQL Server 配置管理器:开始所有程序单击展开“Microsoft SQL Server 2008 R2”单击展开“配置工具”SQL Server 配置管理器,如图 3-12 所示。第 3 章数据库基础在 SQLServer 配置管理器中单击“SQL Server 服务”,在详细信息窗格中,右键单击“SQL Server(SQLEXPRESS)”,弹出菜单,然后单击“启动”即可;反之则可停止。同理,可
12、以启动或停止其他 SQL Server 服务(如 Analysis、Reporting)。第 3 章数据库基础图 3-12 SQL Server 配置管理器第 3 章数据库基础 使用使用 Windows 服务管理器启动服务服务管理器启动服务打开 Windows 服务管理:在桌面上选中“我的电脑”,右击鼠标,在弹出的快捷菜单中选择“管理”,打开“计算机管理”操作界面,单击“服务和应用程序”双击“SQL Server 配置管理器”双击展开“SQL Server 服务”右击“SQL Server(SQLEXPRESS)”弹出快捷菜单,单击“启动”按钮,即可启动 SQL Server 服务,如图 3-
13、13 所示。执行类似的操作可以启动其他的选项。第 3 章数据库基础图 3-13计算机管理启动 SQL Server 服务第 3 章数据库基础3.2.2启动启动 SQL Server Management Studio单击“开始”“所有程序”单击展开“Microsoft SQL Server 2008 R2”单击“SQL Server Management Studio”,如图 3-14 所示。第 3 章数据库基础图 3-14 SQL Server Management Studio 登录窗口第 3 章数据库基础SSMS 工作界面是一个标准的 Windows 界面,由标题栏、菜单栏、工具条、属性
14、面板和树窗口组成。单击“新建查询”,在工作窗口打开脚本文件*.sql 文件,进入编辑界面,如图 3-15 所示。第 3 章数据库基础图 3-15 SQL Server Management Studio 工作界面第 3 章数据库基础3.3标识符概述标识符概述数据库对象的名称即为标识符,SQL Server 中的所有内容都可以有标识符。服务器、数据库和数据库对象(例如表、视图、列、索引、存储过程、触发器、约束及规则等)也都可以有标识符。第 3 章数据库基础使用标识符要注意以下几点:(1)标识符必须是统一码(Unicode2.0)标准中规定的字符以及其他一些语言字符(如汉字),如表 3-2 所示。
15、第 3 章数据库基础(2)标识符不能有空格或特殊字符 _、#、$以外的字符。(3)标识符不允许是 Tansact-SQL 的保留字。(4)标识符长度不得超过 128 个字符。另外,在 SQL Server 中,还有许多具有特殊意义的标识符,如表 3-3 所示。第 3 章数据库基础第 3 章数据库基础3.4SQL Server 内置系统数据库内置系统数据库3.4SQL Server 内置系统数据库内置系统数据库1.系统数据库系统数据库启动SQL Server Management Studio连接数据库引擎后,展开“数据库”“系统数据库”文件夹,可以看到 master、model、msdb 和
16、tempdb 4 个系统数据库。具体如下:(1)master:记录 SQL Server 系统的所有系统级别信息,包括登录账户、系统配置和SQL Server 初始化信息。第 3 章数据库基础(2)model:用于创建数据库的模板。(3)msdb:供 SQL Server 代理程序调度警报、作业和记录操作员时使用。(4)tempdb:保存所有的临时表和临时存储过程。每次启动时都重新创建 tempdb,并根据需要自动增长。第 3 章数据库基础 报表数据库报表数据库SQL Server 中的服务器除了数据库引擎外,还有 Analysis Services(分析服务器)、Reporting Serv
17、ices(报表服务器)等,其中报表服务器使用 SQL Server 数据库引擎来存储元数据和对象定义。为了将永久性数据存储与临时存储要求分开,Reporting Services 使用两个 SQL Server 关系数据库用作内部存储,在默认情况下,这两个数据库分别命名为Reportserver和ReportserverTempDB,随报表服务器主数据库一同创建,用于存储临时数据、会话信息和缓存的报表。根据本例的数据库实例名 SQLEXPRESS,这两个报表数据库名称为“Reportserver$-SQL-EXPRESS”和Reportserver$SQLEXPRESSTempDB”。第 3
18、章数据库基础3.5SQL Server 系统内置函数系统内置函数3.5.1系统函数系统函数系统函数用于获取有关计算机系统、用户、数据库和数据库对象的信息。可以在不直接访问系统表的情况下,获取 SQL Server 系统表中的信息。用户在得到信息后使用条件语句,根据返回的信息进行不同的操作。与其他函数一样,可以在 select 语句的 select 和where 子句以及表达式中使用系统函数。系统函数的类型如表 3-4 所示。第 3 章数据库基础第 3 章数据库基础例例 3-1 返回图书信息表 books 中 bookid 为 1、书名 title 列的长度及其值的长度。代码如下:select
19、col_length(books,title)as name_col_length,datalength(title)as title_data_length from books where bookid=1第 3 章数据库基础3.5.2字符串函数字符串函数字符串函数对二进制数据、字符串和表达式执行不同的运算。此类型函数作用于char、varchar、binary 和 varbinary 数据类型以及可以隐式转换为 char 或 varchar 的数据类型。可以在select语句的select和where子句及表达式中使用字符串函数。字符串函数的类型如下。第 3 章数据库基础 字符转换函数字
20、符转换函数1)ascii()功能:返回字符表达式最左端字符的 ASCII 码值。语法:ascii(character_expression)返回类型:int示例:select ascii(123),ascii(A),返回结果为“49”“65”。2)char()功能:用于将 ascii 码转换为字符。语法:char(integer_expression)返回类型:char示例:select char(65),char(123),返回结果为“A”“”。第 3 章数据库基础3)lower()功能:把字符串全部转换为小写。语法:lower(character_expression)返回类型:varch
21、ar示例:select lower(abc),lower(A 李 C),返回结果为“abc”“a 李 c”。4)upper()功能:把字符串全部转换为大写。语法:upper(character_expression)返回类型:varchar示例:select upper(Abc),upper(a 李 c),返回结果为“ABC”“A 李 C”。第 3 章数据库基础5)str()功能:把数值型数据转换为字符型数据。语法:str(float_expression,length,decimal)返回类型:char说明:length 指定返回字符串的长度,decimal 指定返回的小数位数。如果没有指定
22、,则 length 的值为 10,decimal 缺省值为 0。示例:select str(123.5),str(123456,3),str(123.456,8,2),str(-12123.456,8,2),其返回的结果为“124”“”“123.46”“-12123.5”。第 3 章数据库基础2.去空格函数去空格函数1)ltrim()功能:把字符串头部的空格去掉。语法:ltrim(character_expression)返回类型:varchar示例:select ltrim(A),返回结果为“A”。第 3 章数据库基础2)rtrim()功能:把字符串尾部的空格去掉。语法:rtrim(char
23、acter_expression)返回类型:varchar示例:select ltrim(A),rtrim(李),返回结果为“A”“李”。例 3-2 去掉字符串头部和尾部的空格。示例:select rtrim(ltrim(李),返回的结果为“李”。第 3 章数据库基础3.取子串函数取子串函数1)left()功能:返回从字符串左边开始指定个数的字符。语法:left(character_expression,integer_expression)返回类型:varchar示例:select left(ABC,2),left(A 西林 C,2),其返回的结果为“AB”“A 西”。2)right()功能
24、:返回从字符串右边开始指定个数的字符。语法:right(character_expression,integer_expression)返回类型:varchar示例:select right(ABC,2),right(A 西林 C,2),其返回的结果为“BC”“林 C”。第 3 章数据库基础3)substring()功能:返回字符串、binary、text 表达式的一部分。语法:substring(expression,start,length)返回类型:varchar,nvarchar,varbinary示例:select substring(ABC,2,1),substring(ABC,2
25、,4),其返回的结果为“B”“BC”。第 3 章数据库基础4.字符串比较函数字符串比较函数1)charindex()功能:返回字符串中某个指定的子串出现的起始位置。语法:charindex(substring_expression,expression,start_location),其中 substring_expression是所要查找的字符表达式;expression 可为字符串也可为列名表达式;start_location 表示要查询的开始位置,省略该参数默认为 1。如果没有发现子串则返回 0 值。此函数不能用于text 和 image 数据类型。返回类型:int示例:select c
26、harindex(B,ABC),charindex(AD,ABCD),charindex(B,ABCDEF,3),其返回的结果为“2”“0”“0”。第 3 章数据库基础2)replace()功能:用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式。语法:replace(string_expression1,string_expression2,string_expression3)返回类型:与表达式类型一致示 例:select replace(ABC,B,12),replace(ABCD,BD,ERR),其返回的结果为“A12C”“ABCD”。第 3 章数据库基础3.5.3
27、日期和时间函数日期和时间函数日期和时间函数用来显示关于日期和时间的信息,其数据类型为 datetime 和smalldatetime 值,可以对这些值执行算术运算,最后将返回一个字符串、数字值或日期和时间值。1)day()功能:返回 date_expression 中的日期值。语法:day(date_expression)返回类型:int示例:select day(2018-05-01),day(05/04/2018),其返回的结果为“1”和“4”。第 3 章数据库基础2)month()功能:返回 date_expression 中的月份值。语法:month(date_expression)返
28、回类型:int示例:select month(2018-05-01),month(06-01-2018),其返回的结果值为“5”和“6”。3)year()功能:返回 date_expression 中的年份值。语法:year(date_expression)返回类型:int示例:select year(2018-05-01),year(06-01-2019),其返回的结果值为“2018”和“2019”。第 3 章数据库基础4)getdate()功能:按 datetime 数据类型格式返回当前系统日期和时间。语法:getdate()返回类型:datetime示例:select getdate()
29、,其返回当前日期和时间。5)datepart()功能:返回代表指定日期的指定日期部分的整数。语法:datepart(datepart,date)返回类型:int示 例:select datepart(year,getdate(),datepart(month,2018-05-01),其返回的结果为“2021”和“5”。第 3 章数据库基础6)dateadd()功能:在向指定日期加上一段时间的基础上,返回新的 datetime 值。语法:dateadd(datepart,number,date)返回类型:datetime示例:select dateadd(day,20,2020-05-01),其
30、返回的结果为“2020-05-21 00:00:00.000”。7)datediff()功能:返回跨两个指定日期的日期和时间边界数。语法:datediff(datepart,startdate,enddate)返回类型:int示例:select datediff(day,2018-03-01,2018-05-01),其返回的结果为“61”。第 3 章数据库基础3.5.4其他函数其他函数1.round()功能:返回数字表达式并四舍五入为指定的长度或精度。语法:round(numeric_expression,length,function)返回类型:与 numeric_expression 相同
31、示例:select round(24.567,2),round(24.25,0),其返回的结果为“24.570”和“24.00”。第 3 章数据库基础2.case()在 T-SQL 语句中,可以使用 case 语句实现程序中多条件分支。1)简单 case 函数功能:将某个表达式与一组简单表达式进行比较以确定结果。语法格式:case input_expression when when_expression then result_expression.n else else_result_expressionend第 3 章数据库基础例例 3-3 查询学生信息,将性别以英文显示。代码如下:select studno,studname,学生性别=case studsexwhen 男 then male when 女 then female else 性别不详 end from studinfo第 3 章数据库基础2)case 搜索函数功能:计算一组布尔表达式以确定结果。语法格式:case when boolean_expression then result_expression.n else else_result_expression end第 3 章数据库基础例 3-4 统计各学生的平均分,并按等级显示。代码如下: