[特殊字符] 數據庫知識點總結(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.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…