2022 ソフトウェア設計及び演習用の班Wiki
22::gr04::DB
DB(データベース)
MYSQLの利用
MYSQL環境
- 今年度は、張先生による4年生のデータベースの講義でMySQLとPHPを使うため、環境が整ったサーバーがあるとのことで、そのサーバーをお借りし、MySQLとPHPによるソフトウェア設計が可能となった。
- 0.技術職員さんにmysqlを通したい旨を伝え、
- ユーザ名
- データベース名
- DBのパスワード を設定してもらいます(重要)
- 1.*使用するサーバーは学内のesdbサーバー。端末でesdbサーバにアクセス
- "ssh esdb.cis.iwate-u.local"
- "自身のパスワードを入力"
- 2.設定したMYSQLデータベースにログイン
- "mysql -u 2022gr04 -D gotoeat -p"(Enter)
- "(password)"
- 2022gr04(ユーザー名)
- gotoeat(データベース名)
- XXXX.GrXX.Pass(DBのパスワード)
- 3.esdbサーバ内にはMySQL,Appache,phpなど完備されている(環境構築不要)
MYSQLの操作
MySQL操作例
- "create table [テーブル名] (〇〇 text, △△ varchar(20), 〇〇 int, ■■ varchar(10), 〇〇 varchar(1000), ▲▲ varchar(1000)); "
- テーブルの作成。
〇〇、△△...がカラム名、ind,varcharなど様々な型が存在する。
- "show tables;"
- データベース内のテーブル一覧が確認できる。
- "desc[テーブル名]"
- 作成したテーブルの型、数、属性、カラム名が確認できる。
- "INSERT INTO [テーブル名] VALUES('〇〇','…',');"
- テーブルの属性に合う型の内容でデータを登録する。
- "select * from [テーブル名] "
- 指定したテーブルの中身が確認できる。*はすべての要素を指定することを意味し、下記のようなオプションを追記すると便利である。
- "~order by (カラム名);" => 数字等降順で並べ替える
- "~where (カラム名) = 101;" => カラムの属性によって(id)などを指定し出力
- "~ where (カラム名) 40 and(or) 50;" => 数値などの範囲指定も可能
Exelを活用したMYSQLへの一括INSERT
- テーブル作成は個人的にExelをおすすめする
- 端末室のLibreOffice Calcでは編集、実行、正規のExleファイル読み込みも可能
- 文字化け、半角全角など一括インサートの際は要注意!参考サイトはこちら
- インポートするためのエクセルを準備
- インポート先のテーブルを用意
- database名;test_db
- table名;sample
- カラム(id、name、type etc...)
- 「="INSERT〜」のセルの列をドラッグしてコピー
- Mysql「use database名」→ 4.をCtrl+C,ターミナルでCtrl+Shift+Vしてクエリ一括実行(不備がなければ自動で一括挿入される)
- 「select * from テーブル名」で確認
- exel関数例「="INSERT INTO menu VALUES('"&F41&"','"&A41&"','"&G41&"','"&H41&"','"&J41&"','"&L41&"');"」
- 1000件、10000件ともなってくるとこのように生成しておけば、自宅でエクセルでコマンド列をコピーしてMySQLにペーストするだけでOK
最終手段"JSファイルを利用したデータベース"
- 本来JavaScriptの プログラム部分を分離してファイルにする
- いろんなhtmlから、このプログラムを利用可能。
- このJSファイルにJavaScriptのデーター部分を収納し各HTMLに記述したJavaScriptからそのデーターを利用。
- この手法を使うとデータはどれだけ増えても4個のファイルで済む。
- またデータの追加、修正、削除はJSファイルだけを更新すればよいので間違いもなく楽である。
- 運用面での注意点
- JavaScriptはソースの中身が丸見えで、使用するデータも簡単に外部から見ることが可能。
- 顧客情報、決済情報、原価管理のデータを扱うとセキュリティー上の問題が生じので、一般公開に適さないデータは取り扱わない。
最終更新日:2022/08/02 14:15:16