数据库应用基础(SQL Server 2019)(AIGC赋能版) 课件全套 项目1 -9 安装和配置SQL Server 2019 - 系统安全管理_第1页
数据库应用基础(SQL Server 2019)(AIGC赋能版) 课件全套 项目1 -9 安装和配置SQL Server 2019 - 系统安全管理_第2页
数据库应用基础(SQL Server 2019)(AIGC赋能版) 课件全套 项目1 -9 安装和配置SQL Server 2019 - 系统安全管理_第3页
数据库应用基础(SQL Server 2019)(AIGC赋能版) 课件全套 项目1 -9 安装和配置SQL Server 2019 - 系统安全管理_第4页
数据库应用基础(SQL Server 2019)(AIGC赋能版) 课件全套 项目1 -9 安装和配置SQL Server 2019 - 系统安全管理_第5页
已阅读5页,还剩387页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目1安装和配置

SQLServer2019《数据库应用基础(SQLServer2019)》项目目标理解数据库基本概念了解SQLServer2019的服务器组件和管理工具了解SQLServer2019的不同版本掌握安装SQLServer2019的步骤掌握运行SQLServer2019的方法本章目录01任务1.1理解数据库基本概念02任务1.2安装SQLServer201903任务1.3运行SQLServer2019理解数据库基本概念1.11.1.1数据库定义数据库是长期存储在计算机内、有组织的、可共享的数据集合。特点按数据结构组织(非随意存放)具有尽可能小的冗余度具有较高的数据独立性可为多个用户共享实例学生选课系统银行账户管理系统1.1.2关系型数据库基础概念建立在关系模型基础上的数据库。关系模型=二维表格模型。核心术语表:一个关系就是一张二维表。行:也称为记录,代表一个实体。列:也称为字段,代表实体的一个属性。主键:能唯一标识一条记录的字段。关系:表与表之间的字段链接,用于减少数据冗余。主要特点数据以行和列的形式存储。需先定义表结构(字段名、数据类型)。使用SQL语言进行查询和操作。1.1.3数据库管理系统定义DBMS:一种用于创建、使用和维护数据库的软件。用户和数据库之间的接口。主要功能数据定义:通过DDL定义数据库结构。数据操作:通过DML实现增、删、改、查。运行管理:并发控制、安全性、完整性检查。数据存储与管理:组织数据,提高存取效率。数据库保护:恢复、并发、完整性、安全性控制。维护与通信:数据转储、重组、通信接口。常见DBMS举例Oracle,MySQL,SQLServer,PostgreSQL,Access1.1.4数据库系统定义DBS:由软件、数据库、数据库管理员和用户组成的整体。组成部分数据库:数据的集合(如单个文件或服务器上的多个文件)。硬件:计算机及存储设备。软件:包括操作系统、DBMS、应用程序。人员:系统分析员/数据库设计人员:设计系统结构。应用程序员:编写应用程序。最终用户:通过接口访问数据。数据库管理员:负责总体控制和维护。1.1.5结构化查询语言定义SQL:一种关系型数据库操作语言,是行业标准。组成部分数据查询语言:SELECT(用于检索数据)。数据操作语言:INSERT,UPDATE,DELETE(用于修改数据)。数据定义语言:CREATE,DROP(用于管理数据库对象)。数据控制语言:GRANT,REVOKE(用于权限管理)。事务处理语言:COMMIT,ROLLBACK(用于事务管理)。指针控制语言:用于逐行操作。Transact-SQLSQL在SQLServer中的实现,增加了变量、流程控制等功能。任务1.2安装SQLServer20191.21.2.1SQLServer2019的版本企业版功能最全,面向高端数据中心,支持虚拟化、商业智能。标准版提供核心数据管理和商业智能功能,适用于部门级应用。Web版为Web托管设计,成本低,可伸缩。开发人员版包含企业版全部功能,仅限开发和测试,不得用于生产环境。速成版免费,入门级,适用于学习和小型应用。轻量版为ExpressLocalDB。1.2.2SQLServer2019服务器组件数据库引擎核心服务,用于存储、处理和保护数据(关系数据和XML)。包含复制、全文搜索、机器学习服务(支持R和Python)。分析服务用于商业智能,支持联机分析处理和数据挖掘。报表服务用于创建、管理和部署各种格式的报表。集成服务用于移动、复制和转换数据。主数据服务主数据管理解决方案,管理产品、客户等主数据域。机器学习服务支持在数据库内或独立服务器上运行R和Python脚本,进行机器学习。1.2.3SQLServer2019管理工具SQLServerManagementStudio主要工具,用于访问、配置、管理和开发所有SQLServer组件的集成环境。注意:需单独下载安装。SQLServer配置管理器管理服务、服务器协议、客户端协议和别名。SQLServer事件探查器图形化监视数据库引擎或分析服务。数据库引擎优化顾问协助优化性能,建议索引、分区等。数据质量客户端图形界面,用于数据清理操作。SQLServer数据工具集成开发环境,用于生成商业智能解决方案和数据库项目。1.2.4安装SQLServer2019(1/3)安装前准备

1.获取安装介质(ISO或安装包)。

2.确认系统兼容性(如Windows11)。

3.以管理员身份运行安装程序。

4.关闭可能冲突的应用程序。运行安装程序-运行setup.exe,进入“SQLServer安装中心”。1.2.4安装SQLServer2019(2/3)1.启动安装:运行setup.exe。2.选择安装类型:选择“全新SQLServer独立安装...”。3.输入产品密钥:输入正版密钥或指定评估/免费版本。4.接受许可条款:勾选“我接受许可条款”。5.全局规则检查:安装程序自动进行初步检查。6.Microsoft更新:可选择是否使用MicrosoftUpdate查找更新。7.安装规则检查:查看最终检查结果,必须“通过”。8.功能选择:

-单击“全选”安装所有功能。

-或按需选择(如:数据库引擎服务、管理工具等)。指定实例根目录。1.2.4安装SQLServer2019(3/3)准备安装:查验已选择的功能配置,确认无误。执行安装:单击“安装”按钮,等待安装进度完成。完成:出现“完成”窗口,单击“关闭”。可能需要重启计算机。安装后操作:安装SSMS-为什么需要?

-SQLServer2019安装包不包含SSMS,而它是最主要的日常管理和开发工具。-如何获取与安装?

1.单独下载SSMS19.3或更高版本安装包。

2.运行`SSMS-Setup-CHS.exe`。

