外卖商家能看到客户信息吗版牵牛怎么在右侧显示客户,加号里也没有客户选项

本书详细讲解了SQL Server 2016数据库的基本概念、安装和卸载、创建数据库、操作数据表和视图、T-SQL语言、数据查询、数据操作、存储过程、触发器、索引、游标、SQL函数、事务、性能优囮等内容还讲解了大数据功能和数据库性能提升问题。读者通过本书的学习可以较为全面地掌握SQL Server 2016数据库管理、开发的方法和技巧

孙亚喃,多年数据库研发与教学经验

第1章 数据库入门 1

数据库是依照某种数据模型组织起来并存放在二级存储器中的数据集合, 可以将其视为電 子化的文件柜数据库具有不重复、以最优方式提供多种应用服务、数据结构独立于应用程序、 对数据的操作由统一软件进行管理和控淛等特点。从数据管理技术的发展历程来看 数据库是 由文件管理系统发展起来的, 是数据管理的高级阶段
? 了解数据库的发展与组成
? 掌握数据库体系结构
? 掌握数据库的数据模型

在安装SQL SelVer 2016 之前要确保计算机操作系统为Windows8 及以上版本,否则会因 为缺少组件而导致无法正常安裝并且仅x64 处理器支持SQL SelVer 2016 的安装, x86 处理器不再支持此安装

访问接口 用作源。指定源和目标后 便可选择要导入或导出的数据, 用户可以根據源和目标类型设置 不同的向导选项。
    例如若在SQL Se凹er 数据库之间复制数据,则指定要从中复制数据的表或提供用来 选择数据的SQL 语句。具体来说导入SQL Server 数据表的操作步骤如下:

6.3.2 导入其他数据源的数据

     导入其他数据源的数据与6 .3 .1 节中的过程相似, 在选择数据源的步骤中选择不同嘚数据 源比如导入Excel 数据, 就在数据源选项中选择Microsoft Excel如图6.10 所示。其他数据 源同样在数据源下拉列表中选择

6.4 备份和恢复数据库

      在一些对数據可靠性要求很高的行业(如银行、证券、电信等) ,如果发生意外停机或数 据丢失 其损失会十分惨重。为此数据库管理员应针对具体的業务要求制定详细的数据库备 份与灾难恢复策略, 并通过模拟故障对每种可能的情况进行严格测试只有这样才能保证数据 的高可用性。數据库的备份是一个长期的过程而恢复只在发生事故后进行,恢复可以看作是备份的逆过程恢复程度的好坏很大程度上依赖于备份的凊况。此外数据库管理员在恢复时 采取的步骤正确与否也直接影响最终的恢复结果。

        备份数据库是指对数据库或事务日志进行复制当系统、磁盘或数据库文件损坏时, 可以 使用备份文件进行恢复防止数据丢失。SQLSe凹er 数据库备份支持以下几种类型分别应用 于不同的场合, 下面简要介绍

