SQL Server 2019入门学习教程,从入门到精通,SQL Server 2019数据库的操作(2)

📅 发布时间:2026/7/10 13:36:51 👁️ 浏览次数:
SQL Server 2019入门学习教程,从入门到精通,SQL Server 2019数据库的操作(2)
SQL Server 2019数据库的操作一、 前置准备SQL Server 2019 安装步骤1. 安装前期准备下载安装介质前往 微软官方下载中心 下载 SQL Server 2019可选择「开发者版Developer」免费用于开发和测试或「企业版/标准版」商用需授权。检查系统要求支持 Windows 10 1809 及以上、Windows Server 2019 及以上需 4GB 以上内存推荐 8GB、10GB 以上可用磁盘空间。关闭无关杀毒软件和防火墙安装完成后可重新开启。2. 分步安装操作运行下载的安装程序setup.exe进入 SQL Server 安装中心选择左侧「安装」点击右侧「全新 SQL Server 独立安装或向现有安装添加功能」。产品密钥步骤开发者版可直接选择「免费授权的版本」中的「SQL Server Developer」点击「下一步」。许可条款步骤勾选「我接受许可条款」点击「下一步」。微软更新步骤可选是否启用 Microsoft Update推荐勾选便于后续补丁更新点击「下一步」。安装规则步骤等待系统检查完成无错误黄色警告可忽略红色错误需修复后点击「下一步」。功能选择步骤核心勾选「数据库引擎服务」必备用于数据库存储和管理。可选勾选「SQL Server 管理工具 - 基本」包含 SSMS 简化版若需完整版可后续单独安装。确认安装路径可修改默认路径避免C盘空间不足点击「下一步」。实例配置步骤选择「默认实例」便于后续使用实例名默认为MSSQLSERVER或「命名实例」确认实例根目录点击「下一步」。服务器配置步骤「服务账户」可保持默认系统账户也可配置专用域账户。「启动类型」数据库引擎服务推荐设置为「自动」确保开机自启。点击「下一步」。数据库引擎配置步骤关键步骤「服务器身份验证模式」选择「混合模式SQL Server 身份验证和 Windows 身份验证」便于后续多种场景连接。「指定 SQL Server 管理员」设置 sa 账户密码需牢记复杂度符合要求字母数字特殊字符同时可添加当前 Windows 用户为管理员。「数据目录」可修改数据库文件、日志文件的默认存储路径点击「下一步」。后续步骤保持默认配置依次点击「下一步」最后点击「安装」等待安装完成耗时约10-30分钟取决于硬件配置。安装完成勾选「安装完成后关闭此向导」点击「关闭」。3. 补充SSMSSQL Server 管理工作室安装若安装时未勾选完整 SSMS前往 微软官方下载 SSMS 下载最新版本。运行 SSMS 安装程序勾选「我接受许可条款」点击「安装」等待完成后重启电脑。启动 SSMS输入服务器名称默认实例为「localhost」或「.」身份验证选择「SQL Server 身份验证」输入 sa 账户和密码点击「连接」即可进入 SQL Server 操作界面。二、 核心知识点与语法、案例2.1 数据库组成基础概念SQL Server 2019 数据库由数据库文件数据文件和日志文件组成所有数据库操作均基于这两类文件存储。数据库文件Data File用于存储数据库的实际数据表、视图、索引等。分类主数据文件.mdf、次数据文件.ndf。特性每个数据库必须有且仅有一个主数据文件次数据文件可选用于拆分大数据、扩展存储到不同磁盘。日志文件Log File用于存储数据库的所有事务日志增删改、创建/删除对象等操作记录用于数据恢复。后缀.ldf。特性每个数据库至少有一个日志文件可多个提升日志写入性能日志文件不存储实际数据仅记录操作轨迹。系统数据库SQL Server 安装完成后默认自带4个核心系统数据库用于支撑数据库引擎的正常运行禁止随意修改或删除。系统数据库后缀名核心作用master.mdf/.ldf记录 SQL Server 实例的所有系统级信息实例配置、数据库列表、登录账户等实例的「总控数据库」。model.mdf/.ldf所有新建数据库的「模板数据库」新建数据库时会复制 model 数据库的结构和配置。msdb.mdf/.ldf用于 SQL Server 代理作业调度、备份/还原任务、警报等的存储记录自动化任务信息。tempdb.mdf/.ldf临时数据库存储临时表、临时变量、查询中间结果等每次 SQL Server 实例重启后会被清空并重建基于 model 模板。2.2 创建数据库方式1使用对象资源管理器图形界面适合新手启动 SSMS连接到 SQL Server 实例展开左侧「对象资源管理器」中的服务器节点。右键点击「数据库」选择「新建数据库」。在「新建数据库」窗口中填写核心配置「数据库名称」输入自定义名称如StudentDB。「所有者」保持默认sa或选择指定用户。「数据文件」可修改主数据文件的「初始大小」默认 8MB、「自动增长」默认按 64MB 增长无限制、「路径」存储位置。「日志文件」可修改日志文件的「初始大小」默认 8MB、「自动增长」、「路径」。无需额外配置时直接点击「确定」即可完成数据库创建刷新「数据库」节点可看到新建的数据库。方式2使用 Transact-SQLT-SQL创建数据库核心适合开发/自动化核心语法-- 基础语法默认配置仅指定数据库名CREATEDATABASE数据库名称;-- 完整语法自定义数据文件、日志文件配置CREATEDATABASE数据库名称ONPRIMARY-- 主文件组SQL Server 默认主文件组为 PRIMARY(-- 主数据文件配置必须指定NAME数据文件逻辑名称,-- 逻辑名用于 T-SQL 操作中引用文件FILENAME物理文件路径文件名.mdf,-- 物理名磁盘上的实际文件路径和名称SIZE初始大小,-- 如 10MB、1GB无单位默认按 MB 计算MAXSIZE最大大小,-- 如 500MB、UNLIMITED无限制FILEGROWTH自动增长增量-- 如 10MB、10%按当前大小的百分比增长)LOGON-- 日志文件配置(-- 日志文件配置至少一个NAME日志文件逻辑名称,FILENAME物理文件路径文件名.ldf,SIZE初始大小,MAXSIZE最大大小,FILEGROWTH自动增长增量);案例代码带详细注释案例1基础创建默认配置-- 案例1创建名为 StudentDB 的数据库使用所有默认配置主数据文件 .mdf、日志文件 .ldf 均按默认大小/增长策略-- 默认存储路径SQL Server 安装目录下的 Data 文件夹CREATEDATABASEStudentDB;GO-- GO 是 T-SQL 批处理结束标记用于分隔多个 T-SQL 语句块案例2完整配置创建自定义文件大小、路径、增长策略-- 案例2创建名为 EmployeeDB 的数据库自定义数据文件和日志文件的所有配置CREATEDATABASEEmployeeDBONPRIMARY-- 主文件组(-- 主数据文件配置NAMEEmployeeDB_Data,-- 数据文件逻辑名可自定义建议与数据库名关联便于识别FILENAMED:\SQL Server Data\EmployeeDB_Data.mdf,-- 物理文件路径需确保 D 盘存在「SQL Server Data」文件夹否则会创建失败SIZE20MB,-- 初始大小 20MBMAXSIZE500MB,-- 最大大小 500MB达到后不再自动增长FILEGROWTH10MB-- 自动增长增量 10MB每次空间不足时增加 10MB)LOGON-- 日志文件配置(NAMEEmployeeDB_Log,-- 日志文件逻辑名FILENAMED:\SQL Server Data\EmployeeDB_Log.ldf,-- 日志文件物理路径SIZE10MB,-- 日志文件初始大小 10MBMAXSIZE200MB,-- 日志文件最大大小 200MBFILEGROWTH5MB-- 日志文件自动增长增量 5MB);GO案例3创建带次数据文件的数据库用于大数据库扩展-- 案例3创建名为 SalesDB 的数据库包含主数据文件和1个次数据文件.ndf以及1个日志文件CREATEDATABASESalesDBONPRIMARY(-- 主数据文件NAMESalesDB_Primary_Data,FILENAMED:\SQL Server Data\SalesDB_Primary.mdf,SIZE50MB,MAXSIZE1000MB,FILEGROWTH20MB),-- 次数据文件无需指定 PRIMARY默认归属于主文件组后缀为 .ndf(NAMESalesDB_Secondary_Data,FILENAMEE:\SQL Server Secondary Data\SalesDB_Secondary.ndf,-- 存储在 E 盘分散磁盘压力SIZE100MB,MAXSIZE2000MB,FILEGROWTH50MB)LOGON(NAMESalesDB_Log,FILENAMED:\SQL Server Data\SalesDB_Log.ldf,SIZE30MB,MAXSIZE300MB,FILEGROWTH10MB);GO2.3 管理数据库2.3.1 修改数据库核心修改容量、配置等知识点1增加数据库容量扩展数据文件/日志文件大小当数据库存储空间不足时可通过两种方式扩展手动增大文件固定大小、修改自动增长策略推荐无需手动干预。核心语法-- 语法1修改数据文件/日志文件的自动增长策略、最大大小ALTERDATABASE数据库名称MODIFYFILE(NAME文件逻辑名称,-- 必须指定要修改的文件逻辑名可通过查看数据库信息获取MAXSIZE新的最大大小,FILEGROWTH新的自动增长增量);-- 语法2手动增大文件的当前大小直接设置 SIZE 为更大的值SIZE 必须大于当前文件大小ALTERDATABASE数据库名称MODIFYFILE(NAME文件逻辑名称,SIZE新的当前大小-- 新大小 现有大小);案例代码带详细注释-- 前提先确认要修改的数据库文件逻辑名后续查看数据库信息会讲解如何获取-- 案例1修改 EmployeeDB 数据库的主数据文件更新自动增长策略和最大大小ALTERDATABASEEmployeeDBMODIFYFILE(NAMEEmployeeDB_Data,-- 对应创建时的主数据文件逻辑名MAXSIZE1000MB,-- 最大大小从 500MB 改为 1000MBFILEGROWTH20MB-- 自动增长增量从 10MB 改为 20MB);GO-- 案例2手动增大 EmployeeDB 数据库的日志文件当前大小从 10MB 改为 50MBALTERDATABASEEmployeeDBMODIFYFILE(NAMEEmployeeDB_Log,-- 对应创建时的日志文件逻辑名SIZE50MB-- 新大小 50MB 原有 10MB修改成功);GO知识点2缩减数据库容量收缩数据文件/日志文件当数据库文件占用空间过大但实际数据量较小时可收缩文件释放多余磁盘空间注意不建议频繁收缩会产生磁盘碎片影响查询性能。核心语法-- 语法1收缩整个数据库所有数据文件和日志文件释放多余空间DBCCSHRINKDATABASE(数据库名称,-- 要收缩的数据库名剩余可用空间百分比-- 收缩后保留的可用空间如 10表示保留 10% 空闲空间);-- 语法2收缩指定的单个文件更精准推荐DBCCSHRINKFILE(文件逻辑名称OR文件ID,-- 要收缩的文件逻辑名或文件ID目标大小-- 收缩后的目标大小MB必须小于当前文件的实际数据占用大小保留空间);-- 补充收缩日志文件前建议先备份日志避免日志无法收缩并将数据库恢复模式改为「简单」ALTERDATABASE数据库名称SETRECOVERYSIMPLE;GO案例代码带详细注释-- 案例1收缩 StudentDB 数据库收缩后保留 5% 的可用空间DBCCSHRINKDATABASE(StudentDB,5);GO-- 案例2收缩 EmployeeDB 数据库的主数据文件目标大小改为 30MB-- 步骤1先确认 EmployeeDB_Data 文件的实际数据占用需小于 30MB否则收缩失败-- 步骤2执行收缩命令DBCCSHRINKFILE(EmployeeDB_Data,30);GO-- 案例3收缩 EmployeeDB 数据库的日志文件目标大小改为 15MB-- 步骤1将数据库恢复模式改为简单便于收缩日志ALTERDATABASEEmployeeDBSETRECOVERYSIMPLE;GO-- 步骤2收缩日志文件DBCCSHRINKFILE(EmployeeDB_Log,15);GO-- 步骤3可选将数据库恢复模式改回完整便于后续完整备份和数据恢复ALTERDATABASEEmployeeDBSETRECOVERYFULL;GO知识点3查看数据库信息常用方式有两种图形界面对象资源管理器、T-SQL 语句精准查询适合开发。核心语法T-SQL-- 语法1查看当前实例下所有数据库的基本信息名称、创建时间、状态等SELECT*FROMsys.databases;-- sys.databases 是系统视图存储所有数据库的元数据-- 语法2查看指定数据库的文件信息逻辑名、物理路径、大小、增长策略等USE数据库名称;-- 切换到目标数据库GOSELECT*FROMsys.database_files;-- sys.database_files 是当前数据库的文件视图-- 语法3使用系统存储过程查看数据库详细信息EXECsp_helpdb 数据库名称;-- sp_helpdb 是系统存储过程返回数据库的完整配置信息案例代码带详细注释-- 案例1查看当前 SQL Server 实例下所有数据库的基本信息SELECTnameAS数据库名称,create_dateAS创建时间,state_descAS数据库状态,recovery_model_descAS恢复模式FROMsys.databases;-- 只查询关键字段便于阅读GO-- 案例2查看 EmployeeDB 数据库的文件详细信息USEEmployeeDB;-- 切换到 EmployeeDB 数据库GOSELECTnameAS文件逻辑名称,physical_nameAS物理文件路径,size*8/1024AS文件大小_GB,-- sys.database_files 中 size 单位是 8KB转换为 GBmax_sizeAS最大大小,filegrowthAS自动增长增量,type_descAS文件类型FROMsys.database_files;GO-- 案例3使用系统存储过程查看 SalesDB 数据库的完整信息EXECsp_helpdb SalesDB;GO知识点4数据库更名修改数据库的名称注意更名前需确保数据库无活动连接无用户正在使用否则更名失败。核心语法-- 语法1使用 ALTER DATABASE 语句更名推荐T-SQL 标准语法ALTERDATABASE旧数据库名称MODIFYNAME新数据库名称;GO-- 语法2使用系统存储过程更名兼容旧版本 SQL ServerEXECsp_renamedb 旧数据库名称,新数据库名称;GO案例代码带详细注释-- 案例将 StudentDB 数据库更名为 StudentInfoDB-- 步骤1可选先断开该数据库的所有活动连接避免更名失败ALTERDATABASEStudentDBSETSINGLE_USERWITHROLLBACKIMMEDIATE;-- SINGLE_USER设置数据库为单用户模式仅允许当前连接-- WITH ROLLBACK IMMEDIATE立即回滚所有未完成的事务并断开其他活动连接GO-- 步骤2执行更名操作推荐使用 ALTER DATABASE 语法ALTERDATABASEStudentDBMODIFYNAMEStudentInfoDB;GO-- 步骤3可选将数据库恢复为多用户模式允许其他用户连接ALTERDATABASEStudentInfoDBSETMULTI_USER;GO知识点5删除数据库删除无用的数据库释放磁盘空间注意删除数据库后所有数据和日志文件将被永久删除无法恢复除非有备份操作需谨慎。核心语法-- 语法1基础删除语法DROPDATABASE数据库名称;GO-- 语法2同时删除多个数据库DROPDATABASE数据库名称1,数据库名称2;GO案例代码带详细注释-- 案例1删除 StudentInfoDB 数据库确认无备份需求后执行-- 步骤1可选断开所有活动连接ALTERDATABASEStudentInfoDBSETSINGLE_USERWITHROLLBACKIMMEDIATE;GO-- 步骤2执行删除操作DROPDATABASEStudentInfoDB;GO-- 案例2同时删除 EmployeeDB 和 SalesDB 数据库ALTERDATABASEEmployeeDBSETSINGLE_USERWITHROLLBACKIMMEDIATE;ALTERDATABASESalesDBSETSINGLE_USERWITHROLLBACKIMMEDIATE;GODROPDATABASEEmployeeDB,SalesDB;GO三、 综合性案例案例需求完整实现「企业客户数据库CustomerDB」的创建、配置、管理、查询、更名、删除全流程创建数据库自定义数据文件主次、日志文件配置。查看数据库信息确认配置无误。扩展数据库容量修改自动增长策略和手动增大文件大小。收缩数据库多余空间。将数据库更名为 EnterpriseCustomerDB。最终删除该数据库仅用于演示实际场景按需保留。完整代码带详细注释-- 步骤1创建 CustomerDB 数据库主数据文件次数据文件日志文件CREATEDATABASECustomerDBONPRIMARY(-- 主数据文件NAMECustomerDB_Primary,FILENAMED:\SQL Server Data\CustomerDB_Primary.mdf,SIZE30MB,MAXSIZE800MB,FILEGROWTH15MB),-- 次数据文件(NAMECustomerDB_Secondary,FILENAMEE:\SQL Server Data\CustomerDB_Secondary.ndf,SIZE50MB,MAXSIZE1000MB,FILEGROWTH25MB)LOGON(NAMECustomerDB_Log,FILENAMED:\SQL Server Data\CustomerDB_Log.ldf,SIZE20MB,MAXSIZE400MB,FILEGROWTH10MB);GO-- 步骤2查看 CustomerDB 数据库的详细信息确认文件配置、状态-- 2.1 查看数据库基本信息SELECTnameAS数据库名称,create_dateAS创建时间,state_descAS状态FROMsys.databasesWHEREnameCustomerDB;GO-- 2.2 查看数据库文件详细信息USECustomerDB;GOSELECTnameAS文件逻辑名,physical_nameAS物理路径,size*8/1024AS文件大小_GB,filegrowthAS自动增长增量FROMsys.database_files;GO-- 步骤3扩展数据库容量-- 3.1 修改主数据文件的最大大小和自动增长策略ALTERDATABASECustomerDBMODIFYFILE(NAMECustomerDB_Primary,MAXSIZE1500MB,FILEGROWTH30MB);GO-- 3.2 手动增大次数据文件的当前大小从 50MB 改为 100MBALTERDATABASECustomerDBMODIFYFILE(NAMECustomerDB_Secondary,SIZE100MB);GO-- 步骤4收缩数据库多余空间-- 4.1 收缩整个数据库保留 3% 可用空间DBCCSHRINKDATABASE(CustomerDB,3);GO-- 4.2 收缩日志文件目标大小改为 25MB先改为简单恢复模式ALTERDATABASECustomerDBSETRECOVERYSIMPLE;GODBCCSHRINKFILE(CustomerDB_Log,25);GOALTERDATABASECustomerDBSETRECOVERYFULL;GO-- 步骤5将 CustomerDB 更名为 EnterpriseCustomerDB-- 5.1 断开所有活动连接ALTERDATABASECustomerDBSETSINGLE_USERWITHROLLBACKIMMEDIATE;GO-- 5.2 执行更名ALTERDATABASECustomerDBMODIFYNAMEEnterpriseCustomerDB;GO-- 5.3 恢复多用户模式ALTERDATABASEEnterpriseCustomerDBSETMULTI_USER;GO-- 步骤6可选删除 EnterpriseCustomerDB 数据库演示用实际按需保留ALTERDATABASEEnterpriseCustomerDBSETSINGLE_USERWITHROLLBACKIMMEDIATE;GODROPDATABASEEnterpriseCustomerDB;GO总结SQL Server 2019 安装核心是勾选「数据库引擎服务」、配置「混合模式身份验证」和 sa 密码SSMS 是后续操作的核心工具。数据库核心由.mdf主数据、.ndf次数据、.ldf日志文件组成系统数据库master/model/msdb/tempdb禁止随意修改。核心 T-SQL 语句CREATE DATABASE创建、ALTER DATABASE修改/更名、DBCC SHRINKDATABASE/SHRINKFILE收缩、DROP DATABASE删除、sys.databases/sys.database_files查询信息。数据库管理需注意扩展容量无性能风险收缩容量易产生碎片删除数据库前需确认有备份更名前需断开活动连接。