So-net無料ブログ作成
検索選択

AccessクエリとSQLの関係 フィールドに式を書く [Accessクエリ]



さて、Accessクエリの続きである。

前回は、抽出条件のところで、フィールドを指定をしてみた。
SELECT命令のSELECT句に列名をカンマで区切ってかけば抽出するフィールドを指定することができた。

今回は、フィールドに式を入れてみたいと思う。

フィールドに式を書く

フィールドには列名だけでなく、列名を加工するような式を書くことができる。よくやるのは、単価*個数で金額を計算する、なんていうことです。
やることは単純。フィールドのところに、計算式を書き込めばよい。

b列の倍を計算するように、2列目を変更してみた。

Accessbx2に変更2017-05-26 (18).png

フィールドの入力フォーカスを矢印キーで移動して外すと、自動的に表示方法が変更される。

式1: [b]*2

となった。
なんで勝手にかわっちゃうのよ、と思うのだが、これにはいろいろ事情がある。

Access勝手に変わった2017-05-26 (19).png

式1:の正体

式1:は、Accessがそのフィールドに勝手に付けた名前である。列を指定した場合は、それが名前であるため、Accessはフィールド名として列名をそのまま使用する。計算式にすると、名前とはいいがたくなる。現に記号である「*」を使用しているので、名前としては認められない。
SQLでは、*などの記号は名前に使用できない。

SQLビュー、データシートビューに切り替えてみてみると以下のような対応となっていることがわかる。

Access別名とAS2017-05-26 (19).png

式1は、計算式「[b] * 2」に付けられた名前である。
SQLでは、SELECT句の各列に対して、ASキーワードで別名を指定できる。別名なんです。Accessのデザインビューでは、「別名:計算式」といった書式となる。
なので、列名だけのフィールドに対しても別名を付けることが可能。

別名:a

とかしてみたらわかります。

[ ] の正体

記号は使ってはいけないのか、では[と]は?使っても良いのか?

はい、[ と ] は名前のうちに入らない。列名はあくまでbだけで、bが列名であることを正確に表記したいがために、[と]で囲んでやる。
文字列を表現するのに、"で囲む、っていうことをやるでしょ?C言語とかで。SQLでも文字列は'で囲んでやる。囲まれた中のデータが実際のデータで、囲んでいる記号はデータには含まれない。


詳しくは、SQLポケリを参照して欲しいのだ。


[改訂第4版]SQLポケットリファレンス

[改訂第4版]SQLポケットリファレンス

  • 作者: 朝井 淳
  • 出版社/メーカー: 技術評論社
  • 発売日: 2017/02/18
  • メディア: 単行本(ソフトカバー)



関連記事
AccessクエリとSQLの関係 デザインビューとSQLビュー
AccessクエリとSQLの関係 フィールド
AccessクエリとSQLの関係 フィールドに式を書く
AccessクエリとSQLの関係 並び替え
AccessクエリとSQLの関係 抽出条件
AccessクエリとSQLの関係 抽出条件(または)
AccessクエリとSQLの関係 抽出条件(INとLIKE)
AccessクエリとSQLの関係 抽出条件(表示のチェックボックス)





サイト内を検索


nice!(1)  コメント(0) 
共通テーマ:携帯コンテンツ

AccessクエリとSQLの関係 フィールド [Accessクエリ]



さて、Accessクエリの続きである。

前回は、クエリのデザインビューをざっくりと説明した。
上部がテーブルを指定する場所で、SELECT命令のFROM句にあたる。
下部が抽出条件などを指定する場所で、今のところテーブルfooの全列を指定しているだけとなっており、こらはSELECT命令のSELECT句にあたる。

というところまでやった。
今回は、デザインビューの下部にいろいろ条件を入れてみたいと思う。

フィールドで列指定

まずは、テーブルfooの全列ではなく、a列だけを取得してみよう。テーブルfooにはaとbのふたつの列を定義しているが、b列は見なくてよいので、a列だけにしたいのである。

どうすればよいかというと、フィールドのところをfoo.*からaに変更するだけである。