(2) 数据备份( Data Backup) 完整数据库的数据备份(数据库备份) 、部分数据库的数据备份(部分备份)或一组数据 文件或文件组的备份(文件备份〉。

(3)数据库备份( Database Backup) 数据库的备份完整数据库备份表示备份完成时的整个数据库。差异数据库备份只包含自 最近完整备份以来对数据库所做嘚更改

基于完整数据库或部分数据库以及一组数据文件或文件组的最新完整备份的数据备份 ( {( 差异基准" ) ,仅包含自差异基准以来发生了更妀的数据区部分差异备份仅记录自上一 次部分备份(称为" 差异基准" )以来文件组中发生更改的数据区。

( 5 ) 完整备份( Full Backup) 一种数据备份包含特定数據库或者一组特定的文件组或文件中的所有数据,以及可以恢 复这些数据的足够的日志

(6) 日志备份( Log Backup) 包括以前日志备份中未备份的所有日志記录的事务日志备份, 完整恢复模式

( 7 ) 文件备份( File Backup) 一个或多个数据库文件或文件组的备份。

(8) 部分备份( Partial Backup) 仅包含数据库中部分文件组的数据(包含主要文件组、每个读/写文件组以及任何可选指 定的只读文件中的数据〉

      恢复模式旨在控制事务日志维护, 提供给用户选择SQL Server 20 1 6 有3 种恢复模式:简单恢复模式、完全恢复模式和大容量日志恢复模式。通常数据库使用完全恢复模式或简单恢复模式。

        简单恢复模式可以最大限度地減少事务日志的管理开销因为它不备份事务日志。若数据 库损坏则简单恢复模式将面临极大的工作丢失风险。数据只能恢复到己丢失數据的最新备份此, 在简单恢复模式下 备份间隔应尽可能短, 以防止大量丢失数据但是,间隔的长度应该足以避免备份开销影响生產工作在备份策略中加入差异备份可有助于减少开销。
       通常对于用户数据库,简单恢复模式用于测试和开发数据库或用于主要包含呮读数据 的数据库(如数据仓库)。简单恢复模式并不适合生产系统因为对生产系统而言,丢失最新 的更改是无法接受的在这种情况下建議使用完全恢复模式。

(2) 完全恢复模式和大容量日志恢复模式        相对于简单恢复模式而言 完全恢复模式和大容量日志恢复模式提供了更强的數据保护功 能。这些恢复模式基于备份事务日志来提供完整的可恢复性及在最大范围的故障情形内防止丢 失工作

       完全恢复模式需要日志備份。此模式完整记录所有事务 并将事务日志记录保留到对其备 份完毕为止。如果能够在出现故障后备份日志尾部就可以使用完全恢複模式将数据库恢复到 故障点。完全恢复模式也支持还原单个数据页

      ②大容量日志恢复模式      大容量日志记录大多数大容量;操作, 它只用莋完全恢复模式的附加模式对于某些大规模 大容量操作(如大容量导入或索引创建) , 暂时切换到大容量日志恢复模式可提高性能并减少 日誌空间使用量与完全恢复模式相同,大容量日志恢复模式也将事务日志记录保留到对其备 份完毕为止


   为方使用户, SQL Server 20 1 6 支持用户在数据库茬线并且正在使用时进行备份但是, 存在下列限制:
(1 )无法备份脱机数据

    隐式或显式引用脱机数据的任何备份操作都会失败。通常 即 使┅个或多个数据文件不可用,日志备份也会成功

(2) 备份过程中的并发限制。

数据库仍在使用时 SQL Server 可以使用联机备份过程来 备份数据库。在備份过程中可以进行多个操作。例如在执行备份操作期间允许使用剧SERT、 UPDATE 或DELEfE 语句。但是 若在正在创建或删除数据库文件时尝试启动备份操作,则 备份操作将等待 直到创建或删除操作完成或者备份超时。
如果备份操作与文件管理操作或收缩操作重叠就会产生冲突。无論哪个冲突操作首先开 始第二个操作总会等待第一个操作设置的锁超时(超时期限由会话超时设置控制) 。如果在 超时期限内释放锁第二個操作将继续执行。若锁超时则第二个操作失败。

     数据库完整还原的目的是还原整个数据库整个数据库在还原期间处于脱机状态。在數据 库的任何部分变为联机之前 必须将所有数据恢复到同一点,即数据库的所有部分都处于同一 时间点并且不存在未提交的事务在简單恢复模式下,数据库不能还原到特定备份中的特定时 间点
      在完整恢复模式下, 还原数据备份之后必须还原所有后续的事务日志备份,然后恢复数 据库我们可以将数据库还原到这些日志备份之一的特定恢复点。恢复点可以是特定的日期和 时间、标记的事务或日志序列號还原数据库时,特别是在完整恢复模式或大容量日志恢复模 式下应使用一个还原顺序。

与备份数据库类似用户可以通过SQL 如何er Management Studio 工具嘚对象资源管理器 来实现恢复数据库,其主要操作流程如下:

6.5 收缩数据库和文件

   当数据库随着使用时间而越来越大时可以考虑对数据库进荇收缩操作。收缩数据文件通 过将数据页从文件末尾移动到更靠近文件开头的来占用的空间来恢复空间在文件末尾创建足 够的可用空间後,可以取消对文件末尾的数据页的分配并将它们返回给文件系统

6.5.1 自动收缩数据库

    SQL Server 20 16 支持系统自动收缩数据库和用户手动收缩数据库这两種方式。为提高数 据库的使用空间 SQL Se凹er 2016 会寻找可用的数据库并找出第一个配置为自动收缩的数据
库,它将检查该数据库并在需要时收缩該数据库。 待一个数据库收缩完成后系统会等待几分钟再检查下一个配置为自动收缩的数据库。换 句话说 SQL Server 不会同时检查所有数据库,吔不会同时收缩所有数据库它将以循环方式
处理各个数据库,以便负载在时间上错开
如果用户需要SQL Server 20 16 系统自动对数据库进行收缩,只需為该数据库设置自动收缩功能即可其操作方式为:右击选择的数据库,选择【属性】| 【选项】菜单项 在弹出的 数据库属性界面中设置自動收缩为True,如图6.18 所示

6.5.2 手动收缩数据库

除了自动收缩外,用户也可以手动对指定的数据库进行收缩但手动收缩数据库有一定的 限制和局限,主要表现在如下儿方面:
(1)收缩后的数据库不能小于数据库的最小大小最小大小是在数据库最初创建时指定 的大小,或者上一次使用文件大小更改操作(如DBCC SHR剧KFILE ) 设置的大小例如, 若数据库最初创建时的大小为10MB 后来增长到100 MB ,则该数据库最小只能收缩到10MB 即使己经删除数据库嘚所有数据也是如此。
(2) 不能在备份数据库时收缩数据库反之,也不能在数据库执行收缩操作时备份数据库
(3)遇到内存优化的列存储索引時, DBCC SHR剧KDATABASE 操作将会失败遇到 columnstore 索引之前完成的工作将会成功,因此数据库可能会较小若要完成DBCC SHR剧KDATABASE,则需要在执行DBCCS~ATABASE 前禁用所有列存储索引嘫 后重新生成列存储索引。
手动收缩数据库可以在SQL Server Management Studio 工具的对象资源管理器中完成其 具体实现步骤如下:

在收缩数据库界面展示的是数据库xsxk 嘚基本信息,如果需要进行收缩操作 需要 首先选中【在释放未使用的空间前重新组织文件。选中此选项可能会影响性能(R) o 】复 选框 然后茬【收缩后文件中的最大可用空间1 中选择收缩后的空间。然后单击【确定】 按钮即可

本节主要讲解将数据库生成SQL 脚本、将数据表生成SQL 脚夲及执行SQL 脚本3 方面 的操作过程

     使用对象资源管理器可以快速创建整个数据库的脚本,也可以使用默认选项创建单个数据 库对象的脚本用戶可以在查询编辑器窗口中对文件或剪贴板创建脚本,脚本以Unicode 格式 创建用户也可以创建用于创建或删除对象的脚本。有些对象类型具有其他脚本选项 如 ALTER、SELECT、剧SERT... UPDATE、DELETE       有时可能需要使用具有多个选项的脚本,如删除一个过程然后创建一个过程 或者创建一 个表然后更改一个表。若要创建组合的脚本可将第一个脚本保存到查询编辑器窗口中, 并将 第二个脚本保存到剪贴板上 这样就可以在窗口中将第二个脚本粘贴到第一个脚本之后。为某 个对象编写脚本的步骤如下

     SQLServer 同样也支持将数据表生成SQL 脚本。在数据库中选择数据表并右击选择【编 写表腳本为】菜单项,有常用的SQL 脚本包括C阻ATE、DROP 、SELECT、剧SERT、UPDATE 和DELETE , 并且可以将脚本直接生成到查询分析器、文件、剪贴板等如图6.22 所示。

   SQL 脚本的执荇一般需要在查询分析器中完成查询分析器是一个图形化的数据库编程 接口,是SQL Server 客户端的重要组成部分查询分析器以自由的文本格式編辑SQL 代码, 对语法中的保留字提供彩色显示方便开发人员使用。
在SQL Server 2016 中查询分析器是一个功能非常强大的图形工具, 可以进行以下操作:

(1)創建查询和其他SQL 脚本 并针对SQLServer 数据库执行它们。


(2) 由预定义脚本快速创建常用数据库对象
(3)快速复制现有数据库对象。
( 4 ) 在参数未知的情况下執行存储过程
( 5 ) 调试存储过程。
(6) 调试查询性能问题
( 7 ) 在数据库内定位对象(对象搜索功能) ,或查看和使用对象
(8) 快速插入、更新或删除表中嘚行。
(9) 为常用查询创建键盘快捷方式
(1 0 ) 向【工具】菜单添加常用命令。

以执行SQL 脚本操作为例使用查询分析器执行SQL 脚本需要通过以下步骤來实现:

数据库管理是数据库管理员和普通用户操作数据库的入门操作,需要重点掌握该章主要 介绍SQLSe凹er 2016 数据库的维护管理,包括脱机与联機数据库、分离和附加数据库、导入 导出数据、备份和恢复数据库、收缩数据库和文件以及生戚与执行SQL 脚本读者要特别注 意这些操作的先决条件和限制。通过本章的学习要能够对数据库和数据表有一个系统的维护 概念,并能够实施维护策略


6.8 经典习题与面试题

SQL Server 2016 是一个庞夶的数据库系统,安装完成之后需要对数据库服务器做相应的 设置来保证服务器能够正常安全地运行很多读者安装完SQL Server 20 1 6 后,在使用过程中 會遇到问题 为了更好地了解SQL Server 2016,本章将介绍如何启动SQL Server 服务、注册 SQL Se凹er 服务器以及SQL Server 数据库服务器的安全性设置
? 了解数据库安全的相关概念

數据库的管理和维护主要是指为了使业务系统能够高效稳定地运行,对数据库系统进行可 靠性、安全性、扩张性方面的设置SQL se凹er 2016 数据库的管理和维护工作是一个复杂的 过程,包含多种数据库的备份与恢复技术、服务器管理技术、高可用性技术等通过使用规范、 一致的数据庫管理运维方案,能给系统带来以下优点:
? 减轻数据库管理人员( DBA) 的工作复杂度使他们可以很容易地从一个数据库系 统的管理维护转移到噺数据库系统的维护.
? 可以大幅加快数据库管理维护相关脚本或者设置的部署时间,尤其在维护庞大的数据 库系统时.
? 可以有效地实现团隊协作在大规A莫的数据库系统环境中通常委有一个DBA 团队进 行数据库系统的管理维护,通过使用统一的标准可以轻松实现协作工作.
? 可鉯有效地节省数据库系统剥问苦时间,通过使用统一的数据库监控和恢复标准可以 迅速定位故障,并为处理错误节约时间这在24*7 ( 24*7 表示不間断执行的数据库, 即每周工作7 天每天工作24 小时)的数据库系统中尤其有用.

要使用SQL Server 201 6 数据库, 首先要开启服务 如果服务不开启, 即使安装叻数据库 软件也无法使用数据库 如图7.1 所示。SQL Se凹er 本身就是一个Windows 服务数据库中 的每一个实例对应的就是一个sqlserver.exe 进程, 当启动的时候就调用这個可执行文件来开启 数据库服务本节将为读者介绍开启数据库服务的几种方法。


  SQL Server 2016 允许用户创建服务器组将多个服务器放在组中进行统┅的配置和管理。 服务器组是一个逻辑上的概念类似于将QQ 中的好友进行分组。当服务器较多的时候 可以 使用服务器组来进行组织管理。

7.3.1 服务器组的创建与删除

7.3.2 服务器的注册与删除

数据库服务器是所有应用的数据中转站如果数据库服务器被恶意攻击,很有可能造成数 据哋露、数据丢失、数据被恶意篡改等诸多无法挽回的损失因此,对数据库进行安全性设置 是每一个数据管理人员都应该掌握的知识本節将从更改用户验证方式、设置权限、管理角色、 密码策略等方面对数据库服务器进行设置。

7.4.1 更改登录用户验证方式

7.4.2 创建与删除登录用户

7.4.3 創建与删除数据库用户

7.4.4 设置服务器角色权限

     当儿个用户需要在某个特定的数据库中执行类似的动作时(此处没有相应的Windows 用 户组) 可以向该数據库中添加一个角色Crole) 。数据库角色指定了可以访问相同数据库对 象的一组数据库用户
      固定服务器角色已经具备了执行指定操作的权限,鈳以把其他登录名作为成员添加到固定 服务器角色中这样该登录名就可以继承固定服务器角色的权限了。在SQL Server 2016 中默 认的服务器角色如图7.29 所礻

? bulkadmin: 这个服务器角色的成员可以运行BULK 1NSERT 语句。这条语句允许从 文本文件中将数据导入SQL Se凹er 2016 数据库中为需要执行大容量插入数据库的 域账户洏设计。
? dbcreator: 这个服务器角色的成员可以创建、更改、删除和还原任何数据库这既是 适合助理DBA 的角色,也可能是适合开发人员的角色.
? diskadmin: 这個服务器角色用于管理磁盘文件比如镜像数据库和添加备份设备。 它适合助理DBA.
? pr∞essadmin: SQL Server 2016 能够多任务化也就是说可以通过执行多个进程做多 個事件。例如 SQL Se凹er 2016 可以生成一个进程,用于向高速援存写数据同时 也可以生成另一个进程,用于从高速缓存中读取数据这个角色的成員可以结束(在 SQL Se凹er 2008 中称为删除)进程。
? securityadmin: 这个服务器角色的成员将管理登录名及其属性他们可以授权、拒绝 和撤销服务器级权限,也可以授權、拒绝和撤销数据库级权限.另外它们可以重直 SQL Server 2016 登录名的密码。

? serveradmin: 这个服务器角色的成员可以更改服务器范围的配直选项和关闭服务器. 唎如 SQL Server 2016 可以使用多大内存或监视,通过网络发送多少信息或者关闭 服务器,这个角色可以减轻管理员的一些管理负担.
? seωpa缸1m: 为需要管理鏈接服务器和控制启动的存储过程的用户而设计.这个角色 的成员能添加到setupadrnin能增加、删除和配置链接服务器,并能控制启动过程.
? pub1ic:有两大特点一是初始状态时没有权限,二是所有的数据库用户都是它的成员


7.6 经典习题与面试题

第9章 SQL数据查询

第17章 数据库的性能优化

第18章 云计算、大数据与云数据库

第19章 企业ERP管理系统

第20章 人事管理系统

我要回帖

更多关于 外卖商家能看到客户信息吗 的文章

 

随机推荐