MySQL

MySQL はオープンソースのリレーショナルデータベース管理システム(RDBMS)です。

目次

  1. 1 データ型
    1. 1.1 整数
      1. 1.1.1 TINYINT
      2. 1.1.2 SMALLINT
      3. 1.1.3 MEDIUMINT
      4. 1.1.4 INT
      5. 1.1.5 INTEGER
      6. 1.1.6 BIGINT
      7. 1.1.7 SERIAL
    1. 1.2 浮動小数点数
      1. 1.2.1 FLOAT
      2. 1.2.2 DOUBLE
      3. 1.2.3 DOUBLE PRECISION
    1. 1.3 固定小数点数
      1. 1.3.1 DEC
      2. 1.3.2 DECIMAL
      3. 1.3.3 FIXED
      4. 1.3.4 NUMERIC
    1. 1.4 可変長文字列
      1. 1.4.1 CHARACTER VARYING
      2. 1.4.2 VARCHAR
    1. 1.5 固定長文字列
      1. 1.5.1 CHAR
      2. 1.5.2 CHARACTER
    1. 1.6 日付と時刻
      1. 1.6.1 DATE
      2. 1.6.2 DATETIME
      3. 1.6.3 TIMESTAMP
      4. 1.6.3 YEAR
    1. 1.7 ビットフィールド型
      1. 1.7.1 BIT
    1. 1.8 ブーリアン型
      1. 1.8.1 BOOL
      2. 1.8.2 BOOLEAN
    1. 1.9 列挙型
      1. 1.9.1 ENUM
    1. 1.10 バイナリバイト列
      1. 1.10.1 BINARY
      2. 1.10.2 VARBINARY
    1. 1.11 ラージ・オブジェクト
      1. 1.11.1 TINYBLOB
      2. 1.11.2 TINYTEXT
      3. 1.11.3 BLOB
      4. 1.11.4 TEXT
      5. 1.11.5 MEDIUMBLOB
      6. 1.11.6 MEDIUMTEXT
      7. 1.11.7 LONGBLOB
      8. 1.11.8 LONGTEXT
  2. 2 SQL
    1. 2.1 ALTER TABLE
    2. 2.2 ALTER VIEW
    3. 2.3 CREATE TABLE
    4. 2.4 CREATE VIEW
    5. 2.5 DROP INDEX
    6. 2.6 DROP USER
  3. 3 式
    1. 3.1 CASE
  4. 4 関数
    1. 4.1 AVG
    2. 4.2 CEILING
    3. 4.3 COALESCE
    4. 4.4 COUNT
    5. 4.5 FLOOR
    6. 4.6 LAST_DAY
    7. 4.7 LENGTH
    8. 4.8 LPAD
    9. 4.9 MAX
    10. 4.10 MIN
    11. 4.11 REPLACE
    12. 4.12 ROUND
    13. 4.13 ROW_NUMBER
    14. 4.14 RPAD
    15. 4.15 SUM
    16. 4.16 SYSDATE
    17. 4.17 TRUNCATE
  5. 5 コマンド
    1. 5.1 mysql
    2. 5.2 mysqladmin
    3. 5.3 mysqldump
  6. 6 API
    1. 6.1 JDBC
    2. 6.2 ODBC

mysql

MySQLモニタとは、MySQLを操作するためのCUIベースのクライアント用プログラムである。

mysql [options] [database]
database

データベース名を指定する。

options

オプションを指定する。

-?
--help
ヘルプメッセージを表示する。
-b
--nobeep
ビープ音(エラー音)を鳴らさない。
-h hostname
--host=hostname
ホスト名
-ppassword
--password[=password]
サーバに接続するMySQLユーザのパスワード。-ppasswordの間にスペースは空けられないので注意。
-u username
--user=[username]
サーバに接続するMySQLユーザ名。

MySQLモニタを起動すると、次のようなプロンプトが表示される。

mysql>

MySQLモニタでSQL文を入力するときは、最後にセミコロン(;)又は\Gを入力する。

MySQLのバージョンを確認する。

mysql --version

mysqladmin

MySQLのバージョンを確認する。

mysqladmin --version

source

SQL文をファイルに記述しておき、MySQLモニタから実行することもできる。SQL文を記述したテキストファイルをSQLファイル又はSQLスクリプトと呼ぶ。MySQLモニタからSQLファイルを実行するには、sourceコマンドを実行する。

SOURCE [filename]

exit

MySQLモニタを終了するには、exit、quit または \q コマンドを使用する。

mysql> exit
Bye

\q

MySQLモニタを終了するには、exit、quit または \q コマンドを使用する。

mysql> \q
Bye

quit

MySQLモニタを終了するには、exit、quit または \q コマンドを使用する。

mysql> quit
Bye

show warnings

SQLを実行して警告が発生した場合、SHOW WARNINGS コマンドを実行すると警告の詳細が表示される。

mysql> source demo_data.sql
Query OK, 1 row affected, 3 warnings (0.00 sec)

mysql> show warnings;
+---------+------+----------------------------------------------------------+
| Level   | Code | Message                                                  |
+---------+------+----------------------------------------------------------+
| Warning | 1264 | Out of range value for column 'created' at row 1         |
| Warning | 1264 | Out of range value for column 'enrollment_date' at row 1 |
| Warning | 1264 | Out of range value for column 'regination_date' at row 1 |
+---------+------+----------------------------------------------------------+
3 rows in set (0.00 sec)

mysql>

CREATE TABLE

AUTO_INCREMENT

AUTO_INCREMENT属性を使用すると、新しい行を挿入する際に一意の識別子を自動的に生成できる。

CREATE TABLE employee (
  empno MEDIUMINT NOT NULL AUTO_INCREMENT,
  name CHAR(20),
  PRIMARY KEY (empno)
);

INSERT INTO employee (name) VALUES ('Horiuch Marina'), ('Iida Raura');

ENGINE

MySQL では、CREATE TABLE文に次の句を指定することができる。

ENGINE [=] engine_name
engine_name

テーブルのストレージエンジンを指定する。

MySQLのストレージエンジン
ストレージエンジン 説明
ARCHIVE アーカイブストレージエンジン
CSV CSVストレージエンジン
InnoDB 行ロックと外部キーを持つトランザクションセーフテーブル
MEMORY メモリの中だけに格納される
MyISAM バイナリポータルストレージエンジン(MySQLのデフォルト)

TINYINT

TINYINT[(M)] [UNSIGNED] [ZEROFILL]
M
表示幅(桁数)
UNSIGNED
符号なしの値
ZEROFILL
表示幅に満たない桁数の場合は0で埋める。

FLOAT

FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]
M
桁数の合計
D
小数点以下の桁数
UNSIGNED
符号なしの値
ZEROFILL
表示幅に満たない桁数の場合は0で埋める。

DECIMAL

DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]
M
精度(桁数の合計)
D
スケール(小数点以下の桁数)
UNSIGNED
符号なしの値
ZEROFILL
表示幅に満たない桁数の場合は0で埋める。

DATETIME

DATETIME型の値の取り出しと表示は'YYYY-MM-DD HH:MM:SS'形式で行われる。たとえば、'9999-12-31 23:59:59'などである。

CHAR

[NATIONAL] CHAR[(M)] [CHARACTER SET charset_name] [COLLATE collation_name]
charset_name
文字セット
collation_name
文字セットの照合