Windowsサービス操作
MySQLサービスの起動:
net start mysql
Windowsサービスの作成:
sc create mysql binPath= パス (等号と値の間にスペースが必要)
接続と切断
接続コマンド:
mysql -h アドレス -P ポート -u ユーザー -p パスワード
実行中のスレッド確認:
SHOW PROCESSLIST;
システム変数確認:
SHOW VARIABLES;
データベース操作
現在のデータベース確認:
SELECT DATABASE();
現在時刻・ユーザー・バージョン確認:
SELECT now(), user(), version();
データベース作成:
CREATE DATABASE [IF NOT EXISTS] データベース名
CHARACTER SET キャラクタセット
COLLATE コラテーション;
存在するデータベース一覧:
SHOW DATABASES [LIKE 'パターン'];
テーブル操作
テーブル作成:
CREATE TABLE [IF NOT EXISTS] テーブル名 (
列定義,
...
) ENGINE=ストレージエンジン
CHARSET=文字コード;
テーブル構造確認:
SHOW CREATE TABLE テーブル名;
テーブルの変更:
ALTER TABLE テーブル名
ADD COLUMN 新しい列名 データ型,
MODIFY COLUMN 列名 新しいデータ型;
テーブル削除:
DROP TABLE [IF EXISTS] テーブル名;
データ操作
データ挿入:
INSERT INTO テーブル名 (列1, 列2)
VALUES (値1, 値2);
データ取得:
SELECT * FROM テーブル名
WHERE 条件;
データ削除:
DELETE FROM テーブル名
WHERE 条件;
データ更新:
UPDATE テーブル名
SET 列名 = 新しい値
WHERE 条件;
文字コード設定
文字コード確認:
SHOW VARIABLES LIKE 'character_set_%';
クライアント設定:
SET character_set_client = 'utf8mb4';
データ型
整数型:
- TINYINT (1バイト)
- SMALLINT (2バイト)
- MEDIUMINT (3バイト)
- INT (4バイト)
- BIGINT (8バイト)
浮動小数点型:
- FLOAT (4バイト)
- DOUBLE (8バイト)
正確な数値型:
DECIMAL(M,D)
文字列型
- CHAR (固定長)
- VARCHAR (可変長)
- TINYTEXT / TEXT / MEDIUMTEXT / LONGTEXT
日時型
- DATETIME (8バイト)
- DATE (3バイト)
- TIMESTAMP (4バイト)
- TIME (3バイト)
- YEAR (1バイト)
SELECTクエリ
基本構文:
SELECT [DISTINCT] 項目
FROM テーブル
WHERE 条件
GROUP BY 項目
HAVING 条件
ORDER BY 項目
LIMIT 数量;
サブクエリ
サブクエリの使用例:
SELECT * FROM テーブル1
WHERE 列 = (
SELECT 列 FROM テーブル2
WHERE 条件
);
結合クエリ
INNER JOIN:
SELECT * FROM テーブル1
INNER JOIN テーブル2
ON テーブル1.列 = テーブル2.列;
LEFT JOIN:
SELECT * FROM テーブル1
LEFT JOIN テーブル2
ON テーブル1.列 = テーブル2.列;
トランザクション
トランザクション開始:
START TRANSACTION;
コミット:
COMMIT;
ロールバック:
ROLLBACK;
トリガー
トリガー作成:
CREATE TRIGGER トリガー名
BEFORE INSERT ON テーブル名
FOR EACH ROW
BEGIN
-- 実行内容
END;
ビュー
ビュー作成:
CREATE VIEW ビュー名 AS
SELECT * FROM テーブル名
WHERE 条件;
ストアドプロシージャ
作成例:
DELIMITER //
CREATE PROCEDURE プロシージャ名()
BEGIN
-- 実行内容
END //
DELIMITER ;
ストアドファンクション
作成例:
DELIMITER //
CREATE FUNCTION 関数名(パラメータ) RETURNS 戻り値の型
BEGIN
-- 実行内容
RETURN 戻り値;
END //
DELIMITER ;
権限管理
ユーザー作成:
CREATE USER 'ユーザー名'@'ホスト' IDENTIFIED BY 'パスワード';
権限付与:
GRANT 権限 ON データベース.テーブル TO 'ユーザー名'@'ホスト';
権限削除:
REVOKE 権限 ON データベース.テーブル FROM 'ユーザー名'@'ホスト';
バックアップと復元
バックアップ:
mysqldump -u ユーザー -p データベース名 > ファイル名.sql
復元:
mysql -u ユーザー -p データベース名 < ファイル名.sql