[PM亂點科技樹]SQL學習筆記(1)

PM Steven
4 min readSep 16, 2020

--

圖片來源:infooptics

之前實習工作上遇到了DB相關的業務,雖然在資料庫架構設計上PM比較不會接觸,但偶爾還是會碰到要動到資料庫的情境,雖然有像DBever這樣的軟體有UI可以比較好去查看資料庫裡的內容,但是如果要進行提取或是整理DB裡的資料時,就必須要用到SQL語言,所以最近想說來學學SQL語法好了,在Codecademy上剛好有SQL的教學,且可以直接實作,這篇將紀錄整個學習的歷程。

SQL是探討資料庫世界非常重要且適合入門的語法,在Web應用程式開發和資料分析(Data Analytics)都會用上,市面上有許多關聯資料庫(Relational database)可以使用,常見的有:

  1. SQLite
  2. MySQL
  3. PostgreSQL
  4. MariaDB
  5. SQL Server
  6. Oracle Database
  7. DB2

每個資料庫的語法可能有些許的不同,但基本架構大同小異。

關聯資料庫(Relational Database)

關聯資料庫是一種經過整合成一或多個資料表(table)的資料庫,可以想像成Excel的資料表,每個欄位代表一個屬性,每一列代表一筆資料。下圖為DBeaver(一種視覺化管理資料庫的操作工具)呈現的資料表:

圖片來源:dbeaver.io

SQL的基本概要

一句完整的SQL語句要包含Keyword關鍵字和資料表(table)名稱和欄位(column)名稱。使用分號;做為結尾,不區分大小寫,用空白做間隔。註解單行為- -,多行註解使用/**/包裹。

  1. 選取資料庫
SELECT*FROM celebs

SELECT是選擇,分類上屬於DML(Data Manipulation Language),用來查詢指定的資料庫。

*這邊是SQL的特殊用法,用來表示全部的資料表(table),FROM後面接著指定的資料庫,結果就會是顯示該資料庫所有的欄位資料:

2.建立資料表(table)

SELECT * FROM celebs;CREATE TABLE celebs(id INTEGER,name TEXT,age TNTEGER);

第一行一樣是選取指定的資料庫,CREATE TABLE表示建立資料表,後面接資料表的名字,然後括弧內為資料表結構,id 為第一行資料的名稱,INTEGER為該行的資料格式,以此類推。

3.插入資料

INSERT INTO celebs(id, name, age)VALUES (1,’Justin Bieber’, 22);

INSERT INTO表示要插入資料,後面接指定的資料庫,接著括弧內為指定的行,下一行VALUE為要插入的值。

4.修改資料

ALTER TABLE celebsADD COLUMN twitter_handle TEXT;

ALTER TABLE表示修改資料表,後面接指定的資料表,ADD COLUMN表示新增一筆資料,後面分別表示資料名稱和格式。

5.更新資料

UPDATE celebsSET twitter_handle = ‘@taylorswift13’WHERE id=4;

UPDATE 表示更新資料,後面接指定資料庫名稱,SET A=B表示將A藍的資料換成B,下一行是指定條件為 id = 4 的那筆資料。

6.刪除資料

DELETE FROM celebsWHERE twitter_handle IS NULL;

DELETE表示刪除指定的資料庫資料,後面接資料庫名稱,下一行為刪除資料的條件,這裡表示在twitter_handle欄位下為NULL(空值)。

7.限制資料庫

CREATE TABLE awards(id INTEGER PRIMARY KEY,recipient TEXT NOT NULL,award_name TEXT DEFAULT ‘Grammy’);

PRIMARY KEY 表示每一筆資料都是表格中的唯一值(不能新增不同列的值),NOT NULL 表示不允許一欄位含有NULL值,DEFAULT為資料設定預設值,像這邊是預設每個資料為Grammy。

參考資料

簡明 SQL 資料庫語法入門教學

SQL Constraint

--

--

PM Steven
PM Steven

Written by PM Steven

我是PM Steven,在電子業打滾的菜鳥PM

No responses yet