Print Friendly, PDF & Email

~なぜ、バイト先ではデータベースを使っていたのか?~

研修成果

  • データベース初学者を対象にそもそもデータベースとは何か?ファイルとどう違うのか?どんなメリットがあるのか?というところからSQLを使い既存のテーブル操作ができる座学と演習の繰り返しにより学びます。また、データベースのテーブルはどのような考えのもと作られているのかを学びます。また、先の「 サーバーサイドプログラミング 」と組み合わせてJDBCを利用できるようにします。使用予定データベースはMySQLです。

達成目標

  • データベースの今日的意義を他者に説明できるWebアプリケーションとは何かを他者に説明できる
  • SQLのDML文を自力で組み立てて発行できる
  • テーブル設計を他者と協力して完遂できる

対象

IT企業の新入社員または第二新卒。自宅でもPCがあり、データベースの自習環境が構築できること。

前提知識

以下の5講座に参加していること。または、同等の知識があること。

カリキュラム例

オリエンテーション

・データベースの勉強の仕方
・環境構築の方法

STEP
1

データベースとは

(1) DDL,DML,DCL
(2) データ型と演算子
(3) 関数

STEP
2

DML

(1) 算術演算子
(2) 比較演算子
(3) 論理演算子
(4) 検索結果のソート
(5) 内部結合/外部結合
(6) 副問合せ
(7) 挿入、更新、削除

STEP
3

DML演習

(1) 課題の提示
(2) 個人ワーク
(3) チームワーク
(3) 振り返り

STEP
4

テーブル設計

(1) データ項目の洗い出し
(2) 正規化
(3) リレーションの確認
(4) データ型と制約の設定

STEP
5

テーブル設計演習

(1) 課題の提示
(2) 個人ワーク
(3) チームワーク
(3) 振り返り

STEP
6

まとめ

◎理解度チェックテスト

STEP
7

注1)受講者の習熟度に合わせて内容や時間配分を一部変更する場合があります。
注2)上記カリキュラム中に表記がなくともディスカッションや演習、小テストを随時行い、可能な限り個々人にあわせた柔軟な進め方をします。

価格(ノンカスタマイズの場合)

講師料:1日あたり15万円(税別)

テキスト代:3,000円(税別) ✕ 研修参加人数

新入社員の皆さんのFAQ

※MySQL Workbench 8.0CEで検証しております。

テーブルを直接編集できません。「Read Only」と表示されており「!」のマークの上にツールチップで"the table has no unique row identifier (Primary Key or Nut Null unique index)"と表示されます。

行を一意に特定できないためです。

主キーを設定すればテーブルを直接編集できるようになるはずです。

テーブルにPRIMARY KEYをつけたカラムを作れば編集できるようになります。

文字が小さくて見にくいです。

フォントサイズを変更します。

メニューから「Edit」→ 「preferences」をクリックします。

以下の図のように「Fonts & Colors」をクリックして「SQL Editor」「Resultset Grid」の文字サイズを確認してください。

後ろについている数値がフォントサイズなのでこれを大きくし「OK」をクリックします。

いったんMySQL WorkBecnchを閉じてから再度起動するとフォントサイズが大きくなっているはずです。

フォントサイズを変更

UPDATE文を実行すると、以下のエラーメッセージが出ます。

Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> (略)

どうしたらいいでしょうか?

ワークベンチが"SAFE_UPDATES"という設定で、大量のupdateやdeleteに制限をかけてくれています。

研修中はひとまず「SET SQL_SAFE_UPDATES = 0;」を実行してから、再度実行してみて下さい。

あまりおすすめしませんが、Safe Updatesのチェックを外すことで、恒久的に制限を外すことも可能です。

パスワードの変え方を教えて下さい。

Administration」のタブから「Users and Privileges」タブを選択します。

以下のダイアログからパスワードの変更ができます。

パスワードの変更

サブクエリーを実行すると次のエラーメッセージが出ます。「Error Code: 1242. Subquery returns more than 1 row」

サブクエリーの実行結果が複数返っているのに対して、「where xxx =」のように実行結果が1つの抽出条件を指定しているのが原因です。

「where xxx in」と複数の実行結果に対応できるように書き換えてみてください。

同一のテーブルに対してselect文でcount(*)としたときの値とcount(列名)としたときの値が一致しません。

列にnull値が含まれているのが原因です。

count(列名)としたときには、nullの行をカウントしません。

一方でcount(*)はnull値のある行があってもカウントします。

データのエクスポートにスキーマを含めたいです。

エクスポート時にスキーマを含めないとインポート先でもスキーマを作成しなければなりません。

スキーマ作成の手間を省くには、エクスポート時に「Include create schema」というチェックボックスにチェックを入れます。

AUTO_INCREMENT属性の列を持つテーブルにinsert文を発行する場合にどう書けばいいですか?

AUTO_INCREMENT属性の列にはNULLまたは0を設定します。

以下の図は、employeeテーブルのid列にはAUTO_INCREMENT属性がかかっているものとした場合のinsert文の例です。

AUTO_INCREMENT属性の列を持つテーブルにinsert文を発行する

MySQLで「CREATE DATABASE database_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;」
のように書きました。

最後のgeneral_ciとはどういう意味ですか?

Case insensitiveの略です。

アルファベットの大文字小文字を区別しない方法で、データを並べ替えたり検索のマッチングを行う際に関係してきます。

他には、cs: Case sensitiveやbin: binaryがあります。

以上。