こんにちは。yuki(@Ryuki_4648)です。
プログラマー養成科の職業訓練・12週目のまとめです。
今週はデータベースMicrosoftのAccess実践編でした。
MySQLの授業も始まりました。
前回の11週目のまとめはこちらです。

1.Access まとめの図
今週でAccessの授業が終わったので、軽くまとめて図にしてみました。
データベースオブジェクト

アクションクエリ

クエリまとめ

2.実践編-パラメータクエリ-
テキストは訓練校で配られたオリジナルのものを使用しています。
先週は基礎編&実践編をしていました。
実践編は実際に医療事務の方が使われているような内容で、病院の患者さんのデータを元にしています。
(普段使わない癌専門のワードが出てくるので、教材としては少しわかりにくいかもしれません。)
パラメータクエリ
パラメータクエリを使用してクエリを実行すると、ダイアログボックスが表示され、テキストボックスに条件を入力すると、その条件に合致したレコードを抽出できます。
★ パラメータクエリは、大かっこ [] で囲みます!
「クエリデザイン」→「デザイングリッド」の「抽出条件」に[日付を入力してください]と入れると、クエリを実行した際に「日付を入力してください」というダイアログボックスが表示されます。
そこに「2020/10/25」と入れると、その日付に合ったものが抽出されます。
(※西暦は省略できるため、20/10/25でもOKです。)
パラメータクエリ -範囲指定-
パラメータクエリでは、「2020年10月25日から2020年11月25日の条件を指定」のように、範囲を指定することもできます。
この場合は「Between And」を使います。
抽出条件の欄にBetween [いつから] And [いつまで] と入力すると、クエリ実行時にダイアログボックスが2回表示されます。
1つ目:「いつから」→ 20/10/25と入力。
2つ目:「いつまで」→ 20/11/25と入力。
すると「2020年10月25日から2020年11月25日」までのレコードが抽出され、表示されます。
このパラメータクエリと、前回の記事で書いたワイルドカードを使用すると、効率よく検索ができるようになります。
▽ ワイルドカードについて

3.実践編-関数-
既存のフィールド「退院年月日」「患者さんの生年月日」を使って、患者さんの「年代」を出す練習をしました。
▽ シンプルに「年代」を出す方法
授業では、
年代:Int(([退院年月日]-[患者さんの生年月日])/365.25 / 10) * 10 & “代”
↑↑ このように関数を使って年代を出しました。
- Int関数・・・結果を切り捨てて、「整数化」する
- 365.25で割る:「年齢」を求める ※「.25」:うるう年があり4年に1回1日増えるため
- ÷10:25歳だと2.5、36歳だと3.6にする
▽ 図にしてみました

4.小テスト
実践編が終わり、3種類ほどの練習問題を解きました。
フィルター、パラメータクエリ、クエリデザイン、クロス集計、レポートの作成など一通りやりました。
そして最終日は小テストがありました。
(単元の終了ごとに毎回1時間の小テストがあります。60点を切ると再テストになるらしいです)
今までは選択肢から選ぶ問題だけでしたが、今回は実際にレポート・パラメータクエリ・クロス集計クエリを作成する実技問題が6割ほどありました。
関数を使う問題はほとんどなかったので、めちゃくちゃ難しくはなかったです。
5.MySQL ~さわりの部分~
金曜日から「MySQL」の授業が始まりました。
一度も触れたことがないので、全くどんなものかわからない状態でのスタートです。
MAMPのインストール
既にここでつまずきそう。
家で一人でやってたら途中で諦めたかもしれません。
コマンドプロンプト
Windowsの場合、
1.ウィンドウマークとRを押す(Macは知らない)

2.「cmd」を入力してOK

3.コマンドプロンプトが出てきます

コマンドプロンプトに色々書いてみる
よくわからないまま、「黒い画面」に言われた通り文字を入力しました。
いくつかの構文
※コロン「:」ではなく、セミコロン「;」なので注意です。
大文字でも小文字でもOKです。
「nogizaka」というデータベースを作成しています。
このあとmysql> SHOW DATABASES;を入力すると、「nogizaka」が追加されていることが確認できます。
「member」という名前のテーブルを作成できます。
このあとmysql> SHOW TABLES;と入力すると、Tables_in_nogizakaの中に「member」というテーブルが追加されたことが分かります。
- ナンバー(no):タイプは整数型、
- 名前(name):タイプはバーチャー型、30文字まで入力可能
- 誕生日(birth):タイプはDate型
という意味になります。
MySQLでカラム(column)を一覧するコマンドです。
作成した「member」について一覧で見ることができます。
そのほか「SHOW COLUMNS」というコマンドもあります。
はじめは「S」を付け忘れてエラーになってしまいました。
テーブルの構造を変更しています。
ここでは、memberテーブルの「no」にプライマリーキーを追加しています。
TABLE,TABLES,FIELDS,DATABASE,DATABASESなど……
どれにSが付いて、どれに付かないのかが分からない
そのへんがあまりよく理解できてなくて、エラーを連発してしまいました。
理解力が乏しいので、来週からも頑張ろうと思います。
VARCHAR型とCHAR型
VARCHAR(バーチャー)型とCHAR(チャー)型の2種類あります。
- VARCHAR:可変長文字列。
* 30文字と指定していても、5文字しかなければ5文字分のスペースのみ確保する。 - CHAR型:必ず指定された長さになるように右側がスペースで埋められる。
* 30文字分のうち5文字しかなくても、30文字分を確保する。
6.感想
練習問題などを経て、基礎的なAccessの操作はできるようになったかなと思います。
MySQLは始める前から「難しそう」という先入観があるので、少し不安があります。
フロントエンドをやるうえで必須だと思うので、しっかり学習していきたいです。
7.余談
Accessのテキストの実践編では、医療用語、癌に関する専門用語がいくつか出てきたのでまとめてみました。
- ICD10:「疾病、傷害及び死因の統計分類」の略です。世界保健機関による医学分類リストである国際疾病分類と関連する健康問題の10番目の改訂版です。
- ADL:「日常生活動作」の略。起床から着替え、移動、食事、トイレ、入浴など日常的に発生する動作を指します。IADL(手段的日常生活動作)というのもあります。介護の現場でよく用いられます。
- 医療資源を最も投入した傷病名:入院中に治療した傷病の中で、一番「人的・物的」に医療資源を投入した傷病名のことです。
- 癌取扱い規約に基づくがんのstage分類:癌取扱い規約に定められている疾患について、各種癌取扱い規約に準じ、一連の治療を決定する際に用いた病期分類があります。ほかにも「TNM 分類」というのもあります。