SQL Server指南:从入门到进阶实战


在这里插入图片描述
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
在这里插入图片描述

  • 推荐:「stormsha的主页」👈,持续学习,不断总结,共同进步,为了踏实,做好当下事儿~
  • 专栏导航
    • Python面试合集系列:Python面试题合集,剑指大厂
    • GO基础学习笔记系列:记录博主学习GO语言的笔记,该笔记专栏尽量写的试用所有入门GO语言的初学者
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 运维系列:总结好用的命令,高效开发
    • 算法与数据结构系列:总结数据结构和算法,不同类型针对性训练,提升编程思维

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

💖The Start💖点点关注,收藏不迷路💖

📒文章目录

      • 一、登录与身份验证
        • 1. 登录方式
        • 2. 安全角色与权限管理
      • 二、管理工具:SQL Server Management Studio (SSMS)
        • 1. 用户界面
        • 2. 常用功能
      • 三、创建数据库
        • 1. 使用SSMS图形界面
        • 2. 使用T-SQL语句
      • 四、创建表
        • 1. 使用SSMS图形界面
        • 2. 使用T-SQL语句
      • 五、数据操作语言 (DML)
        • 1. 插入数据
        • 2. 查询数据
        • 3. 更新数据
        • 4. 删除数据
      • 六、数据定义语言 (DDL)
        • 1. 修改表结构
        • 2. 索引与约束
      • 七、事务处理与备份恢复
        • 1. 事务
        • 2. 备份数据库
        • 3. 恢复数据库
      • 八、高级主题
        • 1. 视图、存储过程、函数、触发器
        • 2. 性能调优
        • 3. 高可用性与灾难恢复


在这里插入图片描述

一、登录与身份验证

1. 登录方式
  • Windows身份验证:利用当前Windows用户的凭据进行登录,无需输入数据库用户名和密码。适用于同一域环境下的内部用户,简化了登录过程,且易于管理权限。

    sqlcmd -S <服务器名> -E
    
  • SQL Server身份验证:需要提供特定的数据库用户名和密码。适用于远程访问、非Windows用户或需要隔离权限管理的情况。

    sqlcmd -S <服务器名> -U <用户名> -P <密码>
    
2. 安全角色与权限管理
  • 服务器级别角色(如sysadmin、serveradmin等):负责管理整个SQL Server实例。
  • 数据库级别角色(如db_owner、db_datareader等):控制数据库内的权限分配。
  • 自定义角色:创建具有特定权限集合的角色,便于批量管理用户权限。
  • 对象级权限:针对特定表、视图、存储过程等授予或拒绝特定操作权限。

二、管理工具:SQL Server Management Studio (SSMS)

1. 用户界面
  • 对象资源管理器:浏览和管理服务器、数据库、表、视图、存储过程等对象。
  • 查询编辑器:编写、执行T-SQL语句及脚本,查看结果集。
  • 模板资源管理器:提供预定义的T-SQL脚本模板,加速开发。
  • 报表和图表:用于数据可视化和性能监视。
2. 常用功能
  • 连接管理:添加、编辑、删除服务器连接。
  • 备份与还原:定期备份数据库,以防数据丢失,并在需要时恢复。
  • 导入/导出数据:使用数据迁移助手(DMA)或SSIS包进行数据迁移。
  • 性能监视与优化:使用性能监视器、SQL Profiler、DMVs等工具分析查询性能。

三、创建数据库

1. 使用SSMS图形界面
  • 右键“数据库”节点,选择“新建数据库”。
  • 输入数据库名称,设置文件组、文件路径、初始大小、增长方式等参数。
  • 选择恢复模式(完整、简单、大容量日志)和兼容级别。
2. 使用T-SQL语句
CREATE DATABASE [DatabaseName]
ON 
(NAME = N'DatabaseName_Data',FILENAME = N'/path/to/datafile.mdf',SIZE = 5MB,MAXSIZE = UNLIMITED,FILEGROWTH = 10%
)
LOG ON 
(NAME = N'DatabaseName_Log',FILENAME = N'/path/to/logfile.ldf',SIZE = 2MB,MAXSIZE = 200MB,FILEGROWTH = 10%
)
GO

四、创建表

