
前回はmysqlのインストールと環境構築まで書きましたが前回の続きになります。

データベースってよく聞くけどよくわからないなぁ
IT業界に興味があるけど難しいことが多くて頭に入ってこない
というように悩んでる方に向けてこのmoriblogは発信をしております。
データベースに関しての記事は以前にアップしましたのでこちらも併せてみていただけたら幸いです。
今回は人気のデータベースであるmysqlを使ってSQLを書き実際にデータベースの操作を行っていきます。
この記事では以下の内容が初心者の方でも学ぶことができますので是非参考にしていただけたら幸いです。
※IT業界の情報について知りたい方は以下も合わせて読んでみてください。
MYSQL起動
mysqlインストールと設定の回を見ていただいた方はMYSQLの起動方法までご存知だと思います。起動はコマンドプロンプトからでもツールからでも結構です。
早速ログインしましょう。

mysql -u "ユーザー名" -p"パスワード"
で入れましたでしょうか。
データベースの確認

show databases;
でMYSQLに入っているデータベースを見ることができます。
私のデータベースにはいろいろ入っていますが、インストールしたばかりですと
information_schema
performance_schema
testdb
くらいしかないと思います。
データベースの作成
では早速データベースを作りましょう。
create database データベース名;
で新しくデータベースを作ることができます。
作成後の確認
では
show databases;
で再度データベースを見てみましょう。

データベースの削除
せっかくですが、データベースを削除していきたいと思います。
drop database データベース名;
で、データベースの削除になります。
OKと出れば削除が完了となります。削除をしたかっただけなので再度データベースを作ります。
削除後データベース再度作成

使用するデータベースを指定する
データベースを作りましたら今度は
use データベース名;
とコマンドを打ってください。
上記コマンドでこれから使用するデータベースを設定することができます。
テーブル作成前にテーブルを確認

テーブルを確認するコマンドは
show tables;
になります。
まだデータが入っていないのでエラーになっております。データベースはテーブルとカラムという概念があります。データベースは、このテーブルとカラムにデータを格納し、格納したデータを取り出したり加工したり削除するということをSQLと呼ばれるデータベース言語で操作を行うことができます。テーブルを作成する

では早速テーブルを作ります。
usersテーブルを作りますので上記のコマンドでテーブルとカラムを作成します。CREATE TABLE IF NOT EXISTS users ( id SERIAL PRIMARY KEY, username VARCHAR(30) NOT NULL, password VARCHAR(255), tel VARCHAR(20), mail VARCHAR(50), created_at timestamp not null default current_timestamp, updated_at timestamp not null default current_timestamp );データベースに入るデータはプライマリーキーと呼ばれる必ずオンリーワンになるデータを決める必要があります。上記のコマンドは2行目のidカラムをプライマリーキーとして設定をしています。
このuserテーブルのカラムはidの他に何があるか皆さんはお分かりですよね?
がカラムとして設定されています。
それではテーブルを見てみましょう。
テーブル作成後のテーブル確認

show tables;
でusersテーブルが作成されています。
作成したテーブルの中身を見る

show columns from users;上記のコマンドでテーブルの中身を見ることができます。
Fieldがカラムになります。
Typeは格納を受け付けるデータ型になります。
この型に合ったデータが入ってこないとエラーになってしまいます。
Nullは空のデータを許可しているかどうかになります。
NOの場合はデータが空の場合にはエラーで弾かれてしまいます。
idはKeyにプライマリーキーが設定されており、Extraではauto_incrementの記載があります。idは一意のオンリーワンのデータなので重複ができません。その為 auto_increment でデータが入る度に自動でidの値を被らないように設定してくれます。
insert文によるデータ投入
テーブルを作成したのでカラムにデータ投入してみましょう。

INSERT INTO users(username, password, tel, mail) VALUES('pgfrat', 'pgfra', '080-9999-9999', 'pgfrat@pgfrat.jp');insert into でデータをこれから投入するよ!
という宣言になります。
SQLではinsert文と言います。usersテーブルの中の()のカラムにvalues()の中のデータを入れる
という書き方になります。
このinsert文を2回コマンドを叩いてデータを投入してみます。
select文
それではテーブルの中身を確認したいと思います。
select * from users
というコマンドを叩きましょう。

