[特殊字符] 数据库知识点总结(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 非聚集索引

相关推荐
摩羯座-1856903059415 小时前
爬坑 10 年!京东店铺全量商品接口实战开发:从分页优化、SKU 关联到数据完整性闭环
linux·网络·数据库·windows·爬虫·python
编程充电站pro16 小时前
SQL 面试高频:INNER JOIN vs LEFT JOIN 怎么考?
数据库·sql
这周也會开心16 小时前
SQL-窗口函数做题总结
数据库·sql
间彧17 小时前
TiDB详解与Spring Boot实战指南
数据库
极限实验室17 小时前
Easysearch 字段'隐身'之谜:source_reuse 与 ignore_above 的陷阱解析
数据库·redis
2301_7720935617 小时前
tuchuang_后端_前端_注册登录
数据库·后端·网络协议·mysql·wireshark
武子康17 小时前
Java-141 深入浅出 MySQL Spring事务失效的常见场景与解决方案详解(3)
java·数据库·mysql·spring·性能优化·系统架构·事务
间彧17 小时前
脏读、不可重复读、幻读详解与对比
数据库
间彧17 小时前
数据库事务隔离级别详解
数据库
fwerfv34534518 小时前
使用PyTorch构建你的第一个神经网络
jvm·数据库·python