1. 使用SSMS图形界面
  • 右键目标数据库的“表”节点,选择“新建表”。
  • 在设计视图中添加列、定义数据类型、约束(如NOT NULL、PRIMARY KEY等)。
2. 使用T-SQL语句
CREATE TABLE [dbo].[Student] ([ID] INT NOT NULL PRIMARY KEY IDENTITY(1,1),[Name] NVARCHAR(50) NOT NULL,[Sex] CHAR(1) NOT NULL CHECK ([Sex] IN ('M', 'F')),[Age] INT NOT NULL
);

五、数据操作语言 (DML)

1. 插入数据
  • SSMS:在表设计视图中直接输入数据,或使用“编辑前200行”功能。
  • T-SQL
INSERT INTO [dbo].[Student] (Name, Sex, Age)
VALUES ('贾宝玉', 'M', 16);-- 插入多条数据
INSERT INTO [dbo].[Student] (Name, Sex, Age)
VALUES ('林黛玉', 'F', 15),('薛宝钗', 'F', 17);
2. 查询数据
  • SSMS:在查询编辑器中编写SELECT语句,运行后查看结果集。
  • T-SQL
SELECT * FROM [dbo].[Student];
3. 更新数据
UPDATE [dbo].[Student]
SET [Age] = 18
WHERE [ID] = 1;
4. 删除数据
DELETE FROM [dbo].[Student]
WHERE [ID] = 1;

六、数据定义语言 (DDL)

1. 修改表结构
  • 添加列:
ALTER TABLE [dbo].[Student]
ADD [Address] NVARCHAR(100) NULL;
  • 删除列:
ALTER TABLE [dbo].[Student]
DROP COLUMN [Address];
  • 修改列属性:
ALTER TABLE [dbo].[Student]
ALTER COLUMN [Age] INT NOT NULL;
2. 索引与约束
  • 创建索引:
CREATE INDEX IX_Student_Name ON [dbo].[Student]([Name]);
  • 添加外键约束:
ALTER TABLE [dbo].[Enrollment]
ADD CONSTRAINT FK_Enrollment_Student
FOREIGN KEY ([StudentID])
REFERENCES [dbo].[Student]([ID])
ON DELETE CASCADE;

七、事务处理与备份恢复

1. 事务
  • 开始事务:
BEGIN TRANSACTION;
  • 提交事务:
COMMIT TRANSACTION;
  • 回滚事务:
ROLLBACK TRANSACTION;
2. 备份数据库
  • 使用SSMS的备份任务向导。
  • 使用T-SQL:
BACKUP DATABASE [DatabaseName]
TO DISK = '/path/to/backup.bak'
WITH FORMAT,COMPRESSION,STATS = 10;
3. 恢复数据库
  • 使用SSMS的还原任务向导。
  • 使用T-SQL:
RESTORE DATABASE [DatabaseName]
FROM DISK = '/path/to/backup.bak'
WITH REPLACE,RECOVERY,STATS = 10;

八、高级主题

1. 视图、存储过程、函数、触发器
  • 视图:虚拟表,基于查询结果定义,简化复杂查询或保护敏感数据。
  • 存储过程:封装一组T-SQL语句,提高代码重用和安全性。
  • 函数:返回单一值或表形式结果的可重用代码块。
  • 触发器:响应特定数据库事件(如INSERT、UPDATE、DELETE)自动执行的T-SQL代码。
2. 性能调优
  • 查询优化:使用执行计划、索引调整、查询重写等手段。
  • 数据库引擎 tuning advisor:分析工作负载并提出优化建议。
  • 监控性能指标:使用DMVs、性能计数器、SQL Profiler等工具。
3. 高可用性与灾难恢复
  • Always On Availability Groups:实现数据库级别的高可用性和读扩展。
  • 数据库镜像:提供故障转移和数据保护。
  • 日志传送:通过复制事务日志备份实现异地容灾。
  • 备份策略:定期备份、差异备份、事务日志备份,配合恢复模型实现不同恢复点目标(RPO)。

以上是一个简要的SQL Server详细使用教程,涵盖从基础登录、管理工具使用到高级特性的操作。实际应用中,还需根据业务需求进一步学习和实践相关技术。同时,建议参考官方文档和专业书籍以获取最准确、最新的信息。


❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏、分享下吧,非常感谢!👍 👍 👍

🔥🔥🔥道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

