《SQL基礎教程(第2版)》簡單筆記

葉糖糖發表於2017-09-14

SQL是指一種結構化查詢語言(Structured Query Language)簡稱SQL。相對於其他語言的學習,也許學習SQL並不是那麼的有趣,但是隻要能夠靜下心邊看書邊實踐,很快就能夠掌握與SQL基本的操作技能。

一、這是一本什麼書?

經常聽身邊的小夥伴講《SQL基礎教程(第2版)》是一本比較不錯的SQL入門書籍,出於好奇於近日購得一本,欲探究竟。

  • 這本書面向的讀者是沒有程式設計經驗的初學者
  • 內容涉及關係型資料庫及SQL語言的使用方法
  • 每章知識講解思路清晰、細緻(日系書特點)

綜上所述,這是一本面向SQL初學者的入門級書。

二、讀完能夠學習到什麼?
  • PostgreSQL 的安裝方法
  • 瞭解資料庫的基本概念及常用的關係型資料庫
  • 掌握SQL中的常用操作(查詢與更新、聚合與排序、複雜查詢、集合運算、SQL高階處理、函式等)
  • 通過應用程式連線資料庫
三、準備學習環境

如果您沒有特別要求或者習慣使用的資料庫,那麼建議使用書中的資料庫。當然您也可以從以下幾種資料庫中選擇一種來使用:

  • Oracle
  • SQL Server
  • DB2
  • PostgreSQL
  • MySql

因為自己的電腦上安裝了MySql5.7Navicat,所以就直接使用已經安裝的環境學習。

四、如何學習SQL?
  1. 瞭解資料庫是什麼及結構
  2. 掌握資料庫的建立和表的建立
  3. 掌握表的刪除和更新
  4. 掌握資料插入、刪除、更新(後續可以繼續學習事務)
  5. 掌握SELECT查詢及各種黑科技
  6. 掌握聚合與函式
  7. 掌握檢視、子查詢和關聯子查詢
  8. 掌握常用函式、掌握謂詞和case表示式
  9. 掌握集合運算
  10. 瞭解SQL高階處理和通過應用程式連線資料庫(基礎紮實了可以繼續)
五、初探SQL

個人理解,僅供參考,更多技能,請自行解鎖(#^.^#)。

  1. 資料庫:可以理解為資料倉儲,是多張資料表組成的資料集合。

  2. 表:由行和列組成的二維表。可以用來儲存相同特性的資料,舉個例子,在使用者表中儲存2條使用者資訊:

enter image description here

在上表中每一行(第一行表頭除外)表示的是一條記錄;每一列表示的是對應的一個欄位;每一個單元格中的資料就是對應的欄位值。我們可以把一張表中的多條記錄看做是同一種型別的資料。

3.DBMS:即資料庫管理系統,是一種用來管理資料庫的計算機管理系統。

4.RDBMS的常見系統結構:客戶端/伺服器端(C/S)結構。

5.三兩行程式碼,寫出你的心事。來看如何建立資料庫,操作表:

/*建立pay資料庫*/
CREATE DATABASE pay;

這樣,我們就可以建立一個資料庫。是不是很簡單?接下來,可以建立一張使用者資訊表。表中包含欄位id、郵箱(使用者名稱)、密碼,請看如下程式碼:

/*建立使用者資訊表*/
CREATE TABLE `t_user` (
    `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵id',
    `email` varchar(255) NOT NULL DEFAULT '' COMMENT '郵箱',
    `pwd` varchar(255) NOT NULL COMMENT '密碼',
    PRIMARY KEY (`id`)
) 

在使用者資訊表中id是主鍵,也就記錄的唯一標識,不能為空值,讓資料庫自動生成序列。郵箱和密碼分別是長度為255的varchar型別的資料。其中郵箱就是使用者名稱。醬紫就可以對使用者表進行一番操作了。

/*插入4條使用者資訊記錄到表中,假裝密碼已經加密⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄*/
INSERT INTO `t_user` (email,pwd) VALUES ('sugarYe@vip.com', '123456');
INSERT INTO `t_user` (email,pwd) VALUES ('zhangsan@vip.com', '234567');
INSERT INTO `t_user` (email,pwd) VALUES ('lisi@vip.com', '345678');
INSERT INTO `t_user` (email,pwd) VALUES ('lilei@vip.com', '456789');

資料已經插入到了表中,該如何檢視資料是否正確了?可以使用SELECT來進行查詢驗證。

 /*查詢資料資訊*/
SELECT * FROM t_user;

有圖有真相:

enter image description here

接下來,更新id=1的資料。

/*更新第一條資料*/
UPDATE t_user  SET email='sugarYe@163.com',pwd='789456' WHERE id=1;

查詢驗證,更新是否成功。

enter image description here

從圖中可以看出來,更新正確。真是太棒了。

假如想刪除一條記錄該如何操作呢?別擔心DELETE關鍵字可以幫助我們。

/*刪除一條id=3的資料*/
DELETE FROM t_user where id=3;

提示:刪除操作是一個危險的動作,在正式執行的系統中執行刪除操作之前做好先備份好資料。 如果粗心大意寫寫錯要刪除的表名或者沒有限制條件會發生“血案”,接下來測試一下。我們直接刪除使用者資訊表中的資料。

enter image description here

是不是很開心?關於SQL還有非常多非常有趣的知識等著小夥伴們去解鎖。

六、前方高能,乾貨來襲

附贈MySql中的幾點操作小技巧。

1、TRUNCATE user ; 清除表資料,不影響標識列。

2.mysql將查詢結果轉換成一行
select id,group_concat(id order by id separator ",") as ids
from t_user
group by pwd

方法2:

SELECT
group_concat(user_list.id) AS ids
FROM
(SELECT id FROM t_user) AS user_list
3.mysql資料庫最大連線數檢視與修改

1、檢視最大資料庫最大連線數

show variables like '%max_connections%';

2、修改全域性的資料庫最大連線數(僅限本次,重啟無效)

set global max_connections=200;

4.價格類資料保留精度

設計資料庫欄位的時候使用資料型別decimal(18,2)引數含義:資料長度,資料精度;

select id,name, convert(price,decimal(18,2)) as price from product;

相關文章