sql怎么撤回update_零基础快速自学SQL,2天足矣!
此文是《10周入門數(shù)據(jù)分析》系列的第6篇。
想了解學(xué)習(xí)路線,可以先行閱讀“ 學(xué)習(xí)計(jì)劃 | 10周入門數(shù)據(jù)分析 ”
上一篇分享了數(shù)據(jù)庫的基礎(chǔ)知識(shí),以及如何安裝數(shù)據(jù)庫,今天這篇分享數(shù)據(jù)庫操作和SQL。
SQL全稱是 Structured Query Language,翻譯后就是結(jié)構(gòu)化查詢語言,是一種數(shù)據(jù)庫查詢和程序設(shè)計(jì)語言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫系統(tǒng)。
至于 ORACLE、DB2、Sybase、SQLServer、MySQL、MS Access等都是數(shù)據(jù)庫,雖然語法上有差異,但是基本上都是大同小異。作為一名數(shù)據(jù)從業(yè)者,雖然市面上有很多很智能很自助的數(shù)據(jù)工具,甚至有的拖拖拽拽就能實(shí)現(xiàn),但作為一名報(bào)表工程師、數(shù)據(jù)分析師,不懂一點(diǎn)SQL是絕逼不行的。
之前很多文章對(duì)于SQL都一筆帶過,輕描帶寫,略忽視這項(xiàng)基本技能的重要性,所以今天就來講講如何學(xué)習(xí)SQL。
市面上都大量的書籍和教學(xué)視頻,這里就幫大家提煉核心要點(diǎn),給個(gè)學(xué)習(xí)方向。
本次的文章主要從以下幾個(gè)方面進(jìn)行說明,大家可以參考著學(xué)習(xí)。
- SQL快速學(xué)習(xí)路線
- 數(shù)據(jù)庫表基礎(chǔ)操作
- SQL基礎(chǔ)語句
- SQL高級(jí)語句
SQL快速學(xué)習(xí)路線
零基礎(chǔ)自學(xué)SQL時(shí)通常會(huì)遇到2個(gè)坑:
一坑:學(xué)習(xí)之前先安裝數(shù)據(jù)庫軟件,可以是SQL Sever,也可以是MySQL。對(duì)于新人而言,安裝數(shù)據(jù)庫軟件挺費(fèi)時(shí)間,坑太多。我剛上大學(xué)那會(huì)要求2天內(nèi)自學(xué)SQL,結(jié)果我花了1天時(shí)間安裝SQL Sever。前一篇文章分享了MySQL的安裝教程,剛開始學(xué)用不上太龐雜的功能,所以推薦小而美的MySQL,SQL Sever也是可以的。
二坑:一上來就背SQL語法。我看過太多新人在那邊吭哧吭哧做筆記背SQL,個(gè)人不贊成這種學(xué)法,不實(shí)踐記不住。就和Excel函數(shù)一樣,理解含義和如何使用,關(guān)鍵時(shí)候去w3school查詢一下就行了,以后用得多了自然就掌握了。(后臺(tái)回復(fù)關(guān)鍵詞“SQL”獲得)
SQL學(xué)習(xí)路線
1、下載安裝MySQL,或者安裝軟件phpstudy(這個(gè)軟件自帶了mysql數(shù)據(jù)庫,而且安裝啟動(dòng)方便)。
2、我這里用的是phpstudy,打開phpstudy后,點(diǎn)擊下圖中的啟動(dòng),點(diǎn)擊后數(shù)據(jù)庫服務(wù)就會(huì)啟動(dòng)了。
3、下載安裝Navicat軟件
這個(gè)軟件可以輕松連接數(shù)據(jù)庫,我們可以在這個(gè)軟件中練習(xí)學(xué)習(xí)SQL語法
4、使用Navicat建立數(shù)據(jù)庫連接
點(diǎn)擊文件——新建連接,連接名隨便填寫,比如我寫的是“本地”。主機(jī)名、端口都不需要修改,用戶名和密碼都是root(因?yàn)槲覀儼惭b的phpstudy里的mysql默認(rèn)用戶名密碼就是root),點(diǎn)擊連接測(cè)試顯示為成功后點(diǎn)確定保存。
以后再次訪問時(shí),雙擊即可。
5、下載習(xí)題進(jìn)行學(xué)習(xí),內(nèi)含習(xí)題需要用到的數(shù)據(jù)表。
6、導(dǎo)入第5步中下載的數(shù)據(jù)表。(后臺(tái)回復(fù)關(guān)鍵詞“SQL”獲得)
右擊第4步中的“本地”,新建一個(gè)數(shù)據(jù)庫test1,雙擊打開新建的數(shù)據(jù)庫(打開后顏色是綠色)。
拖拽剛才下載的數(shù)據(jù)表文件(sqltest1.sql)到test1上面。
這時(shí)會(huì)出現(xiàn)上述彈窗,點(diǎn)擊開始,等待導(dǎo)入完成后,點(diǎn)擊關(guān)閉
在左側(cè)空白處右擊,選擇“刷新”,即可看到剛才導(dǎo)入的數(shù)據(jù)表了。
7、打開sql語法編輯器
如下圖點(diǎn)擊查詢——新建查詢,在空白處輸入sql語法,點(diǎn)擊運(yùn)行,如果輸入錯(cuò)誤會(huì)有報(bào)錯(cuò),輸入正確則會(huì)返回查詢內(nèi)容。
8、邊做邊學(xué)
打開第一部分習(xí)題,邊做邊學(xué),通過查詢w3c的sql語法手冊(cè)完成
9、鞏固練習(xí)
嘗試不看sql語法手冊(cè),獨(dú)立完成第二部分習(xí)題。
以上是sql的學(xué)習(xí)路徑,接下來是sql語句的學(xué)習(xí),掌握使用場(chǎng)景和含義,具體語法就不做解釋了,大家參考w3c的sql語法手冊(cè)學(xué)習(xí)。這里我歸了下類,挑重點(diǎn)講。
數(shù)據(jù)庫表基礎(chǔ)操作
首先數(shù)據(jù)庫表必掌握的基礎(chǔ)操作,建表、刪表、往表里增數(shù)據(jù)、往表里刪數(shù)據(jù)以及最重要的取數(shù)等等。
1、CREATE TABLE(建表)
怎么著也得先建立表~
當(dāng)你建表成功后,發(fā)現(xiàn)忘記添加主鍵,或者忘記添加外鍵,莫著急。使用以下咒語即可:
建好的表如下:
emp表
orders表
2、INSERT(插入)
向表中插入數(shù)據(jù)
插入數(shù)據(jù)后的emp表
插入數(shù)據(jù)后的orders表
3、UPDATE(更新)
4、DELETE(刪除)
在使用delete刪除emp表中數(shù)據(jù)時(shí),要注意該表與其他表是否存在關(guān)聯(lián)關(guān)系,比如:外鍵。emp表id是表orders的外鍵,如果要?jiǎng)h除emp表中的id,得先刪除orders表中的外鍵。
5、DISTINCT(去重)
在表中,可能會(huì)包含重復(fù)值,這并不成問題。不過,有時(shí)你也許希望僅僅返回唯一不同的值。使用distinct關(guān)鍵字進(jìn)行處理,用于返回唯一不同的值。
注意:distinct關(guān)鍵字是去重!去重!去重!*把列中的重復(fù)值去掉!
曾經(jīng)我在筆試的時(shí)候,有道SQL考題:請(qǐng)寫出表中所有重復(fù)的name的所有數(shù)據(jù)。我當(dāng)時(shí)沒反應(yīng)過來,直接就用了distinct關(guān)鍵字,后來就....
6、Select(取數(shù))
SELECT 語句用于從表中選取數(shù)據(jù),結(jié)果被存儲(chǔ)在一個(gè)結(jié)果表中(稱為結(jié)果集)。這是以后最常用的操作,占據(jù)你90%。
SQL SELECT 語法
SELECT 列名稱 FROM 表名稱
以及:
SELECT * FROM 表名稱
比如需獲取名為 "LastName" 和 "FirstName" 的列的內(nèi)容(從名為 "Persons" 的數(shù)據(jù)庫表),請(qǐng)使用類似這樣的 SELECT 語句:
SELECT LastName,FirstName FROM Persons
SELECT通常結(jié)合其他函數(shù)和語法使用。
SQL基礎(chǔ)語句
在實(shí)際的SQL使用中,肯定會(huì)涉及到有關(guān)函數(shù)的使用,這里簡(jiǎn)單介紹幾種初學(xué)時(shí)必學(xué)的函數(shù)類型。
1、AVG()
AVG 函數(shù)返回?cái)?shù)值列的平均值。NULL 值不包括在計(jì)算中。
2、COUNT()
COUNT( ) 函數(shù)用于返回匹配指定條件的行數(shù)。
3、MAX()
MAX函數(shù)返回指定列的最大值,NULL值不包括在計(jì)算中
4、MIN()
MIN函數(shù)返回的指定列的最小值,NULL值不包括在計(jì)算中
5、SUM()
SUM函數(shù)返回指定列的總數(shù)
6、ROUND()
ROUND 函數(shù)用于把數(shù)值字段舍入為指定的小數(shù)位數(shù)
round函數(shù)需要的參數(shù)
7、FORMAT()
FORMAT 函數(shù)用于對(duì)字段的顯示進(jìn)行格式化
format函數(shù)需要的參數(shù)
SQL高級(jí)語句
這一部分的內(nèi)容是通常用到的,屬于最開始學(xué)習(xí)SQL知識(shí)時(shí)必須要熟練的,我這里大致列出幾項(xiàng)。
1、LIMIT
2、LIKE
一般配合where使用,搜索條件中的指定模式
在上面我們可以看到,通配符“%”的使用方法,所以通配符必須要配合like 運(yùn)算符一塊使用。
通配符還有以下幾種:
3、IN
從字面意思就可以知道它的作用是什么了
4、JOIN
聯(lián)表運(yùn)算符JOIN,該運(yùn)算符是用于將兩個(gè)或者兩個(gè)以上的表進(jìn)行關(guān)聯(lián),并從這些表中查詢數(shù)據(jù)。
對(duì)于聯(lián)表來說,通過使用主鍵(primary key)和外鍵(foreign key)也可以建立連接。
除了上述直接使用條件關(guān)聯(lián),下面我們可以用可讀性更高的INNER JOIN來寫
還有其他幾種方連接方式(外連接):
- LEFT JOIN:就算右表中沒有匹配,也從左表返回所有的行
- RIGHT JOIN:即使左表沒有匹配,也行右表返回所有的行
- FULL JOIN:只要有一個(gè)表存在著匹配,就返回行
5、ALTER
穿插介紹一下alter,前面的例子中已經(jīng)包含了幾種alter使用方法。
6、UNION
UNION 操作符用于合并兩個(gè)或多個(gè) SELECT 語句的結(jié)果集。
請(qǐng)注意,UNION 內(nèi)部的 SELECT 語句必須擁有相同數(shù)量的列。列也必須擁有相似的數(shù)據(jù)類型。同時(shí),每條 SELECT 語句中的列的順序必須相同。
上面引用的意思就是:道不同,不相為謀!
UNION和UNION ALL命令幾乎是等效的,不過加了“ALL”,就會(huì)列出所有的值。
注意:因?yàn)槠湟簿哂小拔ㄒ恍浴?#xff0c;容易和PRIMARY KEY混淆。面試或筆試常考兩者的不同,在這里說明一下:
與PRIMARY KEY不同的是,每個(gè)表可以有多個(gè) UNIQUE 約束,但是每個(gè)表只能有一個(gè) PRIMARY KEY 約束。
為表添加UNION,這里給出使用的SQL語法。
7、AUTO-INCREMENT(自增)
在運(yùn)用中,我們希望在每添加一條數(shù)據(jù)后,自動(dòng)的為我們的主鍵創(chuàng)建值。
8、ORDER BY
在前面中已經(jīng)使用到了有關(guān)order by的SQL語句,order by該語句用于對(duì)結(jié)果集進(jìn)行排序,默認(rèn)是進(jìn)行ASC正序排序(從小到大)。
排序的兩種方式:
- ASC:升序(從小到大)
- DESC:降序(從大到小)
舉栗:
ASC排序
對(duì)于DESC排序,這里就不進(jìn)行舉例了,大家可以自己寫SQL試一下。
9、GROUP BY
通常配合合計(jì)函數(shù)使用,根據(jù)一個(gè)或多個(gè)列對(duì)結(jié)果集進(jìn)行分組。
具體的用法在介紹函數(shù)時(shí)會(huì)涉及到。
10、HAVING
在上面的例子中,我們使用where關(guān)鍵字來增加查詢條件,這里增加having字句是因?yàn)?#xff0c;where關(guān)鍵字無法與合計(jì)函數(shù)一起使用
同樣引用上面的SQL語句。
具體的用法在介紹函數(shù)時(shí)會(huì)涉及到。
11、DEFAULT
DEFAULT約束用于向列中插入默認(rèn)值。
本次文章中寫的相關(guān)知識(shí)點(diǎn)是我以前在學(xué)習(xí)中隨手記錄的,對(duì)一些SQL大牛來說,這些已經(jīng)是耳熟能詳了。會(huì)不會(huì)讓你們產(chǎn)生一種灌水的錯(cuò)覺????哈哈~
此文是《10周入門數(shù)據(jù)分析》系列的第6篇。
想了解學(xué)習(xí)路線,可以先行閱讀“ 學(xué)習(xí)計(jì)劃 | 10周入門數(shù)據(jù)分析 ”
公眾號(hào)上已更新到第13篇,歡迎前往關(guān)注~
總結(jié)
以上是生活随笔為你收集整理的sql怎么撤回update_零基础快速自学SQL,2天足矣!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: The template root re
- 下一篇: 数据库存储路径