データベースを試す?MySQLをインストールする。

 

 

注意。無料にも制限が、条件がある。

無料プランのはずがたった1日の利用で750万円をGoogleから請求された企業が破産寸前に
ウェブサイトやアプリケーションを簡単に構築できるクラウドサービスは便利なものですが、その課金システムは非常に複雑です。通信量や利用した計算リソースに応じて課金する従量課金制のサービスもあれば、条件を満たすことで無料で利用できるサービスもあり...

大丈夫かな?

データベースは、データ管理システムを選べたり、何やら色々と使い勝手が違う模様。

【クラウドDB比較】無料枠で提供されるサービスレベル - Qiita
はじめにクラウドサービス多すぎる。なんとなく使いたいものは決まっているのですけど、自己学習も兼ねてふわっとサービスレベルを比較してみる。VPS/PaaS/FaaSの比較はこちら: 【クラウドV…

 

 

progateを使ってみたけどわからない。

MySQLでデータベースを作成しよう
Progateはオンラインでプログラミングを学べるサービスです。プログラミングを学んでWEBアプリケーションを作ろう。

 

MySQLをインストールする

とりあえずこのコマンドを叩いてみた。

brew install mysql

そしたらインストールが始まった。(成功する前に色々ゴタゴタやったけど失敗していた。不思議だ)

 

インストールが終わった後にこんなメッセージが。

We've installed your MySQL database without a root password. To secure it run:
    mysql_secure_installation

MySQL is configured to only allow connections from localhost by default

To connect run:
    mysql -uroot

To have launchd start mysql now and restart at login:
  brew services start mysql
Or, if you don't want/need a background service you can just run:
  mysql.server start

MySQLという管理人だけでなく、倉庫も作ってくれたの?

よし、では起動しよう。

 

mysql -uroot

ところがどっこい。

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

なんのことかわからないけどエラーをそのままググってみると同じことで悩んでいる人がいた。

mysqlが起動できない - Qiita
#事象mysqlを起動しようと思って以下のコマンドを打つと。$ mysql -u root以下のエラーが出力されます。ERROR 2002 (HY000): Can't connect to…

結局、

mysql.server restart

で次のような結果に。

よくわからないけど「制限」がかかるが起動できそうなので断っておく。

コンソールの表示は次のよう。

 

ERROR! MySQL server PID file could not be found!
Starting MySQL
.... SUCCESS!

 

エラーなのか成功したのかよくわからないが成功した模様。

満を期して

mysql -uroot

するとこう曰う。

いらっしゃい!

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.23 Homebrew

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

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>

これは、データーベースへの窓口ではないのか。

窓口を終了するときは

quit

を入力するようです。

初めてSQLでコマンド入力

 

status

で、サーバーの情報が見られると言うので叩いてみる。

 

ここで疑問が浮上。一体、いつデータベースを作ったのか。

MySQLは管理人のはず。倉庫をいつ作った?どこに作った?かわからない。

同じような疑問を持っている人がいました。

そもそもデータベースって何で出来ていて、どこの何にどう保存されるのでしょうか。。
### 質問したいこと私は今、データベースの勉強をしています。ネットや書籍を中心に情報を収集しております。RDBや、DBS、SQLなど、様々な知識を学ぶことはできるのですが、1つ私の中で大

どうやら、MySQLという管理人が倉庫も勝手に作ってくれる、、、、のか?

 

と思ったらこちらでシンプルな回答を発見。

mysqlでのデータの保管場所について教えてください
データベース初心者です。mysqlで作ったデータは個人のpc上に保存されているのでしょうか。それともmysqlが管理するサーバー上に保管されているのでしょうか。
  • amazonなどの「借りるデータベース」はネットを経由してamazonのサーバーに作られる。
  • MySQLをダウンロードしてデフォルトのままだとインストールされたPCのどこかに作られる。

 

 

気を取り直して、いくつかのコマンドを打ってみます。

【MySQL】MacでMySQLを使う - Qiita
MySQLをインストールbrew install mysqlログイン/ログアウト//ログインmysql -u -p//ex)rootでログインする場合mysq…

こちらを参考にしました。

mysql> show tables;

するとこうでる。

ERROR 1046 (3D000): No database selected

データベースを選ばなくちゃいけないらしい。

そもそもdtabaseがあるのか知らん。

mysql> show database;

ありました。

データベースは、1つかと思っていたのですが。複数あるようです。

データベースが何かわからなくなってきました。

データベースを作ろう

なので作ってみます。

CREATE DATABASE sunshower;

成功したようです。

あとは、このページに従って触ってみましょう。

use sunshower;

データベースを選ぶコマンドがありました。

できました。

今使っているデータベースを確認するコマンドは次のよう、。

SELECT DATABASE();

 

 

もう一度、やってみます。

mysql> show tables;

するとこうでる。

Empty set (0.00 sec)

どうやら、テーブルを作らないといけないようです。

tableを作ろう

tableを作るときには、列と行のデータの型を指定します。

データベースの世界で

  • 列(縦方向の集まり)はコラム
  • 行(横方向の集まり)はレコード

と呼びます。

次のコードでは

データ型がINT型(数値)のidという名前のコラム

データ型がVARCHAR(100)(文字列)のnameという名前のコラム

を作っています。

CREATE TABLE sunshower (id INT, name VARCHAR(100));

実行結果は????

Query OK, 0 rows affected (0.01 sec)

 

行は影響を受けていないと言います。中身がないけど、枠だけはできたのでしょうか?

再び

SHOW TABLES;

どうやら、sunshowerというデータベースの中にsunshowerというテーブルができたと教えてくれているようです。
参考はこちら

