語法手冊
課程列表
高階計畫
sql lesson 0: 讓我給sql做個自我介紹
xuesql.cn
,乙個適合小白學sql
的**,我們會由淺入深的介紹所有有關sql
的知識, 每乙個章節是一組相關的sql知識點; 並且會配備一組動手練習任務。
sql
, 全稱為structured query language(結構化查詢語言)。 要講sql就繞不開database(資料庫), 平時所說的資料庫,一般就是指的relational database(關係型資料庫)
.
大家知道資料庫是用來儲存大量資料的一種軟體,那麼sql呢是用來運算元據裡的資料,具體來說sql可以做資料查詢,資料更新,寫入資料等等。
小貼士:有哪些流行的資料庫?
大家應該或多或少聽說過一些資料庫比如sqlite
,mysql
,postgres
,oracle
和microsoft sql server
. 這幾個資料庫(可以理解為軟體)是目前比較流行的一些資料庫。所有這些資料庫都支援標準的sql
,換句話說,你學會了sql就可以對這些資料庫做資料操作了! 當然上面的每一種資料庫都有自己的特性和適用範圍(想象一下你家有 不同尺寸的盤子
).
在學習sql語法之前有必要解釋一下什麼是關係型資料庫(relational databases)?資料庫由若干張表
(table)組成,這裡說的資料table很像excel裡的表; 正如excel裡的**,table也是由行(rows)
和列(columns)
組成
乙個table儲存乙個類別的資料,每一行是一條資料,每一列是這種資料的乙個屬性; table就像乙個二維的**,列(columns)
是有限固定的,行(rows)
是無限不固定的
舉個例子, 比如我們資料庫裡有一張表(table)
. 是用來儲存世界上所有的狗,每一行(rows)
是一條狗的資訊。那麼你會在這個狗table裡儲存 哪些狗的屬性列(columns)
呢?比如 編號,名字,體重,身高,品種,年齡,毛髮顏色?。讓我們來看一下這張表,暫且就叫表 dog吧!
table(表): dog
id# name(名字)
# weight(體重)
# height (身高)
# type (品種)
# age (月齡)
# color (膚色)
1mike328
吉娃娃10白2
sala
6.540
柴犬15黃3
黑獅21.5
45藏獒26黑
4大聖1542
牧羊犬20黃5
boy5.5
24蝴蝶犬6白
......
......
......
...上面就是乙個dog表的簡單展示,像這樣乙個狗資料庫裡,除了這張狗(dog)表,還可能存在其他的表,比如有一張表是存狗品種資訊, 另外有一張表是存狗主人資訊的 ...
我們學習sql, 其實最後目的就是在類似這張dog表資料基礎上, 可以通過sql來回答諸如以下的一類問題: "現在全世界名字叫 'mike'的狗有幾條?", 或者 "有多少條狗的毛髮是 紅色的?", 等等。 通過sql我們可以方便的去獲取,統計這些資訊,在接下來的更多章節中你會有更深的體會.
所有練習都會有表(table)的資料展示,在表下方有乙個可以輸入 sql(sql語句) 的編輯器,您需要理解右側的任務列表並寫出正確的sql . 當然,您也可以直接在編輯器裡輸入 其他的sql,每次輸入sql都會立即執行,並把結果顯示在表資料的位置!
第一次的練習很簡單,您只需要按照任務列表裡的sql,在編輯器裡抄一遍即可(抄完sql注意下**裡的資料有何變化)。這個練習主要是希望你通過互動對sql有乙個初步映像. 那讓我們趕緊開始玩吧 ..
注意我們練習中的表不是狗表,而是一張儲存了電影資訊(movies)的表
table(表): movies 全表檢視
提示資訊
sql為空或資料為空
--請輸入sql重置練習 do it — 請完成如下任務
【初體驗】請輸入如下sql你將看到4條電影(切記先清空資料框且出錯要耐心比對):
select title,director from movies where id < 5
【初體驗】輸入如下sql你將看到電影總條數:
select count(*) from movies
【初體驗】sql可以直接做計算,下面的sql計算1+1的和,請輸入:
select 1+1
我不會做求助!求助!
下一節 – sql lesson 1: select 查詢 101
線上慢SQL排查
mysql排查線上資料庫問題,經常會用到 show processlist和show full processlist這兩條命令 processlist命令的輸出結果顯示了有哪些執行緒在執行,不僅可以檢視當前所有的連線數,還可以檢視當前的連線狀態幫助識別出有問題的查詢語句等。如果是root帳號,能看...
SQL語句練習
建立一張表,記錄 呼叫員的工作流水,記錄呼叫員編號,對方號碼,通話開始時間,結束時間。建表,插資料等都自己寫出sql 要求 輸出所有資料中通話時間最長的5條記錄。輸出所有資料中撥打長途號碼 對方號碼以0開頭 的總時長 輸出本月通話時長最多的前三個呼叫員的編號 輸出本月撥打 次數最多的前三個呼叫員的編...
SQL 語句練習
mysql select from persons limit 5 oracle select from persons where rownum 5 select from persons where name like l select from persons where name not l...