資料庫操作中最常用,最複雜的操作就是查詢了,下面我們總結一下不同資料庫幾種常見的查詢方式以及對應的sql語句:
首先,我們了解一下用於查詢的關鍵字 select 意思是:選擇;挑選;,從字面意思我們可以知道這個關鍵字是從表中挑選出符合我們需要的資料
語句:
1.查詢表中所有資訊
select * from 表名
2.查詢表中符合指定條件的每一行資訊
select * from 表名 where 條件
3.根據條件從表中選出想要列資料
select 列1列2...
. from 表名 where 條件
-- 這句可以理解為從表中篩選出符合當前條件指定列資訊
以上是單錶查詢的操作,單錶操作比較簡單,還有一點需要注意,在查詢時可以對查詢的列進行賦值運算,如果想要顯示的舒服一些,可以給賦值後的列取別名:後面加上空格加別名,或者用 as 關鍵字:
在薪水上加100 :
sal+
100 薪水 或者 sal+
100as 薪水
這樣查詢列名結果就是薪水,使用別名很方便,在表中,列中都可以使用列名,在屬性後直接加空格在加別名,或者用as關鍵字即可。
再介紹查詢時用到的函式:
1.concat('char'
,'char'..
....)
select comcat('char'
,'char'..
....) from 表名 where 條件
-- 用於連線字串,注意當引數裡面出現了null時則連線後的字串就轉為null
2.distinct
select distinct * from table
-- 對查詢資訊去重
上面介紹的單錶查詢比較簡單,但是在實際開發中我們幾乎很少只對乙個表操作,通常是在多表之間聯合查詢,這時候我們就需要多張表聯合起來查詢——多表連線查詢。
顧名思義多表連線查詢肯定要用到連線,所以我們先了解一下常見的幾種連線方式:
1.等值連線我們先介紹一下笛卡爾積:沒有任何連線條件就成為笛卡爾積,笛卡爾積會帶來什麼問題呢?2.內連線
3.左連線
4.右鏈結
會出現大量重複資料,這顯然不是我們希望看到的,所以我們需要定義連線來解決笛卡爾積問題
要求兩列值相等達到等值連線,想要構成等值連線前提必須至少有小於表數減乙個等值連線條件。
-
- 通過等值連線獲取表一,表二中的符合條件的資訊
select * from 表1 a,表2 b where a.列名=b.列名 and 條件....
等值連線還可以自連線,常用於以下場景:查詢與某某同一部門的資訊
select b.* from 表 1 a,表 2 b where a.部門號=b…部門號 and a.name=『某某某』 否
內連線可以取代等值連線以及非等值連線但是語法不同
select from * 表1 inner join 表 on 條件
-- join on語句只能定義乙個表和乙個條件如果需要連線多個表需要繼續加join on語句
左連線,在進行左連線的時候他會以左邊的表為基準,把左邊表的資訊全部顯示出來,即便不符合等值條件,條件既可以等值也可以不等值,語法與內連線相似:
select from * 表1 left join 表 on 條件
-- join on語句只能定義乙個表和乙個條件如果需要連線多個表需要繼續加join on語句
右連線與左連線恰恰相反,在進行右連線的時候他會以右邊的表為基準,把右邊表的資訊全部顯示出來,即便不符合等值條件,條件既可以等值也可以不等值,語法與內連線相似:
select from * 表1 right join 表 on 條件
-- join on語句只能定義乙個表和乙個條件如果需要連線多個表需要繼續加join on語句
下面還有一種子查詢介紹一下:
子查詢就是在乙個查詢中巢狀另乙個查詢,最常見的就是把乙個查詢作為另外乙個查詢的結果:
單行子查詢:
舉例:
select *
1 from 表 where 列屬性2
=(select 列屬性2 from 表
where 條件)
多行子查詢
select *
1 from 表 where 列屬性2
in (select 列屬性2 from 表
where 條件) --
in代表在這個區間內
多列子查詢(臨時表)
select * from 表,
(select 列屬性1 from 表 where 條件)t1 ,
(select 列屬性2 from 表 where 條件)t2,
where 條件
-- 把查詢結果當成乙個臨時表
注意:雖然子查詢思路清晰,比較容易,但是在進行查詢時我們應該避免使用子查詢,因為子查詢涉及到多次查詢,查詢較慢。 mysql資料庫小結
adrian default character set utf8 collate utf8 general ci comment x default character set utf8 資料庫字符集。設定資料庫的預設編碼為utf8,utf8中間不要 collate utf8 general ci...
MySQL資料庫小結
一 mysql是最流行的關係型資料庫管理系統 1 資料以 的形式出現 每乙個表的名字應具有唯一性 2 每行為各種記錄名稱 3 每列為記錄名稱所對應的資料域 4 許多的行和列組成一張表單 5 若干的表單組成database 二 四大類別 資料定義語言 ddl data definition langu...
資料庫查詢方式
連線就是指兩個或2個以上的表 資料來源 連線起來成為乙個資料來源 實際上,兩個表的完全的連線是這樣的乙個過程 左邊的表的每一行,跟右邊的表的每一行,兩兩互相 橫向對接 後所得到的所有資料行的結果。注意 連線之後,並非形成了乙個新的資料表,而只是一種 記憶體形態 from 表 1 連線方式 join ...