日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

數據庫基本增刪改查語法和多表鏈接查詢的方式

作者:小趙在練琴 更新時間: 2022-09-26 編程語言

今天我們了解一下數據庫基本增刪改查語法和多表鏈接查的方式

目錄

一. 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
按組分類顯示查詢出的數據。
HAVING
GROUP 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

欄目分類
最近更新