從頭開始學MySQL 查詢(1)

2021-08-29 10:02:18 字數 3378 閱讀 2040

使用萬用字元  *  來查詢所有資料

select * from fruits;
優點:當不知道表的列名稱的時候,可以節約時間,快速知道列的名稱。

缺點:獲取不需要的資料可能會降低查詢的效率。而且會出現全表掃瞄,要謹慎使用。我同學的公司的資料庫表,資料量通常都是百萬級別的,用這個sql語句出結果估計要等到太陽下山。

查詢單字段  select 字段  from 表名;

查詢多欄位  select 欄位a,欄位b ....,欄位n  from 表名;

條件查詢      select 字段 from 表名 where 查詢條件;

使用in將查詢 滿足指定範圍內的條件的 記錄。

相反,可以使用 not in 來檢索不在條件範圍內的所有記錄。

查詢s_id 既不為101,也不為102的所有記錄。

select

f_name

from

fruits

where

s_id not in (101, 102)

查詢某個範圍的值,包括開始值與結束值,一般用於數值型,常用於id。

mysql的萬用字元有'%'與'_'。'%'視為任意長度的字串。'_'視為乙個字串。

'%a'匹配以a結尾的字串。'a%'匹配以a開頭的字串。'%a%'匹配含有字元a的字串。

從fruits表中查詢f_name欄位 中含有o的記錄

select

f_name

from

fruits

where

f_name like '%o%'

從算術運算子的章節,已經學過  select a is null;  select a is not null; 返回的是 1或者0;

現在用於條件判斷了,查詢f_price 是 null 的所有記錄。  is null 與 is not null 相反。

select

f_name

from

fruits

where

f_price is null

-- f_price is not null

查詢只有滿足所有查詢條件的記錄才會被返回。and可以連線兩個甚至多個查詢條件。

select

*from

fruits

where

f_id = 'a1' and s_id < 102;

在算術運算子中。與『and  && 』、 或『or  ||』、非 『not !』。

使用or操作符,表示只需要滿足其中乙個條件的記錄即可返回。

expra || exprb  ,只要滿足乙個條件,返回的就是真。

s_id in (101,102)  與   s_id = 101  or  s_id = 102 效果是一樣的。

or的注意點

(1)使用in操作符使得查詢語句變得更加簡潔明瞭,in的速度也同樣快於or。

(2)更重要的是in操作符可以執行更加複雜的巢狀查詢。

(3)or與and的優先順序:先做and的操作,再連線or

a and b or c        a or b and c

等價於   (a and b) or c      a  or  (b and c)

去重語法格式:select distinct 字段  from 表名 where 條件;

下面的例子中,

第一條語句查詢到了4條記錄: 101、101、102、103 

第二條語句查詢到了3條記錄: 101、102、103 

即查詢結果相同的算一條記錄。

select s_id from fruits;

select distinct s_id from fruits;

再看下面的sql

這說明:distinct控制的重複是distinct後面所有字段!即查詢出來的記錄中的s_id、f_name必須完全一樣,才能算同一條。而不是單純的s_id相同就去重。

假設查出來了兩條id為1的資料,將name屬性視為通過不同的外連線查詢到的資料。

如果此時我的需求是:去掉id重複的資料。下面這條sql是行不通的。為什麼?因為distinct會將後面的所有欄位去重,即不同記錄中,id與name屬性完全一樣,才能視為是相同的資料。

select distinct id,name from`dept`
所以, 我們需要上述的資料進行分組操作。所以,id相同的資料,預設就展示一條了。

目錄貼:從頭開始學mysql-------目錄帖

從頭開始學JDK String

目錄 string 倒序 string 建構函式 string equals string 記憶體 string hashcode string startswith string endwith string indexof string lastindexof string substring ...

從頭開始學MFC

一 win32專案設計 類似於console控制台程式,win32視窗程式的入口函式類似於main 函式,稱之為winmain函式 int winapi wwinmain hinstance hinstance,例項控制代碼 hinstance hprevinstance,前乙個例項控制代碼 pws...

從頭開始學Redis

第一章 概述 1.1 redis之簡介 1.2 redis之安裝 第二章 api 2.1 redisapi之簡介 2.2 redisapi之string 2.3 redisapi之hash 2.4 redisapi之list 2.5 redisapi之set 2.6 redisapi之zset 第三...