このページについて
このページではMySQLでよく見る・よく使う用語や、押さえておきたい用語を紹介しています。かなり最深部でしか見ないような用語に関しては書いていませんが、MySQLを使っていく上では知っておくべきとか知っておいて良い用語なんかを紹介しています。
Bツリー
データベースインデックスによく使われるツリーデータ構造の名前。常にソートされ続けて正確な一致や大小の比較など、高速な検索を可能にします。これは簡単なイメージでいうと、スタート地点は1ヶ所だけどそこから2つに分かれて、さらにその分かれた先でまた2つに分かれているっていう感じの構造です。
文字の比較はどうしてんの?って話ですが、それはストレージエンジンや文字セットとかがを使って文字を数値化してソートしてます。
C言語関係
CやC++といったプログラミング言語が存在しますが、MySQL自体はCやC++などで開発されています。CやC++は超簡単に言えば汎用性が高いプログラミング言語って感じです。しかし実際にデータベースへのアクセスとか操作などはSQL,PHPの2つを使います。
DDL
データ定義言語(Data Definition language)というもので、データを格納するとき(定義するとき)に使う言語。Create文、Drop文、Alter文などが該当します。
DML
データ操作言語(Data Manipulation Language)というもので、データベースを管理・操作するときに使う言語の1つです。Select文、Insert文、Update文、Delete文などが該当します。
InnoDB
MySQLコンポーネントの名前。MySQLの現在バージョンにおいてはデフォルトで使用されるストレージエンジンとなっています。
NULL
NULLはデータが存在しない(値が無い)ことを示す特殊な数値です。PHPとかいろんな言語でも見ますね。この「何もない」というのは「何もないという値が存在している」って感じです。値がないなら0でも良くない?と思われるかもしれませんが、0はちゃんとした数値なのでそれは使えません。そして同様にスペースキーで空白を入れるってのも、使えません。なので「値がない」という場合にとりあえずデータを入れなければならないって場合に使うのがNULLです。
ちなみに値を何も入れない場合はエラーとなって正しい値を入れてくれって出る場合と、何も出ない場合があります。エラーが出る場合はNOT NULL制約というものが設定されている場合に出ます。何もないってケースも当然あり得ますが、その場合はデフォルトでNULLを自動的に入れてくれる設定になっています。
NOT NULL制約
PRIMARYキーに対して使われる制約です。それ以外のキーに対しては基本的にはNULLが使えますが、PRIMARYキーだけはNULLが使えません。NOT NULLはその名の通り、NULLが使えないっていう制約です。
PHP
プログラミング言語の1つ。MySQLは基本的にはコマンドラインでコマンドを送信して更新やら色々するんですが、PHPを使えばわざわざコマンドラインを使わなくてもデータを取得したりなんやかんやってできます。
インデックス
テーブルの行(レコード)の検索を高速にするための機能のこと。特定のカラムまたはカラム全ての阿知を示すBツリー構造を作成します。中には一意のインデックスといってそのテーブル内で固有のインデックスである必要がある種類も存在します。
カラム
各テーブルの縦列の名前のことです。下記の表で言うと商品名・単価などの項目名とも言える部分のことをカラムと言います。
商品名 | 単価 |
コーラ | 100 |
カード | 150 |
クエリー
1つ以上のテーブルから情報を読み取る操作のことを言います。
行(レコード)
行とは縦方向に区切っていくことを言いますね。そしてMySQLでは各行のデータのことをレコードと言います。以下のテーブルでいうとコーラというレコード、カードというレコードがそれぞれ登録されていることになります。
商品名 | 単価 |
コーラ | 100 |
カード | 150 |
基本的にはレコードを追加する際にはカラムのデータも同時に入れることになります。未確定だったりNullが扱えるカラムの場合は、何も入力しなくてもOKですがNOT NULL制約が設定されている場合はエラーとなります。
主キー
PRIMARYキーとか主キーとかいろんな言い方がありますが、基本的にはこれで呼ばれています。このキーに設定した場合はNULLが扱えなくなります。そしてそのテーブル内で一意である必要があるので、キーはそれぞれ別のデータを登録する必要があります。
自動インクリメント
インクリメントとは数値に+1する機能のことです。自動インクリメントとは、カラム内の数値を自動で加算してくれる機能。よく使われるのは主キーの内部IDとしてですね。主キーは同じデータを登録できず、かつNULLも使えません。なのでそれぞれ固有の数値なりテキストなりを入れる必要があるんですが、自動インクリメントを設定したカラムを主キーに設定すると何も入力しなくても数値を自動で入れてくれます。
この自動インクリメントはテーブル作成時に指定する方法と、後から付与する方法があります。どちらにせよ自動で数値を入れて+1してくれるので、主キーとして使うにはかなり便利です。
ストレージエンジン
MySQLのコンポーネントの1つで、データを操作する時に使われます。
正規化
格納するデータをデータベースに格納できるようにし、それに合わせたデータベースの作成をすること。別の言い方をすれば、重複する部分は分離して別のテーブルに保存し、それぞれで管理する。そうすることでレコード全体を編集する必要なく、該当部分だけ修正すれば他にも全て適用されることになります。
正規化にはステップがいくつかあり、1から3までは基本的に行われるそうです。しかしそれ以上の正規化は複雑かつ3までとは方向性が異なるようで実践されないのが多いようです。
テーブル
各データベースには複数のテーブルを作成することができます。このテーブルにレコードなりカラムなり、適した方法でテーブルに保存します。
まとめ
ここに掲載したのはほんの一部でしかありません。まだまだ用語はいっぱいありますが、それでもMySQLの基本的な使い方を知るために必要な用語はこのぐらいです。全て一気に覚えようとはせず、少しずつ覚えていきましょう。
- MySQLの用語集
- MySQLでよく使う・よく見る用語集です。知っておくと検索とかも便利になります。
- ローカル環境の整え方
- MAMPを使ってローカル環境を整える方法を紹介。
- MySQLデータベースに接続する方法
- MAMPのデータベースと、レンタルサーバーのデータベースに接続する方法
- MySQLの基本コマンド
- MySQLへ接続してまず使う基本コマンドの一覧です。
- データベースの作成
- ターミナル・phpMyAdminでのデータベースの作成方法をそれぞれ解説。
- テーブルの作成
- ターミナル・phpMyAdminのそれぞれでテーブルを作成する方法と、作成と同時にPRIMARYやUNIQUEの付与などの方法を紹介。
- キーの種類と機能
- カラムに設定出来るキーの種類と機能を解説。
- 正規化
- リレーショナルデータベースを使う上で必須となる正規化について。データの追加や更新などで手間を省く方法としても使えます。
- ALTER TABLE
- ALTER TABLE構文を使って作成済みのテーブルに対して操作を行う。PRIMARYの付与やカラムの移動・名前変更・追加・削除なども行えます。
- INSERT構文
- INSERT構文を使って指定テーブルにデータ(行)を挿入する方法の解説です。
- UPDATE構文
- UPDATE構文を使って指定テーブルのカラムを一括更新、もしくは指定レコードの指定カラムのみを更新する方法の解説です。
- SELECT構文
- SELECT構文を使って指定したテーブルからデータを取得する方法の解説です。
- JOIN
- JOINを使ってテーブル同士を結合する方法の解説です。