SQL基礎知識

2021-08-20 13:33:52 字數 4762 閱讀 3384

(一)基本語句selectfromwhereorderlimit

一段sql語言例項如下:

select col1, col2

from table1

where col3 > 5

and col4 like

'%os%'

order

by col5

limit 10;

select:查詢語句

格式如下:

select *  

from orders;

(二)一些用法

select *

from demo.orders

order

by occurred_at

limit 10

預設公升序排列(ascending)

末尾加desc:降序排列

select account_id,total_amt_usd

from orders

order

by account_id,total_amt_usd desc

-- id遞增,且在id相同的前提下,total_amt_usd降序排列

select account_id,total_amt_usd

from orders

order

by total_amt_usd desc,account_id

-- total_amt_usd嚴格降序排列

select *

from orders

where count_id=4251

order

by occurred_at

limit 100

其中,where要放在from之後,order bylimit之前

支援非值查詢,用單引號括起來

select account_id,

occurred_at,

standard_qty,

gloss_qty,

poster_qty,

gloss_qty + poster_qty as nonstandard_qty

from orders

可以新增新的列,名字為:nonstandard_qty

命名慣例:無**和空格

練習

編寫乙個查詢,查詢每個訂單海報紙的收入百分比。 只需使用以 _usd 結尾的列。 (在這個查詢中試一下不使用總列)。包含 id 和 account_id 字段

select id,account_id,poster_amt_usd/(standard_amt_usd+gloss_amt_usd+poster_amt_usd) as post_per

from orders

limit 10

select *

from web_events_full

where referer_url like

'%google%';

%代表任意數量的字元

select *

from accounts

單引號(『』)將字串括起來,值可以直接輸入

select *

from accounts

where account_id in(1001,1021)

調出賬戶裡的1001號和1021號的資訊

select sales_rep_id,name

from accounts

where sales_rep_id not

in(321500,321570)

order

by sales_rep_id

select *

from orders

where occurred_at >= '2016-04-01'

and occurred_at <= '2016-10-01'

order

by occurred_at desc

練習

使用客戶表查詢所有不以 『c』 開始但以 『s』 結尾的公司名

select name

from accounts

where name not

like

'c%'

and name like

'%s'

練習

使用 web_events 表查詢通過 organic 或 adwords 聯絡,並在 2016 年的任何時間開通帳戶的個人全部資訊,並按照從最新到最舊的順序排列。

select *

from web_events

where channel in('organic','adwords') and occurred_at between '2016-01-01'

and'2017-01-01'

order

by occurred_at desc

--between 一般情況下不包括端點值,假設時間是 00:00:00(即午夜),這就是我們將右邊的時間點設定為 '2017-01-01' 的原因了

select account_id,

occurred_at,

standard_qty,

gloss_qty,

poster_qty

from orders

where (standard_qty = 0

or gloss_qty = 0

or poster_qty = 0)

and occurred at >= '2016-10-01'

練習

查詢以 『c』 或 『w』 開頭的所有公司名 (company names),主要聯絡人 (primary contact) 包含 『ana』 或 『ana』,但不包含 『eana

select *

from accounts

where name like

'c%'

or name like

'w%'

and(primary_poc like

'%ana%'

or primary_poc like

'%ana%')

and primary_poc not

like

'%eana%'

sql命令概述語句

使用方法

其他詳細資訊

select

select col1,col2,…

提供你需要的列

from

from table

提供列所在的**

limit

limit

10order by

order by col

根據列命令**。與 desc 一起使用

where

where col > 5

用於過濾結果的乙個條件語句

like

where col like 『%me%』

僅提取出列文字中具有 『me』 的行

inwhere col in (『y』, 『n』)

僅過濾行對應的列為 『y』 或 『n』

notwhere col not in (『y』, 「n』)

not 經常與 like 和 in 一起使用

andwhere col1 > 5 and col2 < 3

過濾兩個或多個條件必須為真的行

orwhere col1 > 5 or col2 < 3

過濾乙個條件必須為真的行

between

where col between 3 and 5

一般情況下,語法比使用 and 簡單一些

其他

select col1, col2

from table1

where col3 > 5

and col4 like

'%os%'

order

by col5

limit 10;

移動平均值

移動平均值用於將資料線性化,以便更容易觀察長期趨勢,也不會因日常波動而錯亂。

例如,假設你想視覺化服裝零售店的銷售趨勢。從每天的資料開始,而圖表看起來太不穩定,因為更多的人在週末購物,所以銷售額會在週末飆公升。

使用移動平均值可使每日波動平滑一些,也可以觀察長期趨勢。

SQL基礎知識

本篇文章是講解sql的基礎知識,但也講得不全面,我只記錄了自己不懂的或者不熟悉的東西。一 在sql中簡單的查詢 1.重複的記錄 distinct 可以通過在選擇列表前的select語句中插入關鍵字distinct來消除重複的查詢結果記錄。比如 select distinct city from ci...

SQL基礎知識

sql作用 1.面向資料庫執行查詢 2.可從資料庫取回資料 3.可在資料庫中插入新的記錄 4.可更新資料庫中的資料 5.可從資料庫刪除記錄 6.可建立新資料庫 7.可在資料庫中建立新錶 8.可在資料庫中建立儲存過程 9.可在資料庫中建立檢視 10.可以設定表 儲存過程和檢視的許可權。資料庫操作語句 ...

SQL基礎知識

資料庫就是資料的倉庫,dbms資料庫管理系統同來對大資料的管理 檢索,就是對資料庫的管理。乙個dbms可以管理多個資料庫,這些不同的資料庫叫catalog或database,dbms允許把不同的database儲存在不同磁碟,每個資料庫中的表名不能相同。table 表,把不同型別的資料放到不同的區域...