0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

データベース MySQLメモ

Posted at

##環境

使用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_データベース名_テーブル名.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 テーブル名;

表がターミナル上に表示される
testsテーブルの中身
image.png

###テーブルの削除
確認なしで削除されるから注意!

ターミナル
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にあげてみようと思う。

##できたらここにリンクを貼る

以上

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?