【保存版】MySQLの基本構文まとめ
こんにちは。
日曜なのに家に引きこもっているsasaki(@sasaki_holiday)です。
今回は、先日紹介した「Windows10にUbuntuを導入」という記事の続きでUbuntuにMySQLを導入してみたいと思います。
ちなみにその記事はこちらです。
とはいえ、インストール自体はaptコマンドで一瞬で終わってしまうので、ついつい忘れがちなMySQLの基本構文を備忘録としてまとめておきたいと思います。
MySQLのインストール
はい、では早速MySQLをインストールしましょう。
以下のコマンドをroot権限で実行しましょう。
apt install mysql-server mysql-client
すると、途中で確認を求められるので「y」を入力してインストールを進めていきましょう。
問題なく処理が進んでいくと、MySQLサーバのrootユーザのパスワードの設定する画面が表示されます。
忘れないパスワードを設定しましょう。
あとはインストールが完了するのを待ちましょう。
無事にインストールは完了しましたでしょうか?
完了したら早速、MySQLサーバを起動してログインしてみましょう。
まずは以下のコマンドでMySQLサーバを起動します。
service mysql start
起動が完了しましたら以下のコマンド早速ログインしてみます。
mysql -u root -p
コマンドを実行すると、パスワードの入力を求められるのでインストール時に設定したパスワードを入力してログインしましょう。
これで問題なくログインができたらMySQLのインストールは完了です。
MySQLの基本構文まとめ
無事にUbuntuにMySQLをインストールできましたので、ここからはMySQLの基礎中の基礎ともいえるSQLクエリをまとめていきます。
DB作成(CREATE文)
DBを利用するためにはDBを作成する必要があります。(当然ですね笑)
MySQLはあくまでサーバなので、MySQL上にDBを作成してみましょう。
なお、今回は「sample_db」という名前でDBを作成してみようと思います。
(DB名は任意の名前にしてもらって大丈夫です。)
DBを作成するクエリは以下の通りです。
create database sample_db;
上記のクエリでDBを作成出来たら、以下のクエリで使用するDBを選択しましょう。
DBを選択していない状態でテーブルを作成しようとすると怒られてしまうので気を付けましょう。
use sample_db;
次は早速、テーブルを作成してみましょう。
テーブル作成(CREATE文)
それでは先ほど作成した「sample_db」に「sample_table」という名前のテーブルを作成してみたいと思います。
なお、「sample_table」を以下のような構成にして作成してみたいと思います。
id | name | birthday |
---|---|---|
数字が入ります | 文字列が入ります | 日付が入ります |
では、以下のクエリでテーブルを作成してみます。
create table sample_table(id int, name varchar(32), birthday date);
ちょっと上記のクエリについて説明しますと、カッコの中は列名(列名)とデータ型を1カラムとして、あとはカンマで列の数分つなげるだけです。
データ型は整数型のINT、文字列型のVARCHAR(文字列の最大数)、日付型のDATEを今回は使用しましたが、もっとたくさんあります。
使用するデータの型に合わせて、適切なデータ型を使用するようにしましょう。
詳しい話はまた今度ご説明するかもです(笑)
データの挿入(INSERT文)
次は先ほど作成したテーブルにデータを挿入してみたいと思います。
下図のようなデータを入れてみたいと思います。
id | name | birthday |
---|---|---|
1 | sasaki | 1900-12-31 |
2 | tanaka | 2000-12-25 |
それでは以下のクエリにてデータを挿入いたします。
insert into sample_table values(1, 'sasaki', '1900-12-31'),
(2, 'tanaka', '2000-12-25');
上記のクエリで注意が必要な箇所としては、数値はコーテーションでくくる必要はありませんが、文字列や日付はコーテーションでくくる必要があります。
こうしないと、文字列として認識されずにエラーになってしまいます。
データの検索(SELECT文)
DBと言ったら検索です。
膨大のデータの中から必要なデータを取り出せてこそ、DBの本領発揮です。
では早速、「sample_table」から特定のデータを検索してみましょう。
select * from sample_table where id = 2;
上記クエリではsample_tableからidが2のデータを検索しています。
またwhere以降の検索条件はANDやORといった、句を使って複数条件で検索することも可能です。
具体的には以下のような感じです。
select * from sample_table where id = 2 and name = 'sasaki';
select * from sample_table where id = 2 or name = 'sasaki';
まず、一つ目の検索条件をANDでつないだ方はIDが2かつNAMEがsasakiというレコードを検索します。
それに対して二つ目の検索条件をORでつないだ方は、IDが2またはNAMEがsasakiのレコードを検索しています。
この辺は検索の基本的な構文ですが、実際には表同士を結合したり、WHERE句の結果に対してさらに絞り込みをするようなGROUP句やHAVING句といった構文もありますが、その辺は長くなるのでまた今度にします。
データの更新(UPDATE文)
続いては先ほど挿入したデータを更新してみたいと思います。
「id」が1のレコード(行)の「name」をsasakiからsatoに更新してみたいと思います。
それでは以下のクエリを実行してみましょう。
update sample_table set name = 'sato' where id = 1;
更新文はsetで変更内容を記述して、whereで変更対象を指定します。
なお、whereを指定しないと全レコードが変更対象となってしまいますので気を付けましょう。
データの削除(DELETE文)
次は先ほど更新したレコードを削除してみましょう。
delete from sample_table where id = 1;
上記クエリは先ほど同様にwhereで削除対象のレコードを指定しています。
テーブルの更新(ALTER文)
先ほどまではテーブル内のデータを操作する方法をまとめましたが、今度はテーブル自体の更新です。
具体的には、列の追加・更新・削除、テーブル名の変更をご説明いたします。
列の追加
まずは列の追加です。
先ほどの「sample_table」に新たに「create_date」という列を追加してみましょう。
alter table sample_table add column create_date date;
上記クエリはaddで追加するカラム名とデータ型を指定します。
列の更新
次は列の更新です。
「sample_table」の「name」列名を「last_name」という、列名に更新してみたいと思います。
alter table sample_table change name last_name varchar(32);
上記クエリではchangeで更新対象の列名を指定した後に更新後の列名とデータ型を指定します。
列の削除
続いては、列の削除です。
先ほど追加した「create_date」の列を削除してみましょう。
alter table sample_table drop column create_date;
上記クエリはdrop columnの後に削除対象の列名を指定するだけです。
テーブル名変更
最後にテーブル名の変更方法です。
以下のクエリでテーブル名を「sample_table」から「name_list」に変更してみましょう
alter table sample_table rename to name_list;
上記クエリはrename toの後に新しいテーブル名を指定するだけです。
テーブルの削除(DROP文)
続いてはテーブルを削除してみたいと思います。
では、以下のクエリで「name_list」テーブルを削除してみましょう。
drop table name_list;
はい、これだけです。(笑)
作るのはちょっとめんどくさくても削除するのはとても簡単ですね(笑)
DBの削除(DROP文)
最後にDBごと削除して元の状態に戻してみましょう。
drop database sample_db;
はいこれで、元通りの状態に戻ったはずです。
まとめ
- DB(MySQL)の基本構文をまとめてみました
- 結合や様々な関数、VIEWといったような機能についてはまた今度
- DBは奥が深いのでじっくり勉強していかないと。。。
以上、ご精読ありがとうございました。