SQLBolt:https://sqlbolt.com/lesson/introduction
SQL Lesson 16: Creating tables
今天來到了創建資料表的環節,其實我們在 Day 9 也已經介紹過囉~來看看 SQLBolt 是怎麼說明的吧。
CREATE TABLE
為了避免建立到已經存在(資料表名稱相同)的資料表而產生錯誤訊息,我們可以使用 IF NOT EXISTS
語句來新增資料表。
-- Create table statement w/ optional table constraint and default value
CREATE TABLE IF NOT EXISTS mytable (
column DataType TableConstraint DEFAULT default_value,
another_column DataType TableConstraint DEFAULT default_value,
…
);
如同在 Day 9 的介紹,建立資料表需要確定以下資訊:
SQLBolt 在本章節也介紹了資料型態的資訊:
我們也提到了在建立資料表時,可以賦予欄位限制(constraints):
NOT NULL # 屬性的值不可為空
UNIQUE # 每個值都不可重複
DEFAULT #"預設值" 若該屬性沒有填入資料,會呈現預設值
AUTO_INCREMENT #自動遞增
SQLBolt 則說明如下:
建立資料表的重點,是去設計出符合需求的 schema。欄位與資料的型態的設計,會大大的影響日後處理資料的方式,需要用心去設計。
比如都是數值,有分整數與浮點數,浮點數下又有單精度、雙精度以及儲存位元的差別,
除了設計欄位,決定要用什麼資料型態也是不容易呀!
Movies table schema
CREATE TABLE movies (
id INTEGER PRIMARY KEY,
title TEXT,
director TEXT,
year INTEGER,
length_minutes INTEGER
);
Create a new table named Database with the following columns:
– Name A string (text) describing the name of the database
– Version A number (floating point) of the latest version of this database
– Download_count An integer count of the number of times this database was downloaded
This table has no constraints.
-- 解答
CREATE TABLE Database (
Name TEXT,
Version FLOAT,
Download_count INTEGER
);
這樣我們就建立好了一張新的資料表啦!
明天就是鐵人賽最後一天,剛好 SQLbolt 的課程也結束了,接下來要介紹如何修改和刪除資料表囉。
參考資料: