SQL基礎操作指南:增刪改查入門

前言

在日常數據庫操作中,掌握增刪查改是每個開發者必備的技能。下面我將通過實例解析SQL的核心操作要點,幫你避開常見陷阱。


一、新增數據(INSERT)

  • 單行插入:明確指定字段和值
INSERT INTO 表名(字段1, 字段2) VALUES (1,2);
  • 多行插入:批量操作高效寫入
INSERT INTO 表名(字段1, 字段2) VALUES(1,2),(3,4),(5,6);

字段與值必須嚴格對應


二、查詢數據(SELECT)

1. 基礎查詢

類型語法實例說明
全列查詢SELECT * FROM 表返回全表結果
指定列SELECT 列1, 列2 FROM 表查找特定字段
表達式SELECT (價格 * 0.8) FROM 商品實時計算字段
去重SELECT DISTINCT 部門 FROM 員工剔除重復值

2. 別名使用與限制

SELECT 字段1 AS 別名1, 字段2 AS 別名2 FROM;  
  1. 別名僅當前SELECT有效(臨時標簽)
  2. 不可跨SELECT語句使用(每個查詢獨立)
  3. WHERE條件中禁止使用別名(SQL執行順序:WHERE > SELECT別名)

3. 排序控制(ORDER BY)

-- 默認升序(ASC可省略)
SELECT * FROM 成績表 ORDER BY 分數;-- 顯式降序
SELECT * FROM 商品表 ORDER BY 價格 DESC;

4. 條件查詢(WHERE)

基礎結構:

SELECT * FROM 表名 WHERE 條件表達式;

完整運算符體系

運算符類型語法實例說明
比較運算符=, >, <, >=, <=, !=基本數值/字符比較
范圍查詢BETWEEN 值1 AND 值2閉區間范圍匹配
枚舉查詢IN(值1, 值2, ...)多值匹配
空值判斷IS NULL / IS NOT NULL空值檢測
模糊匹配LIKE '模式'通配符搜索
邏輯組合AND, OR, NOT條件組合與取反

① 比較運算符:

數值/字符串/日期均可比較

-- 字符串比較(按字典序)  
SELECT * FROM 學生 WHERE 姓名 > '李四';  

② BETWEEN AND:

閉區間匹配(含邊界)

-- 等價于 價格>=50 AND 價格<=100  
SELECT * FROM 商品 WHERE 價格 BETWEEN 50 AND 100;  

③ IN 運算符:

多值匹配

-- 查找特定學院學生  
SELECT * FROM 學生 WHERE 學院 IN ('計算機', '電子工程');  

④ NULL 判斷:

必須用 IS

-- 錯誤寫法:WHERE 電話 = NULL (永遠返回空)  
SELECT * FROM 用戶 WHERE 電話 IS NULL;  

⑤ 模糊查詢(LIKE):

-- % 匹配任意數量字符(包括0個)
WHERE 姓名 LIKE '張%'   -- 找所有姓張的人-- _ 匹配單個字符
WHERE 學號 LIKE '2023_01' -- 找2023級01班的學生

⑥ 邏輯組合:

運算符優先級陷阱

-- 錯誤寫法(AND優先級高于OR):
WHERE 部門 = '銷售' OR 部門 = '技術' AND 工資 > 10000-- 正確寫法(用括號明確邏輯):
WHERE (部門 = '銷售' OR 部門 = '技術') AND 工資 > 10000

5. 分頁查詢(LIMIT/OFFSET)

SELECT * FROM 訂單表
LIMIT 10 OFFSET 20;  -- 跳過前20條,取10條數據
  • OFFSET:跳過的記錄數(偏移量)
  • LIMIT:返回的記錄數

OFFSET類似于翻書跳過的頁數;LIMIT類似于本頁顯示的行數


三、修改數據(UPDATE)

UPDATE 商品表  
SET 價格=價格*1.1, 庫存=庫存-1  -- 修改多個字段  
WHERE 分類='電子產品';          -- 必須有WHERE條件!  

注意:無WHERE條件將導致更新全表數據


四、刪除數據(DELETE)

DELETE FROM 用戶表
WHERE 最后登錄時間 < '2020-01-01';  -- 刪除不活躍用戶  

