Seele

Seele

Mysql 基礎

建立 mysql 資料庫#

  1. 登入並建立資料庫
  # mysql -u root -p
  mysql> create database test;
  1. 登入並使用資料庫
  # mysqladmin -u root -p craete test

資料類型#

  • 數值:整數,浮點數,布林值,字串
  • 日期 / 時間:日期,時間,日期時間
  • 字串:字串,二進制,字符集

數值類型#

類型大小範圍 (有符號)範圍 (無符號)用途
tinyint1-128~1270~255整數
smallint2-32768~327670~65535整數
mediumint3-8388608~83886070~16777215整數
int4-2147483648~21474836470~4294967295整數
bigint8-9223372036854775808~92233720368547758070~18446744073709551615整數
float4-3.402823466E+38~3.402823466E+38-1.79E+308~1.79E+308浮點數
double8-1.7976931348623157E+308~1.7976931348623157E+308-2.22E-308~2.22E-308浮點數
decimalDECIMAL (M,D) 中 M+2 和 D+2 中較大的數依賴 M 和 D 的值依賴 M 和 D 的值小數值

日期和時間類型#

類型大小範圍格式用途
date41000-01-01~9999-12-31yyyy-mm-dd日期
time8-838:59:59~838:59:59hh:mm時間
datetime81000-01-01 00:00:00~9999-12-31 23:59:59yyyy-mm-dd hh:mm日期時間
timestamp81970-01-01 00:00:00~2038-01-19 03:14:07yyyy-mm-dd hh:mm時間戳記

字串類型#

類型大小用途
char0~255定長字串
varchar0~65535變長字串
tinytext0~255短文本字串
text0~65535長文本字串
mediumtext0~16777215中等長度文本字串
langtext0~65535極長文本字串
tinyblob0-255不超過 255 個字符的二進制字串
blob0~65535二進制長文本字串
mediumblob0~16777215中等長度的二進制字串
longblob0~4294967295長長度的二進制字串

提示:

  1. varchar 和 char 的區別是什麼
    Screenshot_20220524_194438

  2. binary 和 varbinary 的區別

    類似 char 和 varchar 不同的是他們包含二進制字串而不包含非二進制字串,二進制字串是由 0 和 1 組成的字串,二進制字串可以用於存儲圖片,視頻,音頻等二進制文件。他們沒有字符集,排序和比較基於字節的數值。

  3. Blob 和 Text 的區別

    Blob 是二進制字串,Text 是字串。

建立表格#

例子:

```sql
# 建立表格
CREATE TABLE `test` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `name` varchar(255) NOT NULL,
    `age` int(11) NOT NULL,
    `created_at` datetime NOT NULL,
    `updated_at` datetime NOT NULL,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
  1. Not null: 必須傳入輸入值

  2. Auto increment: 自增長

  3. Default: 默認值

    如果是要實現自動寫入時間,應該用 `TIMESTAMP`類型。

    DEFAULT 設置為 `CURRENT_TIMESTAMP` ` `。最好指定為` ` `NULL`

  4. Primary key: 主鍵,可以使用多列定義主鍵

  5. Engine: 儲存引擎,默認是 InnoDB

  6. Charset: 字符集,默認是 utf8mb4

例子:

root@seele # mysql -u root -p

Enter password:******

mysql> Use test;

Database changed

mysql> CREATE TABLE `test` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `name` varchar(255) NOT NULL,
    `age` int(11) NOT NULL,
    `created_at` datetime NOT NULL,
    `updated_at` datetime NOT NULL,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Query OK, 0 rows affected (0.00 sec)

刪除表格和資料庫#

  1. 刪除表格

     DROP TABLE `test`;
    
  2. 刪除資料庫

    DROP DATABASE `test`;
    
    mysqladmin -u root -p drop test
    
  3. 刪除資料消除自增長

    ALTER TABLE `test` AUTO_INCREMENT = 1;
    //將自增長設為1,部分情況下可以解決自增長問題
    
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。