---
# System prepended metadata

title: '[資料庫] 簡介'
tags: [sql, MySQL, database]

---

# [資料庫] 簡介
###### tags: `資料庫` `sql` `MySQL`

- ### 關聯式資料庫
    - SQL
    - DB
- ### 結構化資料庫
- ### 非結構化資料庫
    - NoSQL


- 目前市面上使用:
    - Oracle
    - MySQL
    - SQL Server (微軟)
---
- ### 資料定義語言(Data Definition Language, DDL)
    負責**定義資料庫結構與物件**
    - CREATE 建立
        - 建立資料庫 `CREATE DATABASE databaseName`
        - 建立資料表 `CREATE TABLE tableName`
    - ALTER 修改
        - 在某資料表中新增一個某資料型別的欄位,並允許NULL
            `ALTER TABLE table_name ADD column_name data_type NULL`
        - 在某資料表中移除某個欄位
            `ALTER TABLE table_name DROP COLUMN column_name`
            
    - DROP 刪除
        - `DROP TABLE tableName`
        - `DROP VIEW viewName`
- ### 資料操作語言(Data Manipulation Language, DML)
    負責**操作(處理、存取)資料庫其中的資料**，若加上SELECT語句又稱「CRUD」
    - SELECT 查詢
    - INSERT 新增
    - UPDATE 修改
    - DELETE 刪除
- ### 資料控制語言(Data Control Language, DCL)
    負責**授權，控制使用者存取權限**
    - GRANT 授與權限
    - REVOKE 撤回權限

- ### 交易控制語言(Transaction Control Language, TCL)
    
    - BEGIN 開始一個交易
    - START TRANSACTION 開始一個交易
    - SAVEPOINT 在交易中建立儲存點,回滾時撤銷該儲存點後的全部操作
    - COMMIT 儲存此次交易全部操作,並完成交易
    - AUTOCOMMIT 自動提交並無法回滾
    - ROLLBACK 放棄此次交易全部操作,並結束交易

