このページについて
個人的なSQL学習のノートとして残しています。
間違っている箇所などありましたら、ご指摘頂けると幸いです
第一回は、SQLとmySQLの概要についてざっとまとめてみました。
SQL と mySQL について
下の図は私たちがSQLを使っている時に何が起きているのかを簡易的に表したものです。
このようなネットワーク構造をクライエント/サーバーアーキテクチャーと言います。
実際は、複数のサーバとクライエントが繋がっていたりするなど、もっと複雑になっていますが、ここではわかりやすいようにサーバーとクライエントの一対一と仮定して説明します。
SQLは(Structured Query Language) の略であり、クライエントがサーバーの持っているデータにアクセスしたいときに使う言語と考えてよいでしょう。サーバーはDBSM(database management system) と呼ばれるソフトウェアでデータの管理をしています。mySQLはDBSMの一つです。mySQL以外にも、Oracle、DB2、SQL Server など色々な種類がありますが、オープンソースであり、かつ様々なプラットフォームで利用できるmySQLは最もよく使われているDBSMでしょう。

Relational Database とは
mySQLではデータを RDB (Relational database model) というデータ構造で管理しています。簡単にいうと、行(Column)と列(Rows)からなる表形式のモデルを指します。舌の図にあるように、各列を示す値が入っている行を PK(Primary Key) と呼び、一つ一つの値が入っている枠を Cell と言います。一つの表に複数のPKを持たせることも可能です。そのようなケースを Composite Primary Keyと言います。更に、PKとは別で、各列を定義できる行を Non-Priamry Keys といい、mySQLでは Unique Keysという特別な名前を持っています。

表内の関係性
表の中での Relations には様々な種類がありますが、One-to-manyが最も一般的でしょう。many-to-many は、複数の表があったときに、それぞれの表を他の第三者の表を介して関係性を表す際などに使用されます。
タイプ | 例 |
---|---|
one-to-many | お客さんの名前 -to- [電話番号、住所、年齢] |
many-to-many | お客さんの名前と売った店員の関係を表した表 -to- お客さんの名前と住所の表 |
MySQL を触ってみる
MySQLを開き、ローカルのコネクションを選択します。
Schema
mySQLを開き、ローカルホストを選択すると、下のような画面が出てきます。
この左のバーにあるscheme というのは、データの定義や内容の入ったダイレクトリーのようなものです。

表(テーブル)のアイコンをクリックすると、下のような画面がでてきます。
ここで表の性質を定義していきます。

意味 | |
---|---|
PK | Primary Key (各列を一意に示す。) |
NN | Not Null |
UQ | Unique key(各列を一意に示し、かつ複数存在できる) |
BIN | Binary |
UN | Unsigned |
ZF | ZeroFill |
AI | Auto increment |
G | Generated |