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

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

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

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

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

目錄

一. INSERT 新增

二. DELETE 刪除

? ? ? ? 1.整表刪除

? ? ? ? 2.帶條件刪除?

? ? ? ? 3. DELETE , TRUNCATE , DROP 區(qū)別

三. UPDATE 修改

? ? ? ? 1.全部修改

?????????2. 帶條件的修改

? ? ? ? 3.多條件的修改

四. SELECT 查詢?

五.多表鏈接查詢

1.內(nèi)聯(lián)查詢

2.外連查詢?

? ? ? ? ① LEFT JOIN ON:

?????????② RIGHT JOIN ON:

? ? ? ? ?③ INNER JOIN ON:

3. UNION

4. UNION ALL


一. INSERT 新增

? ? ? ? 主要功能: 給數(shù)據(jù)庫表增加記錄

? ? ? ? 語法:

INSERT INTO `表名` [(字段,字段,字段......)]
VALUE/VALUES (值1,值2,值3) , [(值1,值2,值3)]

# value:只能插入一條數(shù)據(jù)
# values:能插入多條數(shù)據(jù)

? ? ???不建議的寫法:

INSERT INTO `表1` SELECT 字段 FROM `表2`
# 注:查詢表和插入表都要存在
CREATE TABLE `表1` SELECT ... FROM `表2`
# 注:查詢表存在,插入表不能存在

二. DELETE 刪除

????????主要功能: 刪除已有記錄,可以依照條件去做刪除

? ? ? ? 1.整表刪除

? ? ? ? ? ? ? ? 語法:

DELETE FROM `表`

? ? ? ? 2.帶條件刪除?

? ? ? ? ? ? ? ? 語法:

DELETE FROM `表` WHERE 子句(條件)

? ? ? ? 3. DELETE , TRUNCATE , DROP 區(qū)別

? ? ? ? ? ? ? ? ①.DELETE 可以刪除數(shù)據(jù),不能清空索引的自增? 是DML

? ? ? ? ? ? ? ? ②.TRUNCATE DELETE的基礎(chǔ)上可以清空主鍵的索引自增? 是DML

? ? ? ? ? ? ? ? ③.DROP 是直接刪除對(duì)應(yīng)的 表 / 表結(jié)構(gòu) / 數(shù)據(jù)庫 是DDL

三. UPDATE 修改

? ? ? ? 主要功能: 修改已有的記錄, 可以依照條件去做修改

? ? ? ? 1.全部修改

UPDATE `表名` SET 字段名 = 值, 字段名 = 值, 字段名 = 值, 字段名 = 值

?????????2. 帶條件的修改

UPDATE `表名` SET 字段名 = 值 WHERE 條件

? ? ? ? 3.多條件的修改

UPDATE `表名` SET 字段名 = 值 WHERE 條件 AND / OR 條件 ......

四. SELECT 查詢?

? ? ? ? 主要功能: 對(duì)已有數(shù)據(jù)的查詢,可以單表查詢也可以多表聯(lián)查,可以依照條件去做查詢

? ? ? ? 語法:

SELECT [DISTINCT] 
{*|
表1.*|
[ 表1.字段1 [as 字段別名1]]
[, 表1.字段2[as 字段別名2]]
[, …]}
FROM 表1 [ as 表別名 ] 
[ left|right|inner join 表2 on 表之間的關(guān)系 ] 
[ WHERE ] 
[ GROUP BY ] 
[ HAVING] 
[ ORDER BY] 
[ LIMIT {[ 位置偏移量,] 行數(shù) }] ;
DISTINCT
設(shè)定DISTINCT可以去掉重復(fù)記錄。
AS
表名或者字段名過長(zhǎng)時(shí),可以用AS關(guān)鍵字起別名,方便操作。
GROUP BY
按組分類顯示查詢出的數(shù)據(jù)。
HAVING
GROUP BY分組時(shí)依賴的分組條件。
ORDER BY
將查詢出來的結(jié)果集按照一定順序排序完成。
LIMIT
限制顯示查詢結(jié)果的條數(shù)。

五.多表鏈接查詢

1.內(nèi)聯(lián)查詢

? ? ? ? 等值查詢

? ? ? ? SELECT * FROM 表1, 表2? WHERE 表1.字段1 =?表2.字段2

? ? ? ? 非等值查詢(笛卡爾積)

????????SELECT * FROM 表1, 表2?

? ? ? ? ?其中:

? ? ? ? 1. 與單表查詢相似(SELECT)

? ? ? ? 2. 多個(gè)表放在 FROM 后, 用逗號(hào)隔開

? ? ? ? 3. 可以用 AS 取別名,方便引用

? ? ? ? 4. 如無重名查詢字段,則可省略數(shù)據(jù)表的指定

2.外連查詢?

? ? ? ? 語法:

SELECT * FROM `表1`
left|right|inner join 表2 on 表之間的關(guān)系(條件)

? ? ? ? ① LEFT JOIN ON:

左表(表1)中返回所有的記錄,即便右(表2)中無匹配的行, 如下圖:

?????????② RIGHT JOIN ON:

右(表2)中返回所有的記錄,即便左表(表1)中無匹配的行, 如下圖:

?

? ? ? ? ?③ INNER JOIN ON:

兩張表至少一條數(shù)據(jù)匹配時(shí),則返回記錄, 如下圖:

?

3. UNION

????????1.求的是兩個(gè)查詢的并集

? ? ? ? 2.合并的是結(jié)果集,不區(qū)分表,所以能合并多張表

? ? ? ? 語法:

SELECT A.FIELD1 FROM <TABLE> A
UNION
SELECT B.FIELD2 FROM <TABLE> B

? ? ? ? 注:

????????1.列名不一致時(shí),會(huì)以第一張表的表頭為準(zhǔn),并對(duì)齊欄目

????????2.會(huì)將重復(fù)的行進(jìn)行過濾

? ? ? ? 3.如果查詢的表的列數(shù)量不相等時(shí)會(huì)報(bào)錯(cuò)

? ? ? ? 4.在每個(gè)子句的排序中是沒有意義的,MySQL在合并時(shí)會(huì)忽略

? ? ? ? 5.如果子句中的排序和limit進(jìn)行結(jié)合是有意義的

? ? ? ? 6.可以對(duì)合并后的整表進(jìn)行排序

4. UNION ALL

? ? ? ? 與 UNION 不同, UNION ALL 不回去重,而是全部顯示

原文鏈接:https://blog.csdn.net/annotation_PLZ/article/details/126838998

欄目分類
最近更新