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