MySQLTweetこんにちは、志田です。前回に引き続き、リレーショナルデータベースについてはじめから勉強していきましょう。前回のまとめテーブルは、縦方向に並ぶ情報である「列」と、横方向に並ぶ「行」からなることを、前回勉強しました。この縦方向に並ぶ「列」に対し、データの「型」を決めました。今回は、まずデータベースを作り、そこに表を追加してみましょう。データベースの作成まずはデータベースを作成し、そこにテーブルを作るのが基本のやり方です。Excelでいうと、新しいExcelのファイルを作ってブック(データベース)を作成し、シート(テーブル)を作るという動作に似ています。MySQLに接続して、データベースを作成してみましょう。データベース名;このコマンドでデータベースを作成することができます。大文字のコマンドは全て、MySQLの命令や、予約語といって、特別な意味のある単語です。(命令の書き方としては、小文字でもOKです。命令と自分が入力する内容の区別がつきやすいので、ここでは大文字を使うことにします)命令の終わりには、「;」を付けて、命令文が終わりであることを示します。して、データベースをいくつでも作成することができます。私達がExcelのファイルを操作するときも、どのファイルを開くか指定するように、データベースにおいても、どのデータベースを使うか、命令する必要があります。データベース名このUSEコマンドは、使うデータベースを切り替えることができます。接続した直後の状態だとMySQLは、入力されたデータベースを操作するコマンドをどのデータベースに対して実行してよいかわからないため、こうして利用するデータベースを指定してやる必要があります。表の作成では、clientデータベースに表を作成してみましょう。今回作成する表は、前回までに設計を行った、会社テーブル、部署テーブル、課名テーブル、担当者テーブルです。表の作成は、CREATE文を使います。会社テーブルを「company」として作成します。);表を作成するコマンドは、次のような文法になっています。制約、オプション...);前回までに考えたテーブルの構造と型の他に、「制約」というものが登場しました。制約とは、そのカラムの決まりです。NULL」という制約がついています。これは、データを入れるときに、データがNULLではダメですという意味です。NULLは、なにもない状態であることを指しています。「0」は数字のゼロで、「」は文字がないという意味の空文字を示しています。値そのものが入っていないことを表すのに、そのままでは表しにくいので「NULL」と表現しています。companyテーブルでいうと、どのカラムも空ではいけない、なにかしらの値を入力しなければダメという意味です。KEY」という制約がついています。これは、「このカラムはこの表で一意な値だ」つまり、このidさえ指定すればレコードを指定できる、というカラムに対してつける制約です。オプションというのは、カラムに補助的につける、まさにオプションです。次の表で示す中にある「デフォルト」などは、有名なオプションのひとつです。制約やオプションはこの他にもいくつかあります。このカラムに何もデータを指定しないとき、デフォルトで入る値を指定します。自動で、1から順に連番をつけます。idなどのカラムに利用すると便利です。列の中で、他と同じ値が取れないことを示します。ログインメールアドレスやユーザー名など、他の人と被っては困るものに付けます。id:データを入れれば自動で数字が割り振られる。name:255文字までの可変長文字列で、空になってはいけない。address:255文字までの可変長文字列で、空になってはいけない。tel:15文字までの可変長文字列で、空になってはいけない。いうような構造の表になりました。その他の表も、同じように作成してみます。部署テーブルを、「group」として作成してみましょう。NULL,...(略)作成しようとしましたが、エラーが出て作成出来ませんでした。MySQLは、エラーのある付近を示してくれています...どうやら、「group」という名前がよくなかったようです。予約語をテーブル名にすると、エラーが表示されます。他にもあるので、テーブル名を決める際には確認してください。groupsがエラーで作成できなかったので、「groups」にして作成しましょう。);今度はうまくいきました。続いて、残りのテーブルも作成します。sec)これで、全てのテーブルを作成することができました!作成したテーブルの一覧を見るには、このコマンドを発行します。sec)4つの表ができていることが確認できました。この表がどんな構造だったのか確認してみます。表の構造を確認するには、このコマンドを発行します。sec)この表ではそれぞれ、以下の情報を示しています。NULL(NULLはダメ)。YESなら、NULLが入ってもOK・Key:キー項目であるかどうか。・Extra:その他、付けられているオプションこのようにして、データベースを作成し、テーブルを作り、テーブルの構造を確認しました。作成したテーブルですが、後から見返すと、おかしなところを発見しました。NULL制約がついています。今の時代、メールアドレスを持たない人は珍しいですが、それでもまさとしが先週もらった名刺には、メールアドレスがないものもありました。ここは、メールアドレスは必須入力ではなく、任意入力にすべきです。データベースを修正しましょう。データベースの修正には、以下のコマンドを使います。制約、オプション;実際に、personsテーブルにコマンドを発行します。VARCHAR(255);イメージとしては、カラム情報の上書きです。制約がない状態でカラムを上書きしました。テーブルの構造が変わったかどうか、確認します。sec)きちんと変更され、emailのNULLがYESになっていることがわかりました。今回のまとめ今回は、以下の3つのことを学びました。新しい修正事項などに、より柔軟に対応できます。byスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。