1
0

【備忘録】SQLの勉強

Posted at

概要

今回は、MySQLを利用して学習を行なっていく。
自分自身はSQLはほとんど触っていないため、高度な内容は今回行わない。
MySQL、PostgreSQL、GoogleBigQueryなどの操作の基本を学ぶためにも記載しておく。

基本的に環境構築と、参照系のSQLと挿入系のSQLを知る事ができればよいとここでは考えている。

環境

  • 今回はmacOSにダイレクトでいれる。
  • MySQL5.7を使用する。

事前説明

そもそもデータベースって何?って思うかもしれないのでここで説明。

  • データベース(DB)とは、、検索・蓄積が容易にできるように整理された情報の集まり。DBと訳される。
  • データベースマネジメントシステム(DBMS)
    • DBを管理するコンピュータシステムのこと。

当たり前だが、DB自体は色々なところで利用されている。
WebサイトやSNS、アプリケーションなど。。

→なんでDBを使うのか?

  1. 大量のデータから必要なデータを取り出す
    1. Excelだと大量になったら重くて使えなくなる。
  2. 大人数でデータを共有して利用する。
  3. データを保護するため。
    1. 冗長構成などにしてデータを保護したり、アクセス権を特定したりも可能。

DBの種類

RDB、リレーショナルデータベース

オープンソースで無料で使える。

  • MySQL:いろんなところで使われている。
  • MariaDB MySQLから派生している。
  • PostgreSQL

商用(有料)のDB

  • Oracle Database
  • SQL Server (Microsoft)
    など。

キーバリュー型データストア

検索に使うKeyと、Valueの組み合わせだけの単純な形。
Redisなどで使われる。

### オブジェクト指向DB

現在はあまり使われていない・

XMLDB

XMLをDBに使いやすくできるようにしたもの。インターネットで使用されるもので使われる。

SQLについて

SQLとは。。
データベースやテーブル、行や列wぽ扱うための言語。
IBMが作成したSEQUELが元とも言われる。

select * from users where age >= 20

みたいな感じ。

SQLにおいて基本的な形、標準SQLという考え方がある。
しかしMySQLで使えてもPostgreSQLで使えないというような、SQLの方言がいくつかあったりするので注意する。

なのでまずは標準SQLを学ぶと応用が効きやすい。

基本記述ルール。

  • 大文字と小文字は区別されない。ただし読みにくいので注意。最近は小文字が多い。
  • SQLの最後には、セミコロン;をつける
  • 文字Saitoと日付2024などは、シングルクウォーテーション''囲う。
  • 単語は半角スペースもしくは改行で区切る。
  • SQLは全角でかかない。

RDBMSの基本用語

  • データベース データを管理するもの。全体的なもの。
  • テーブル
    • Excelでいう、表。データベースの中に複数作れる。
    • ユーザのテーブル、商品のテーブルみたいな感じ。
  • 列(フィールド、カラム)Excelでいう列。
  • 行(レコード、ロウ)ともいう。ここには、idが割り振られる。

スクリーンショット 2024-08-13 22.55.54.png

  • クエリ
    • データの検索や更新などの要求をDBに送信すること。

参考サイト
https://academy.gmocloud.com/wp/know/20160425/2259

データの型

データ型とは。

テーブルを作成する時、それぞれの列に指定した形式のデータしか入力できないように設定する。

具体的には、

  • 数値型
    • int:整数。1,2,3
    • tinyint:小さな整数 -128 ~ 127
    • float:小さい浮動小数点 -3.4 ~ -1.17~~
    • double:普通の浮動小数点
    • int unsigned
      • 数値は符号なしとすることができる。これにより、扱える数が増える。
    • tinyint(1)
      • true,falseを使う事ができる。
      • 内部的には1,0で管理されている。
      • ただし、MySQLでは0とnullがfaulse、それ以外はtrueとなる。
    • nullは、データが存在しない状態。
  • 文字列型
    • char型キャラ
      • 255文字まで使える。文字列を格納する時、指定した長さになるようにされる。
      • 商品コードで5桁固定"CD123"なら、char(5)で定義する
    • varchar型( バーキャラ)
      • 可変長の文字列だが、255文字までの場合。
      • メルアドみたいな、文字数が決まってないもの。sample@example.comみたいな
    • text(テキスト)
      • 長いものを使うときに使う。65535まで。
  • 日付型
    • date型 日付を表す。1000-01-01から、9999-12-31まで
    • datetime 日付と時刻を表す。
    • time 時刻を芦原図。

floatはあまり使わず、doubleを使っている。