横の1列のことをレコードと呼んだりしますが、レコードが2つ出来ていることが確認できると思います。
データに関しては先ほど2回投入したのでidと日付だけ違うデータになっています。
idはプライマリーキーの為 auto_increment により数字が1繰り上がっています。プライマリーキーは一意のデータの為重複が許されないためです。
日付に関しましてもdefault current_timestampを指定していますので自動でデータが入力された日時が入ります。select * from users
はSQLのselect文になります。
こちらは欲しいデータを表示するのに役に立ちます。
select * で全てのカラムを表示するという書き方になります。特定のカラムを表示したいのであればカラム名を指定してください。複数ある場合はカンマ区切りで指定することが可能です。
update文
それでは入れたデータを変更してみましょう。
update users set username = "pg";

set username = のあとは自由に変えたい名前を入力してください。
””ダブルクォーテーションでくくらないとエラーになりますので気をつけてください。
select文でデータを見てみましょう。
データが変更されましたね。
update文はデータの変更が行えます。しかし上記のコマンドでは2つのレコードとも名前が変わってしまいました。
条件付きupdate文
先ほどのコマンドでは意図しないでデータが書き換わってしまう可能性があることはお判りでしょうか?
特定の条件で絞らないと、想定外のデータまで影響が及んでしまうことがあります。
そこで今度は条件を指定してデータを変更してみましょう。
update users set username = "pgfrat" where id = 2;

実際の現場ですと条件をつけずにコマンドを打つことは御法度になりますので気をつけてください。
delete文
それでは条件を指定してレコードを削除します。idが1であるレコードを削除します。
コマンドは
delete from users where id = 1;
となります。

idが1のレコードが削除されたことが確認できましたね。
SQLのdelete文は大事なデータも消しかねませんので慎重にコマンドを打ちましょう。delete文も条件指定をよく考えて実行するSQLとなります。
この記事のまとめ

データベースを操作する
のSQL(データベース)言語についてみてきました。
コマンドラインから操作する場合の基本は上記のコマンドになりますが、実際はプログラムと組み合わさってデータベースを操作することになります。アプリケーションやシステムを作るにはこの基本がわかった上でプログラムを使ってデータベースを操作する必要があります。
実戦を考えるのであればプログラムで操作されるSQL文は複雑なものになりますので、基礎から更に応用を学ぶ必要があるでしょう。
プロゲートなどのWEBサービスでもデータベース操作言語であるSQLについては学ぶことができますが、自分でデータベースを構築し勉強できるサービスはありませんので自身のローカル環境(PC)にてデータベースを用意することがデータベース学習のスタートになるでしょう。
環境が整ったその後はSQLを使って、クエリについて更に学習することが可能になります。
新型コロナウイルスによる影響で転職活動にも変化が生じています。
緊急事態宣言による営業自粛の影響で、収入が減ってしまい、テレワークが可能な業態として認識されているIT業界への転職活動が活発になっているようです。
IT業界未経験者が、ITの知識がゼロでは転職活動は厳しいです。これから世の中は離職も増えることが予想され転職市場は応募者に厳しくなります。
プログラミングやIT知識に関する学習は時間がかかります。
プログラミングスキル・IT知識を最短で学習しプログラマーやエンジニアとして働きたいという方はエンジニアスクールやプログラミングスクールを使うことが現在では当たり前となっています。
以下のリンクにて無料から有料の「プログラミングスクール」「エンジニアスクール」についての情報をまとめて共有していますので是非参考にしてください。
未経験からエンジニアを目指す場合には業界情報や職種に関する情報、IT技術や用語など知るべきことが多くあります。以下の記事にて業界未経験のエンジニア職希望者が知るべき情報をまとめていますので是非見てみてください。
この記事が役に立った、気に入ったと感じていただだいた方はフォローとシェアーをお願いいたします。
No tags for this post.
コメント 記事に関するご意見・ご感想・ご質問などお気軽にどうぞ!※メールアドレスは非公開です