3.遵循安装向导完成安装。

4.安装后通常需要重新启动计算机。任务3运行SQLServer20191.31.3.1管理SQLServer2019服务器(1/3)核心概念SQLServer组件(如数据库引擎)在Windows中以“服务”形式在后台运行。必须启动相应服务,才能提供功能。两种管理方式使用Windows服务管理工具使用SQLServer配置管理器(专用工具)1.3.1管理SQLServer2019服务器(2/3)管理方式一:Windows服务管理工具打开方法

-开始菜单→“Windows工具”→“服务”。-Win+R→输入services.msc主要操作

-在服务列表中找到SQLServer服务(如SQLServer(MSSQLSERVER))。

-可执行:启动、停止、暂停、重新启动。配置属性

-启动类型:设置“自动”、“手动”或“禁用”。

-登录身份:设置服务运行的账户和密码。1.3.1管理SQLServer2019服务器(3/3)管理方式二:SQLServer配置管理器打开方法

-开始菜单→“MicrosoftSQLServer2019”→“SQLServer配置管理器”。优势

-专为SQLServer设计,管理更精细,可配置高级网络和协议设置。主要操作

-左侧选择“SQLServer服务”。

-右侧右键点击服务,进行启动、停止等操作。1.3.2连接SQLServer2019服务器(1/2)连接工具

-主要使用SQLServerManagementStudio(SSMS)。连接前提

-确保目标SQLServer服务(如数据库引擎)已启动。连接步骤1.启动SSMS。2.在弹出的“连接到服务器”对话框中设置:服务器类型:选择“数据库引擎”(最常用)。服务器名称:选择或输入实例名,如`(local)`或`计算机名\实例名`。身份验证:

-Windows身份验证:使用当前Windows账户登录,推荐。

-SQLServer身份验证:输入用户名(如`sa`)和密码。3.点击“连接”。1.3.2连接SQLServer2019服务器(2/24)认识SSMS环境-对象资源管理器

-主界面,以树状结构展示服务器、数据库、表等所有对象。

-顶层节点信息解读:`服务器名(版本信息-登录名)`。-环境设置

-通过“工具”菜单→“选项”进行个性化环境设置。1.3.3设置SQLServer2019服务器(1/2)打开服务器属性

-在“对象资源管理器”中,右键单击服务器节点→选择“属性”。“常规”页

-查看服务器名称、版本、操作系统、根目录等只读信息。“数据库设置”页

-重要功能:设置新数据库的数据文件和日志文件的默认保存路径。

-操作:在“数据库默认位置”区域修改路径。重要注意

-修改默认位置后,必须重启SQLServer服务才能使更改生效。1.3.3设置SQLServer2019服务器(2/2)查看连接属性-如何查看:在服务器属性对话框左下角,点击“查看连接属性”链接。-连接属性信息:显示当前连接的详细信息:产品版本、服务器名称、当前数据库、会话ID、

身份验证方式等。用于诊断和确认当前连接环境。项目2创建和管理数据库《数据库应用基础(SQLServer2019)》项目目标理解SQLServer数据库的组成掌握创建数据库的方法掌握修改数据库的方法掌握分离和附加数据库的方法掌握备份和还原数据库的方法本章目录01任务2.1认识SQLServer数据库02任务2.2创建数据库03任务2.3修改数据库04任务2.4分离和附加数据库05任务2.5备份和还原数据库认识SQLServer数据库2.1任务2.1认识SQLServer数据库任务目标理解SQLServer数据库的组成理解SQLServer数据库文件和文件组理解SQLServer系统数据库理解SQLServer数据库的各种状态理解SQLServer数据库文件的各种状态2.1.1SQLServer数据库概述数据库:存放数据库对象的容器,是表和其他对象(如视图、存储过程)的集合。表:存储结构化数据,由行(记录)和列(字段)组成。数据控制:通过约束、触发器、默认值等保证数据有效性。架构:数据库中的对象所有权组,包含表、视图等对象。权限管理:通过登录名、数据库用户和角色进行权限控制。管理工具:主要使用SQLServerManagementStudio(SSMS)。数据库分类:系统数据库:存储SQLServer系统级信息。用户数据库:用户创建,用于存储应用数据。2.1.2数据库文件与文件组(1/2)数据库的物理构成:至少包含两个操作系统文件。数据文件:存放数据和对象(表、索引等)。日志文件:存放用于恢复数据库的事务日志信息。数据文件类型:主要数据文件(.mdf):包含数据库启动信息,指向其他文件。每个数据库有且仅有一个主要数据文件。次要数据文件(.ndf):可选,用于存储用户数据。可将数据分散到不同磁盘。事务日志文件(.ldf):保存事务日志信息。每个数据库至少有一个。建议:将数据文件和日志文件放在不同的磁盘上。2.1.2数据库文件与文件组(2/2)文件名称逻辑文件名:在Transact-SQL语句中引用文件时使用的名称。操作系统文件名:包含路径的物理文件名称。文件大小文件可以自动增长。可以指定增量和最大大小。文件组主要文件组(PRIMARY):包含主要数据文件和未放入其他文件组的次要文件。所有系统表都在此。用户定义文件组:用户创建,用于将数据文件集合起来,便于管理和分配。默认文件组:容纳未指定文件组的对象。PRIMARY是初始的默认文件组。2.1.3SQLServer系统数据库master数据库记录SQLServer实例的所有系统级信息(登录账户、配置、其他数据库位置等)。不可用则SQLServer无法启动。model数据库用作创建所有新数据库的模板。msdb数据库被SQLServer代理用于计划警报和作业,也用于备份还原历史等。tempdb数据库用于保存临时对象(临时表、表变量等)和中间结果。每次启动SQLServer时都会重新创建。Resource数据库只读数据库,包含所有系统对象。物理文件名为mssqlsystemresource.mdf/ldf。2.1.4数据库状态概述数据库总是处于一个特定状态中。主要状态ONLINE(在线):数据库可用。OFFLINE(离线):数据库不可用,通常由用户显式操作。RESTORING(还原):正在还原文件,数据库不可用。RECOVERING(恢复):正在恢复数据库,是临时状态。SUSPECT(可疑):主文件组可能损坏,数据库不可用,需用户干预。EMERGENCY(紧急):用于故障排除,单用户只读模式,仅sysadmin角色可访问。2.1.4数据库状态概述数据库总是处于一个特定状态中。主要状态ONLINE(在线):数据库可用。OFFLINE(离线):数据库不可用,通常由用户显式操作。RESTORING(还原):正在还原文件,数据库不可用。RECOVERING(恢复):正在恢复数据库,是临时状态。SUSPECT(可疑):主文件组可能损坏,数据库不可用,需用户干预。EMERGENCY(紧急):用于故障排除,单用户只读模式,仅sysadmin角色可访问。2.1.5数据库文件状态概述数据库文件的状态独立于数据库状态。主要状态ONLINE(在线):文件可用于所有操作。OFFLINE(离线):文件不可访问。RESTORING(还原):正在还原文件。SUSPECT(可疑):文件恢复失败。DEFUNCT(失效):文件被删除。重要原则文件组中所有文件都必须联机,该文件组才可用。创建数据库2.2任务2.2创建数据库任务目标掌握使用SSMS创建数据库的方法掌握使用SQL语句创建数据库的方法创建前提需要拥有CREATEDATABASE权限。2.2.1使用SSMS创建数据库(1/2)SSMS优点图形化操作,简单直观。创建步骤在“对象资源管理器”中右键单击“数据库”。选择“新建数据库”。在对话框中输入数据库名称。配置文件和文件组(可选):“常规”页:修改数据文件和日志文件的逻辑名称、初始大小、自动增长和路径。“文件组”页:添加新的文件组。“选项”页:修改排序规则、恢复模式等。单击“确定”完成创建。2.2.1使用SSMS创建数据库(2/2)例2.1:创建“人力资源”数据库,所有属性使用默认值。默认文件设置:主数据文件:逻辑名称:人力资源物理文件名:人力资源.mdf文件组:PRIMARY初始大小:8MB,增量:64MB,无限制增长日志文件:逻辑名称:人力资源_log物理文件名:人力资源_log.ldf初始大小:8MB,增量:64MB,无限制增长2.2.2使用SQL语句创建数据库(1/4)基本语法格式CREATEDATABASEdb_nameON[PRIMARY]<filespec>[,...n][LOGON<filespec>[,...n]][COLLATEcollation_name]其中,文件规范<filespec>::=(NAME=logical_file_name,FILENAME='os_file_name',SIZE=size[KB|MB|GB|TB],MAXSIZE={max_size|UNLIMITED},FILEGROWTH=growth_increment[KB|MB|GB|%])db_name要创建的数据库名称(必须唯一,且符合标识符规则)ON若显式定义数据文件时,则不可省略;若完全使用默认设置,则可省略PRIMARY指定主文件组(默认),可省略NAME文件的逻辑名称(在SQLServer内部使用)FILENAME操作系统中实际的物理文件路径(需有写权限)SIZE初始大小,默认单位是MBMAXSIZE文件可增长到的最大大小;UNLIMITED