フィールドの横に表示される▽のところをクリックすれば、ドロップダウンでリストが表示される。このリストは、上部に追加されているテーブルのフィールドが列挙されている。リストの中からaを選択してもよいし、aを入力してもよい。

Access a列に変更2017-05-26 (7).png

この状態で、クエリを実行すると、データシートビューになる。指定したaのフィールドだけが表示される。

SQLとの対比

フィールドの条件を変更したらSQLではどうなっているのかを見てみよう。

Accessフィールドa列のみ2017-05-26 (14).png

しっかりとSELECT句が変更されている。


取得列を追加してみる

b列も追加してみることにしよう。
上部にはテーブルfooが表示されているが、fooの中に列がリストされていることがわかる。このリストからbをクリックして、そのまま空いているフィールドのところまでドラッグしてみよう。
ドラッグ操作でもフィールドを追加することができる。

Accessドラッグで列を追加2017-05-26 (15).png

SELECT句にもb列が追加されている。SELECT句では、複数の列を取得する場合は、カンマで区切って指定する。

AccessSQLビュー2017-05-26 (16).png

拡大してみたが、文字が小さくて判別不可能ではないか。fooとbの間には.が入っている。foo.bでテーブルfooのb列という意味になる。

詳しくは、SQLポケリを参照して欲しいのだ。


[改訂第4版]SQLポケットリファレンス

[改訂第4版]SQLポケットリファレンス

  • 作者: 朝井 淳
  • 出版社/メーカー: 技術評論社
  • 発売日: 2017/02/18
  • メディア: 単行本(ソフトカバー)



関連記事
AccessクエリとSQLの関係 デザインビューとSQLビュー
AccessクエリとSQLの関係 フィールド
AccessクエリとSQLの関係 フィールドに式を書く
AccessクエリとSQLの関係 並び替え
AccessクエリとSQLの関係 抽出条件
AccessクエリとSQLの関係 抽出条件(または)
AccessクエリとSQLの関係 抽出条件(INとLIKE)
AccessクエリとSQLの関係 抽出条件(表示のチェックボックス)




サイト内を検索


nice!(0)  コメント(0) 
共通テーマ:携帯コンテンツ

AccessクエリとSQLの関係 デザインビューとSQLビュー [Accessクエリ]



Accessに対して、SQL ServerやOracleなどは"本格的な"データベースという位置付けで説明されることが多い。
自分でもこのフレーズを何回となく、書いてきたかも知れない。

そんなことを言われると、Accessは本格的じゃなくて、亜流なのか、と思ってしまうが、Accessだってちゃんとしたリレーショナルデータベースである。
クエリデザイナでSQLを知らなくてもチョチョイとクエリを作れてしまう。とても「お手軽」な感じなので、格式ある伝統的手法ではないやり方でデータベースを使っているから、「本格的ではない」になるのかしら。

SQLを知らない人でもデータベースを扱えるように作られたAccessは、亜流だけど"すごい"、っていうことになるのかも。
それに、Accessだって、SQLビューにすれば、正式な作法であるSQLで「本格的なデータベース操作をできる」っていうことにならないか?

そういうわけ(どういうわけ?)でAccessクエリとSQLの対応がどうなっているのかをちょっと調べてみることにした。

ビューの切り替え

まずは、基本的なことから。
Accessのクエリは3種類の表示が可能である。表示形態は「ビュー」と呼ばれており、以下のものが存在する。

 1 デザインビュー
 2 データシートビュー
 3 SQLビュー

これらのビューは、ツールバーの[表示]ボタンで切り替えられる。
ステータスバーでも切替られる。

1 デザインビュー
これが、SQLを知らない人がクエリを作成するときのデフォルトのビュー(表示形式)であろう。

Accessデザインビュー.png

2 データシートビュー
データを入力するときは、この表示形式を使うことになる。クエリを実行した結果でもある。

Accessデータシートビュー.png

3 SQLビュー
クエリの命令をSQL言語で表示するビューである。デザインビューで作成したクエリの内容と同等なSQL命令が表示される。

AccessSQLビュー.png

