SQL Server基础学习笔记

SQL Server基础学习笔记

相信很多朋友都看到过类似"SQL Server是关系型数据库管理系统"的介绍,如果你是像我这样喜欢刨根问底的工程师,自然而然会想搞清楚------关系型数据库 到底是什么意思?SQL 又是怎么跟数据库"对话"的?数据类型SELECTINSERT这些基础操作,背后到底是怎么工作的?它们之间又是什么关系?

想真正上手数据库开发的朋友,都需要通盘搞清这些问题,才能把一个个概念落实到实际代码中,达到融会贯通的水平。做到手中有剑,心里不慌!

这也正是我自己理解SQL Server采用的方式------从工程视角抽丝剥茧,用比喻类比让概念落地。如果你也觉得这是一个不错的方式,那就花20分钟跟着我的思路来试一试吧!现在,先把上面说的典型例子抛出来。

一、引言:SQL Server到底是什么?------一个超级"仓库管理员"

1. SQL Server概述------你的数据"管家"

想象一下,你有一个巨大的仓库,里面堆满了各种各样的货物(数据)。你需要一个超级管理员来帮你:

  • 记录每件货物放在哪里
  • 快速找到你想要的货物
  • 随时添加新货物
  • 修改或扔掉旧的货物
  • 保证仓库安全,不会着火或被盗

SQL Server ,就是Microsoft公司研发的这样一个"超级仓库管理员"。它是一个关系型数据库管理系统(RDBMS) ------别被这个高大上的名字吓到,简单说就是:用表格的方式来管理数据

它的核心功能就是存储和检索数据,同时提供了一整套强大的工具,让管理数据库变得更高效,包括:

  • 数据模型设计:规划你的"仓库"长什么样
  • 数据的导入与导出:搬货进仓、出货
  • 事务处理:保证操作要么全部完成,要么全部不做(就像网购付款,要么扣钱成功,要么不扣)
  • 数据备份与恢复:给仓库上保险

SQL Server支持使用结构化查询语言(SQL) 进行数据管理。SQL是一种标准化的"通用语言",专门用来跟关系型数据库聊天。你可以通过SQL方便地:

  • 创建:建新表格
  • 修改:改表格结构
  • 查询:找数据

工程视角小贴士 :可以把SQL Server想象成一个智能数据库引擎,它跟Windows系统深度绑定,支持分布式架构(多个电脑一起干活),核心特性包括高性能、系统管理、事务处理,还有自己的SQL语言。很多企业级应用都用它来管理海量数据。

2. SQL Server的发展历程------从"小树苗"到"参天大树"

SQL Server的发展史,就像一棵小树苗慢慢长成参天大树。我们来看看它的关键里程碑:

版本 年份 核心亮点 比喻
SQL Server 1.0 1989 首个版本,运行在OS/2上,基本功能 刚发芽的种子
SQL Server 4.2 1992 首次在Windows NT上运行,加入存储过程、触发器 长出第一片叶子
SQL Server 6.0 1995 引入OLAP、复制、数据仓库 开始分叉长枝
SQL Server 7.0 1998 重大更新,数据仓库、数据转换服务、分析服务 茁壮成长
SQL Server 2000 2000 支持XML、分区表、报告服务 开花了
SQL Server 2005 2005 CLR集成、XML数据类型、窗口函数 枝繁叶茂
SQL Server 2008 2008 空间数据、压缩、透明数据加密 更加结实
SQL Server 2012 2012 AlwaysOn可用性组、列存储索引 长出"超能力"
SQL Server 2014 2014 内存优化表、缓存列存储索引 速度更快
SQL Server 2016 2016 支持R语言、动态数据掩码、JSON 更智能
SQL Server 2017 2017 首次支持Linux!图数据库 跨平台了
SQL Server 2019 2019 大数据虚拟化、加密扩展 走向云端

每个版本都带来新功能,让SQL Server变得更强大、更灵活。

3. SQL Server的应用领域------它能在哪些地方"大显身手"?

