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 新テーブル名;