この記事はJavaとPythonを基礎から学びたい私のための Advent Calendar 2024の23日目の記事です。学べるところまで学びます。
非常に複雑なので、導入だけまずはやっていきます。
MySQLとは
大量のデータが入ったデータセットを扱うための言語で、データベース言語と呼ばれているそうです。データベースのどの範囲に何をするかといったことを命令します。そこら辺のPythonとかC#とかとは違うもののようです。
導入
上のサイトからダウンロードして、セットアップをするだけで行けました。
すべて終わると上の写真のようになりました。(どこを隠したらいいのかわからなかったので、とりあえず隠した方がよさそうなところを隠しておきました。)
これも一緒に出てきます。こちらのMySQL Shellを使っていろいろ作業を行っていきます。
使い方
MySQLでは「JS」,「PY」,「SQL」の3種類が選べるようです。
それぞれ「Javascript」,「Python」,「SQL」です。使う言語を変えられるようです。今MySQL JSと表示されていますがJavascriptでなくSQLを使ってみたいので以下のように入力します。
\SQL
これでSQLの言語を使って作業することが可能です。
その後、サーバーに接続するようです。接続しないと、
MySQL SQL > SELECT database();
ERROR: Not connected.
とこのようにエラーが出て先に進めませんでした。
サーバー接続の様子を以下に載せておきます。
MySQL SQL > \connect root@localhost
Creating a session to 'root@localhost'
Please provide the password for 'root@localhost': ********
Save password for 'root@localhost'? [Y]es/[N]o/Ne[v]er (default No): Y
Fetching global names for auto-completion... Press ^C to stop.
Your MySQL connection id is 00 (X protocol)
Server version: 8.0.40 MySQL Community Server - GPL
No default schema selected; type \use <schema> to set one.
MySQL localhost:00000+ ssl SQL >
消した方がよさそうなidの部分とかは変えてありますが、そのまま行ったことを載せています。
解説
①まずは接続するためのコマンドを
\connect root@localhost
これを入力します。接続先はlocalhostとなっていますが、これは自分自身のパソコンのことを指しているようです。次に
Please provide the password for 'root@localhost': ********
Save password for 'root@localhost'? [Y]es/[N]o/Ne[v]er (default No): Y
設定したパスワードを聞かれますが、これは導入時に設定したもので行けました。保存もしてくれるみたいです。あとは自動で接続してくれます。" MySQL localhost:00000+ ssl SQL >"が出てくれば接続されているはずです。これでやっとスタートラインに立てました。
使ってみる
データベース作成
まずは処理を行うためのデータを作ってみようと思います。
> create database Testdb;
Query OK, 1 row affected (0.0049 sec)
create database 名前;で作ることができるみたいです。OKと出てきているのでおそらくできていると思います
データベース確認
念のため、今ちゃんとデータベースができたか確認します。
以下でデータベースの全体を見ることができるようです。
show databases;
結果:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sakila |
| sys |
| testdb |
| world |
+--------------------+
7 rows in set (0.0013 sec)
こんな感じで表として出てくるみたいです。ちゃんと中に今作ったtestdbが入っていました。が、worldとかsakilaとかいう謎のデータベースもありました。これらはMySQLが出しているお試しのデータベースみたいです。とりあえずsakilaを使ってみます。
データベースを出す
今回は標準で入っている「sakila」を試しに動かしてみます。
use sakila
これでsakilaを選択できます。Default schema set to sakila
.とか出てきますが、その中の「schema」というのはデータベースみたいな感じのもののようです。
テーブルを見る
テーブルを見ることができます。
SQL > show tables;
+----------------------------+
| Tables_in_sakila |
+----------------------------+
| actor |
| actor_info |
| address |
| category |
| city |
| country |
| customer |
| customer_list |
| film |
| film_actor |
| film_category |
| film_list |
| film_text |
| inventory |
| language |
| nicer_but_slower_film_list |
| payment |
| rental |
| sales_by_film_category |
| sales_by_store |
| staff |
| staff_list |
| store |
+----------------------------+
23 rows in set (0.0020 sec)
32個もテーブルがあるようです。ここでいうテーブルは、データのまとまりの名前のようなものです。
テーブルの中身を確認する
今回は上のテーブルのうち、「city」の中身を確認してみます。確認するには
select*from city;
と入力するようです。from cityでcityを指定して、select*ですべてを選択しています。*は全選択のようです。
今日の分ここまで
まとめ
MySQLはデータベースを扱うことを専門とした言語で、PythonやJavascriptとは違う。ただし、これらの言語を使うことができる。
データセットを選択し、表示することができる。
参考文献