MySQL
今回は埋め込み型ではなく、直接操作するタイプ
私的メモ
管理者権限でMYSQLを起動
mysql -u root -p
GRANT権限があるユーザーIDを作成
GRANT ALL PRIVILEGES ON *.* TO ユーザー名 IDENTIFIED BY 'パスワード' WITH GRANT;
GRANT権限・・・システム管理者が MySQL ユーザ アカウントを作成し、アカウントに権利を与える事を可能にする
→よーするにユーザーを作成できる。
特定のデータベースだけにアクセス出来るように作る場合はこれ
GRANT ALL PRIVILEGES ON *.* TO ユーザー名 IDENTIFIED BY 'パスワード';
SQLの特徴
セミコロンで文を終了させる
→文の途中に改行を入れても問題ない
行の先頭、途中に空白を入れてもよい
大文字小文字の区別はない
例)2つとも同じ意味
code:MySQL
SELECT*from test;
SELECT*
FROM test;
コメントアウトについて
--から行末までコメント
/**/の間はコメント
MySOL手順
1.MySQLの起動
2.データベースの作成
3.表の作成
4.カラム(フィールド)の操作
5.データ作成
6.表の操作(内部結合、外部結合)
1.MySQLの起動
mysql -u ユーザーID -hホスト名 -p
その後passwordを聞かれる為、passwordを入力
-pはパスワードを入力するデータベースにログインをするという指定
-uは空白があり、なしどちらでもOKのようにする
2.データベースの作成
CREATE DATABASE データベース名;
DBの確認
SHOW DATABASES;
データベースに移動
USE データベース名;
データベースの削除(確認がないので少し注意が必要!)
DROP DATABASE データベース名;
3.表の作成
code:SQL
CREATE TABLE テーブル名 (
カラム名1 データ型1 属性1,
カラム名2 データ型2 属性2
);
特定のデータベースのテーブルを指定するときはCREATE TABLE データベース名.テーブル名で指定出来る。
例)
code:SQL
CREATE TABLE test (
title VARCHAR(50),--VARCHARは文字
content TEXT,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
--NOT NULL:空データを許さない設定,DEFAULT CURRENT_TIMESTAMP:現在日時を保存
);
ここのVARCHAR、TEXT、TIMESTAMPはデータ型
表の確認
SHOW TABLES;
表の削除
DROP TABLE テーブル名;
4.カラム(フィールド)の操作
カラムの確認
SHOW FIELDS FROM テーブル名;
カラムの追加
ALTER TABLE テーブル名 ADD 追加カラム名 追加カラムデータ型 AFTER カラム名;
カラムの削除
ALTER TABLE テーブル名 DROP カラム名;
5.データ作成
レコード登録
INSERT INTO テーブル名(カラム名1,カラム名2,...)VALUE(値1,値2,...);
※VARCHAR型は「'」を忘れずに付ける!
レコードの確認
SELECT カラム名,...FROM テーブル名;
SELECT * from テーブル名;ですべて確認出来る
レコードの更新
UPDATE テーブル名 SET カラム名1=値1,カラム名2=値2,...WHERE 条件式;
例)
UPDATE test SET title='memo' WHERE ID=1;
testテーブル内でID=1に一致するtitleの値をすべてmemoに変更する。
レコードの削除
DELETE FROM テーブル名 WHERE 条件式;
6.表の操作(内部結合、外部結合)
データの検索
SELECT カラム名,...FROM テーブル名 WHERE 条件式;
例)
SELECT * FROM test WHERE title='まとめ';
条件式は論理演算を使用
昇順(値が小さいのが上)
SELECT * FROM テーブル名 ORDER BY カラム名;
降順(値が大きいのが上)
SELECT * FROM テーブル名 ORDER BY カラム名 DESC;
データを結合する際には主キーと外部キーを結び付けて行う
主キーの設定
既存テーブルに主キーを設定する
ALTER TABLE テーブル名 ADD PRIMARY KEY (カラム名);
※主キーに設定したキーはNULLにすることや、値が重複することは出来ない。
テーブル作成時に主キーを設定する
CREATE TABLE テーブル名 (カラム名 データ型,...,PRIMARY KEY(カラム名));
外部キーの設定
code:sql
ALTER TABLE 外部キーの属するテーブル名 ADD FOREIGN KEY (外部キー
列,..)
REFERENCES 主キーの属するテーブル名(主キー列,..);
例)
ALTER TABLE seiseki ADD FOREIGN KEY (Id) REFERENCES test (uid);
内部結合
→両方のテーブルに存在するデータを抽出する結合
code:sql
SELECT テーブル名.カラム名, ... FROM テーブル名 1
INNER JOIN テーブル名 2 ON テーブル名 1.主キー=テーブル名 2.外部キー;
例)例:テーブル名が test の場合
SELECT * FROM test INNER JOIN seiseki ON test.uid=seiseki.id;