Seele

Seele

Mysqlの基礎

Mysql データベースの作成#

  1. ログインしてデータベースを作成する
  # mysql -u root -p
  mysql> create database test;
  1. データベースを作成してログインする
  # mysqladmin -u root -p create 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-255255 文字以下のバイナリ文字列
blob0~65535長いバイナリテキスト文字列
mediumblob0~16777215中程度の長さのバイナリ文字列
longblob0~4294967295長いバイナリ文字列

Tips:

  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に設定し、一部の場合に自動増分の問題を解決できます
    
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。