SQL Server的应用场景非常广泛,就像一把"瑞士军刀",什么都能干:

  • 企业应用程序:作为企业系统的"数据库后盾",存储和管理公司数据。比如:

    • 内部管理系统
    • 客户关系管理(CRM)系统
    • 企业资源规划(ERP)系统
  • 网站和网络应用:很多网站的后台数据库就是SQL Server。它存储用户数据、内容数据、交易数据,提供高可用性、高性能和安全性。

  • 商业智能与数据分析:SQL Server有丰富的商业智能(BI)功能,包括:

    • 数据仓库(存历史数据)
    • 数据挖掘(找规律)
    • 报表和分析服务(做图表)
  • 大数据与分布式计算:SQL Server 2019支持大规模数据虚拟化,可以跟Azure数据湖等服务集成,处理海量数据。

  • 云计算与混合云环境:提供Azure SQL数据库等云服务,可以在云端快速部署,也支持混合云(本地+云端)。

  • 移动应用程序:作为移动应用的后端数据库,存储用户数据、地理位置数据等,可以跟Xamarin等框架集成。

互动提问:你猜猜,你现在用的某个App,后台是不是就用了SQL Server?🤔

二、SQL基础------跟数据库对话的"语法"

1. SQL Server数据类型------给数据"贴标签"

在数据库中,每种数据都需要一个"标签",告诉数据库它是什么类型。就像整理仓库时,你需要区分"箱子"、"瓶子"、"文件"一样。

整数类型------存"整的"
类型 大小 范围 比喻
INT 4字节 -2^31 ~ 2^31-1 普通整数
BIGINT 8字节 -2^63 ~ 2^63-1 超大整数
TINYINT 1字节 0 ~ 255 小整数
SMALLINT 2字节 -32768 ~ 32767 中等整数
小数与浮点类型------存"带小数"的
  • DECIMAL / NUMERIC:定点小数,精度高,适合存钱(比如金额)
  • FLOAT:浮点数,精度稍低,但范围大
日期与时间类型------存"时间"
类型 精度 比喻
DATE 年月日 日历上的日期
TIME 时分秒 钟表上的时间
DATETIME 年月日时分秒 完整时间戳
DATETIME2 更高精度(最多7位小数) 超级精确的时间
SMALLDATETIME 精度较低,范围小 简单时间
字符串类型------存"文字"
类型 特点 比喻
CHAR(n) 固定长度,最多n个字符 固定大小的"盒子"
VARCHAR(n) 可变长度,最多n个字符 能伸缩的"袋子"
NCHAR(n) Unicode固定长度 支持多国语言的盒子
NVARCHAR(n) Unicode可变长度 支持多国语言的袋子
TEXT 大文本,最多2GB 超级大箱子
其他类型
类型 用途
BIT 存0或1(开关)
UNIQUEIDENTIFIER 存全局唯一ID(GUID)
BINARY(n) 存固定长度的二进制数据
VARBINARY(n) 存可变长度的二进制数据

工程视角:选择数据类型就像选容器,选对了,存储高效、查询快;选错了,要么浪费空间,要么数据存不进去。

2. SQL Server SELECT语句------从仓库里"拿东西"

SELECT 是SQL里最常用的语句,它的作用就是从数据库表中提取数据。就像你去仓库,告诉管理员:"我要拿这些货。"

基本语法:

sql 复制代码
SELECT 列名1, 列名2, ...
FROM 表名;

举个例子:

假设有一个叫Customers的表,里面存着客户信息,包括CustomerIDFirstNameLastNameCity

取所有数据:

sql 复制代码
SELECT *
FROM Customers;

这里的*是通配符,意思是"所有列"。

取部分列:

sql 复制代码
SELECT CustomerID, FirstName, LastName
FROM Customers;

加条件过滤:

sql 复制代码
SELECT *
FROM Customers
WHERE City = 'New York';

WHERE子句就像给管理员下指令:"我只想要住在纽约的客户。"

互动提问 :如果我只想查CustomerID为1的客户,SQL该怎么写?试试看!👇

3. SQL Server INSERT语句------往仓库里"加货"

INSERT 用来向表中添加新行。就像往仓库里搬进新货物。

基本语法:

sql 复制代码
INSERT INTO 表名 (列1, 列2, 列3, ...)
VALUES (值1, 值2, 值3, ...);

添加单行数据:

sql 复制代码
INSERT INTO Customers (CustomerID, FirstName, LastName, City)
VALUES (1, 'John', 'Doe', 'New York');

