CH01_初识SQL Server

本章目标

  • 理解数据库的基本概念
  • 熟悉SSMS基本操作
  • 下载和安装SQL Server
  • 创建和配置SQL Server

关于数据库

为什么需要数据库

存储数据的方法:

第一种方法:用大脑来记住数据

第二种方法:写在纸上

第三种方法:写在计算机的内存中

第四种方法:写成磁盘文件

第五中方法:专业的数据库管理系统

总结:

数据库存储数据:安全、持久、高效

什么是数据库

DBMS:

数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。它可以支持多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。大部分DBMS提供数据定义语言DDL(Data Definition Language)和数据操作语言DML(Data Manipulation Language),供用户定义数据库的模式结构与权限约束,实现对数据的追加、删除等操作。

RDBMS:

RDBMS 是 Relational Database Management System 的缩写,中文译为“关系数据库管理系统”,它是 SQL 语言以及所有现代数据库系统(例如 SQL Server、DB2、Oracle、MySQL 和 Microsoft Access)的基础。

数据库能做什么

  1. 存储大量数据,方便检索和访问
  2. 保持数据信息的一致、完整
  3. 共享和安全
  4. 通过组合分析,产生新的有用信息

常用关系型数据库

关系型数据库管理系统(RDBMS)有很多种,它们都有各自的优缺点,下表是由 DB-Engines 发布的 2020 年 11月份数据库排名榜单。

​ 除了“关系型数据库”,其它类型的数据库统称为 NoSQL 数据库。NoSQL = Not Only SQL ,也即“不仅仅是 SQL”。

MySQL

MySQL 是一种开源的 SQL 数据库,由瑞典的 MySQL AB 公司开发。MySQL 支持多线程、多用户,并且非常快速,一般的中小型网站都选择 MySQL(C语言中文网也基于 MySQL 数据库部署)。

MySQL 是跨平台的,可以在 Windows、Linux、Unix 和 Mac OS X 等主流操作系统上运行。

MySQL 有免费版和收费版,它们的功能和用途(商业/非商业)是有区别的。

MySQL简史:

  • 1994 年,Michael Widenius 和 David Axmark 在 Unix 系统上着手开发 MySQL。
  • 1995 年,MySQL AB 公司在瑞典创立。
  • 1996 年 5 月,MySQL 1.0 版本在小范围内发布;1996 年 10 月,MySQL 3.11.1 版本公开发布。
  • 1998 年 1 月 8 日发布 Windows 版,适用于 Windows 95 和 NT 平台。
  • MySQL 最初是 MySQL AB 公司的私有财产,2000 年遵循 GPL 协议开放源代码,免费供大家使用。
  • MySQL 3.23 版本,从 2000 年 6 月开始测试,2001 年 1 月正式发布。
  • MySQL 4.0 版本,从 2002 年 8 月开始测试,2003 年 3 月正式发布。
  • MySQL 5.0 版本,从 2005 年 3 月开始测试,2005 年 10 月正式发布。
  • 2008 年 2 月 26 日,Sun 公司收购了 MySQL AB 公司,MySQL 数据库归 Sun 公司所有。
  • MySQL 5.1 版本,2008 年 11 月 27 日正式发布。
  • 2015 年,MySQL 5.7 版本发布,这是 5.x 的最后一个版本。
  • MySQL 跳过了 6.x 和 7.x 版本,于 2016 年 9 月直接发布了 8.0 版本;截止到 2020 年 11 月份,MySQL 的最新版本是 8.0.22。

MySQL特性:

  • 使用 C/C++ 编写,性能高
  • 跨平台,支持 Windows、Mac OS、Linux、Unix 等各种操作系统
  • 可伸缩性和可扩展性
  • 很好地支持事务
  • 适合 Web 等大数据量应用场景
  • 强大的数据保护功能
  • 适用于各种应用程序开发
  • 易于管理
  • 开源、自由、24x7 小时支持
  • 总体的使用成本很低

SQL Server

SQL Server 是微软公司(Microsoft)开发的一种关系型数据库,只能运行于 Windows 操作系统,它除了支持标准的 SQL 语言,还支持增强版的 T-SQL。