注意:無WHERE條件將導致整個表被清空


五、SQL操作執行流程圖

SELECT
INSERT
UPDATE
DELETE
開始SQL操作
操作類型
基礎查詢
WHERE條件過濾
ORDER BY排序
LIMIT/OFFSET分頁
VALUES插入
字段值匹配校驗
SET修改字段
WHERE條件驗證
WHERE條件驗證
WHERE存在?
執行操作
謹慎操作

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/89635.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/89635.shtml
英文地址,請注明出處:http://en.pswp.cn/web/89635.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux系統安裝Docker及部署Node.js 20.15.0(含pnpm、pm2)完整指南

前言&#xff1a;在應用項目部署中&#xff0c;“環境不一致”往往是開發與運維的痛點——本地能跑的代碼到了服務器就報錯&#xff0c;依賴版本、系統配置差異都可能成為隱患。而Docker的容器化技術恰好能解決這一問題&#xff0c;通過“一次構建&#xff0c;到處運行”的特性…

python的多線程無法并行只能并發,why?

標題python的多線程無法并行只能并發&#xff0c;why&#xff1f;python的多線程無法并行只能并發&#xff0c;why&#xff1f; 在 Python 中&#xff0c;特別是使用 CPython 解釋器時&#xff0c;由于存在 全局解釋器鎖&#xff08;GIL&#xff09;&#xff0c;即使在多核處理…

Kotlin比較接口

在 Kotlin 中&#xff0c;Comparable 和 Comparator 是兩個允許開發者對相同或不同類的對象進行比較的接口。這兩個接口通常用于基于一個或多個屬性對對象集合進行排序與排序操作。本文將概述 Kotlin 的 Comparable 和 Comparator 接口&#xff0c;解釋它們的用法&#xff0c;并…

day41 簡單CNN

DAY 41 首先回顧下昨天的代碼。 # import torch # import torch.nn as nn # import torch.optim as optim # from torchvision import datasets, transforms # from torch.utils.data import DataLoader # import matplotlib.pyplot as plt # import numpy as np# # 設置中文字…

[實戰]巴特沃斯濾波器全流程解析:從數學原理到硬件實現

巴特沃斯濾波器全流程解析&#xff1a;從數學原理到硬件實現 文章目錄巴特沃斯濾波器全流程解析&#xff1a;從數學原理到硬件實現1. 數學原理2. 工程實現梯形網絡結構3. Python理論仿真4. 硬件仿真與PCB考慮5. 完整設計工具6. 輸出結果示例7. 設計注意事項巴特沃斯濾波器是特別…

《機器學習數學基礎》補充資料:標準差與標準化

1 標準差 我們經常使用平均數來大致了解一組數據&#xff0c;例如平均成績、平均身高、平均壽命等等。但是如果只看平均數&#xff0c;不一定能充分了解整體情況。比如說你和某首富住同一個社區&#xff0c;你們社區平均每戶年收入兩千萬&#xff0c;那么你家是有錢還是沒錢&am…

深度學習 | 多類交叉熵(Categorical Cross Entropy)詳解 + Python實現

在多分類任務中&#xff0c;模型輸出一個概率分布&#xff0c;常用的損失函數是 Categorical Cross Entropy&#xff08;多類交叉熵&#xff09;。本文將帶你理解其數學本質、應用場景、數值穩定性及完整 Python 實現。&#x1f4d8; 一、什么是 Categorical Cross Entropy&…

MyBatis-Plus通用中等、大量數據分批查詢和處理

函數式接口 獲取分頁數據接口 主要用于獲取數據 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;FunctionalInterface public interface MyBatisPlusPageFunctionInterface<T> {Page<T> selectPage(Page<T> page);}數據處理接口 import…

Ps 2025安裝包(Adobe Photoshop 2025)安裝包免費免激活版下載 附圖文詳細安裝教程

[軟件名稱]&#xff1a;Ps2025 V26.3 [軟件大小]&#xff1a;4.86 G [系統要求]&#xff1a;支持Win7及更高版本 [夸克網盤下載https://pan.quark.cn/s/d35677af9ef9 &#xff08;建議用手機保存到網盤后&#xff0c;再用電腦下載&#xff09;更多免費軟件見https://docs.qq.co…