这会在Customers表中插入一行:CustomerID=1,FirstName='John',LastName='Doe',City='New York'。

添加多行数据:

sql 复制代码
INSERT INTO Customers (CustomerID, FirstName, LastName, City)
VALUES (2, 'Jane', 'Smith', 'Los Angeles'),
       (3, 'Alice', 'Johnson', 'Chicago');

从其他表复制数据:

sql 复制代码
INSERT INTO Customers (CustomerID, FirstName, LastName, City)
SELECT CustomerID, FirstName, LastName, City
FROM OtherTable
WHERE Condition;

这就像从另一个仓库批量搬货过来。

注意 :插入数据时,必须提供所有非空列的值,或者这些列有默认值。否则操作会失败。

4. SQL Server UPDATE语句------修改仓库里的"货物"

UPDATE 用来修改表中已存在的行。就像给仓库里的货物换标签或改位置。

基本语法:

sql 复制代码
UPDATE 表名
SET 列1 = 值1, 列2 = 值2, ...
WHERE 条件;

修改单列:

sql 复制代码
UPDATE Customers
SET City = 'Los Angeles'
WHERE CustomerID = 1;

把CustomerID为1的客户的City改为'Los Angeles'。

修改多列:

sql 复制代码
UPDATE Customers
SET City = 'Los Angeles', FirstName = 'Jane'
WHERE CustomerID = 2;

⚠️ 危险操作:不加WHERE条件

sql 复制代码
UPDATE Customers
SET City = 'New York';

这会把所有客户的城市都改成New York !就像把仓库里所有货物的标签都撕掉重贴。所以一定要加WHERE条件,除非你真的想全部修改。

5. SQL Server DELETE语句------从仓库里"扔掉货物"

DELETE 用来从表中删除行。就像把不需要的货物从仓库里扔掉。

基本语法:

sql 复制代码
DELETE FROM 表名
WHERE 条件;

删除指定行:

sql 复制代码
DELETE FROM Customers
WHERE CustomerID = 1;

删除CustomerID为1的客户。

⚠️ 危险操作:删除所有行

sql 复制代码
DELETE FROM Customers;

这会删除表中所有数据 !就像把整个仓库清空。所以务必谨慎,确保WHERE条件正确。

工程视角小贴士 :在实际开发中,DELETE操作前最好先备份数据,或者用SELECT先查一下要删除的数据,确认无误后再执行DELETE。


🧨🧨🧨 让我们一起在技术的海洋中探索前行,共同书写美好的未来!你现在已经掌握了SQL Server的基础概念和核心操作,下一步就可以尝试自己写SQL语句了。记住:实践是最好的老师,打开SQL Server Management Studio,动手试试吧!🚀


学SQL,光看不动手可不行,练才是王道!

全套SQL学习资源:资料+练习+视频,一步到位!强烈安利这个自学网站👉🏻 SQL自学网 http://xuesql.cn

入门首选,零基础也能轻松上手:https://www.w3schools.com

相关推荐
MartinYeung57 小时前
[论文学习]MiCA:比LoRA和全参数微调学到更多知识
深度学习·学习·机器学习
砚凝霜7 小时前
软考网络工程师|第 1 章 计算机网络基础 完整备考笔记
网络·笔记·计算机网络
浮江雾7 小时前
Flutter第十节-----Flutter布局与组件全解析
android·开发语言·前端·学习·flutter·入门
岑梓铭8 小时前
《考研408数据结构》第七章(7.1 查找:顺序查找、折半查找、分块查找)复习笔记
数据结构·笔记·考研·408·ds·查找
可乐奶茶sky8 小时前
MonoGS 源码学习
学习
金伟API10248 小时前
常见的SQL面试题:经典50例
数据库·人工智能·笔记·sql·学习
DES 仿真实践家8 小时前
Plant Simulation SimTalk基础教程(3)SimTalk 变量与数据类型
开发语言·笔记·学习
维克兜率天9 小时前
【维克】概率论入门:从“抛硬币“到理解金融市场的不确定性
经验分享·学习·概率论
世人万千丶9 小时前
鸿蒙Flutter Flex嵌套布局技巧
学习·flutter·华为·harmonyos·鸿蒙·鸿蒙系统