概念的には、1と3は同一の「クエリ定義情報」を異なる形で見せているだけで、実体としては同じ、と思って良い。
2は、クエリの定義と実行結果という決定的な違いがある。1と3は、クエリの定義を表示しているが、2は、クエリを実行した後の検索されたレコード情報を表示している。なので、デザインビューまたはSQLビューを表示している状態で「実行」ボタンをクリックするとデータシートビューに切り替わる。

Accessクエリビューの切り替え.png

この点が大きく異なるので、2のデータシートビューは対比するのに紛らわしいので、今後あまり話題にはならないかも。

デザインビュー

デザインビューをよく見ていくことにする。
まずは、大きく上下ふたつにわかられていることがわかる。

上部分

デザインビューの上半分には、テーブルまたはクエリを追加することができる。ここに表示されているオブジェクトからデータを検索してくることになる。
例では、テーブルfooのひとつだけが存在している。
クエリを作成する際に、テーブル、クエリを選択するダイアログが表示される。ここでfooを選択してクエリを作成したので、クエリ1にはテーブルfooが含まれているかたちとなっている。

SQLとの対比

クエリ全体は、ひとつのSELECT命令に相当する。上半分では、どのテーブルからデータを引っ張ってくるかの指定になるので、SQLでいうと、SELECT命令のFROM句に相当する。

SQLビューにしたときのSELECT命令を見てみると...

SELECT foo.*
FROM foo;

となっている。「FROM foo」のところがデザインビューの上半分に表示されている、と理解して欲しい。

Accessデザインビューの上半分.png

下半分

下半分は、クエリの抽出条件を設定するエリアとなる。
テーブルのどのフィールド(列)を取ってくるのか、はたまた、レコードの抽出はどういった条件とするのかを設定していく。
例では、条件らしいものは設定せず、fooテーブルのすべてを取ってきてね、といったルーズな設定にしている。

SQLとの対比

デザインビューの下半分は、SELECT命令のいろいろなところに反映されることになる。今現在は、foo.*しか設定していないので、SELECT命令のSELECT句だけが指定されている状態である。

Accessデザインビュー下半分.png

本日のところは、以上とする。
以降、抽出条件の詳細を追ってみることにする。

関連記事
AccessクエリとSQLの関係 デザインビューとSQLビュー
AccessクエリとSQLの関係 フィールド
AccessクエリとSQLの関係 フィールドに式を書く
AccessクエリとSQLの関係 並び替え
AccessクエリとSQLの関係 抽出条件
AccessクエリとSQLの関係 抽出条件(または)
AccessクエリとSQLの関係 抽出条件(INとLIKE)
AccessクエリとSQLの関係 抽出条件(表示のチェックボックス)


サイト内を検索


nice!(0)  コメント(0) 
共通テーマ:携帯コンテンツ

AREarthroidPro ARで地球を表示するアプリ

Copyright Atsushi Asai Google+朝井淳
[改訂第4版]SQLポケットリファレンス

[改訂第4版]SQLポケットリファレンス

  • 作者: 朝井 淳
  • 出版社/メーカー: 技術評論社
  • 発売日: 2017/02/18
  • メディア: 単行本(ソフトカバー)

[データベースの気持ちがわかる]SQLはじめの一歩 (WEB+DB PRESS plus)

[データベースの気持ちがわかる]SQLはじめの一歩 (WEB+DB PRESS plus)

  • 作者: 朝井 淳
  • 出版社/メーカー: 技術評論社
  • 発売日: 2015/03/03
  • メディア: 単行本(ソフトカバー)
C言語 ポインタが理解できない理由 [改訂新版] (プログラミングの教科書)

C言語 ポインタが理解できない理由 [改訂新版] (プログラミングの教科書)

  • 作者: 朝井 淳
  • 出版社/メーカー: 技術評論社
  • 発売日: 2011/04/08
  • メディア: 単行本(ソフトカバー)

かんたんAndroidアプリ作成入門 (プログラミングの教科書)

かんたんAndroidアプリ作成入門 (プログラミングの教科書)

  • 作者: 朝井 淳
  • 出版社/メーカー: 技術評論社
  • 発売日: 2013/04/16
  • メディア: 単行本(ソフトカバー)