環境構築

mysqlと、mysql workbenchという管理ツールを使用していく。
macでは、homebrewか、cloudにあるDBを使ってインストールすることも可能。

windowsでは結構つまづく部分があったりするらしい。
XAMPPもしくはMAMP、またはクラウドの無料枠を利用していく。

そもそもMYSQLとは。

以下が公式ページ。ドキュメントのタブをひらけば、リリースノートなどを確認することも可能。

8.0が現在使われている。今回受講しているUdemyの内容では5.7を使用している。
ただし、補足があり、8.0.xを利用する事とする。(8.1.xでは動かないらしい。)
9.~~が開発用で使われている・

  • オープンソースのRDBMSの一つ・。
  • 無料で利用可能。
  • 2010年からオラクルで利用可能。
  • シェアが高い。
    • 以下のサイトで、DBのシェア率を確認することができる。

インストール(mac)

以下のサイトからインストールできる。

8.0.~~を利用する。この時は8.1がworkbenchに対応していないらしい。
今回自分はmac_os 14である。
そして、OSのCPUによって選択肢が出ている。

今回自分のPCはM1Proなので、CPUはARMを選択する。
x86だったら、IntelのCPUになる。

そして、DMG Archiveをダウンロードする。

スクリーンショット 2024-08-18 12.55.46.png

ダウンローラをアプリケーションで開いて、インストーラを選択。

スクリーンショット 2024-08-18 12.58.46.png

その後、指示に従いインストールを進める。
スクリーンショット 2024-08-18 12.59.25.png

パスワードの縁くりぷしょんは、上を選択。上が新しい。

スクリーンショット 2024-08-18 13.00.58.png

次に、rootユーザーのパスワードを入力して、Finishする。これはのちに使うので忘れないように。

システム環境設定からMysQLを検索できるようになる。この画面から、MySQLの軌道や停止ができる。画面を見ると、現在は起動状態になっている。

スクリーンショット 2024-08-18 13.05.57.png

Workbenchのインストール

以下のリンクからDLできる。

MysQLの公式ツールで、
DBの設計・作成・管理をヴィジュアル的に扱う事ができる。
ただし、バージョンによっては致命的なバグがあるので注意。
今回は、Productバージョン8.0.34を選択して、DLする。

スクリーンショット 2024-08-18 13.19.23.png

dmgを開いて、アプリケーションフォルダに入れる。

実際に接続してみる。

  • mysql
  • workbench
    を起動している状態にする。

workbenchの、/Database/Connect to Databaseを選択する。

スクリーンショット 2024-08-18 13.22.49.png

この状態になっているのをみたら、OKを押す。ホストネームとかは今回Localで使うのでそのまま。

スクリーンショット 2024-08-18 13.23.57.png

ここで、mysqlのrootのパスワードを入力する。

スクリーンショット 2024-08-18 13.24.50.png

上のタブを見ると、アクセスできているのが確認できる。

スクリーンショット 2024-08-18 13.26.03.png

データを取り込んでみる。

ワークベンチで、DBに接続した状態にしておく。

今回、サンプルでsqlをDLしてある。MySQLに取り込んだらすぐに使えるようになる。

まずはDBを作成する。
スクリーンショット 2024-08-18 23.12.13.png

すると、スキーマネーム(DBの名前)をいれる。

  • Schemaname
    • mydb
  • Character Set
    • utf8 (日本語も使えるようになる)
  • Collation
    • utf8_general_ci
    • 照合順序といい、ソートの順番の設定になる。

設定したらApplyを押す。
スクリーンショット 2024-08-18 23.16.22.png

すると、以下の画面がでる。(このSQLを実行するがよいかという内容である。)
Applyを押す。

スクリーンショット 2024-08-18 23.17.18.png

Schemaタブで、mydbを選択する。(ダブルクリック)

スクリーンショット 2024-08-18 23.18.57.png

その後、File/Open SQL Scriptを選択し、今回実行するSQL文を指定する。

スクリーンショット 2024-08-18 23.19.56.png

その後、雷のマークを押すと、SQLの読み込みが行われる。

スクリーンショット 2024-08-18 23.24.22.png

その後、Refresh All を選択する。

スクリーンショット 2024-08-18 23.27.54.png

mydbの中のtablesをクリックすると、色々出てきているのがわかる。

スクリーンショット 2024-08-18 23.29.04.png

DBについて

DBは架空の売り上げ図である。ER図(DBの構造を表す。)
ER図での線はテーブルの紐付けである。
各テーブルにて、それぞれの情報の表があるというイメージ。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0