当前位置: 首页 > news >正文

[特殊字符] 数据库知识点总结(SQL Server 方向)

一、数据库基础概念

  • 数据库(Database):存储和管理数据的容器。

  • 数据表(Table):以行和列形式组织数据。

  • 行(Row):一条记录。

  • 列(Column):字段,描述数据的属性。

  • 主键(Primary Key):唯一标识一条记录,不能为空、不可重复。

  • 外键(Foreign Key):保证引用完整性,用于建立表之间的关系。

  • 索引(Index):提高查询效率的结构,分为聚集索引和非聚集索引。


二、SQL 基本语句

1. 数据查询(DQL)

  • select 基本用法

    select Name, Age from Students where Age > 18 order by Age desc;

  • 常见子句

    • where:行筛选

    • group by:分组统计

    • having:分组后条件过滤

    • order by:排序(asc 升序,desc 降序)

    • top / offset fetch:分页

2. 数据操作(DML)

  • 插入数据

    insert into Students(Name, Age) values('张三', 20);

  • 修改数据

    update Students set Age = Age + 1 where Name = '张三';

  • 删除数据

    delete from Students where Age < 18;

3. 数据定义(DDL)

  • 创建表

    create table Students( Id int identity(1,1) primary key, Name nvarchar(50) not null, Age int default(18) );

  • 修改表结构

    alter table Students add Gender nvarchar(10);

  • 删除表

    drop table Students;

4. 数据控制(DCL)

  • 授权

    grant select, insert on Students to UserA;

  • 回收权限

    revoke insert on Students from UserA;


三、常见约束

  • primary key:主键,唯一且非空。

  • foreign key:外键,保证数据引用完整性。

  • unique:唯一性约束。

  • not null:非空约束。

  • default:默认值。

  • check:检查条件。


四、重要函数

  • 聚合函数:countsumavgmaxmin

  • 字符串函数:lensubstringconcat

  • 日期函数:getdate()dateadd()datediff()

  • 数学函数:abs()round()rand()


五、分页查询

1. OFFSET FETCH(SQL Server 2012+)

select * from Students order by Id offset 20 rows fetch next 10 rows only; -- 第3页,每页10条

2. ROW_NUMBER()

select * from ( select row_number() over(order by Id) as RowNum, * from Students ) t where t.RowNum between 21 and 30;


六、事务与锁

  • 事务(Transaction):保证一组操作要么全部成功,要么全部失败。

    • 四大特性(ACID):原子性、一致性、隔离性、持久性。

  • 事务控制语句

    begin transaction; update Accounts set Balance = Balance - 100 where Id = 1; update Accounts set Balance = Balance + 100 where Id = 2; commit; -- 提交事务 rollback; -- 回滚事务


七、索引

  • 聚集索引(Clustered Index):数据行按照索引顺序存储,每个表只能有一个。

  • 非聚集索引(Non-Clustered Index):单独存储索引结构,表可有多个。

  • 优点:提高查询速度。

  • 缺点:插入、更新、删除性能可能降低。


八、delete / truncate / drop 区别

  • delete:删除数据,可加条件,保留表结构,自增列不重置。

  • truncate:快速清空数据,不能加条件,自增列会重置。

  • drop:直接删除整个表(数据 + 结构)。


九、union 与 union all

  • union:合并查询结果并去重。

  • union all:合并查询结果,不去重,效率更高。


🔑 总结

数据库核心内容主要围绕 SQL 语句、约束、函数、事务、索引 展开。
考试和面试常考点:

  • delete / truncate / drop 区别

  • group by / having 区别

  • 外键作用

  • 分页查询写法

  • 事务四大特性

  • 聚集索引 vs 非聚集索引

http://www.dtcms.com/a/347635.html

相关文章:

  • MySQL:事务管理
  • games101 作业0 环境搭建与熟悉线性代数库
  • H264编解码过程简述
  • 数据结构 -- 哈希表
  • RAGFlow (一) 开发环境搭建
  • imx6ull-驱动开发篇37——Linux MISC 驱动实验
  • [机械结构设计-18]:Solidworks - 特征(Feature)是构成三维模型的基本单元,是设计意图的载体,也是参数化设计的核心。
  • 深入剖析分布式事务的Java实现:从理论到Seata实战
  • c语言中enum与#define的用法区别
  • 算法题(189):食物链
  • 如何利用数据库事务,来防止数据不一致的问题
  • 云原生概述
  • [e3nn] 归一化 | BatchNorm normalize2mom
  • 自然语言处理——06 迁移学习(上)
  • MATLAB实现CNN-LSTM-Attention 时序和空间特征结合-融合注意力机制混合神经网络模型的风速预测
  • 云计算-K8s 运维:Python SDK 操作 Job/Deployment/Pod+RBAC 权限配置及自定义 Pod 调度器实战
  • Kubernetes相关问题集(四)
  • 「数据获取」《贵港统计年鉴》(2008-2023)(2016、2017缺失)(获取方式看绑定的资源)
  • 开发指南134-路由传递参数
  • 【KO】前端面试七
  • 科研笔记:博士生手册
  • n8n热门的开源 AI 工作流平台实操
  • git实战(7)git常用命令速查表
  • C++实现常见的排序算法
  • STM32窗口看门狗(WWDG)深度解析:精准守护嵌入式系统的实时性
  • day39-keepalived
  • How to Use Managed Identity with ACS?
  • 全面解析主流AI模型:功能对比与应用推荐
  • douyin_search_tool:用python开发的抖音关键词搜索采集软件
  • 低功耗全双工远距离无线对讲解决方案