表示无限制(日志文件默认为2TB)FILEGROWTH自动增长增量,可以是固定大小或百分比(如

10%);默认为64MB,0表示不允许增加COLLATE指定数据库的排序规则(如

Chinese_PRC_CI_AS)LOGON显式定义事务日志文件(若省略,SQLServer自动生成)2.2.2使用SQL语句创建数据库(2/4)例2.2:创建“员工”数据库IFDB_ID('员工')ISNULLCREATEDATABASE员工ON(NAME=Employee_dat,FILENAME='D:\SQLServer2019\Data\empdat.mdf',SIZE=10MB,MAXSIZE=50MB,FILEGROWTH=5MB)LOGON(NAME=Employee_log,FILENAME='D:\SQLServer2019\Data\emplog.ldf',SIZE=5MB,MAXSIZE=25MB,FILEGROWTH=2MB);操作要点:在SSMS查询编辑器中执行SQL语句。使用IF语句判断指定数据库是否存在。员工数据库包含一个数据文件和一个日志文件。使用ON明确定义数据文件。使用LOGON明确定义日志文件。2.2.2使用SQL语句创建数据库(3/4)例2.3:创建“销售”数据库IFDB_ID('销售')ISNULLCREATEDATABASE销售ONPRIMARY(--主文件组包含两个文件

NAME=Sales_dat1,FILENAME='D:\SQLServer2019\Data\salesdat1.mdf',SIZE=50MB,MAXSIZE=200MB,FILEGROWTH=5MB),(NAME=Sales_dat2,--次要数据文件

FILENAME='D:\SQLServer2019\Data\salesdat2.ndf',SIZE=10MB,MAXSIZE=UNLIMITED,FILEGROWTH=10%)LOGON(NAME=Sales_log,FILENAME='D:\SQLServer2019\Data\saleslog.ldf',SIZE=5MB,MAXSIZE=50MB,FILEGROWTH=5MB);2.2.2使用SQL语句创建数据库(4/4)场景:创建包含多个文件组的数据库。例2.4:创建“货物”数据库CREATEDATABASE货物ONPRIMARY(...),--主文件组文件FILEGROUPGoodsGroup1(...),--用户定义文件组1及其文件FILEGROUPGoodsGroup2(...)--用户定义文件组2及其文件LOGON(...);核心语法使用FILEGROUP定义新的文件组,并在其后括号内定义属于该文件组的文件。优势便于数据管理、分配和提升性能(可将不同文件组置于不同磁盘)。修改数据库2.3任务2.3修改数据库任务目标掌握使用SSMS和SQL语句修改数据库掌握扩展和收缩数据库的方法掌握移动数据库文件的方法掌握设置数据库选项的方法掌握重命名和删除数据库的方法修改前提需要拥有ALTER权限。2.3.1使用SSMS修改数据库图形化修改步骤在“对象资源管理器”中,右键单击要修改的数据库。选择“属性”命令。在“数据库属性”对话框中,选择不同页面进行修改:“文件”页:添加、删除、修改数据文件和日志文件。“文件组”页:添加、删除文件组。“选项”页:设置恢复模式、排序规则等大量数据库选项。单击“确定”使修改生效。操作示例例2.5:使用SSMS修改例2.3中创建的销售数据库。要求在“销售”数据库中添加一个次要数据文件,其逻辑名称为Sales_dat3,初始容量为10MB,最大容量为50MB,文件增量为10%,物理文件名为salesdat3.ndf,存放路径为“D:\SQLServer2019\Data”。2.3.2使用SQL语句修改数据库核心语句ALTERDATABASE常用子句ADDFILE...:添加数据文件ADDLOGFILE...:添加日志文件REMOVEFILE...:删除文件MODIFYFILE...:修改文件属性(大小、路径等)MODIFYNAME=...:重命名数据库ADDFILEGROUP...:添加文件组REMOVEFILEGROUP...:删除文件组SET<选项>...:设置数据库选项2.3.3扩展数据库(1/2)目的:为数据库分配更多空间。方式1:修改现有文件大小ALTERDATABASE人力资源MODIFYFILE(NAME=人力资源,SIZE=20MB);方式2:添加新数据文件ALTERDATABASE人力资源ADDFILE(NAME=hr_dat2,FILENAME='D:\SQLServer2019\Data\hrdat2.ndf',...);方式3:添加新文件组并添加文件ALTERDATABASE人力资源ADDFILEGROUPFG1;GOALTERDATABASE人力资源ADDFILE(NAME=hr_dat3,...)TOFILEGROUPFG1;2.3.3扩展数据库(2/2)例2.5:使用ALTERDATABASE语句扩展例2.1中创建的人力资源数据库。将逻辑名称为“人力资源”的数据文件的大小改为10MB;增加一个次要数据文件,逻辑文件名为hr_dat2,物理文件名为hr_dat2.ndf,初始容量为10MB,最大容量为100MB,文件增量为10%;增加一个名为FG1的文件组,并向该文件组中添加两个数据文件:逻辑文件名为hr_dat3和hr_dat4,物理文件名为hr_dat3.ndf和hr_dat4.ndf,初始容量均为5MB,最大容量均为50MB,文件增量为5MB。2.3.4收缩数据库(1/2)目的:回收未使用的空间。方式1.设置自动收缩:ALTERDATABASE数据库名SETAUTO_SHRINKON;方式2.手动收缩整个数据库:DBCCSHRINKDATABASE(数据库名,目标可用空间百分比);--示例:使可用空间占10%DBCCSHRINKDATABASE(销售,10);方式3.手动收缩指定文件:DBCCSHRINKFILE(逻辑文件名,目标大小(MB));--示例:将文件收缩到5MBDBCCSHRINKFILE(Sales_dat1,5);方式4.删除文件和文件组:ALTERDATABASE数据库名REMOVEFILE逻辑文件名;ALTERDATABASE数据库名REMOVEFILEGROUP文件组名;2.3.4收缩数据库(2/2)例2.6:从例2.4中创建的货物数据库中删除逻辑名称为GoodsGrp1_data2的数据文件和名称为GoodsGroup2的文件组。ALTERDATABASE货物REMOVEFILEGoodsGrp1_dat2;GOALTERDATABASE货物REMOVEFILEGoodsGrp2_dat1;GOALTERDATABASE货物REMOVEFILEGoodsGrp2_dat2;GOALTERDATABASE货物REMOVEFILEGROUPGoodsGroup2;GO2.3.5设置数据库选项设置数据库选项方法在ALTERDATABASE使用SET子句设置指定选项常用选项分类自动选项:AUTO_CLOSE,AUTO_SHRINK,AUTO_CREATE_STATISTICS可用性选项:READ_ONLY/READ_WRITE,SINGLE_USER/MULTI_USER恢复选项:RECOVERY{FULL|BULK_LOGGED|SIMPLE}游标选项、SQL兼容性选项等注意事项修改model数据库的选项可改变后续新建数据库的默认设置。应用示例将恢复模式设为简单ALTERDATABASE销售SETRECOVERYSIMPLE;2.3.6移动数据库文件适用场景在同一SQLServer实例内移动文件(如更换磁盘)。核心步骤脱机数据库:

ALTERDATABASE销售SETOFFLINE;在操作系统中将物理文件移动到新位置。告知SQLServer新路径:ALTERDATABASE销售MODIFYFILE(NAME=Sales_dat1,FILENAME='新路径\salesdat1.mdf');--为每个移动的文件重复此操作联机数据库:ALTERDATABASE销售SETONLINE;2.3.7重命名数据库前提条件确保无人使用,需设置为单用户模式。方法1:使用SSMS在对象资源管理器中右键单击数据库,选择“重命名”。方法2:使用SQL语句--设置为单用户ALTERDATABASE货物SETSINGLE_USER;GO--重命名ALTERDATABASE货物MODIFYNAME=Goods;GO--恢复为多用户ALTERDATABASEGoodsSETMULTI_USER;GO2.3.8删除数据库前提条件无人使用,无数据库快照。如果涉及复制,需先删除复制。方法1:使用SSMS右键单击数据库,选择“删除”。方法2:使用SQL语句DROPDATABASE数据库名;--示例:同时删除多个数据库DROPDATABASESales,NewSales;重要警告删除操作不可逆!文件将从磁盘物理删除。删除后应备份master数据库。分离和附加数据库2.4任务2.4分离和附加数据库如果要将数据库更改到同一计算机的不同SQLServer实例或者要移动数据库,分离和附加数据库会很有用。首先从SQLServer实例中分离数据库的数据和事务日志文件,然后通过指定这些文件的新位置将其重新附加到同一或其他SQLServer实例,这使数据库的使用状态与它分离时的状态完全相同。通过本任务将学习和掌握分离和附加数据库的方法步骤。项目目标掌握分离数据库的方法掌握附加数据库的方法2.4.1分离数据库(1/2)分离数据库概述将数据库从SQLServer实例中删除,但保留数据文件(.mdf)和日志文件(.ldf)目的是移动或备份数据库,之后可通过“附加”重新使用不能分离的情况数据库已复制并发布存在数据库快照;正在进行数据库镜像数据库处于可疑状态;数据库为系统数据库(如master)分离的关键分离需要独占访问权限(可先设为单用户模式)分离后需刷新对象资源管理器才能看到变化2.4.1分离数据库(2/2)分离数据库操作方法使用SSMS右键单击数据库→“任务”→“分离”;在对话框中勾选“删除连接”可以断开所有活动连接;勾选“更新统计信息”可分离前更新优化统计;单击“确定”,刷新视图(F5)。使用T-SQL--先设为单用户模式(独占)ALTERDATABASE数据库名SETSINGLE_USER;--执行分离EXECsp_detach_db'数据库名',[,'skipchecks']--'true'表示跳过更新统计信息