SQL Server 简史:

  • 1987 年,Sybase 公司发布了用于 Unix 系统的 SQL Server。
  • 1989 年,Microsoft、Sybase 和 Aston-Tate 几家公司联合将 SQL Server 移植到 OS/2 平台。
  • 1989 年,Microsoft、Sybase 和 Aston-Tate 联合发布了适用于 OS/2 的 SQL Server 1.0 版本。
  • Microsoft 终止与 Aston-Tate 的合作,Aston-Tate 退出了 SQL Server 开发。
  • 1990 年,SQL Server 1.1 发布,开始支持 Windows 3.0。
  • 1994年,Microsoft 再次终止与 Sybase 的合作,买下了 Windows NT 版本 SQL Server 全部版权,此后 Microsoft 开始独立开发 SQL Server。
  • 1995 年 6 月,Microsoft 发布了 SQL Server 6.0。对 Microsoft 而言,这个版本是一个重要的里程碑,因为这个版本是独立完成的,没人借他人之手。
  • 2000 年,Microsoft 发布了 SQL Server 2000。
  • 2001 年,Microsoft 发布了适用于 SQL Server 的 XML。
  • 2002 年,微软发布了 SQLXML 2.0(由 XML for SQL Server 更名而来)。
  • 2002 年,Microsoft 发布了 SQLXML 3.0。
  • 2005 年 11 月 7 日,Microsoft 发布了 SQL Server 2005,这是一次重大的架构变革,原有的很多方面都被重写。
  • 2008 年发布 SQL Server 2008,作为上一代产品的升级强化版本。
  • 2012 年发布 SQL Server 2012,做出了重大改进。
  • 截止到 2020 年 11 月份,最新的公开发布版本是 SQL Server 2019。

SQL Server 特性:

  • 高性能
  • 高可用性,适用于多种应用程序开发
  • 数据库镜像
  • 数据库快照
  • CLR 整合
  • 服务代理(Service Broker)
  • DLL 触发器
  • 排名函数
  • 基于数据行的隔离级别
  • 内置 XML 的支持
  • 支持异常处理
  • 支持邮件发送

Oracle

Oracle 是一个大型的、基于多用户的关系型数据库管理系统,它的优势是高并发、高吞吐量以及分布式。不管是 B/S(Browser/Server)模式还是 C/S(Client/Server)模式,Oracle 都是非常不错的选择。

Oracle 几乎支持所有的主流操作系统,包括 MS DOS、OS/2、NetWare、UnixWare、OS/2 以及大多数的 Unix 发行版。

Oracel 简史:

  • 1977 年,Larry Ellison、Bob Miner 和 Ed Oates 成立了软件开发实验室,开始从事 Oracle 开发工作。
  • 1979 年,Oracle 2.0 版发布,成为第一个商业的关系数据库和第一个 SQL 数据库。同年,公司更名为 Relational Software Inc(简称 RSI)。
  • 1981年,RSI 开始为 Oracle 开发管理工具。
  • 1982 年,RSI 更名为 Oracle Corporation。
  • 1983 年,Oracle 3.0 版发布,该版本使用C语言进行了重构,并能够运行在多个平台上。
  • 1984 年,Oracle 4.0 版发布,包含了并发控制、多版本读取一致性等功能。
  • 1986 年,Oracle 上市,每年营业额 5500 万美元。
  • 1988 年,Oracle 6.0 发布,对核心组件进行了改写,极大提升了性能。
  • 1989 年,Oracle 进入中国市场。
  • 2007 年,Oracle 发布了 Oracle 11g,该版本侧重于更好的分区、易于迁移等。
  • 2013 年,Oracle 发布了 Oracle 12c,用以支持云计算。
  • 2019 年,Oracle 19c 发布,这也是目前(2020-11)的最新版本。

Oracle 特性:

  • 高并发
  • 读取一致性
  • 锁机制
  • 静默(Quiesce)模式
  • 高可移植性
  • 自我管理能力(Self-managing)
  • SQL*Plus 客户端工具
  • 自动存储管理(ASM)
  • 调度程序
  • 资源管理
  • 数据仓库
  • 物化视图(Materialized View)
  • 位图索引
  • 表压缩
  • 并行执行
  • 数据挖掘模块
  • 分区功能

Access

Access 是微软(Microsoft)发布的一款入门级的数据库管理软件,随专业版的 Microsoft Office 安装包一起发布。Access 价格便宜,适合数据量不大、性能要求不高的小型项目。

Access 带有界面,操作起来比较直观,不需要具备非常专业的数据库知识。

Access 使用一种称为 Jet 的数据库引擎,它删除了标准 SQL 的部分功能,同时也扩展了一些标准 SQL 没有的功能,形成了一种独特的 SQL 变种,被称为 Jet SQL。

Access 简史:

  • 1992 年,Access 1.0 版本发布。
  • 1993 年,Access 1.1 版本发布,提高了兼容性,并支持 Access Basic 编程语言(Access Basic 有许多特点与 Visual Basic 都相同)。
  • 最重要的版本升级是从 Access 97 到 Access 2000。
  • 2007 年,Access 2007 版本发布,引入了一种新的数据库格式 ACCDB,用以支持更加复杂的数据类型,例如多值字段和附件字段。
  • 2013 年,Access 2013 发布,支持创建 Access Web 应用程序(AWA)。
  • 2018 年 9 月 25 日,Access 2019 发布,这是目前(2020-11)最新的版本。

