環境
使用PC: Mac
開発環境: AWS Cloud9 (MySQLは最初から導入されているみたい)
MySQLバージョン: 5.7.34
Cloud9以外での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にあげてみようと思う。
できたらここにリンクを貼る
以上