##環境
使用PC: Mac
開発環境: AWS Cloud9 (MySQLは最初から導入されているみたい)
MySQLバージョン: 5.7.34
###Cloud9以外でのMySQLインストール方法
MacでMysql のインストール
##そもそもデータベースとは
- データを保存するためのソフトウェアのこと
- データベースを操作する言語は SQL を使う
##MySQLについて
リレーショナルデータベースの1つで、構造としては1つのアプリケーションに対して
1つのデータベースがあり、1つのデータベースの中に複数のテーブルがある。
リレーショナルデータベースには3つの特徴がある
- テーブルは、カラム(縦)とレコード(横)で構成される
- カラムに、保存するデータの制約を設定できる
- データの保存や取得には、SQLという言語を使用する
##データベースの役割
データベースは、PHPなどのプログラムから必要なデータ操作(CRUD)を要求され、それに応えてデータ操作をする。これがアプリケーションにおけるデータベースの役割。
##SQLとは
SQLはRDBMSのデータ操作や定義を行うための言語
###SQLの役割
- データ操作のSQL
- データ定義のSQL
- データ制御のSQL
###データ操作のSQL
データ操作のSQLキーワード | CRUD | 用途 |
---|---|---|
INSERT | Create | 作成・保存 |
SELECT | Read | 取得 |
UPDATE | Update | 更新 |
DELETE | Delete | 削除 |
###データ定義のSQL
データ定義のSQLキーワード | 用途 |
---|---|
CREATE | 新しいデータベース、テーブルを作成する |
DROP | すでに存在するデータベースや、テーブルを削除する |
###データ制御のSQL
アカウントにおけるデータのアクセス制御に使用する
##データベースサーバの起動と停止
###起動
MySQLサーバが起動する
sudo service mysql start
###起動状態確認
sudo service mysql status
###停止
sudo service mysql stop
##データベースサーバへの接続
MySQLサーバ起動後、下記コマンド入力
sudo mysql -u root
rootというユーザ(-uのこと?)で、MySQLサーバに接続する
###接続解除
mysql> exit
##データベースの作成
sudo mysql -u root //データベースサーバに接続
mysql> CREATE DATABASE データベース名;
//;SQL分の最後は;セミコロン! 小文字英数字と_だけ使う。大文字は避ける。
###データベース一覧の確認
mysql> show databases;
###データベースを削除
mysql> DROP DATABASE データベース名;
// 削除の確認なしで削除が実行されるから注意!!
##テーブルの作成
Cloud9のワークスペースにSQLファイル
create_table_データベース名_テーブル名(複数形!).sql 作成
CREATE TABLE テーブル名 (
id INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(100),
price INT,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
// 基本のデータ型
- INT(整数)
- DOUBLE(小数)
- VARCHAR(可変長の文字列)
- TEXT(文章用の長い文字列)
- TIMESTAMP(日付時刻型)
個人的に使いそうなデータ型は別の投稿に載せる予定!
###上記のテーブル作成で使われている単語のメモ書き
- AUTO_INCREMENT: 1から始まって自動的に1ずつ増える設定
- NOT NULL: 空データでは許さない設定
- PRIMARY KEY: プライマリーキー、主キー、テーブルに1つは必須
- (100): 文字数の最大値
- price INT: priceカラムをINT(整数)で保存
##SQLファイルを実行する
操作するデータベースを選択するのを忘れるのでメモ...
mysql> USE データベース名;
mysql> source ~/environment/create_table_データベース名_テーブル名.sql;
###テーブルができているか確認
mysql> USE データベース名;
mysql> show tables;
###テーブルの中身を確認
mysql> describe テーブル名;
###テーブルの削除
確認なしで削除されるから注意!
mysql> DROP TABLE books;
##テーブルデータの操作(CRUD)
テーブルの中にレコード(データ列)を保存し、操作するやり方
###データの作成・保存
//例文
mysql> INSERT INTO テーブル名 (カラム1, カラム2, ...) VALUES (値1, 値2, ...);
//実際に入れてみる
mysql> INSERT INTO テーブル名 (title, price) VALUES ("testMySQL", 10);
###データの取得
//例文
mysql> SELECT カラム名 FROM テーブル名;
//実際に入れてみる
mysql> SELECT * FROM テーブル名;
// *: テーブルの全てのカラムを取得できる
###データの更新
//例文
mysql> UPDATE テーブル名 SET カラム名1 = 値1, カラム名2 = 値2, ...
//実際に入れてみる
mysql> UPDATE テーブル名 SET price = 100;
###データ(レコード)の削除
//例文
mysql> DELETE FROM テーブル名
//実際に入れてみる
mysql> DELETE FROM テーブル名
##まとめ
MySQLの基本をここにまとめることができたから、
次は応用として、自分で考えたテーブルを色々試したものを
Qiitaにあげてみようと思う。
##できたらここにリンクを貼る
以上