MySQL查詢基礎操作

2021-08-28 22:07:24 字數 1708 閱讀 8419

今天這兩天學習了一寫mysql的基礎查詢在這裡記載一下。

首先需要注意,distinct只能用在查詢的開頭:

例如:select distinct sname from student

如果需要兩個條件來去重那麼兩個條件直接跟在distinct之後就可以了

例如:select distinct sname,sno from student

還有一種情況:當你需要查詢給乙個欄位去重,同時還要保留其他字段作為查詢結果的時候就不能把,字段放在distinct之前

例如:select sname,distinct s*** from student

這樣就是乙個錯誤的用法,

那正確的用法應該是怎麼樣的呢:

select count(*) from (

select count(a.buyer) as b from (

select distinct buyer,paytime from trade where shopname=『美寶蓮』 and status=『finished』 and paytime between 『2018-03-01』 and 『2018-03-31』 )

a group by a.buyer)

as m where m.b>1;

解決問題的基本思路: 首先去重,去除消費者與日期相同的資料,值保留一條;第二,對每乙個消費者的購買次數計數,第

三、找到計數大於1的,就是複購的人,對複購的人進行計數;

using 一般配合join使用,使用join的時候我們一般要指定用什麼欄位來join,

例如:select * from student a join score bon a.sno=b.sno

using的作用和on類似:

例如:select * from student a join score b using(sno)

這裡需要注意的是,使用using的時候要加上括號,類似與函式,而且比喻兩個表中的欄位名完全一致才能使用。

isnull通常用在:查詢不包含某個條件的場景時使用;

用法是 isnull() 括號裡面寫上條件,

exists的用法與in類似,當你要依據另乙個表的查詢結果作為查詢條件時,通常使用這個方法:

例如:查詢所有未講課的教師的tname和depart.

這時候就可以使用:select tname,depart from teacher a where not exists

(select * from course b where a.tno=b.tno);

exists後面的返回值,會作為乙個布林值,存在的時候就返回true,之前的查詢就會生效;

兩張表,分別時學生名單以及分數表;

join :直接把兩個表中共有的元素連線起來;相當於求交集;

leftjoin:左連線,依據左邊的進行連線,左邊的表有幾行就會返回來幾行;

right join :依據右邊的表連線,右邊的表有幾行就連線幾行,右邊有而左邊沒有的,可以為空;

MySQL查詢學習之基礎查詢操作

mysql 是最流行的關係型資料庫管理系統,在 web 應用方面 mysql 是最好的 rdbms relational database management system 關聯式資料庫管理系統 應用軟體之一。mysql 是乙個關係型資料庫管理系統,由瑞典 mysql ab 公司開發,目前屬於 o...

MySQL條件查詢語句基礎操作

select 欄位1,欄位2.from 表名 where 條件 例 select from students where id 1 比較運算子 例1 查詢小喬的年齡 select age from students where name 小喬 例2 查詢20歲以下的學生 select from st...

mysql基礎操作語句 Mysql基礎操作語句

比如乙個學生表student有三個欄位id,name,資料型別分別為int varchar varchar 增加資料 語法 insert into 表名 values val1,val2.例 insert into student values 1516,張三 男 部分字段插入 insert int...