Codeforces Round 1037 (Div. 3)(補題)

文章目錄前言A.Only One DigitB.No Casino in the MountainsC. I Will Definitely Make ItD.This Is the Last TimeE.G-C-D, Unlucky!總結前言 感覺前四道&#xff0c;就是考對于題目的理解能力&#xff0c;以及自己的模擬能力 A.Only One Digit 題目傳送門&#xff1a;Only …

基于單片機智能插座設計/智能開關

傳送門 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品題目速選一覽表 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品題目功能速覽 概述 隨著我國的電子計算機技術的快速發展以及居民對現實生活的要求也在不斷提升&#xff0c;所以很多…

[Linux]git_gdb

一、git1. git 常用指令git status 查看倉庫狀態git add <文件名> 把文件添加到倉庫暫存區git commit -m "信息" 把文件加入倉庫git push 把本地倉庫同步到遠端git pull …

醫療AI與融合數據庫的整合:挑戰、架構與未來展望(下)

?? 解決方案:引入融合數據庫(Multi-modal Data Fusion DB) 醫院引入一款支持圖、向量、表、流的融合數據庫(如Oracle ADW、Milvus+PostgreSQL、或某國產平臺),完成了以下集成: 數據類型 來源系統 格式/模型 示例內容 基因組數據 NGS平臺 VCF / JSON / 圖 EGFR突變、A…

【深度強化學習】MIP-DQN 實現案例(完整Python代碼)

目錄MIP-DQN 算法概述建模基礎訓練階段&#xff08;Training&#xff09;部署階段&#xff08;Online Execution&#xff09;DNN 網絡轉化為 MIP 表達式性能指標完整 Python 代碼實現主函數&#xff1a;random_generator_battery模型函數&#xff1a;MIP_DQN基礎/專用庫包安裝模…

微信小程序 wx.request() 的封裝

基于微信小程序的wx.request()方法封裝下面是一個封裝方案&#xff0c;滿足您提出的所有要求&#xff1a;class HttpService {constructor() {this.baseUrl ; // 基礎URLthis.pendingRequests new Map(); // 請求緩存池this.interceptors {request: [],response: []};}// 設…

yolo8實時識別目標(和平精英敵人+骨骼關鍵點)

現在需要識別人物的肢體&#xff08;姿態/骨骼關鍵點&#xff09;&#xff0c;即所謂的「姿態估計&#xff08;pose estimation&#xff09;」&#xff0c;以下是一些主流、訓練好可直接使用的開源模型推薦&#xff0c;支持多人識別與骨骼關鍵點檢測&#xff0c;適合你后續用于…

MyBatis動態SQL全解析:五大核心標簽實戰指南

MyBatis動態SQL全解析&#xff1a;五大核心標簽實戰指南 一、動態SQL的價值&#xff1a;告別硬編碼時代 傳統SQL拼接的痛點 // 傳統方式需要手動拼接SQL字符串 StringBuilder sql new StringBuilder("SELECT * FROM orders WHERE 11"); if (status ! null) {sql.app…

線上 CPU 過高怎么排查

通過以下幾個命令解決1、top命令&#xff0c;找到 CPU 過高的pid(進程); ?編輯 2、根據pid(進程)找到CPU過高的線程id;top -H -p pid(進程)3、把線程id轉換16 進制的printf 0x%x\n 線程id4、導致CPU 飆升的線程異常信息&#xff0c;-A 30表示打印 30 行記錄jstack pid(進程id)…

Letter Combination of a Phone Number

IntroduceProblem Analysis (Using “258” as example) //2 a b c //5 j k l //8 t u vPossible letter combinations: a, j, t (no further options, this is one combination)a, j, u (no further options, another combination)a, j, v (another c…

【問題解決】npm包下載速度慢

問題描述&#xff1a; npm包下載速度慢 問題原因&#xff1a; 為什么下載 npm 包速度慢&#xff1f; 在使用npm下包的時候&#xff0c;默認從國外的https://regitry.npmjs.org/服務器進行下載。此時&#xff0c;網絡數據的傳輸需要經過漫長的海底光纜&#xff0c;因此下包速度…