Access 特性:

  • 用户可以创建表、查询、表单和报表,并将它们与宏连接在一起。
  • 支持多种格式的数据导入导出,包括 Excel、Outlook、ASCII、dBase、Paradox、FoxPro、SQL Server、Oracle、ODBC 等。
  • Access 还支持 Jet 数据库格式(Access 2007 中的 MDB 或者 ACCDB),开发者可以将应用程序和数据打包到一个文件中,这使得在将整个应用程序分发给用户时非常方便,用户在没有联网的环境中依然可以使用。
  • Access 提供了参数化查询,其它程序(例如 VB6、.NET 等)可以通过 DAO 或者 ADO 使用这些查询结果和数据表。
  • 作为 Jet 引擎的替代方案,SQL Server 桌面版可以和 Access 一起使用。
  • 和一般的 C/S(Client/Server)模式的关系型数据库管理系统(RDBMS)不同,Access 不支持触发器、存储过程和事务日志。

下载和安装

安装SQL Server

1.到微软官网下载SQL Server Developer版本,现在的最新版本是SQL Server 2019 Developer。微软官网传送门:点击此处

2.下载完成之后,在文件夹中找到刚才下载的文件,双击打开,打开之后的界面如下图所示。

3.我们选择自定义安装,之后再选择要安装的位置,再点击安装,如下图所示.

4.点了安装之后会出现如下图所示的界面,我们需要等待它下载安装包,此过程等待的时间可能较长

5.安装包下载并提取完成之后,会出现下图所示的界面.

6.依次点击安装、全新SQL Server独立安装或向现有安装添加功能,如下图所示

7.出现如下图所示的界面,不用管密钥,点击下一步.

8.再点击我接受许可条款,点击下一步,之后新出现的窗口会让你选择是否检查更新,大家可以根据自己的需要选择,默认是不检查更新,再点击下一步,这时会显示正在检查更新,如下图所示,不用管它,直接点击下一步.

9.出现下图所示的界面时,点击下一步.

10.实例功能部分按照下图进行勾选,其余的可以根据自己的需要进行选择,设置好了之后点击下一步.

11.出现如下图所示的界面,使用默认选择,点击下一步.

12.不用做更改,点击下一步.

13.在下图所示的界面中,将我用红色矩形圈起来的地方进行修改,系统管理员的名称为sa,密码需要自己设定,一定不要忘了点击添加当前用户按钮。点击下一步。

14.点击安装.

15.等待一段时间,即可看到安装成功,点击右下角关闭即可.

安装SQL Server Management Studio

1.到微软官网下载SQL Server Management Studio,如下图所示。 官网传送门:点击此处

2.将下载的SSMS-Setup-CHS双击打开,如下图所示,选好安装位置之后,点击安装即可

3.等待一段时间后可以看到安装成功的提示,点击关闭退出安装.

使用SQL Server Management

启动服务

1.操作系统的服务中启动

2.SQL Server Management中启动

连接服务器

系统数据库和用户数据库:

master:记录SQL Server系统的所有系统级信息,例如:登陆账户信息、链接服务器和系统配置设置、记录其他所有数据库的存在、数据文件的位置、SQL Server的初始化信息等。如果master数据库不可用,则无法启动SQL Server。
msdb:用于SQL Server代理计划警报和作业。数据库定时执行某些操作、数据库邮件等。
model:用作SQL Server实例上创建的所有数据库的模板。对model 数据库进行的修改(如数据库大小、排序规则、恢复模式和其他数据库选项)将应用于以后创建的所有数据库。在model数据库中创建一张表,则以后每次创建数据库的时候都会有默认的一张同样的表。
tempdb:一个工作空间,用于保存临时对象或中间结果集。一个全局资源,可供连接到 SQL Server 实例的所有用户使用。每次启动 SQL Server 时都会重新创建 tempdb

Resource:一个只读数据库,包含 SQL Server 包括的系统对象。系统对象在物理上保留在 Resource 数据库中,但在逻辑上显示在每个数据库的 sys 架构中。Resource 数据库的物理文件名为 mssqlsystemresource.mdf 和 mssqlsystemresource.ldf。这些文件位于 <驱动器>:\Program Files\Microsoft SQL Server\MSSQL10_50.\MSSQL\Binn\ 中。每个 SQL Server 实例都具有一个(也是唯一的一个)关联的 mssqlsystemresource.mdf 文件,并且实例间不共享此文件。

登录名和数据库用户名:

登录名:用以登录SQL Server数据库服务器。

用户名:用以登录成功后,访问某个具体的用户数据库。

服务器角色:

数据库角色成员身份:

创建数据库

输入数据库名称,选择存储路径。

数据库物理文件构成:

1.数据文件

2.事务日志文件

管理数据库

分离数据库

附加数据库

备份数据库

还原数据库

压缩数据库

删除数据库

课后作业

上机1: 创建myshopping数据库,分离数据库到硬盘中

上机2: 创建myshopping数据库,备份数据库到硬盘中