導讀:科學技術的快速發展正在改變我們的社會,也在不經意間改變著未來人們的職業規劃。據媒體預測,數據分析將是未來最重要的工作技能之一。或許不久的將來,一家企業中80%的崗位,都需要數據分析的能力。可見,數據分析在各行各業中都展有著異常重要的地位,小到日常消費,大到行業決策。所以,目前數據分析崗位也在大幅度激增。對於想走數據分析職業道路的小夥伴,不僅僅需要了解統計學的基本知識(參考《數據分析必備——統計學入門基礎知識》),Excel的基礎知識(參考《數據分析必備——Excel基礎知識》),也要學習一些資料庫和SQL的內容哦!
SQL的全稱是Structured Query Language(結構化查詢語言),是一種古老而簡潔的程序設計語言。結構化查詢語言,顧名思義,它的基礎在於結構化的資料庫表,最主要的應用場景在於數據查詢,雖然SQL也可以像其它語言一樣有一些高級的寫法,但它的主戰場並不在此,仍要回歸到對資料庫表的操作和處理中。
因此,本文將圍繞資料庫及SQL的基礎知識展開簡單的介紹以及梳理,(本文只是對SQL簡單的梳理,深入的知識的原理,對基礎有一定的認識,可以自主去探索、深入研究,這樣的效益更大,真心希望能幫助到大家~,但感興趣的同學請參考《SQL基礎教程》、《SQL必知必會》、《深入淺出 SQL(中文版)》等專業書籍 ,也可以添加木兮,領取SQL學習資料!)。
全文框架預覽:
資料庫的英文名稱DataBase,簡稱:DB,是用於存儲和管理數據的倉庫。資料庫分為2類,關係型資料庫(Relational DataBase)和非關係型資料庫(NOSQL DataBase)
▍關係型資料庫:根據實體與實體(可理解為數據)之間的關係,用數據表的形式進行存儲。由於使用的表結構,表的維護相對簡單,SQL語言在此類資料庫中基本通用,且其支持複雜查詢。不好的地方在於,其擴展性較差,高並發讀寫較差,因此此類資料庫不適用於大數據的高並發場景。
▍非關係型資料庫:以鍵值對(key/value)的方式存儲,獲取數據的方式直接查詢鍵(key)獲取。鍵值對的存儲方式使得存儲更靈活,例如圖片、文檔等都可以進行存儲,而且此類資料庫查詢數據極快,且擴展性很高,目前很多公司都在採取非關係型資料庫的。但其缺點是,不提供SQL支持,學習和使用成本高,複雜查詢方面稍欠缺。
對初學者而言,先學習關係型資料庫,更容易理解和消化。因此,本文以關係型資料庫為重點進行詳細的講解。關於資料庫的下載、安裝等前置方面的知識和要點,本文不再進行贅述,各位參考網絡教程即可。
安裝好資料庫後,需要用代碼進行操作,給學習造成了很多不便,所以Navicat Premium得到了很多人的認可,它是一套快速、可靠並價格相宜的資料庫管理工具,專為簡化資料庫的管理及降低系統管理成本而設的產品,可多重連接的資料庫管理工具,它可讓你以單一程序同時連接到MySQL、Oracle、PostgreSQL、SQLite 及 SQL Server資料庫,眾多的關係型資料庫一個就搞定了。
安裝好Navicat Premium之後,連接到資料庫伺服器(怎麼連接參考網絡教程)後,就可以在這上面進行操作了,主頁面如下:
語法:CREATE DATABASE [IF NOT EXISTS]#可選內容(可選內容為字符串和校對規則,不設置就是默認的)。例子:創建一個使用utf8字符集,並帶校對規則的TestDB資料庫;
SQL: create database TestDB character set utf8 collate utf8_bin;
方式2、SQL語法創建;
語法:CREATE TABLE 表名稱 [IF NOT EXISTS]#可選內容(可選內容為字符串和校對規則,不設置就是默認的);例子:創建TestDB中的數據表EMP;
SQL: create table EMP (
id int,
name varchar(20),
gender char(1),
birthday date,
salary double,
resume text
);
varchar(20)為name這個欄位的欄位類型,也就是可視化中的type這個需要填入的內容,這部分內容需要大家去探索學習噠!
方式1、頁面插入
選中需要插入的數據表>查看數據表>點擊底部的操作欄+>填寫數據>點擊底部操作欄√
方式2、SQL插入
語法:INSERT INTO 表名稱 VALUES (列1的值, 列2的值);例子:INSERT INTO EMP VALUES (10, '崔雨萌', '2', '2000-11-15', '6900', '女');
方式:1、tables>右鍵>open table;2、SQL語法查詢;
查看表結構:desc tab_name;例子:SELECT * FROM EMP WHERE salary >= '8000' AND resume = '女';SELECT salary, resume FROM EMP WHERE salary >= '8000' AND resume = '女';
方式:1、tables>右鍵>design table;2、SQL語法修改;
修改列的名稱(name修改為username):alter table 表名稱 change name username varchar(20);
修改表的名稱:rename table 表名 to 新表名;
增加列:alter table 表名稱 add image blob;
修改某行:UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值;
例子:UPDATE 表名稱 SET name= 'Fand' WHERE 列名稱 = '沈柏金'
修改某一列:UPDATE EMP SET gender = '1' WHERE Name = '沈柏金'
語法:alter,刪除表及列; DELETE FROM ,刪除指定行;
刪除列:alter table 表名稱 drop 列名稱;
例子:alter table EMP drop name ;刪除行:DELETE FROM 表名稱 WHERE 列名稱 = 值;例子:DELETE FROM EMP WHERE name = '沈柏金';Where是條件語法,後跟具體的條件。
語法:SELECT 列名稱 FROM 表名稱 WHERE 列 運算符 值
例子:查詢薪資大於8000的女生;
SELECT * FROM emp WHERE salary >= '8000' AND resume = '女';
語法:SELECT 查找列 FROM 表名稱ORDER BY 排序列;例子:把EMP這張表按照salary正序排序展示;
SQL:SELECT * FROM EMP ORDER BY salary;-- 默認就是正序排序
例子:把EMP這張表的gender正序,salary逆序
SQL: SELECT * FROM EMP ORDER BY gender ASC , salary DESC ;
-- ASC 正序,DESC 逆序,同時存在第一列有相同值時第二列按要求進行排序。