初学者です。SQLの理解が浅いため纏めていきます。
- MySQL
- Ruby on Rails
はじめに
ここではSQLというDBを操作する言語について記述します。
中でもDDL(データベース定義)についてです。
SQLって何?DDLって?というかたに向けたものです!
今までは、ターミナル上で"rails db:create"コマンドなどを使って、Sequel Proを使ったデータの書き換えを行っていました。
実はこの動きも、最終的にはSQLが実行されているんです!
上記のような簡単な操作であれば、SQLを直接使用せずとも「特定のコマンド」や「GUI操作」で実行できます。
でも、「簡単な操作」が用意されていないものも存在し、その処理を行うにはSQLを使う必要が出てくるのです!
プログラミング言語の学習も必要ですが、こちらのSQLも、開発業務では必須となる知識です。
かんばって学習していきましょう!
SQLとは?(ちょっと復習)
SQL(エス・キュー・エル/シークェル)とは「Structured Query Language」の略で、RDBの操作を行うための言語です。
SQLはデータベースやテーブルに対してさまざまな命令を行います。命令は大きく分けると、以下の三つに分類されます。
- データ定義 「DDL(Data Definition Language)」
- データ操作 「DML(Data Manipulation Language)」
- データ制御 「DCL (Data Control Language)」
今回はデータ定義のDDLを掘り下げていきます。
「データベース操作したいならDMLじゃないの?」と私は思ってしまいましたが、そうです。違います。
その理由も含め、説明していきます。
DDL
データを定義するSQLです。以下のような作成、更新、削除などの命令分があります!
命令 | 機能 |
---|---|
CREATE | データベースやテーブルの作成 |
ALTER | データベースやテーブルの更新 |
DROP | データベースやテーブルの削除 |
「データの定義って言いながらめっちゃ普通に操作してるーー!」と最初思いました。笑
SQLの使用
SQLってどうやって動かすの?
初学者の自分は、SQLの起動方法から分からなかったので、そこから書いていきますね。
1.ターミナルのホームディレクトリで、MySQLにログインする。
# ホームディレクトリへ
% cd
# MySQLに接続
% mysql -u root
-u rootというオプションで、ユーザーは「ルート」でログインするという意味になります!
(ここの「ルート」とはMySQLであらかじめ用意されてるユーザーのことなので注意してください。)
ちなみにログインにパスワードは必要ないです!(元から空で設定されているため)
接続が成功すると、以下のような歓迎の言葉がもらえます。
% mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 428
Server version: 5.6.47 Homebrew
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
一番最下層にある**mysql>**に入力をしていきます!
データベースの作成
SQLを使って、データベースを作成してみます。ここからの作業はターミナルを使用して行います。
今までRailsではrails db:createコマンドを実行することでRuby on Railsがデータベースを作成してくれました。
今回はSQLを使って見ましょう!
CREATE
CREATEは、データベースやテーブルを作成できるSQLの分です。
CREATE DATABASE文を実行すると、指定した名前のデータベースが作成できます!
※SQL文の終わりには必ずセミコロンを付けます。
忘れて実行した場合、SQLがまだ続くものだとみなし、矢印マーク -> が表示されます!
=その場合はセミコロンだけを入力してエンターを押せば大丈夫です!
musql> CREATE DATABASE 任意のデータベース名;
以下のような表示であれば成功です!
musql> CREATE DATABASE 任意のデータベース名;
Query OK, 1 row affected (0.00 sec)
ここで一つ気になりました。
参考書などを見ていると、「SQL文って大文字じゃなきゃいけないの?」と。
答えはNOです!小文字でも動作しました!
「じゃあ、なんでわざわざ!」と思い調べたところ、
SQL文と他の文字列が混ざると読み辛くなることから、大文字で記述することが一般的だそうです。
はい、確かにそうです。そんなこと考える暇があるなら先に進みましょう。笑
では次に作ったデータベースがちゃんとできたか確認しましょう!
SHOW
SHOWはデータベースやテーブルを一覧表示できるSQL文です。以下のコマンドを実行して見てみましょう!
mysql> SHOW DATABASES;
このようにテーブルが一覧表示できたら成功です!
mysql> SHOW DATABASES;
+------------------------+
| Database |
+------------------------+
| 省略 |
| |
+------------------------+
36 rows in set (0.00 sec)
DROP
データベースやテーブルの削除に使うSQL文です。
DROP DATABASE文を実行すると、作成されているデータベースを削除できます。
mysql> DROP DATABASE データベース名;
以下のように表示されていれば成功です!
mysql> DROP DATABASE 任意のデータベース名;
Query OK, 0 rows affected (0.02 sec)
# 削除したデータベースがないことを確認
mysql> SHOW DATABASES;
ひとまず、ここまででデータベースの定義DDLについて学習しました。
まだテーブルについてはまとめられていないので、次回記述します。
お疲れ様でした!