SQLServer 1. 数据库简介是一款关系新数据库系统数据库4个内置库不能删除master存储所有登录账号、实例配置、数据库清单实例核心model新建数据库模板所有自建库继承model配置msdb定时任务、备份计划、作业、邮件日志存储库tempdb临时表、查询缓存、运算临时数据重启自动清空数据库文件的组成数据库文件组成.mdf主数据文件核心业务数据一个库仅有1个.ndf次要数据文件拆分大容量数据可选.ldf事务日志文件记录所有增删改操作回滚、恢复依赖日志身份验证模式Windows身份验证仅本地服务器、域账号登录内网安全SQL Server混合模式SQLWindows实施必选软件程序、远程客户端均用sa账号连接我们可以在虚拟机中安装一个windows操作系统由于我不想把sqlserver安装在自己原本的环境中所以我选择将sqlserver安装在虚拟机的windows环境里面2. 虚拟机安装步骤win10系统点击完成 等待系统安装成功即可3. 在win10系统中安装sqlserver1. 环境 内存至少4G2. windows 版本 使用专业版双击sql2019-ssEL-DEV显示的页面如下选择自定义安装耐心等待即可需要的时间比较长接下来选择安装即可实例的名字是MSSQLSERVER设置密码和sqlserver的管理员点击安装点击关闭然后使用cmd 查看一下sqlserver 是否安装成功sc query MSSQLSERVER出现的是RUNNING 就证明安装成功了到此服务端的sqlserver已经安装成功了4. 安装客户端ssms耐心等待安装即可打开ssms打开之后四个数据库不要随意删除5. 开始创建数据库创建数据库的语法和mysql 是一样的CREATE DATABASE test_db;标准自定义路径创建 实施交付必用不存 C 盘 因为我们当前的系统只有一个C盘所以我这里使用C盘 指定数据文件、日志文件存放盘符自定义初始大小、增长上限 前置要求 c 盘手动新建文件夹 c:\SQLData、c:\SQLLog否则创建报错。标准版的创建数据库的语句初始的大小增长的长度上限CREATE DATABASE business_db ON PRIMARY ( NAME business_db_data, FILENAME C:\SQLData\business_db.mdf, -- 主数据文件 SIZE 1024MB, -- 初始大小1G MAXSIZE 10240MB, -- 最大10G FILEGROWTH 512MB -- 每次自动扩容512M ) LOG ON ( NAME business_db_log, FILENAME C:\SQLLog\business_db.ldf, -- 事务日志文件 SIZE 512MB, MAXSIZE 5120MB, FILEGROWTH 256MB );创建一张表CREATE TABLE XSB ( id INT IDENTITY(1,1) PRIMARY KEY, -- 自动增长数字主键 student_id CHAR(6) NOT NULL UNIQUE, -- 学号唯一约束 student_name CHAR(8) NOT NULL, gender BIT DEFAULT 1, -- 1男 0女 birth_time DATETIME NULL, major CHAR(12) NULL, total_credit INT DEFAULT 0 CHECK(total_credit 0 AND total_credit 160), remark VARCHAR(500) NULL ) GO INSERT INTO XSB(student_id,student_name,gender,birth_time,major,total_credit,remark) VALUES (001001,ZhangSan,1,2002-01-15,计算机科学,24,班长), (001002,LiSi,0,2002-03-22,软件工程,20,), (001003,WangWu,1,2001-12-10,大数据技术,32,优秀学生), (001004,ZhaoLiu,0,2002-07-08,人工智能,18,), (001005,QianQi,1,2001-09-30,网络工程,26,转专业学生), (001006,SunBa,1,2002-05-18,计算机科学,22,体育委员), (001007,ZhouJiu,0,2001-11-05,大数据技术,28,奖学金获得者), (001008,WuShi,1,2002-02-27,人工智能,16,), (001009,ZhengYi,0,2001-08-14,软件工程,30,学习委员), (001010,ChenEr,1,2002-06-09,网络工程,21,); GOIDENTITY(起始值,步长) 只适用于数值类型TINYINT、SMALLINT、INT、BIGINTCHAR/VARCHAR/NVARCHAR 字符串字段不支持自增6. 备份备份分为三类完整备份全量备份整库全部数据交付、迁移、重大更新前必做差异备份仅备份上次全备后变更数据占用空间小日常巡检使用事务日志备份支持时间点还原多客户生产环境必备防止数据丢失1. 使用工具进行备份ssms进行备份数据库右键 → 任务 → 备份2. 验证备份是否正确数据还原1. 删除数据库business_dbuse master; -- 切换一个数据库 drop database business_db; -- 删除数据库business_db2. 执行还原操作看原来的数据是否还存在原来business_db 数据库中 有一张便XSB 里面有10条数据还原:RESTORE DATABASE business_db FROM DISK C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Backup\business_db.bak WITH RECOVERY, REPLACE; use business_db; select * from XSB;执行完查询时候发现有10条数据 那么就证明我们的备份是没有问题的。3. 使用语句进行备份全量备份-- 完整备份数据库 business_db BACKUP DATABASE business_db TO DISK NC:\Backup\business_db_20260707full.bak WITH COMPRESSION, -- 开启压缩减小备份文件体积 INIT, -- 覆盖该文件原有备份集不加则追加进去 STATS 10; -- 每完成10%打印进度前提自己的电脑里有一个目录 c:\backup执行完语句之后出现这样的文件就证明是备份成功了差分备份USE master; GO BACKUP DATABASE business_db TO DISK NC:\Backup\business_db_20260707diff.bak WITH DIFFERENTIAL, -- 关键字代表差异备份 COMPRESSION, INIT, STATS 10;关键字: DIFFERENTIAL使用了关键字DIFFERENTIAL才能说明这个备份是差分备份事务日志备份USE master; GO BACKUP LOG business_db TO DISK NC:\Backup\business_db_20260707log.trn WITH COMPRESSION, INIT, STATS 10;使用的是backup log 而不是backup database4. 还原还原全部验证备份中就是还原全部差分还原RESTORE DATABASE [数据库名] FROM DISK 差异备份路径.dif WITH RECOVERY;事务日志还原RESTORE LOG [数据库名] FROM DISK 日志备份路径1.trn WITH RECOVERY; -- 最终恢复数据库 RESTORE DATABASE [数据库名] WITH RECOVERY;NORECOVERY还原完成后保持 “正在还原” 状态数据库打不开用来继续还原后续差异 / 事务日志备份RECOVERY: 还原完毕数据库直接上线可正常使用不能再追加备份REPLACE覆盖现有数据库7. 数据库分离和附加分离数据库会被删除掉并产生两个文件 *.mdf *.ldf主要方便进行数据迁移分离的文件存放在路径C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA附加1. 什么是附加数据库将当前数据库以外的数据库添加到SQL Server到数据库实例中2. 什么样的数据库能附加呢在附加数据库时所有数据库文件.mdf和.ndf文件都必须是可用的。如果任何数据文件的路径与创建数据库或上次附加数据库时的路径不同则必须指定文件的当前路径。在附件数据库的过程中如果没有日志文件系统将创建一个新的日志文件到此数据库就附加成功了定时备份打开sqlserver 代理使用Navicat进行远程连接关闭防火墙 或者放行1433 端口号查看两台服务器是否互通让sa 的状态可用确认电脑之间是否互通如果通就配置sqlserver管理器1. 配置sqlserver 管理器将所有的状态全部改成已启用重启服务生效2. 使用Navicat Premium 连接sqlserver1. 安装驱动双击进行安装,无脑下一步即可2. 开始连接到此远程连接就配置成功了