SQLプログラミングの初心者です。初心者向けの参考URLをどなたか教えて下さい。

A 回答 (1件)

  

http://www.sqlpowerpage.co.jp/home.htm
  SQLパワーページ
とか
  http://www.ann.hi-ho.ne.jp/hirok/sql/
  SQLプログラミング入門
はいかがですか。

SQLプログラミング入門の書籍は非常に分かりやすくていいですよ。
    • good
    • 0
この回答へのお礼

ご紹介いただいたURLにアクセスしてみました。
初心者にとっては、大変わかりやすいサイトでした。
SQLプログラム入門の書籍は非常に分かりやすいとの事なので、
早速購入したいと思います。
回答ありがとうございました。

お礼日時:2001/08/23 15:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す

このQ&Aと関連する良く見られている質問

QACCESS SQLステートメントについて初心者です。

お知恵を貸してください。
ACCESSでSQLステートメントで

『Aテーブル』
ID  商品コード1 商品コード2
1    1111    2222
2    2222    3333
3    4444    5555  

『Bテーブル(商品コードマスター)』
商品コード  商品名
1111     ああああ
2222     いいいい      
3333     うううう
4444     ええええ
5555     おおおお

AテーブルとBテーブルを結合して
ID  商品コード1 商品名    商品コード2   商品名
1    1111  ああああ     2222    いいいい
2    2222  いいいい     3333    うううう
3    4444  ええええ     5555    おおおお

というCテーブルを作りたいです。

商品コード1と商品コード2の両方共 Bテーブルの商品コードから商品名を取得したいのですが、できないのですが・・・・
出来ればBテーブル(商品コード)を2つ作くったり等したくないのですが、SQLステートメントでどう記述すれば良いですか?


     

お知恵を貸してください。
ACCESSでSQLステートメントで

『Aテーブル』
ID  商品コード1 商品コード2
1    1111    2222
2    2222    3333
3    4444    5555  

『Bテーブル(商品コードマスター)』
商品コード  商品名
1111     ああああ
2222     いいいい      
3333     うううう
4444     ええええ
5555     おおおお

AテーブルとBテーブルを結合して
ID  商品コード1 商品名    商品コード2   ...続きを読む

Aベストアンサー

> 2つ作ったり等したくないのですが

同一内容のテーブル(つーかオブジェクト)を複数作りたくないと
解釈しましたが、それでも大丈夫でしょうか?

であれば、Bテーブルのエイリアスを使えば以下のように可能です。

select Aテーブル.id, Aテーブル.商品コード1, Bテーブル.商品名, Aテーブル.商品コード2, Bテーブル_1.商品名
from (Aテーブル inner join Bテーブル on Aテーブル.商品コード1 = Bテーブル.商品コード)
inner join Bテーブル as Bテーブル_1 on Aテーブル.商品コード2 = Bテーブル_1.商品コード;

QSQL初心者なので教えてください。

毎度ここにお世話になっております。

売上詳細という表の中にNOとSYOHIN_CDの列があるとします。
Noは1~10まであり、SYOHIN_NAMEにはNo6の列だけ文字が入っています。
ここで、No1~N5はSHYOHIN_NAMEはNULLで、No6~No10のいずれかのSYOHIN_NAMEに文字が入っている物を検索するにはどうしたらいいでしょう?

SELECT * FROM hanbai.売上 AA where
EXISTS (select * from hanbai.売上詳細 BB where BB.NO between 1 and 5 and SYOHIN_NAME is null
and BB.NO between 6 and 10 and SYOHIN_NAME is not null);
構文間違っているので表示されませんが・・・ちゃんと表示されるSQLを教えてください。お願いします。オラクルです。

説明がおかしくてわかりづらいと思いますが、補足しますのでよろしくおねがいします。

Aベストアンサー

 
まず、論理AND/OR演算子の意味 ( 概念レベルでの ) と用法を正しく理解しましょう。

一例ですが、
WHERE ID = 1 OR ID = 2
だと、「IDが1、または2」のレコードが抽出されますが、
WHERE ID = 1 AND ID = 2
「IDが1であり、かつ2でもある」条件となり、該当するレコードは論理的に存在し得ません。

※ 概念が抽象的で理解しにくい場合は、

  WHERE 消息 = '生存' OR 性別 = '死亡'
  WHERE 消息 = '生存' AND 性別 = '死亡'

  または、

  WHERE 性別 = '男' OR 性別 = '女'
  WHERE 性別 = '男' AND 性別 = '女'

  で考えてみてください。

上記の内容が理解できたら、次に演算子の結合優先順位は括弧の使い方で変化することを理解しましょう。

2 + 3 × 4

(2 + 3) × 4
はおなじではありません。(2 + 3 × 4 = 14 ですが、(2 + 3) × 4 = 20 となります)
ANDとORが入り混じった条件式では、結合順序を明確にするため、(必要の有無に関わらず)括弧を付けるのが一般的です。
 

 
まず、論理AND/OR演算子の意味 ( 概念レベルでの ) と用法を正しく理解しましょう。

一例ですが、
WHERE ID = 1 OR ID = 2
だと、「IDが1、または2」のレコードが抽出されますが、
WHERE ID = 1 AND ID = 2
「IDが1であり、かつ2でもある」条件となり、該当するレコードは論理的に存在し得ません。

※ 概念が抽象的で理解しにくい場合は、

  WHERE 消息 = '生存' OR 性別 = '死亡'
  WHERE 消息 = '生存' AND 性別 = '死亡'

  または、

  WHERE 性別 = '男' OR 性別 = '女'
  WHERE ...続きを読む

QSQL(初心者です) 3つのテーブルを結合

下のような3つのテーブルを結合したいのですが
SQL1つで可能でしょうか?

