まったり アイマス2

アイドルマスター2 超ライトユーザーのプレイ日記

3504. データベース、続き^13

2021年08月29日 | 日記

 データベースの中身のデータは一般の文字列です。文字列と言っても、アルファベットや数字や漢字が並んでいるのも文字列ですが、習慣的にコンピュータでは単なるオクテット列も文字列と言います。

 オクテット、つまり8bitの全パターン(0~255)が特定の個数並んだものなので、画像も音声も、およそコンピュータで扱える対象は何でも入れることが出来ます、原則として。

 初期の8bitコンピュータの時代はASCII 94文字が扱えればそれでよく、8bitだと256文字が使えますから余っている部分にカタカナなどを割り振っていました。
 今でも電子部品店などで売られている簡易な5x7ドット白黒、16文字×2行などの液晶ディスプレイの制御ICはこうなっています。コードの最初の8文字とか16文字は文字が任意にプログラミングできて、ごく簡単なゲーム(たとえば迷路脱出ゲームとか)なら組めます。

 しかし今は漢字仮名交じり文が英文などと混ぜて表示できないと話になりません。なので、こちらの「文字列」も快適に操作できる必要があります。つまり、オクテット列の操作は別途、残しておいて欲しいです。
 私が好みなのはそのごく初期のマイクロソフトBASICマシンの文字列の扱いです。ただし、上述の1バイト=1文字の場合の話。今も引き継がれているのは多分Visual Basicと、普通の表計算ソフトです。まあぶっちゃけ、私は今の表計算ソフトの数値型とか文字列型の扱いが至高だと思っている訳。

 そのマイクロソフトBASICの文字列演算の筆頭は文字列の結合です。

 C$ = A$ + B$

 ここでA$は文字列型の変数で、$が文字列を表す記号です。中身は「abd」とかで、ブログラム中に書く場合は"abd"とダブルクォートで囲みます。
 演算子(上述の「+」みたいなの)の残りは比較演算子で、

 A$ = B$

 が真偽値(1か0)を取ります。なぜかそのBASICでは真値は1ではなく-1でした。0以外はすべて真の扱いです。アルファベット順というかコード順の大小があって、

 A$ < B$

 も真偽値を返します。

 関数の筆頭はもちろん文字数。

 文字数 = LEN(A$)

 部分文字列、LEFT$、MID$、RIGHT$はほぼ想像通りのはずです。

 文字とコードの変換関数は時に必要です。

 文字 = CHR$(コード)
 コード = ASC(文字)

 似て非なるものが数値と文字列の変換、

 数値 = VAL(文字列)
 文字列 = STR$(数値)

 文字列内の検索は普通は用意されています。

 文字位置 = INSTR(文字列1, 文字列2)
 検索する位置を指定することが出来て、
 文字位置 = INSTR(開始位置、文字列1, 文字列2)

 このINSTRの動作は知っている方には自明ですが、説明は長くなるのでweb検索してみてください。

 BASICではほぼ以上です。C言語でも似たようなものです。
 しかし、データベースがらみでは、以下の2個の要素の追加が必要と思います。

 一つはトークンの扱い。なに、これは簡単です。区切り文字で区切られた文字列、たとえば、

 "abc;def;ghijk;lmn"

 があった場合に、1番目の要素が「abc」、3番目の要素が「ghijk」と取り扱う規約です。このabcとかdefをトークンと言います。元は計算機言語の概念で、+や=もトークンですし、1.23やifやwhileもトークンです。これでなんとなく納得してください、お願いします。

 このトークンの単位を文字列の文字と同様の扱いをして、抽出や挿入の操作の関数を用意します。

 残る一つは、文字列のパターンマッチングです。一般用語は正規表現です。しかし、実用的には文字列「2021/08/28」などが日付として認識できればよく、もう少し簡単にできると思います。

 ふむ、文字列の計算機での扱い、と言っても意外にたくさん説明事項がありました。科学技術計算ではほとんど問題にならないので、コンピュータの説明ではあっさりと紹介されているだけだと思います。
 しかし、データベースでは文字列処理は基本中の基本なので、真剣に取り扱う必要があります。


コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 3503. 真の誕生日 | トップ | 3505. データベース、続き^14 »
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

日記」カテゴリの最新記事