網站首頁 編程語言 正文
今天我們了解一下數據庫基本增刪改查語法和多表鏈接查的方式
目錄
一. INSERT 新增
二. DELETE 刪除
? ? ? ? 1.整表刪除
? ? ? ? 2.帶條件刪除?
? ? ? ? 3. DELETE , TRUNCATE , DROP 區別
三. UPDATE 修改
? ? ? ? 1.全部修改
?????????2. 帶條件的修改
? ? ? ? 3.多條件的修改
四. SELECT 查詢?
五.多表鏈接查詢
1.內聯查詢
2.外連查詢?
? ? ? ? ① LEFT JOIN ON:
?????????② RIGHT JOIN ON:
? ? ? ? ?③ INNER JOIN ON:
3. UNION
4. UNION ALL
一. INSERT 新增
? ? ? ? 主要功能: 給數據庫表增加記錄
? ? ? ? 語法:
INSERT INTO `表名` [(字段,字段,字段......)]
VALUE/VALUES (值1,值2,值3) , [(值1,值2,值3)]
# value:只能插入一條數據
# values:能插入多條數據
? ? ???不建議的寫法:
INSERT INTO `表1` SELECT 字段 FROM `表2`
# 注:查詢表和插入表都要存在
CREATE TABLE `表1` SELECT ... FROM `表2`
# 注:查詢表存在,插入表不能存在
二. DELETE 刪除
????????主要功能: 刪除已有記錄,可以依照條件去做刪除
? ? ? ? 1.整表刪除
? ? ? ? ? ? ? ? 語法:
DELETE FROM `表`
? ? ? ? 2.帶條件刪除?
? ? ? ? ? ? ? ? 語法:
DELETE FROM `表` WHERE 子句(條件)
? ? ? ? 3. DELETE , TRUNCATE , DROP 區別
? ? ? ? ? ? ? ? ①.DELETE 可以刪除數據,不能清空索引的自增? 是DML
? ? ? ? ? ? ? ? ②.TRUNCATE 在DELETE的基礎上可以清空主鍵的索引自增? 是DML
? ? ? ? ? ? ? ? ③.DROP 是直接刪除對應的 表 / 表結構 / 數據庫 是DDL
三. UPDATE 修改
? ? ? ? 主要功能: 修改已有的記錄, 可以依照條件去做修改
? ? ? ? 1.全部修改
UPDATE `表名` SET 字段名 = 值, 字段名 = 值, 字段名 = 值, 字段名 = 值
?????????2. 帶條件的修改
UPDATE `表名` SET 字段名 = 值 WHERE 條件
? ? ? ? 3.多條件的修改
UPDATE `表名` SET 字段名 = 值 WHERE 條件 AND / OR 條件 ......
四. SELECT 查詢?
? ? ? ? 主要功能: 對已有數據的查詢,可以單表查詢也可以多表聯查,可以依照條件去做查詢
? ? ? ? 語法:
SELECT [DISTINCT]
{*|
表1.*|
[ 表1.字段1 [as 字段別名1]]
[, 表1.字段2[as 字段別名2]]
[, …]}
FROM 表1 [ as 表別名 ]
[ left|right|inner join 表2 on 表之間的關系 ]
[ WHERE ]
[ GROUP BY ]
[ HAVING]
[ ORDER BY]
[ LIMIT {[ 位置偏移量,] 行數 }] ;
DISTINCT設定DISTINCT可以去掉重復記錄。AS表名或者字段名過長時,可以用AS關鍵字起別名,方便操作。GROUP BY按組分類顯示查詢出的數據。HAVINGGROUP BY分組時依賴的分組條件。ORDER BY將查詢出來的結果集按照一定順序排序完成。LIMIT限制顯示查詢結果的條數。
五.多表鏈接查詢
1.內聯查詢
? ? ? ? 等值查詢
? ? ? ? SELECT * FROM 表1, 表2? WHERE 表1.字段1 =?表2.字段2
? ? ? ? 非等值查詢(笛卡爾積)
????????SELECT * FROM 表1, 表2?
? ? ? ? ?其中:
? ? ? ? 1. 與單表查詢相似(SELECT)
? ? ? ? 2. 多個表放在 FROM 后, 用逗號隔開
? ? ? ? 3. 可以用 AS 取別名,方便引用
? ? ? ? 4. 如無重名查詢字段,則可省略數據表的指定
2.外連查詢?
? ? ? ? 語法:
SELECT * FROM `表1`
left|right|inner join 表2 on 表之間的關系(條件)
? ? ? ? ① LEFT JOIN ON:
從左表(表1)中返回所有的記錄,即便右(表2)中無匹配的行, 如下圖:
?????????② RIGHT JOIN ON:
從右(表2)中返回所有的記錄,即便左表(表1)中無匹配的行, 如下圖:
?
? ? ? ? ?③ INNER JOIN ON:
在兩張表中至少一條數據匹配時,則返回記錄, 如下圖:
?
3. UNION
????????1.求的是兩個查詢的并集
? ? ? ? 2.合并的是結果集,不區分表,所以能合并多張表
? ? ? ? 語法:
SELECT A.FIELD1 FROM <TABLE> A
UNION
SELECT B.FIELD2 FROM <TABLE> B
? ? ? ? 注:
????????1.列名不一致時,會以第一張表的表頭為準,并對齊欄目
????????2.會將重復的行進行過濾
? ? ? ? 3.如果查詢的表的列數量不相等時會報錯
? ? ? ? 4.在每個子句的排序中是沒有意義的,MySQL在合并時會忽略
? ? ? ? 5.如果子句中的排序和limit進行結合是有意義的
? ? ? ? 6.可以對合并后的整表進行排序
4. UNION ALL
? ? ? ? 與 UNION 不同, UNION ALL 不回去重,而是全部顯示
原文鏈接:https://blog.csdn.net/annotation_PLZ/article/details/126838998
相關推薦
- 2022-10-19 Beego?AutoRouter工作原理解析_Golang
- 2022-05-04 Golang小數操作指南之判斷小數點位數與四舍五入_Golang
- 2022-06-24 C#中緩存System.Web.Caching用法總結_C#教程
- 2022-08-13 uni-app發送請求封裝
- 2022-12-06 Python?list?append方法之給列表追加元素_python
- 2022-08-07 pd.drop_duplicates刪除重復行的方法實現_python
- 2022-12-21 python中把嵌套的列表合并成一個列表方法總結_python
- 2023-02-12 redis如何清理緩存_Redis
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支