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

news2024/11/18 1:42:49

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

  • 推荐:「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.coloradmin.cn/o/1619629.html

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

相关文章

代码随想录算法训练营DAY36|C++贪心算法Part.5|435.无重叠区间、763.划分字母区间、56. 合并区间

文章目录 435.无重叠区间按右边界排序CPP代码 按左边界排序如何判断相邻区间是否重叠如何判断一下一个区间与当前相邻区间是否重叠总结CPP代码 763.划分字母区间思路伪代码实现CPP代码 56. 合并区间思路CPP代码 435.无重叠区间 力扣题目链接 文章链接&#xff1a;435.无重叠区间…

[笔试训练](五)

013 游游的you__牛客网 (nowcoder.com) 题目&#xff1a; 题解&#xff1a; 组成一个you需要一个o且能得2分&#xff0c;而组成相邻字母oo需要两个o&#xff0c;只能得1分。优先考虑组成尽可能多的you&#xff0c;再考虑剩下的o&#xff0c;放一起。 #include <iostream…

VSCode通过跳板机免密连接远程服务器的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

JS -正则表达式

正则表达式 关于正则表达式&#xff0c;其实我写过几篇了&#xff0c;但是真正的正则表达式其实主要用于定义一些字符串的规则&#xff0c;计算机根据给出的正则表达式&#xff0c;来检查一个字符串是否符合规则。 我们来看一下&#xff0c;在JS中如何创建正则表达式对象。 语…

北京筑龙当选中招协第二届招标采购数字化专业委员会执行主任单位

4月18-19日&#xff0c;中国招标投标协会&#xff08;以下简称中招协&#xff09;2024年年会在宁波召开&#xff0c;北京筑龙作为中招协理事会员单位受邀出席会议。会议期间举行了“电子招标采购专业委员会换届会议暨第二届第一次工作会议”&#xff0c;北京筑龙当选第二届招标…

JavaScript 计算颜色的相对亮度,并确定相应的文本颜色

JavaScript 计算颜色的相对亮度&#xff0c;并确定相应的颜色 一、需求内容 需求点&#xff1a;给出一组颜色列表&#xff0c;渲染对应的颜色以及颜色值&#xff0c;但是要保证文本颜色和背景色不冲突&#xff0c;文本颜色保持 black 和 white 两种即可 示例如下&#xff1a…

误差的一阶和二阶——MSE/MAE

variance和bias MSE之前&#xff0c;先看两个更为朴素的指标&#xff1a;variance和bias。 在打靶中&#xff0c;有的人所有的子弹都离靶心很远&#xff0c;偏差显然过高&#xff0c;但是很稳定地维持在某一点附近&#xff1b;有的人平均环数更高&#xff0c;但是分布太过分散…

电磁兼容(EMC):静电放电(ESD)抗扰度试验深度解读(六)

目录 1. 静电测试干扰方式 2. 案例一 3. 案例二 4. 案例三 5. 案例四 6. 总结 静电放电测试的复杂性决定了这项测试对产品的主要影响方式也是多样的。标准里介绍了几种常见的影响方式&#xff1a; 1. 静电测试干扰方式 在静电放电试验中&#xff0c;测试了受试设备对于…

自然语言处理 (NLP) 的技术演变史

一、简述 本文的目标是了解自然语言处理 (NLP) 的历史&#xff0c;包括 Transformer 体系结构如何彻底改变该领域并帮助我们创建大型语言模型 (LLM)。 基础模型&#xff08;如 GPT-4&#xff09;是最先进的自然语言处理模型&#xff0c;旨在理解、生成人类语言并与之交互。 要理…

倍思、南卡、Cleer开放式耳机怎么样?三大网红真实数据测评PK

​作为一名在数码产品评测领域耕耘五载的专业人士&#xff0c;我有幸涉足各类蓝牙耳机的深度测评&#xff0c;涉猎范围广泛&#xff0c;从崭露头角的新锐品牌直至业界巨擘的旗舰之作&#xff0c;无一不在我的评测之列。鉴于近期对开放式耳机类咨询热度不减&#xff0c;我决定开…

Kafka 可视化管理工具 CMAK 启动错误 -- 命令行太长 问题解决

