💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
- 推荐:「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💖点点关注,收藏不迷路💖
|