すぐ忘れるからまとめてみた。
データベース
データベース作成
データベース「testdb」を作成。
CREATE DATABASE testdb;
データベース削除
データベース「testdb」を削除。
DROP DATABASE testdb;
データベース一覧
SHOW DATABASES;
データベースの作成情報
SHOW CREATE DATABASE testdb;
ユーザ・権限
ユーザ作成
何の権限も持たないユーザ「testuser」作成。
CREATE USER testuser;
パスワードも一緒に設定。
CREATE USER testuser IDENTIFIED BY 'password';
ユーザ作成・権限追加
全ての権限を持つユーザ「testuser」を作成。
GRANT ALL PRIVILEGES ON *.* TO testuser@localhost;
データベース「testdb」に対して全ての権限を持つユーザ「testuser」を作成。
GRANT ALL PRIVILEGES ON testdb.* TO testuser@localhost;
データベース「testdb」に対してSELECTをする権限を持つユーザ「testuser」を作成。
GRANT SELECT ON testdb.* TO testuser@localhost;
何の権限も持たないユーザ「testuser」を作成。
GRANT USAGE ON *.* TO testuser@localhost;
パスワードも一緒に設定。
GRANT ALL PRIVILEGES ON *.* TO testuser@localhost IDENTIFIED BY 'password';
パスワード設定
パスワードを「password」に設定する。
SET PASSWORD FOR testuser@localhost=PASSWORD('password');
ユーザ削除
ユーザ「testuser」を削除。
DELETE FROM mysql.user WHERE user='testuser' AND host='localhost';
ホストが「localhost」のユーザを削除。
DELETE FROM mysql.user WHERE host='localhost';
ユーザの権限削除
REVOKE ALL PRIVILEGES ON *.* FROM testuser@localhost;
ユーザ確認
SELECT user, host, password FROM mysql.user;
ユーザの権限確認
SHOW GRANTS FOR testuser@localhost;
テーブル
テーブル作成
CREATE TABLE testtable ( id serial, data varchar(255) );
ストレージエンジンを指定してテーブル作成
CREATE TABLE testtable ( id SERIAL, data VARCHAR(255) ) ENGINE=InnoDB;
テーブル削除
DROP TABLE testtable;
テーブルが存在すれば削除。
DROP TABLE IF EXISTS testtable;
テーブル一覧
SHOW TABLES;
テーブルの作成情報
SHOW CREATE TABLE testtable;
カラム
カラム確認
DESC testtable;
カラム追加
ALTER TABLE testtable ADD newcolumn INTEGER;
追加場所を指定。
ALTER TABLE testtable ADD newcolumn INTEGER AFTER id;
先頭に追加。
ALTER TABLE testtable ADD newcolumn INTEGER FIRST;
カラム削除
ALTER TABLE testtable DROP newcolumn;
NotNull制約追加
ALTER TABLE testtable MODIFY newcolumn INTEGER NOT NULL;
NotNull制約削除
ALTER TABLE testtable MODIFY newcolumn INTEGER;
Default追加
ALTER TABLE testtable ALTER COLUMN newcolumn SET DEFAULT 0;
Default削除
ALTER TABLE testtable ALTER COLUMN newcolumn DROP DEFAULT;
インデックス
デフォルトで作られるインデックスは、インデックス名とカラム名が一緒になってるみたいだから、それに合わせとく。
インデックス確認
SHOW INDEX FROM testtable;
確認環境
# cat /etc/redhat-release CentOS release 5.4 (Final) # mysql --version mysql Ver 14.12 Distrib 5.0.77, for redhat-linux-gnu (i686) using readline 5.1 # rpm -aq | grep ^mysql mysql-5.0.77-4.el5_4.2 mysql-server-5.0.77-4.el5_4.2