[,'KeepFulltextIndexFile']--'true'保留全文索引文件【例2.10】分离AdventureWorks2019并跳过统计更新ALTERDATABASEAdventureWorks2019SETSINGLE_USER;EXECsp_detach_db'AdventureWorks2019','true';2.4.2附加数据库(1/2)什么是附加数据库将之前分离的数据库文件(.mdf和.ldf)重新附加到SQLServer实例中。可用于迁移数据库到其他计算机或磁盘,或恢复分离的数据库。附加数据库的必要条件所有数据文件(主文件.mdf、辅助文件.ndf)都必须可用。如果文件路径已更改,必须指定当前路径。使用SSMS附加数据库在对象资源管理器中右键单击“数据库”,选择“附加”。在“附加数据库”对话框中单击“添加”,找到并选择数据库的主文件(.mdf)。在“附加为”列可修改附加后的数据库名称。在“所有者”列可更改数据库所有者。如需添加更多文件(如日志文件),可再次单击“添加”。单击“确定”完成附加,刷新视图(F5)即可看到数据库。2.4.2附加数据库(2/2)使用T-SQL附加数据库-基本语法CREATEDATABASE数据库名称ON<文件选项>FORATTACH;必须指定主文件的当前路径(使用FILENAME选项)。其他文件如果路径与原来相同,可以省略。若需重新生成缺失的日志文件,可使用FORATTACH_REBUILD_LOG(仅限读/写数据库)。【例2.11】将分离的AdventureWorks2019数据库附加回实例。USEmaster;GOCREATEDATABASEAdventureWorks2019ON(FILENAME='D:\SQLServer2019\Data\AdventureWorks2019.mdf')FORATTACH;GO备份和还原数据库2.52.5备份和还原数据库SQLServer备份和还原组件提供了重要的保护手段,以保护存储在SQLServer数据库中的关键数据。实施计划妥善的备份和还原策略可以保护数据库,避免由于各种故障造成的损坏而丢失数据。通过还原一组备份并恢复数据库来测试备份和还原策略,为有效地应对灾难做好准备。通过本任务将学习和掌握备份和还原数据库的方法步骤。任务目标掌握备份数据库的方法掌握还原数据库的方法2.5.1备份数据库(1/3)什么是数据库备份数据库备份是数据的副本,用于在系统发生故障后还原和恢复数据。可以从多种故障中恢复:媒体故障、用户错误(如误删表)、硬件故障、自然灾害等。还可用于数据库复制、镜像、归档等日常操作。备份类型数据备份:包含一个或多个数据文件的完整映像,可备份全部/部分数据库或文件。差异备份:基于最近的数据备份(基准备份),仅包含基准备份之后更改的数据区。还原前必须先还原基准备份。事务日志备份:包含前一个日志备份之后的所有日志记录(仅完整/大容量日志恢复模式)。2.5.1备份数据库(2/3)使用SSMS备份数据库操作步骤在对象资源管理器中展开“数据库”节点,右键单击要备份的数据库→“任务”→“备份”,

打开备份对话框。在常规选项页:数据库:确认或选择要备份的数据库;备份类型:选择“完整”、“差异”或“事务日志”;备份组件:选择“数据库”;目标:通过“添加”按钮指定备份文件位置(磁盘或磁带),可添加多个目标。在介质选项页:覆盖介质:选择“追加到现有备份集”或“覆盖所有现有备份集(新建介质集)”;可靠性:可勾选“完成后验证备份”、“写入介质前检查校验和”、“出错时继续”等选项。单击“确定”开始备份。2.5.1备份数据库(3/3)使用T-SQL备份数据库-基本语法BACKUPDATABASE数据库名称TO<备份设备>[,...n][WITH<选项>];备份设备:DISK='物理文件路径'或TAPE='物理设备名'常用选项:DIFFERENTIAL(差异备份)、INIT(覆盖介质)、NOINIT(追加)等。【例2.12】完整数据库备份:将AdventureWorks2019备份到磁盘文件。USEAdventureWorks2019;GOBACKUPDATABASEAdventureWorks2019TODISK='D:\SQLServer2019\Backup\AdventureWorks2019.bak'GO2.5.2还原数据库(1/3)什么是数据库还原?将之前备份的数据库文件恢复到SQLServer实例的过程。用于在数据丢失、损坏或系统故障后恢复数据。还原的前提条件必须事先创建了数据库备份(完整备份、差异备份或日志备份)。要知道备份文件的存放位置,且拥有访问权限还原过程中的状态还原期间数据库处于脱机状态,用户无法访问。还原完成后,数据库自动恢复联机,数据回到备份时的状态。还原的两种方式使用SSMS图形界面使用T-SQL语句(RESTORE命令)2.5.2还原数据库(2/3)使用SSMS还原数据库操作步骤1.在对象资源管理器中右键单击“数据库”,选择“还原数据库”,打开还原对话框。2.选择备份源(常规页):若从备份历史记录还原,选择“数据库”下拉列表中的数据库名;若从备份文件还原,选择“设备”,单击“浏览”添加备份文件(如.bak文件)。3.确认或修改要还原的数据库名称。4.单击“确定”开始还原。完成后刷新视图即可看到数据库。使用T-SQL还原数据库

