暑期自學 Day 09 | 資料庫(一)

Borris發表於2020-05-21

SQL (Structured Query Language)

  • 是一種規則,定義瞭如何操作所有關係型資料庫(如Oracle, Mysql DB2)

SQL 通用語法

  • 單行多行書寫,分號結尾
  • 不區分大小寫,但關鍵字建議大寫
  • 註釋
    • 單行:-- 這是一段註釋# 這是一段註釋
    • 多行 /* 這是一段註釋 */

SQL 分類

  • DDL (Data Definition Language): 運算元據庫和表
  • DML (Data Manipulation Language): 增刪改表中資料
  • DQL (Data Query Language): 查詢資料
  • DCL (Data Control Language): 授權訪問許可權,建立使用者
DDL

運算元據庫:

  • CRUD:
    • Create
      • create database mysql 建立指定名稱的資料庫
      • create database if not exists mysql 建立前判斷是否存在該名稱
      • create database mysql character set gbk 建立指定字符集的資料庫
    • Retrieve
      • show databases; 查詢所有資料庫
      • show create database 'mysql'; 查詢該資料庫的建立語句和字符集
    • Update
      • alter database mysql character set uft8;
    • Delete
      • drop databse mysql;drop database if exists mysql;

操作表:

  • CRUD:
    • Create
      • create table t_name ( column1 type1, column2 type2, ... columnN typeN );
      • 資料庫型別:
        1. int: age int
        2. double: score double(5, 2)
        3. date: yyyy-MM-dd
        4. datetime: yyyy-MM-dd HH:mm:ss
        5. timestamp: yyyy-MM-dd HH:mm:ss, 不賦值為當前值
        6. varchar: name varchar(20), 最大20字元
          • create table t_name ( id int, name varchar(32), age int, score double(4, 1), birthday date, insert_time timestamp );
      • 複製表
        • create table t_name like origin_table_name;
    • Retrieve
      • show tables 顯示某個資料庫中所有的表
      • desc table_name 查詢某個表的結構
    • Update
      • 修改表名
        • alter table old_name rename to new_table;
      • 修改字符集
        • alter table t_name character set utf8;
      • 新增一列
        • alter table t_name add col_name type;
      • 修改一列
        • alter table t_name change name new_name varchar(20);
        • alter table t_name modify name varchar(20);
      • 刪除一列
        • alter table t_name drop name;
    • Delete
      • drop table t_namedrop table if exists t_name
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章