MySQLの詳細な学習ノート

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

タグ: MySQL SQL データベース操作 ストレージエンジン トランザクション

7月21日 16:14 投稿