こんにちは、
元プログラマーライターのゆきと申します。
さて、さっそくですが今回の本題に入りたいと思います。
プログラミングに興味がある方なら「MySQL」という単語を聞いたことがあるのではないでしょうか。MySQLとは世界的にも人気の高いデータベースのことで言語を問わず多くのプログラミングでも使用されています。MySQLの知識を持つことは多くのプログラミングを学ぶ上で必須と言えるでしょう。
この記事では、MySQLの基礎知識やコマンドなどをご紹介していきますので、ぜひお読みください。
目次
そもそもMySQLとは?
MySQLはデータベース。それでは、データベースとは
MySQLが何かを一言で言うと無料で使える世界でもシェアの高いデータベースです。
データベースが何かを説明すると、情報の集合体です。プログラミングやそのほかの用途で使う情報を分かりやすいように種類分けしたり、整理した情報を格納するのがデータベースの役割です。
MySQLの由来や概要
MySQLとは、アメリカのオラクル(Oracle)社が開発を主催している、オープンソースのリレーショナルデータベース管理システム(RDBMS)の一つです。リレーショナルデータベースとは、データを表形式で管理するデータベースのことです。MySQLの他にはSQLServer、PostgreSQLなどがリレーショナルデータベースにあたります。
また、オープンソース とは、コンピュータプログラムのソースコードを広く一般に公開して、誰でも自由に扱ってよいとする考え方のことです。
MySQLの名前の由来ですが、共同設立者の娘の名前である「My」と、リレーショナルデータベースのデータにアクセスして管理できるStructured Query Languageの略称である「SQL」を組み合わせて作ったものなんだとか。「My」の部分が人名だったなんてちょっと意外ですよね。
MySQLの特徴
MySQLの特徴、広く使用されている理由は以下の通りです。
- 無料で使用することができる
- オープンソースである
- 多くのOSに対応し、高い汎用性がある
これらがMySQLが人気の理由だと思います。
MySQLやデータベースの用語解説
データベースは実はかなり専門用語が多いです。ですので、初心者の方は意味が分からず固まってしまうかもしれません。まずは、基礎的な言葉の意味から覚えていきましょう。
テーブル
テーブルはデータを実際に入れていく表のような物です。Excelのシートに近いイメージです。
カラム
カラムはExcelの「列」に該当する部分です。その列のデータがどんなデータなのかを表す名前を付ける必要があり、必ずひとつのテーブルの中では、他のカラムと同じ名前を付けてはいけません。
レコード
レコードはExcel「行」の部分で、データそのもののことです。
フィールド
フィールドはExcelでいうと「セル」の部分です。データを入れる各マス目のひとつひとつのことです。
インデックス
インデックスはデータベースの中から特定のデータを検索しやすくするための仕組みのことです。データベースを実際に使用する場合、データが莫大となって使いたいデータを探すのが難しくなるので、インデックスは非常に便利です。
MySQLではB-Treeというインデックスを使っています。B-Treeとは、インデックスを特定のカラムに貼り、別の場所に保存することで探しやすくするという方法をとっています。
データ型
MySQLの学習に欠かせないデータ型についても確認しましょう。データ型とは、テーブルを作成するときに各カラムに指定するデータの種類のことです。入力するデータが数値なのか、文字なのかなどを指定します。
この項目では主なよく使われるデータ型をご紹介します。
整数型 | int | 整数の数字を入れるのに使用
-2147483648から2147483647までの数字を入力可能 |
浮動小数点数型 | float | 小数点以下もある数字を入力するときに使用
-3.402823466E+38 から -1.175494351E-38 |
文字列型 | char(〇〇〇) | 固定長文字列、 最大255文字を収納可能 |
文字列型 | varchar(〇〇〇) | 可変長文字列 、UTF-8の場合最大21844文字 |
MySQLの代表的なコマンドとその実行結果
MySQLにログインする
MySQLはログインするのにもコマンドが必要です。下記の2のコマンドでログインが可能ですが、最初の「$ rails db」を使うことが多いです。ログインできるとカーソル部分に「mysql>」と表示されます。
1 |
<span class="gp">$</span> rails db |
1 |
<span class="gp">$</span> bundle <span class="nb">exec </span>rails db |
MySQLからログアウト
操作の方法も知っておきたいところですが、先にログアウトの方法を確認しましょう。「exit」または「quit」コマンドを実行しするだけですので、非常に簡単です。また、「Ctrl + d」のショートカットキーでも、ログアウトできます。
1 2 |
$ mysql> exit Bye |
データベースの作成
データベースの作成方法を見ていきましょう。データベースを作るには「CREATE DATABASE データベース名」を入力するだけです。この時データベース名に特に決まりはないですが、最後に「db」とつけることと、その前の部分を「_」を使ってつなぐことが慣例となっています。
この時点では外側の見えない箱を作るだけですので、何かしら制作物ができるというわけではありません。
1 2 |
mysql> CREATE DATABASE test_db; Query OK, 1 row affected (0.01 sec) |
「(0.01 sec)」の部分は作成にかかった時間なので、かかった時間によって変化します。
データベースの確認
先ほど作ったデータベースを確認してみましょう。「SHOW DATABASES」と入力します。先ほどの「test_db」が作られているのが分かります。また、それ以外にもデフォルトのデータベースが作られています。
1 2 3 4 5 6 7 8 9 10 11 |
mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | | test_db | +--------------------+ 5 rows in set (0.01 sec) |
データベースの削除
データベースを削除するときは「DROP DATABASE」のコマンドを使います。コマンドの後に削除したいデータベースの名前を入力して指定します。
1 2 |
mysql> DROP DATABASE test_db; Query OK, 1 row affected (0.04 sec) |
テーブルの作成
いよいよテーブルにデータを入れていきます。データを作るには下記のように記入していきます。
1 2 3 |
create table テーブル名 ( フィールド名 データ型, ); |
例としてidをint型で収納し、ユーザーネームをvarchar型で収納するテーブルの作成のコマンドをご紹介します。なお、この状態ではデータが収納できるように型を作ったのみです。
1 2 3 4 |
create table user( id int, username varchar(255), ); |
データの挿入
先ほど作ったテーブルにデータを挿入していきましょう。
「INSERT INTO」というコマンドを使います。先ほど作成したテーブル「users」を指定し、入力したい内容を記載していきます。
1 2 |
mysql> INSERT INTO users (id, name) VALUES (1 ,'山田太郎'); Query OK, 1 row affected (0.01 sec) |
また、下記のように「(id,name)」の部分を省略して書くこともできます。
1 2 |
mysql> INSERT INTO users VALUES (2, '田中花子'); Query OK, 1 row affected (0.01 sec) |
また、下記の方法を使えば複数のデータを一度に入力することも可能です。
1 2 3 |
mysql> INSERT INTO users VALUES (3, '鈴木一郎'), (4, '佐藤次郎'), (5, '鈴木良子'); Query OK, 3 rows affected (0.01 sec) Records: 3 Duplicates: 0 Warnings: 0 |
データの検索
入力したデータを検索したいときあ「SELECT」コマンドを使います。
1 2 3 4 5 6 7 8 9 10 11 |
mysql> SELECT * FROM users; +------+-----------+ | id | name | +------+-----------+ | 1 | 山田太郎 | | 2 | 田中花子 | | 3 | 鈴木一郎 | | 4 | 佐藤次郎 | | 5 | 鈴木良子 | +------+-----------+ 5 rows in set (0.00 sec) |
まとめ
いかがでしたか?今回は、MySQLの基礎について説明しました。
MySQLはコマンドという文字列を入力して操作していくので、初めてする方には敷居が高く感じたり、難しく思うという場合もあります。しかし、きちんと学んで意味が理解できるとさほど難しくありません。
この記事が、MySQLやプログラミングの学習に役立つと嬉しいです。