天天看點

MySQL-第四章-SQL基礎

第四章 SQL 基礎

1. SQL介紹

1.1 簡介 結構化查詢語言.

1.2 SQL标準

SQL89 SQL92 SQL99 SQL03 SQL05

1.3 SQL_MODE

除數為零

日期

mysql> select @@sql_mode;

1.4 SQL 類型

DDL : 資料定義語言 : 庫名,庫屬性,表名,表屬性,列(列名,列屬性)

DCL : 資料控制語言 : 權限

DML : 資料操作語言 : 資料行

DQL : 資料查詢語言 : 資料行

1.5 SQL功能

  • 管理,操作資料庫對象:

    庫: 庫名,庫屬性

    表: 表名,表屬性,列(列名,列屬性),資料行

2. MySQL規範性存儲限制

2.1 字元集Charset

utf8 : 最大位元組長度3個.

utf8mb4 : 最大位元組長度4個. 可以存儲emoji表情字元.

mysql> show charset;

2.2 排序規則 (校對規則)

show collation;

預設是大小寫不敏感.

utf8mb4_general_ci

utf8mb4_bin

2.3 資料類型

  • 2.3.1 數字類型

    tinyint 1位元組長度數字 ===> 11111111 ===> 0-2^8-1 ===> -27-27-1 (3位)

    int 4位元組長度 ====> 0-2^32-1 ====> -2^31 - 2^31-1 (10位數)

    bigint 8位元組長度 ====> 0-2^64-1 ====> -2^63 - 2^63-1 (20位數)

  • 2.3.2 字元串
    • char(10) :

      定長類型,最多10個字元,占用存儲空間一定.最多存儲255個字元.

    • varchar(10):

      變長類型,最多10個字元,按需配置設定存儲空間.

      需要額外1個字元或2個字元存儲字元長度

因素: 變長的字元串列,90%幾率都是varchar

具體原因是什麼? 節省空間,還有沒有别的原因? 遺留的問題…

enum('m','f')  
1 2 

           

2.3.3 時間類型

DATETIME

範圍為從 1000-01-01 00:00:00.000000 至 9999-12-31 23:59:59.999999。

TIMESTAMP

1970-01-01 00:00:00.000000 至 2038-01-19 03:14:07.999999。

timestamp會受到時區的影響

2.3.4 二進制類型

2.3.5 JSON(8.0)

繼續閱讀