MySQLでテーブル一覧を確認・表示する(show tables の使い方)
テーブル一覧を確認・表示するには「SHOW TABLES」文を使います。 ここでは MySQLコマンド「SHO ...

行が一つセットされているとのこと。何のことかわかりません。

 

次のコマンドで中身が見られるそうです。

DESCRIBE menus;

Nullの列は中身がないとYESと表記される模様。

 

中身を入れてみます。

INSERT INTO sunshower (id, name) VALUES (1, 'ピカピカ');

中身を見るのは次のコマンドで。

SELECT * FROM sunshower;

できました。

もう一回入れたらどうなるでしょうか?

INSERT INTO sunshower (id, name) VALUES (1, 'ピカピカ');

なんと・・・idが被って二つ入ってしまいました。

 

一度に何個かの行を入れてみます。

INSERT INTO sunshower (id, name) VALUES (1, 'はればれ'), (2, 'さめざめ'), (3, 'ジメジメ');

できました。

 

DELETE FROM sunshower WHERE name= 'ピカピカ';

 

2つとも消えました。

更新するときは次のよう。

UPDATE sunshower SET name='ひえびえ' WHERE id = 3;

 

ひとまずここまで。

以下、このサイトが参考になります。

【初心者でもわかるMySQL入門】MySQLの使い方を基礎からマスター
ここは、MySQLを勉強したい方向けの入門サイト。 初心者にもわかるよう、ゼロから丁寧に解説していきます。 最 ...

 

pythonとSQLを使ってみた。結局何が違う?

今のところ、データが収納されている倉庫がdatabaseの場合はSQL、csvファイルの場合はpython、といった違いしか感じられませんでした。

SQLでもpythonで試してきたようなメソッドがあるのかどうか、わかりません。

 

SELECT * FROM テーブル名 WHERE カラム名 IS NOT NULL;

SELECT * FROM テーブル名 WHERE カラム名 IS NULL;

SELECT * FROM テーブル名 WHERE カラム名=値;

といった検索ができるようです。

計算もできるようです。最大値や平均値、項目の数が求められるようです。

SELECT AVG(カラム名) FROM テーブル名;

 

詳しくはこちらのステップ7を参考に。

【初心者でもわかるMySQL入門】MySQLの使い方を基礎からマスター
ここは、MySQLを勉強したい方向けの入門サイト。 初心者にもわかるよう、ゼロから丁寧に解説していきます。 最 ...

 

やってみよう。

CREATE TABLE score (id INT, score1 INT, score2 INT, score3 INt);
INSERT INTO score VALUES (1, 9, 4, 6), (2, 3, 5, 9), (3, 7, 1, 5), (4, 6, 7, 3);
SELECT * FROM score;

平均値を取得してみます。出てくるのは、カラムの平均値です。

SELECT AVG(score1) FROM score;

出してくれました!

例えばid=1の人のスコアの平均を出すにはどうしたら良いのでしょうか?

こんなコードを見つけました。

SELECT (score1 + score2 + score3) / 3 AS average FROM score;

出たー!!!!

テーブルに反映されているかなと期待。

ダメでした。

これでいけるかな?

INSERT INTO score (average) VALUES (average);

ダメでした。

 

検索したら出てきました。

MySQLでカラムを追加する「ALTER TABLE ~ ADD」
MySQLで、既に作成済みのテーブルに対して新たにカラムを追加する方法を紹介します。 【ALTER TABLE ~ ADD】既存テーブルにカラムを追加する [c…

ALTER TABLE テーブル名 ADD 新規カラム名 型情報 AFTER 既存カラム名;

ALTER TABLE score ADD average INT AFTER score3;

できた??

できたっぽい!

書き入れるのはUPDATEでいいのかな?

UPDATE score SET average=(score1 + score2 + score3) / 3 WHERE id = 1;

できたっぽい!

SELECT * FROM score;

書き入れることができました。

ただ、データの型がINTだったからか、小数点がつきませんでした。

データの型をfloatにしておけば・・・今から変更できるかな?

 

quitしたら、データはどうなるのか?

Bye

そしてもう一度起動。

mysql -uroot

そして

 

scoreはテーブルの名前でした。区別できるように表記しよう。これからは。

データベースsunshowerの中にテーブルscoreを作ったのでした。

残っていました!!!!

 

 

 

insert into seiseki values (‘Yamada’, 85, 72, suugaku + kokugo);

 

 

asで新しいコラムを作ったり、viewで見たいコラムを指定したりできるよう。

カラムに別名を付ける(AS句)
MySQL では SELECT 文を使ってデータを取得する時に AS 句を使いカラムに対して別の名前を付けることができます。ここでは MySQL でカラムに別名を付ける方法について解説します。
ビューを作成する(CREATE VIEW文)
MySQL では新しいビューを作成するときに CREATE VIEW 文を使用します。ここでは MySQL でビューを作成する方法について解説します。

pythonで管理できる?

こんな記事を見つけました。

 

 

 

SQliteとMySQLの比較。

sqliteとmysqlの違いとメリットデメリット | 在宅ネットでコツコツお金を稼ぐ

 

 

mysqlclient Python3でMySQLに接続する | Python学習講座
Python 3 から MySQL を触る - Qiita
Python 3 から MySQL を操作する方法を調べると Python 2 の情報や古い情報が多くヒットしてわかりづらかったのでまとめる。環境は Python 3.6 を利用している。パッケ…
python3でsqlite3の操作。作成や読み出しなどの基礎。 - Qiita
この記事にはpython3でsqlite3を操作して、データベースの作成や、編集の基礎的なことをまとめてます。家計簿や収入、株式投資のためにデータベースを利用していきたい。本当に基礎的なことなので…

コメント