-基本语法RESTOREDATABASE数据库名称FROMDISK='物理备份文件路径'[WITH选项];常用选项:WITHRECOVERY(默认):还原后数据库可用。WITHNORECOVERY:使数据库处于还原状态,可继续还原后续备份(如差异或日志备份)。【例2.13】还原之前备份的AdventureWorks2019数据库。USEmaster;GORESTOREDATABASEAdventureWorks2019FROMDISK='D:\SQLServer2019\Backup\AdventureWorks2019.bak'WITHRECOVERY;GO2.5.2还原数据库(3/3)项目3创建和管理表《数据库应用基础(SQLServer2019)》项目目标理解表的设计原则和方法理解SQLServer数据类型掌握创建表的方法掌握修改表的方法掌握管理表的方法本章目录3.1表结构设计3.2认识SQLServer数据类型3.3创建表3.4修改表3.5管理表表结构设计3.1任务3.1表结构设计表由一些行和列组成。表中的每一行代表一条唯一的记录,行中的每一列代表记录中的一个字段。例如,在包含学生信息的表中,每一行代表一名学生,每一列分别表示该生的某项信息,例如学号、姓名、性别、出生日期、家庭地址等。通常需要对表和表中的每个列设置一些属性,以控制允许输入的数据和其他属性。表和表中各列的属性统称为表结构。数据库设计是数据库应用程序开发的一个重要环节,其核心就是表结构设计。通过本任务将学习和了解表结构设计的相关知识。任务目标理解制订表规划的原则理解规范化逻辑设计理解事务处理和决策支持理解表的类型3.1.1制订表规划(1/3)制订表规则——六大规划要点表要存储什么对象主对象(如学生、课程)及其相关项(如成绩、班级)对应数据库中的表每一行代表一个对象实例,每一列代表对象的属性列的数据类型与长度根据属性选择合适的数据类型(如字符串、日期、数字)例:手机号用字符串,长度为11;成绩用数字类型是否允许空值(NULL)NULL表示“未知”,不同于空字符串或0使用NOTNULL约束强制列必须有值3.1.1制订表规划(2/3)制订表规则——六大规划要点约束、默认值与规则的使用UNIQUE:确保值唯一CHECK:限制值的范围DEFAULT:未输入值时自动填充默认值索引的选择聚集索引、非聚集索引、全文索引索引提升查询效率,需合理选择列主键与外键的设定主键(PRIMARYKEY):唯一标识一行,不可为空外键(FOREIGNKEY):建立表间链接,指向另一表的主键3.1.1制订表规划(3/3)应用实例——教务管理数据库表结构数据库包含六个实体(表):班级、课程、教学安排、学生、成绩、教师表结构示例每个表用表格表示:第一行为表名,第二行为主键(PK),其余为普通列外键(FK)用于建立表间关系主键与外键关系示意PK:主键列,如学生表中的“学号”FK:外键列,如学生表中的“班级编号”指向班级表箭头方向:从子表(外键表)指向父表(主键表)设计建议先创建基表测试,逐步添加约束、索引等使用工具(如Visio)绘制模型图,辅助理解数据库结构数据库模型图展示了表间关系,便于理解主外键约束与数据完整性设计。3.1.2规范化逻辑设计(1/2)为什么要规范化?——从宽表到窄表的设计优化规范化的本质将数据合理拆分到多个相关的“窄表”避免将所有数据放在少数“宽表”中规范化的主要好处索引更高效:索引更小、更紧凑,排序与创建更快DML性能提升:INSERT、UPDATE、DELETE操作更迅速减少空值:降低数据不一致的风险提高数据完整性:减少冗余,降低维护成本规范化的潜在代价查询时需要更多的JOIN操作若JOIN超过4个表,可能影响性能需在规范化和查询效率之间取得平衡3.1.2规范化逻辑设计(2/2)四条基本规则——打造高质量的表结构表应有一个标识符每个表都应有唯一标识行的列(主键)例如:学生表中的“学号”、订单表中的“订单ID”表只存储单一类型实体的数据避免将多个实体混在同一表中示例:销售订单与客户信息应分表存储,避免数据冗余与更新异常表应避免可为空的列空值(NULL)会增加查询与维护的复杂性若表中多个列允许为空,可考虑将相关列拆分到独立的子表中表不应有重复的值或列避免在列中存储多个值,也不应使用“电话1、电话2”这样的重复列正确做法:通过中间表建立多对多关系3.1.3联机事务处理与决策支持(1/2)OLTP系统特征与设计要点典型应用场景航空订票系统、银行交易系统大量用户同时执行实时数据更改核心关注点并发性:确保两个用户不会同时更改相同数据原子性:事务中的所有步骤要么全部成功,要么全部回滚OLTP数据库设计要点数据放置:将经常访问的数据放在一起,使用文件组和RAID优化I/O短事务:减少长期锁,避免事务中包含用户交互联机备份:在活动不频繁时备份,保证7×24小时连续运行高度规范化:减少冗余,加快更新速度,提升并发性能精简历史数据:将历史或聚合数据归档到独立表中谨慎使用索引:避免在频繁更新的表上建立过多索引3.1.3联机事务处理与决策支持(2/2)决策支持系统特征与设计要点典型应用场景销售趋势分析、经营决策支持用户查询数据但不修改数据核心特点数据定期批量更新,无并发性与原子性压力查询复杂、数据量大,要求快速响应决策支持数据库设计要点大量使用索引:提升查询性能,更新少,索引开销可接受合理非规范化:引入预聚合数据、汇总表,减少查询计算量星型架构:中心为事实数据表(如销售记录);周围为维度表(如时间、地区、产品);维度表直接与事实表联接,结构简单雪花架构:星型架构的扩展,维度表进一步规范化,拆分为多个关联子表认识SQLServer数据类型3.2任务目标数据类型是一种属性,用于指定对象可保存的数据的类型:整数、浮点数、字符串、货币数据、日期和时间数据或二进制字符串等。在SQLServer中,每个列、局部变量、表达式和参数都具有特定的数据类型。通过本任务将学习SQLServer2019提供的各种数据类型。任务目标理解数字数据类型理解字符串数据类型理解日期和时间数据类型理解二进制数据类型理解其他数据类型理解用户定义数据类型3.2.1数据类型概述(1/2)数据类型的作用指定列或变量可存储的数据种类定义存储长度、精度、小数位数等属性数字数据类型精确数字:bit、tinyint、smallint、int、bigint、decimal、numeric、money、smallmoney近似数字:float、real(适用于科学计算,可能存在舍入误差)日期和时间数据类型date:仅日期time:仅时间datetime/datetime2:日期+时间(datetime2精度更高)smalldatetime:精度较低,范围较小datetimeoffset:包含时区信息3.2.1数据类型概述(2/2)字符串数据类型普通字符:char(固定长度)、varchar(可变长度)、text(长文本,已弃用)Unicode字符:nchar、nvarchar、ntext(支持多语言,每个字符占2字节二进制字符串binary(固定长度)、varbinary(可变长度)、image(已弃用,存储图片/文档)其他数据类型uniqueidentifier:全局唯一标识符(GUID)xml:存储XML数据sql_variant:存储多种类型的值geometry/geography:空间地理数据table:用于临时存储结果集(仅适用于变量)数据类型同义词与用户定义类型同义词示例:integer=int,character(n)=char(n)用户定义数据类型:基于系统类型创建,增强可读性和一致性3.2.2数字数据类型(1/2)整数类型特点存储整数,可参与四则运算根据取值范围选择合适类型,节省存储空间数据类型取值范围存储字节适用场景bigint-2⁶³~2⁶³-1(约±9.22×10¹⁸)8超大范围计数(如天文数据)int-2³¹~2³¹-1(约±21.4亿)4主要整数类型,如用户ID、订单号smallint-2¹⁵~2¹⁵-1(-32768~32767)2范围较小的计数(如年龄、评分)tinyint0~2551状态码、性别、小范围枚举bit0、1或NULL优化存储(8列合并为1字节)布尔值(真/假)、开关标志3.2.2数字数据类型(2/2)近似数字类型(浮点数,可能存在舍入误差)real:4字节,精度7位有效数字,范围±3.40E-38~±3.40E+38float(n):n=1~24时为4字节(精度7位),n=25~53时为8字节(精度15位)适用:科学计算、物理模拟

精确数字类型(定点数,无舍入误差)decimal(p,s)/numeric(p,s)p(精度):总位数(1~38),默认18s(小数位数):小数部分位数,默认0存储空间随精度增加:5~17字节适用:金融金额、精确计算场景货币类型(专为金额设计)money:8字节,范围±922,337,203,685,477.5808,保留4位小数smallmoney:4字节,范围±214,748.3648,保留4位小数3.2.3日期和时间数据类型(1/2)SQLServer日期和时间数据类型(一)数据类型格式示例范围存储字节精度/特点默认值date2024/3/150001-01-01~9999-12-313仅日期,固定10字符1900/1/1time14:30:25.123456700:00:00.0000000~23:59:59.99999995仅时间,可自定义小数秒(0~7位)0:00:00datetime2024-03-1514:30:25.1231753-01-01~9999-12-318精度为3.33ms,旧类型1900/1/10:00smalldatetime2024-03-1514:30:001900-01-01~2079-06-064精度为分钟(秒固定为0)1900/1/10:003.2.3日期和时间数据类型(2/2)SQLServer日期和时间数据类型(二)选择指南仅需日期→date仅需时间→time需要高精度日期时间(不含时区)→datetime2(推荐)需要时区支持→datetimeoffset兼容旧系统→datetime/smalldatetime数据类型格式示例范围存储字节精度特点datetime22024-03-1514:30:25.12345670001-01-01~9999-12-316~8(取决于精度)0~7位小数秒(100ns)扩展datetime,范围更大,精度可选datetimeoffset2024-03-1514:30:25.1234567+08:00同datetime2,时区偏移-14:00~+14:00100~7位小数秒,100ns带时区偏移,适用于全球化应用3.2.4字符串数据类型(1/2)固定长度字符串char(n)n范围:1~8000字节;存储大小:固定占用n字节;默认长度:1不足长度时:不允许NULL:右侧用空格填充;允许NULL:不填充空格;超出长度时:自动截断适用场景:数据项长度一致(如身份证号、固定代码)可变长度字符串varchar(n|max)n范围:1~8000字节;max:最大存储231−1字节(2GB)存储大小:实际字符串长度+2字节;自动删除尾随空格处理速度略慢于char(因需管理可变长度)适用场景:数据项长度差异大(如姓名、地址)选择建议:长度一致用char,长度差异大用varchar;超过8000字节用varchar(max)。3.2.4字符串数据类型(1/2)文本类型text最大长度:231−1个字符(约2GB)存储方式:列中仅存指针,指向以8KB为单位的链接页实际存储大小:可能小于最大长度重要提示SQLServer未来版本将删除text数据类型新开发工作中请勿使用应改用varchar(max)替代实践建议优先使用varchar系列,既能节省空间又具有灵活性对于历史系统,逐步将text列迁移为varchar(max)3.2.5Unicode字符串数据类型(1/2)固定长度Unicode字符串nchar(n)n范围:1~4,000(以双字节为单位);存储大小:固定占用2n字节默认长度:1(未指定n时);不足长度时:不论列是否允许NULL,均用空格填充;超出长度时:自动截断适用场景:列数据项大小可能相同可变长度Unicode字符串nvarchar(n|max)n范围:1~4,000(以双字节为单位);max:最大存储231−1字节(2GB)存储大小:2n+2字节(实际存储为输入字符串长度的两倍+2);默认长度:1(未指定n时)自动删除尾随空格适用场景:列数据项大小可能差异很大选择建议大小相同用nchar,大小差异大用nvarchar3.2.6二进制字符串数据类型(1/2)Unicode文本类型ntext最大长度:230−1个字符(1,073,741,823个字符)存储大小:输入字符串长度的两倍(以字节为单位)特点:长度可变的Unicode数据Unicode字符串类型对比数据类型特点存储大小n的范围nchar(n)固定长度2n字节1~4,000nvarchar(n|max)可变长度2n+2字节1~4,000或maxntext可变长度(文本)输入长度的两倍最大

230−1

字符3.2.6二进制字符串数据类型(2/2)大量二进制数据类型image最大存储:231−1字节(约2GB)用途:存储图片等大型二进制数据重要提示:建议使用varbinary(max)代替image未来版本可能移除image类型二进制数据类型选择场景推荐类型数据长度固定(如哈希值、固定标识)binary(n)数据长度变化(如文件片段、加密数据)varbinary(n)超大型数据(如图片、文档)varbinary(max)遗留系统兼容(避免新用)image(建议替换)3.2.7其他数据类型(1/3)cursor数据类型用于变量或存储过程OUTPUT参数,包含对游标的引用可为NULL注意:不能用于CREATETABLE语句中的列table数据类型用于存储结果集,以便后续处理主要用于表值函数返回的结果集可通过DECLARE@local_variable声明table变量rowversion数据类型自动生成的唯一二进制数字,用于给表行加版本戳存储大小:8字节注意:不保留日期或时间;timestamp是其同义词,但Microsoft不推荐使用timestamp语法,后续版本将删除3.2.7其他数据类型(2/3)sql_variant数据类型可存储SQLServer支持的各种数据类型值不支持:text、ntext、image、timestamp、sql_variant本身最大长度:8016字节(基类型值最大8000字节)使用前需转换为基本数据类型才能参与运算uniqueidentifier数据类型存储16字节全局唯一标识符(GUID)格式示例:1C1AE361-7F2C-11D6-97AD-00E03C6860BE初始化方法:使用NEWID()函数生成将字符串常量转换为GUID(格式:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)3.2.7其他数据类型(3/3)xml数据类型存储XML文档和片段(片段缺少单个顶级元素)可创建xml类型的列和变量存储大小:不超过2GBhierarchyid数据类型长度可变的系统数据类型用于表示层次结构中的位置注意:列不会自动表示层次结构,需由应用程序生成并分配值空间类型geography:地理空间数据类型,表示圆形地球坐标系(如GPS经纬度)geometry:平面空间数据类型,表示欧几里得平面坐标系两者均作为.NETCLR数据类型实现,支持一组相应的方法创建表3.3任务目标如果想通过数据库来存储数据,就必须在数据库中创建表。为此,首先要定义表结构,设置表和列的属性,包括确定表的名称和属性,指定表中各列的名称、所使用的数据类型、是否允许为空、是否为标识列以及默认值,同时还需要确定哪些列是主键、哪些列是外键等等。在数据库中创建表的操作可以使用SSMS图形界面或Transact-SQL语句来完成。通过本任务将学习和掌握创建表的方法。任务目标掌握使用SSMS创建表的方法掌握使用SQL语句创建表的方法掌握在表中设置主键的方法掌握在表中设置外键的方法3.3.1使用SSMS创建表(1/2)使用SSMS创建表——图形化界面操作流程在对象资源管理器中连接到数据库引擎实例并展开展开“数据库”,右键单击目标数据库下的“表”,选择“新建”>“表”在表设计器窗格中输入列名、选择数据类型、设置是否允许NULL在“列属性”选项卡中设置附加属性:默认值、精度、小数位数、标识列、标识种子和增量等设置主键:右键单击该列,选择“设置主键”右键单击表设计器窗格可插入/删除列、创建外键、CHECK约束或索引设置架构:右键单击窗格选择“属性”,在“架构”下拉列表中选择保存表:选择“文件”>“保存”或单击“保存”按钮在“选择名称”对话框中输入表名,单击“确定”完成标志:新建的表出现在对象资源管理器窗格中3.3.1使用SSMS创建表(2/2)例3.1:使用SSMS创建“班级”表。操作步骤新建数据库:右键单击“数据库”>“新建数据库”,命名为“教务管理”创建用户定义数据类型:展开“教务管理”>“可编程性”>“类型”右键单击“用户定义数据类型”>“新建用户定义数据类型”名称:classnum,数据类型:char,长度:6,不勾选“允许NULL值”创建班级表:右键单击“表”>“新建”>“表”设置列:保存表:命名为“班级”,单击“确定”列名数据类型是否允许NULL说明班级编号classnum不允许设置为主键专业nvarchar(12)不允许—系部nvarchar(10)不允许—3.3.2使用SQL语句创建表(1/4)CREATETABLE基本语法格式CREATETABLE表名称(<列定义>,[<计算列定义>],[<列集>],[<表约束>][,...]);表名称完整格式:[数据库名称.[架构名称.]表名称默认当前数据库;架构默认为dbo;名称最长128字符(本地临时表名不超过116字符)

<列定义>列名称<数据类型>[NULL|NOTNULL][CONSTRAINT约束名称]DEFAULT约束表达式[IDENTITY[(种子,增量)]][ROWGUIDCOL][列约束]3.3.2使用SQL语句创建表(2/4)CREATETABLE基本语法格式数据类型:系统类型或用户定义类型NULL/NOTNULL:是否允许空值DEFAULT:默认值(常量、NULL或系统函数),不能用于timestamp或标识列IDENTITY:标识列,种子和增量默认(1,1);只能用于tinyint,smallint,int,bigint,decimal(p,0),numeric(p,0)ROWGUIDCOL:唯一标识列,必须为uniqueidentifier类型,每表只有一个计算列定义<计算列定义>列名AS计算列表达式[PERSISTED[NOTNULL]]PERSISTED:物理存储计算值,依赖列更新时自动更新3.3.2使用SQL语句创建表(3/4)列约束<列约束>(单列)

[CONSTRAINT约束名称]PRIMARYKEY|UNIQUE[CLUSTERED|NONCLUSTERED]|FOREIGNKEYREFERENCES引用表(引用列)|CHECK(逻辑表达式)表约束<表约束>(多列)

[CONSTRAINT约束名称]PRIMARYKEY|UNIQUE[CLUSTERED|NONCLUSTERED](列名[ASC|DESC][,...])|FOREIGNKEY(列名[,...])REFERENCES引用表(引用列[,...])|CHECK(逻辑表达式)3.3.2使用SQL语句创建表(4/4)约束详解PRIMARYKEY:主键,唯一标识行,每表一个,默认聚集索引UNIQUE:唯一约束,每表可有多个,默认非聚集索引FOREIGNKEY:外键,引用另一表的主键或唯一键,保证引用完整性CHECK:检查约束,逻辑表达式为真则数据有效计算列上的CHECK必须使用PERSISTED索引类型CLUSTERED:聚集索引,数据按索引顺序存储NONCLUSTERED:非聚集索引,独立于数据存储其他要点每表最多1024列timestamp列可省略列名,rowversion必须指定列名约束名称在架构内唯一束,可在一次语句中完成所有设计3.3.3在表中设置主键(1/2)主键(PRIMARYKEY)的作用包含唯一标识表中每一行的一列或一组列强制表的实体完整性PRIMARYKEY约束特性每个表只能有一个PRIMARYKEY约束PRIMARYKEY约束中的列不能接受空值(NOTNULL)默认在约束列上创建聚集索引若未使用CONSTRAINT指定名称,系统自动命名标识列(IDENTITY)用于自动生成唯一增量值语法:IDENTITY(种子,增量)种子:第一行使用的值增量:后续行增加的值默认值:(1,1)常与PRIMARYKEY约束配合使用,作为唯一行标识符设计建议:将标识列设置为主键,可简化行标识管理,保证唯一性3.3.3在表中设置主键(2/2)例3.2:在教务管理数据库中创建“课程”表。USE教务管理;GOCREATETABLE课程(

课程编号smallintIDENTITY(1,1)NOTNULLPRIMARYKEY,

课程名称nvarchar(20)NOTNULL,

课程类别nvarchar(5)NOTNULL,

课时smallintNOTNULL);GO--查看当前数据库中所有用户表SELECT*FROMsysobjectsWHERExtype='U';GO语句说明IDENTITY(1,1):设置标识列,种子和增量均为1PRIMARYKEY:将课程编号列设置为主键SELECT*FROMsysobjectsWHERExtype='U':查询所有用户表信息(xtype='U'表示用户表)3.3.4在表中创建外键(1/2)外键(FOREIGNKEY)的作用用于建立和加强两个表数据之间的链接由一列或多列组成外键引用机制当A表的列引用B表的主键值列时,在两表之间创建链接该列成为A表的外键FOREIGNKEY约束特性可以与另一表的PRIMARYKEY约束链接也可以定义为引用另一表的UNIQUE约束可以包含空值(NULL)创建方式在列定义中添加FOREIGNKEY指定要引用的表及引用列语法:FOREIGNKEYREFE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论