一、数据库基础概念

  • 数据库(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.pswp.cn/web/94266.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/94266.shtml
英文地址,请注明出处:http://en.pswp.cn/web/94266.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【PSINS工具箱】MATLAB例程,二维平面上的组合导航,EKF融合速度、位置和IMU数据,4维观测量

文章目录关于工具箱程序简介代码概述核心功能与步骤运行结果MATLAB代码关于工具箱 本文所述的代码需要基于PSINS工具箱&#xff0c;工具箱的讲解&#xff1a; PSINS初学指导&#xff1a;https://blog.csdn.net/callmeup/article/details/137087932 本文为二维平面上的定位&am…

MiMo-VL 技术报告

摘要 我们开源了 MiMo-VL-7B-SFT 和 MiMo-VL-7B-RL 两个强大的视觉语言模型,它们在通用视觉理解和多模态推理方面均展现出最先进的性能。MiMo-VL-7B-RL 在 40 项评估任务中的 35 项上优于 Qwen2.5-VL-7B,并在 OlympiadBench 上获得 59.4 分,超越了参数量高达 780 亿的模型。…

CTFshow Pwn入门 - pwn 19

先看main函数&#xff1a;fclose(_bss_start) fclose(stdout) 关闭了默认fd1的输出&#xff0c;所以system的结果无法直接看到。 思路&#xff1a; 输出重定向。 ls 1>&0 ls >&0 ls >&2 ###三种写法均可将输出重定向到能回显的终端并获得一个新的交互…

Redis(以Django为例,含具体操作步骤)

简介Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的内存数据结构存储系统&#xff0c;支持多种数据结构&#xff08;如字符串、哈希、列表、集合、有序集合等&#xff09;&#xff0c;可用作数据库、缓存或消息队列。其核心特点包括&#xff1a;高性能&am…

浏览器解析网址的过程

问题浏览器解析网址的过程我的回答当你在浏览器地址栏输入一个URL&#xff08;比如www.example.com&#xff09;并按下回车后&#xff0c;会发生以下一系列步骤&#xff1a;首先&#xff0c;浏览器会解析URL结构&#xff0c;确定要访问的协议、域名和路径。如果你没有输入协议部…

NVIDIA Nsight Systems性能分析工具

* 性能分析 NVIDIA Nsight Systems (推荐)&#xff1a; 这是 NVIDIA 官方推荐的更现代、功能更强大的分析工具。 安装 Nsight Systems在 Docker 容器中启动程序&#xff1a;# 确保你在启动容器时挂载了/usr/local/cuda/targets/x86_64-linux/lib/ 和 /usr/local/nvidia/lib64 #…

后台管理系统-14-vue3之tag标签页的实现

文章目录 1 tag静态实现 1.1 CommonTag.vue(el-tag) 1.2 Main.vue(普通组件标签) 2 tag通过pinia管理 2.1 CommonAside.vue(菜单点击事件) 2.2 stores/index.js(selectMenu()和tags) 2.3 CommonTag.vue(计算属性tags) 3 点击tag之后跳转到指定页面 3.1 views/Mail.vue(商品) 3.…

CMake2: CMakeLists.txt的常用命令

参考链接: 爱编程的大丙 | CMake教程 CMakeLists指令以及常用方法 现代 CMake 教程 文章目录1. cmake_minimum_required( )2. project( )3. add_executable( )4. set()5. aux_source_directory( )6. file( )7. include_directories( )8. add_library( )9. link_libraries()与li…

Ansible入门:自动化运维基础

Ansible 基础概念与安装1. 自动化动机 (Motivation for Automation)概念解释&#xff1a; 指为什么要用Ansible等工具来替代手动管理服务器。核心动机包括&#xff1a;效率与速度&#xff1a; 同时在上百甚至上千台服务器上执行任务&#xff0c;秒级完成&#xff0c;远非人工可…

【测试】基于博客系统的测试报告

前言 本篇博客对简易的博客系统做的测试总结一份测试报告&#xff0c;包含功能测试&#xff0c;自动化测试&#xff0c;性能测试 &#x1f493; 个人主页&#xff1a;zkf ⏩ 文章专栏&#xff1a;测试 若有问题 评论区见&#x1f4dd; &#x1f389;欢迎大家点赞&#x1f44d;…

Oracle:配置让插入语句时id自动输入

Oracle:配置让插入语句时id自动输入无需手动指定&#xff0c;核心是利用 序列&#xff08;Sequence&#xff09; 或 自增列&#xff08;Identity Column&#xff09; 来自动生成唯一值。以下是两种常用方案&#xff1a;方案 1&#xff1a;使用序列&#xff08;Sequence&#xf…

秒杀服务的回调方案

在秒杀场景中&#xff0c;用户点击“抢购”后&#xff0c;后端需要通过异步处理应对高并发&#xff08;避免请求阻塞&#xff09;&#xff0c;同时需通过实时回调机制将最终结果&#xff08;成功/失败&#xff09;推送给客户端并展示。核心方案是&#xff1a;“前端发起请求→后…

php apache无法接收到Authorization header

Apache 默认不传递 Authorization头到后端环境&#xff08;如 PHP&#xff09;。其表现是&#xff1a;print_r($_SERVER)时&#xff0c; 没有 [Authorization] &#xff1a;Array ([Accept-Language] > zh,en;q0.9,zh-CN;q0.8,en-US;q0.7[Accept-Encoding] > gzip, defla…

当我们想用GPU(nlp模型篇)

在个人设备上“把 GPU 真正用起来”做 NLP&#xff0c;分五步&#xff1a;准备 → 安装 → 验证 → 训练/推理 → 踩坑排查。下面每一步都给出可复制命令和常见错误。 ────────────────── 1. 硬件准备 • 一张 NVIDIA GPU&#xff0c;算力 ≥ 6.1&#xff08…

CryptSIPVerifyIndirectData函数分析

可以使用此函数从SIP接口对应的文件中提取签名信息 CryptSIPVerifyIndirectData&#xff1a;将当前文件的哈希结果做为“指纹”&#xff0c;并与从CryptSIPGetSignedDataMsg中提取的签名信息进行比较。 如果哈希结果相同&#xff0c;则意味着当前文件与之前签名的文件相同&…

20250823解决荣品RD-RK3588-MID开发板在充电的时候大概每10s屏幕会像水波纹闪烁一下

20250823解决荣品RD-RK3588-MID开发板在充电的时候大概每10s屏幕会像水波纹闪烁一下 2025/8/23 17:58【结论】&#xff1a;使用直流电源供电&#xff0c;给电池【快速】充电&#xff0c;但是直流电源的电压稳定&#xff0c;电流抖动导致的&#xff01;那个是2.4G 已经知道了我司…

CANN安装

前提条件 请参考本文档正确安装和使用CANN软件,不建议将CANN安装在共享磁盘后,通过挂载的方式使用CANN,因为CANN对文件系统有文件锁的依赖,部分共享存储不支持文件锁,可能导致任务拉起失败。 root用户和非root用户安装CANN软件包的步骤一致,当前示例步骤以非root用户为例…

docker的基础配置

目录 数据卷 数据卷容器 端口映射与容器互联 互联机制实现便捷互访(基于容器搭建论坛) 数据卷 1.创建数据卷 [rootopenEuler-1 /]# docker volume create test test [rootopenEuler-1 /]# docker volume ls DRIVER VOLUME NAME local test [ro…

VSCode Import Cost:5 分钟学会依赖瘦身

一句话作用&#xff1a;在代码里 import 时&#xff0c;实时显示包大小&#xff0c;帮你一眼揪出体积炸弹。1️⃣ 30 秒安装 & 启动 打开 VSCode → 扩展商店搜索 Import Cost → 安装重启 VSCode&#xff0c;立即生效&#xff0c;零配置。2️⃣ 使用方式&#xff08;开箱即…

TCP/UDP详解(一)

UDP报文源端口16bit 目的端口16bit校验和checksum16bit 总长度16bit--------------------------------------------------------------------------------------------------------------------------源目端口用于标识应用层协议&#xff0c;分为知名端口&#x…