MySQL データベース・テーブル作成

ユーザ = ユーザ名 + 接続ホスト名 で管理

最初から登録されているユーザ

ユーザ名 ホスト名
root localhost

MySQLへ接続

mysql -u ユーザ名
mysql -u ユーザ名 -p  //パスワード入力を要求
mysql -u ユーザ名 -p データベース名 //ユーザログインとともにデータベースへアクセス

モニタを切断

exit;

新しいユーザ・パスワード作成

CREATE USER ユーザ名@ホスト名
IDENTIFIED BY 'パスワード';

ほぼ全ての権限を付与

GRANT ALL ON *.* TO ユーザ名@ホスト名;

データベースを作成

CREATE DATABASE データベース名;

使用するデータベースを選択

USE データベース名;

データベース一覧

SHOW DATABASES;

テーブル作成

CREATE TABLE テーブル名
(
    列名 型,
    列名 型,
    PRIMARY KEY (列名)
);

主キーを型の後に指定することも可能

列名 型 PRIMARY KEY,

連結キー(複合キー)の場合

PRIMARY KEY (列名,列名)
CREATE TABLE テーブル名
(
    列名 型 UNIQUE,
    列名 型 CHECK (条件),
);
  • UNIQUEで重複不可
  • CHECK(条件)で値に制限をつけれる

-数値-

範囲
INT -2147483648 ~ 2147483647
TINYINT -128 ~ 127
SMALLINT -32768 ~ 32767
MEDIUMINT -8388608 ~ 8388607
BIGINT -9223372036854775808 ~ 9223372036854775807
FLOAT -3.402823466E+38 ~ -1.175494351E-38
DOUBLE -2.2250738585072014E-308 ~ 1.7976931348623157E+308
DECIMAL(n,d) 最大桁数65/小数点以下桁数30/誤差生じない
  • マイナスの数字を使わない場合はUNSIGNEDを使用すると扱える数字を幅を広げることが可能

-文字-

範囲
CHAR(n) 255文字まで指定可能
VARCHAR(n) 1 ~ 65535バイト
TEXT 65535 文字まで
LONGTEXT 4294967295 文字まで
ENUM 特定の文字列から1つ
SET 特定の文字列から複数
  • ENUMは1番目から1,2,3と表現可能
  • SETでデータを複数挿入する時はカンマ区切りにする(スペースなどはいれないこと)
  • SETは1番目は20(1)2番目は21(2)3番目は22(4)と表現可能。その時は加算した結果を記述

-日付-

範囲
DATETIME 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
DATE 1000-01-01 ~ 9999-12-31
YEAR 1901 ~ 2155,1970 ~ 2069(2桁時70~69)
TIME -838:59:59 ~ 838:59:59

表の確認

SHOW TABLES;

指定した表の構造を確認

DESC テーブル名;

指定した表の削除

DROP TABLE テーブル名;
  • 指定したテーブル名が存在しない場合エラーとなるため下記のように記述
DROP TABLE IF EXISTS テーブル名;
  • 指定したテーブル名が存在するときだけ削除する

表の複製

データごと全てコピー(主キーの設定はコピーされない)


CREATE TABLE 作成するテーブル名 AS
SELECT * FROM コピー元のテーブル名;

カラムを指定してコピー


CREATE TABLE 作成するテーブル名 AS 
SELECT コピーするカラム名, コピーするカラム名 
FROM コピー元のテーブル名 
*下記を追加するとデータをコピーしない
WHERE 1=2; //falseになる式であればOK!

主キーの設定ごとコピー(データはコピーされない)


CREATE TABLE 作成するテーブル名
LIKE コピー元のテーブル名;

表の属性変更

型の変更


ALTER TABLE テーブル名
MODIFY 型を変更したいカラム名 新しい型;

カラム名とデータ型を変更


ALTER TABLE 対象のテーブル名 
CHANGE 変更前のカラム名 新しいカラム名 新しい型;

カラムを追加

最後に追加


ALTER TABLE 対象のテーブル名 
ADD 追加するカラム名 型;

最初に追加


ALTER TABLE 対象のテーブル名 
ADD 追加するカラム名 型
FIRST;

既存カラムの後に追加


ALTER TABLE 対象のテーブル名 
ADD 追加するカラム名 型
AFTER 既存カラム名;

カラムの位置を移動

ALTER TABLE 対象のテーブル名 
MODIFY 移動させるカラム名 型 位置を指定;
code 位置
FIRST 最初
AFTER 既存カラム名 指定した既存カラムの後

*移動と一緒に型も変更可能

カラムの削除

ALTER TABLE テーブル名 DROP 削除するカラム名;

テーブル名を変更

DROP TABLE IF EXISTS 新しいテーブル名;
ALTER TABLE 旧テーブル名 
RENAME 新テーブル名;