因為想成為一名商業分析師,SQL算是一個蠻重要的一項技能,趁著剛當完兵的時間學習了一些基本的語法以及,基本常識希望可以方分享給想學習的人,也算是我自己一個小筆記。
首先我想解釋一下什麼是Database:
我來舉個例子好了,一本電話簿裡面的姓名跟電話就是database,那SQL就是一個查詢這個電話簿的語言方法:
我要paul的電話,那我就是要先找到p開頭的人名,找到paul之後我才能找到他的電話,也就是英文所稱的Database Management System(DBMS)

通常我們說的database 也就是說 Database Management System 跟 Database的意思
那這有很多程式像是PostgreSQL ,MYSQL, Oracle, Datebase SQLite使用這些語法其實都大同小異。主要是這些DBMS可以帶來的特色不一樣。
既然知道了什麼事database,簡單來說SQL 就是這些程式的語言
那我練習的方式是使用GoormIDE 雲端(網路上有查詢的到如何下載)

一開始使用要先打上mysql-ctl cli; 才能開始使用
資料會跳一下等個幾秒鐘就可以開始了。首先要知道怎麼建立一個database server,database 就像是一個資料櫃,在每一個資料櫃裡面的資料夾就是table,在資料夾裡面有很多資料 就是 data
這是舉例:我開了一間咖啡書店,那我的Databse 就是 Store 之後我Tables 也就是我賣的東西書跟咖啡,那我的Data就是書名價錢等等等

好!解釋完了架構,首先要建立一個Database:

那在語法上要用:
create database store;
檢查是否已經創出來了:
show databases;
這邊會出現很多個 database 只要注意到你之前創的有沒有出現就好
再來就是進入這個database 在創立一個Table以及Table的內容:

進入這database:
use store;
創造一個書的Table:
create table books (title varchar(30), price int);
我來解釋一下title就是圖1–1上面說的 我想要創造一個放Title的欄位跟價錢的欄位(想像成你在用Excel 會把Title 跟 price 放在第一列的時候),但SQL 要比較細一點 要自己規定title,只能是文字 ,price 只能是價錢
那 varchar 就是文字的意思 int是數字的意思
創造資料:
insert into books (title, price) values (‘History’, 55);
這邊比較麻煩 我一步一步地講解要先宣告你要創造的資料是要寫進哪一個Table所以是insert into books,然後你想要寫入什麼(title, price),insert into books(title, price) — →你要告訴系統你要寫什麼進去,最後就是你想寫進去的資料是什麼,insert into books (title, price) values (‘History’, 55);
最後是檢查:

檢查這個欄位:
show columns from books;
裡面的Type就是解釋說可以是字母還是數字等等,當然還有不同的Data Type這個我下一篇再說明,Null的意思是可以接受沒輸入值,Default是空著不寫的預設值,至於Key跟Extra 我也會之後說明。
檢查我寫出的成品:
select * from books;
*→這個符號的意思是所有欄位,如果有學其他語言像Python 也是所以的意思。
到這邊為止都跟得上嗎?那繼續囉!接下來我要解釋怎麼更改Null 跟 Default 跟Key這邊

要更改 NULL、Default、key值要從創立Table這邊開始,還記得怎麼創立Table嗎?
根據上面這個columns 表格 你會發現這邊的 Null 、Default跟Key都被我更改了,在 Null 這邊被改成了No 在Default這邊的price從Null變成了99999那這樣我的創立清單方法就變成下面這樣:
create table books (
books_id int not null auto_increment,
title varchar(30) not null ,
price int not null default 99999
primary key(books_id));
那至於key這邊要知道auto_increment 的意思是自動累加好比說這個ID的順序你不用一個一個寫1、2、3、4、5 寫auto_increment 就會自動加,要注意的是在最後面要加一個primary key(books_id),的意思是”用來保證欄位在資料表中的唯一性,每一筆資料在資料表中都必需是獨一無二的”。
有發現嗎?其實不難,就是在 Data type 後面加上 Not null(也就是說不可以基接受沒輸入值),再來是Default 如果是空格的預設值是什麼
這是第一階段的介紹,練習完了。
那我們來把Table刪掉的話,就用drop table:
drop table books;
把database刪掉的話就使用 drop database:
drop database store;
這是最基本的SQL之後我會把完整版慢慢的PO上來,一開始一定會很難懂,慢慢練習之後就可以抓到這語法的精髓!