💖The End💖点点关注,收藏不迷路💖

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/2468.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java面试必问题52:(高级面试篇)MongoDB的详细解释以及他的用法以及他跟Redis的区别以及优势

1. 非结构化数据存储&#xff1a;MongoDB是一个面向文档的NoSQL数据库&#xff0c;它不需要定义固定的数据模式&#xff0c;适用于存储不同结构和半结构化的数据&#xff0c;如日志、JSON文档、传感器数据等。 2. 可扩展性和高性能&#xff1a;MongoDB采用分布式架构&#xff0…

PaddleSeg (2) 模型训练

已处理好数据集和配置文件,可以开始模型训练。 启动训练 python tools/train.py --config configs/xxx.yml --do_eval --use_vdl --save_interval 500 --save_dir output/xxx上述训练命令解释:* `--config`

为什么堆排序的时间复杂度是O(N*logN)?

目录 前言&#xff1a; 堆排序&#xff08;以排升序为例&#xff09; 步骤&#xff08;用大根堆&#xff0c;倒这排&#xff0c;排升序&#xff09;&#xff1a; 1.先把要排列的数组建立成大根堆 2.堆顶元素&#xff08;82&#xff09;和最后一个元素交换&#xff08;2&…

华为OD机试真题-亲子游戏-2024年OD统一考试(C卷D卷 )

题目描述: 宝宝和妈妈参加亲子游戏,在一个二维矩阵(N*N)的格子地图上,宝宝和妈妈抽签决定各自的位置,地图上每个格子有不同的糖果数量,部分格子有障碍物。 游戏规则是妈妈必须在最短的时间(每个单位时间只能走一步)到达宝宝的位置,路上的所有糖果都可以拿走,不能走障…

HYBBS表白墙爆款源码!轻松搭建表白墙网站,更可一键封装成APP,让爱传递无界限

PHP表白墙网站源码&#xff0c;适用于校园内或校区间使用&#xff0c;同时支持封装成APP。告别使用QQ空间的表白墙。 简单安装&#xff0c;只需PHP版本5.6以上即可。 通过上传程序进行安装&#xff0c;并设置账号密码&#xff0c;登录后台后切换模板&#xff0c;适配手机和PC…

计算机网络——应用层协议(1)

在这篇文章初识网络中&#xff0c;我介绍了关于计算机网络的相关知识&#xff0c;以及在这两篇文章中Socket编程和Socket编程——tcp&#xff0c;介绍了使用套接字在两种协议下的网络间通信方式。本篇文章中我将会进一步介绍网络中网络协议的部分&#xff0c;而这将会从应用层开…

[网络编程]socket嵌套字的一些常用接口

目录 一、socket常用接口 1.sockaddr_in 2.socket 3. bind 4.listen 5.accept 6.connect 7.send 8.sendto 9.recv 10.recvfrom 11.close 二、 字节序之间的转换函数 1. inet_ntoa 2. inet_aton 3.inet_addr 4.inet_pton 5.inet_ntop 6.htons 7.ntohs…

[SWPUCTF 2022 新生赛]ez_ez_unserialize

要绕过wakeup函数&#xff0c;只要序列化的中的成员数大于实际成员数&#xff0c;即可绕过。 <?php class X {public $x fllllllag.php; }$anew X(); echo serialize($a); O:1:“X”:1:{s:1:“x”;s:13:“fllllllag.php”;} 修改为 O:1:“X”:3:{s:1:“x”;s:13:“flllll…

NASA数据集—— ACRIMSAT 卫星上的 ACRIM 仪器以快门周期形式收集的 2 级太阳总辐照度

ACRIM III Level 2 Shutter Cycle Data V001 简介 ACR3L2SC_1 是主动空腔辐射计辐照度监测仪&#xff08;ACRIM&#xff09;III 2 级快门周期数据第 1 版产品&#xff0c;包含由 ACRIMSAT 卫星上的 ACRIM 仪器以快门周期形式收集的 2 级太阳总辐照度。 摘要 ACRIMSAT卫星上…

爬虫工具-推广-推广链接

爬虫工具是一种用于自动化获取联网上数据的软件程序。它可以模拟人类在网页上的操作&#xff0c;通过发送HTTP请求获取网页内容&#xff0c;并从中提取所需的数据。以下是一些常用的爬虫工具&#xff1a; Scrapy&#xff1a;Scrapy是一个基于Python的开源爬虫框架&#xff0c;它…

【Java--数据结构】“从扑克到程序:深入探讨洗牌算法的原理与魅力“

前言 以下是学习Java顺序表的一个实例应用———简单的洗牌算法。 欢迎关注个人主页&#xff1a;逸狼 创造不易&#xff0c;可以点点赞吗~ 如有错误&#xff0c;欢迎指出~ 目录 前言 定义每张扑克牌的属性 生成一副扑克牌&#xff08;不包含大小王&#xff09; 洗牌方法 发牌方…

邂逅JavaScript逆向爬虫-------基础篇之深入JavaScript运行原理以及内存管理

目录 一、JavaScript运行原理1.1 前端需要掌握的三大技术1.2 为什么要学习JavaScript1.3 浏览器的工作原理1.4 浏览器的内核1.5 浏览器渲染过程1.6 认识JavaScript引擎1.7 V8引擎以及JavaScript的执行过程1.8 V8引擎执行过程 二、JavaScript的执行过程2.1 初始化全局对象2.2 执…

PCB上有哪些元素

过孔&#xff1a;是用来切换层的 丝印&#xff1a;就是标记&#xff08;白色的线或者符号&#xff09; 焊盘&#xff1a;焊接元器件&#xff0c;相当于线头&#xff0c;连接各个元件 通孔埋孔盲孔&#xff0c;都是用来换层&#xff0c;内部没有桐&#xff0c;是用来固定的 线路…

【pycharm】调试模式中四个常用按钮介绍

【pycharm】调试模式中四个常用按钮介绍 在 PyCharm 的调试模式中&#xff0c;有四个常用的按钮&#xff0c;它们的功能如下&#xff1a; Step Over (F8)&#xff1a;单步执行&#xff0c;但在遇到函数调用时&#xff0c;不会进入函数内部&#xff0c;而是将整个函数作为一步执…

从0到1—POC编写基础篇(二)

接着上一篇 POC常用基础模块 urllib 模块 Python urllib 库用于操作网页 URL&#xff0c;并对网页的内容进行抓取处理。 urllib 包 包含以下几个模块&#xff1a; ●urllib.request - 打开和读取 URL。 ●urllib.error - 包含 urllib.request 抛出的异常。 ●urllib.parse - …

VUE DPlayer编译

源码 GitHub - DIYgod/DPlayer: :lollipop: Wow, such a lovely HTML5 danmaku video player 检查npm/nodejs 两个要配套。我的npm是8.5&#xff0c;nodejs是16 具体参考&#xff1a; 手动安装nodejs-CSDN博客 准备 npm i 编译 npm run build

电脑特别卡,但是看cpu和内存使用量并不大,该如何提升电脑运行速度

1.清理磁盘空间&#xff1a; 检查硬盘空间使用情况&#xff0c;确保有足够的可用空间。使用磁盘清理工具删除不需要的文件。 2.关闭不必要的启动项&#xff1a; 通过任务管理器&#xff08;在 Windows 中可以通过右键点击任务栏并选择“任务管理器”&#xff09;禁用不必要的启…

【八股】计算机网络篇

网络模型 应用层【HTTP&#x1f449;报文/消息】 传输层【TCP或UDP&#x1f449;段&#x1f449;MSS】网络层【IP、寻址和路由&#x1f449;MTU】 ①IP&#xff08;Internet Protocol&#xff0c;网际协议&#xff09;主要作用是定义数据包的格式、对数据包进行路由和寻址&…

React-editor-js not showing up in a function component

React-editor-js not showing up in a function component react-editor-js 在react 函数组件中显示不出来 真的&#xff0c;我马上就想放弃它了。但是看它周下载量还挺多&#xff0c;我不信别人没遇到过。于是我继续在网络上挖呀挖。只是我一开始的方向错了。我一直以为我的写…

6.2 整合MongoDB

6.2 整合MongoDB 1. MongoDB简介2. MongoDB安装2.1 下载2.2 配置MongoDB2.3 MongoDB的启动和关闭1. 启动MongoDB2. 关闭MogoDB 2.4 安全管理 3. 整合SpringBoot3.1 依赖3.2 MongoTemplate使用3.3 测试1. 新增2. 查询3. 删除 *************************************************…