条件は
1.品種機械テーブルを読み込みます。
品種でユニークしますが使用日付を降順にならべ変えます。品種機械テーブルから使用日付がMAXのものの行データをすべて取得(下の場合:A 4 20051204・・)ほかはいりません。

2.品種テーブル読み込む。
1で取得した品種と一致する行データをすべて取得

3.機械テーブルを読み込む
2で取得した機械と一致する行データをすべて取得

うまい方法がおもいつかないのでアドバイスや
参考になりそうなホームページなどありましたら教えていただけないでしょうか?
宜しくお願いします。

---------------------------------------------
(1)品種テーブル(品種を管理)
品種  ・・・etc
A  
B
C
D
---------------------------------------------
(2)機械テーブル(機械を管理)
マシン ・・・etc
1
2
3
4
------------------------------------------
(3)品種機械テーブル(品種と機械を管理)
品種 | マシン | 使用日付 |・・・etc
A | 1 | 20051201
A | 2 | 20051202
A | 3 | 20051203
A | 4 | 20051204

下のような3つのテーブルを結合したいのですが
SQL1つで可能でしょうか?

条件は
1.品種機械テーブルを読み込みます。
品種でユニークしますが使用日付を降順にならべ変えます。品種機械テーブルから使用日付がMAXのものの行データをすべて取得(下の場合:A 4 20051204・・)ほかはいりません。

2.品種テーブル読み込む。
1で取得した品種と一致する行データをすべて取得

3.機械テーブルを読み込む
2で取得した機械と一致する行データをすべて取得

うまい方法がおもいつかないのでアドバイ...続きを読む

Aベストアンサー

#1の bonaronです。
仕様を誤解してました。
それも、途中のクエリをアップしてしまった(^^;

>3.機械テーブルを読み込む
>2で取得した機械と一致する行データをすべて取得

ということで、(1)品種テーブルには、マシンのフィールドがあるのでしょうか?

品種 マシン・・・
A  1
A  2
・  ・
A  9
B  21
・  ・

のように。

仕様の確認ですが
1.(3)のテーブルから[使用日付]の
  最大値 "20051204"を取得。
2.(3)のテーブルから"20051204" の品種(A,B,D等)を取得。
3.品種テーブルから、2の A,B,D のデータを取得。
  上の品種テーブルの例ではA-1~A-9、B-21~・・。
4.機械テーブルから、3の 1,2,・・・9,21・・・を取得。
  最終的に必要なのは、このデータのみ。

上記仕様のクエリです。

SELECT *
FROM 機械テーブル INNER JOIN
[SELECT マシン FROM 品種テーブル
WHERE 品種 In
(SELECT DISTINCT 品種
FROM 品種機械テーブル
WHERE 使用日付=DMax("使用日付","品種機械テーブル"););]. AS Q品種
ON 機械テーブル.マシン = Q品種.マシン
ORDER BY 機械テーブル.マシン;

#2回答者さんへ
>#1回答者さんが使用している「TOP」は、SQL SERVERだけの機能だと思います。

Accessにも、もちろん「TOP」は存在します。
クエリのプロパティの「トップ値」です。

#1の bonaronです。
仕様を誤解してました。
それも、途中のクエリをアップしてしまった(^^;

>3.機械テーブルを読み込む
>2で取得した機械と一致する行データをすべて取得

ということで、(1)品種テーブルには、マシンのフィールドがあるのでしょうか?

品種 マシン・・・
A  1
A  2
・  ・
A  9
B  21
・  ・

のように。

仕様の確認ですが
1.(3)のテーブルから[使用日付]の
  最大値 "20051204"を取得。
2.(3)のテーブルから"20051204" の品種(A,B,D等)...続きを読む

Q初心者でも参考になる本を探してます。

「システム思考」の初心者本を探してます。
データベースやナレッジデータベースの考え方が初心者でもわかるとういう本はないでしょうか?
動機は不純ですが「面倒な雑多な事務作業を上手くことこなしたいだけ」なんです。。
よろしく願います。

Aベストアンサー

こんにちは。

すいません。ちょっと問題が分かりにくいです。

>「システム思考」の初心者本を探してます。
データモデリング設計の本や社内イントラ管理者の本や
果てはシステム設計の考え方、色々あります。
しかしそういうのを読むよりも、
具体的にどこをどういう風にしたいというとか
現在の環境の説明などがあれば
書いていただけるとありがたかったです。
そうすれば必要があれば具体的な言語や
データベースについて勧められるのですが。
URL図とは・・・とかプロトタイピングモデルとは・・・とか
概論を勉強したいわけではないのですよね?

Q初心者、SQLで分からない問題があります

SQL Plus初心者です。
現在勉強している本の問題で以下のような問題があります。

【ユーザテーブル(usr)から都道府県別のユーザ数を求めてみましょう。なお、取り出す列の別名は、それぞれ「都道府県名」「ユーザ数」とします。】

そして、この解答を見ると

select
prefecture 都道府県,
count(*) ユーザ数
from
usr
group by
prefecture
;

となっています。
私が分からないのは【count(*)】の【*】のところです。
なぜアスタリスクにするのでしょうか?
count(prefecture)ではダメなのでしょうか?

Aベストアンサー

prefectureには必ず値がある場合にはcount(prefecture)ですね。でもまれにそのつもりでも値が入って無くグループ指定もして無い項目を対象にする人が居て、その場合はひどい間違えが発生する可能性もありcount(*) が一般的とされてます。

この例題の場合はcount(prefecture)が正解でしょう。大きいテーブルだとcount(*) はパフォーマンスが落ちますので。


このカテゴリの人気Q&Aランキング

おすすめ情報