iT邦幫忙

2022 iThome 鐵人賽

DAY 29
0
Software Development

新手小白的每天一點SQL系列 第 29

Day 29 SQLBolt - 13:Creating tables

  • 分享至 

  • xImage
  •  

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 則說明如下:

SQL Lesson 16: Creating tables

建立資料表的重點,是去設計出符合需求的 schema。欄位與資料的型態的設計,會大大的影響日後處理資料的方式,需要用心去設計。

比如都是數值,有分整數與浮點數,浮點數下又有單精度、雙精度以及儲存位元的差別,

除了設計欄位,決定要用什麼資料型態也是不容易呀!

範例

Movies table schema
CREATE TABLE movies (
    id INTEGER PRIMARY KEY,
    title TEXT,
    director TEXT,
    year INTEGER, 
    length_minutes INTEGER
);

題目 1

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 的課程也結束了,接下來要介紹如何修改和刪除資料表囉。

參考資料:


上一篇
Day 28 SQLBolt - 12:Updating & Deleting rows
下一篇
Day 30 SQLBolt - 14:Altering & Dropping tables & 完賽感言
系列文
新手小白的每天一點SQL31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言