一、安装环境描述&#xff1a; Kafka版本&#xff1a;kafka_2.13-2.8.1cmak 版本&#xff1a;cmak-3.0.0.6安装环境&#xff1a;windows 11 二、问题描述 当我们在 命令行启动 cmak.bat 命令时&#xff0c;会报如下错误&#xff1a; 命令行太长三、解决办法 修改 cmak.bat…

C#设计树形程序界面的方法:创建特殊窗体

目录 1.TreeView控件 2.实例 &#xff08;1&#xff09;Resources.Designer.cs &#xff08;2&#xff09;Form1.Designer.cs &#xff08;3&#xff09;Form1.cs &#xff08;4&#xff09;生成效果 以树形来显示程序的菜单&#xff0c;可以更直观、更快捷地对窗体进行…

Python 面向对象——5.多态

本章学习链接如下&#xff1a; Python 面向对象——1.基本概念 Python 面向对象——2.类与对象实例属性补充解释&#xff0c;self的作用等 Python 面向对象——3.实例方法&#xff0c;类方法与静态方法 Python 面向对象——4.继承 1.基本概念 多态是面向对象编程&#x…

【智慧园区、低碳园区】工业园区综合能源管理系统解决方案

安科瑞薛瑶瑶18701709087 ◆行业特点 产业园区是国民经济发展的重要载体, 同时也是重点用能企业聚集地。园区面积大&#xff0c;供电距离远&#xff0c;建筑多且分散&#xff0c;用电负荷种类多&#xff0c;用电负荷不均匀&#xff0c;园区配电结构应整体规划&#xff0c;统一…

Xshell7免费版下载及安装(详细教程)

Xshell7免费版下载及安装&#xff08;详细教程&#xff09; 一、下载及安装 1.打开官网下载 https://www.xshell.com/zh/free-for-home-school/ 2.选择合适的下载路径 点击下载按钮 开始下载 3.下载完成后 我们双击打开.exe文件 点击下一步 4.点击我同意 点击下一步 5.选择合…

第九讲 - Java面向对象

第九讲 - Java面向对象 文章目录 第九讲 - Java面向对象1. 类和对象1.1 类和对象的理解1.2 类的定义1.3 对象的使用1.4 学生对象-练习 2. 对象内存图2.1 单个对象内存图2.2 多个对象内存图 3. 成员变量和局部变量3.1 成员变量和局部变量的区别 4. 封装4.1 封装思想4.2 private关…

IIS中搭建.Net Core项目,步骤详解

一、准备服务器 1&#xff09;安装IIS 这个比较简单&#xff0c;百度一下就行 2&#xff09;安装 .NET Core 运行时 下载地址&#xff1a;下载 .NET(Linux、macOS 和 Windows) 因为我是本地开发&#xff0c;所以我下载的是SDK 安装成功之后显示如下&#xff1a; 检查是否安装…

浏览器兼容模式怎么设置?4个提升网页兼容性秘笈分享!

“不知道怎么回事&#xff0c;我打开浏览器的时候总是显示浏览器不兼容&#xff0c;是什么情况呢&#xff1f;我应该怎么操作才能解决这个问题呀&#xff1f;” 浏览器兼容模式是一种使浏览器能够更好地显示网页内容、提高网页加载速度并减少错误的功能。 不同浏览器设置兼容模…

探索HSE化工安全系统在化工生产中的作用

在现代工业化生产中&#xff0c;化工企业扮演着至关重要的角色&#xff0c;但与此同时&#xff0c;化工安全问题也备受关注。为了保障生产环境的安全&#xff0c;HSE化工安全系统应运而生。本文将详细介绍HSE化工安全系统的功能和优势&#xff0c;让您深入了解其在工业生产中的…

ISPLSI1032E-100LT 封装TQFP100 LATTICE/莱迪斯 IC芯片

ISPLSI1032E-100LT 规格信息&#xff1a; 封装:TQFP 逻辑门数量:6000 含铅标准:Lead free RoHS标准:Compliant 产品生命周期:Not Recommended ISPLSI1032E-100LT 是 Lattice Semiconductor 公司生产的一款 Complex Programmable Logic Device (CPLD)&#xff0c;中文称为复…