• 締切済み

このSQLの意味について

次のSQLの意味をわかりやすく説明していただけないでしょうか? SELECT 名簿 氏名、哲学概論得点+哲学論文得点 FROM 名簿 成績表 WHERE 名簿 学籍番号=成績表 学籍番号 AND 科目 LIKE ‘哲学%’ 特にWHERE句は、「名簿と成績表に存在する学籍番号を結びつけ、かつ哲学で始まる科目を抽出しなさい」という感じなのでしょうか? これは一体何をすればいいのか全くわからないので、丁寧にご教授ください。よろしくお願いします。

  • tsg
  • お礼率50% (1/2)

みんなの回答

  • 0KG00
  • ベストアンサー率36% (334/913)
回答No.1

2つの表を結合していますので、それぞれの表で学籍番号が同じものだけを抽出していますね。 http://orakumiko.hp.infoseek.co.jp/yougo/q_chokseki.html <成績表テーブル> 学籍番号 得点 1 10 2 20 3 30 <名簿テーブル> 学籍番号 氏名 1 A 2 B 3 C というテーブルがあったとき、 >WHERE 名簿.学籍番号=成績表.学籍番号 がないと 名簿.学籍番号 成績表.学籍番号 氏名 得点 1 1 A 10 1 2 B 10 1 3 C 10 2 1 A 20 2 2 B 20 2 3 C 20 3 1 A 30 3 2 B 30 3 3 C 30 となってしまいます。これにWhere句を付ける事で 名簿.学籍番号 成績表.学籍番号 氏名 得点 1 1 A 10 2 2 B 20 3 3 C 30

tsg
質問者

お礼

御丁寧な解説、本当にありがとうございます。 ということは、このSQLの意味は、次のように解せばいいのでしょうか? 「名簿、成績表それぞれの表から学籍番号が同じで、かつ情報で始まる科目の氏名、それに哲学概論得点と哲学論文得点の合計を抜粋しなさい」ということなのでしょうか。

関連するQ&A

  • SQLの作り方

    知り合いに資料作成を頼まれたのですが、 SQLの作り方に四苦八苦してます。 SELECT 学生名簿. 名前,経済学史得点+経済総論得点 FROM 学生名簿.成績一覧 WHERE 学生名簿.学生証番号=成績一覧 学生証番号 AND 科目 LIKE‘経済’ つまり、このSQLが示すものは、 「学生名簿」と「成績一覧」の2つの表から 「名前」と「経済学史得点」と「経済総論得点」を抜粋し、 更に「学生名簿」から学生証番号の有無の確認 「経済OO」で始まる科目の履修が分かる(?) ↑ここが一番自信ないです… と言うこと何でしょうか。。確認なのですが、 小さな事からアドバイス、ご指摘、ご指導を宜しく お願い致します。

  • たぶんSQL?

    友達から質問なのですが、下記のテーブルを 学生テーブル 学籍番号  氏名 1101    バカボンパパ 1102    バカボンママ 1103    バカボン 1104    はじめちゃん  成績テーブル 学籍番号  科目番号  得点 1101    1111    68 1102    1111    75 1103    1111    80 1105    1111    88 どのような条件で結合させれば 学籍番号  氏名      科目番号  得点 1101    バカボンパパ  1111    68 1102    バカボンママ  1111    75 1103    バカボン    1111    80 になるのでしょうか?教えてほしいです。 お願いします。

  • SQL文について <と>の意味

    SQL文について <と>の意味 とある問題で。 問(1) 次のSQL文によって、以下の学生名簿の表から抽出されるものはなんですか。 該当する記号を書いてください。 -------------------------------------------------------------------- SELECT 氏名 FROM 学生名簿 WHERE 学科='産業経営' AND 年齢>20 氏名 学科 年齢 上田 泰 経済 22 太田 裕子 公共金融経済 18 鍵谷 俊文 産業経営 19 佐藤 由理子 産業経営 21 山本 貞真 経済 20 a 上田 泰 b 鍵谷 俊文,佐藤 由理子 c 佐藤 由理子 d 上田 泰 e 上田 泰,佐藤 由理子 ---------------------------------------------------------------------- (2): (1)の問題の学生名簿の表から、 下のSQL文を実行したときに得られる表を書いて下さい。 SELECT 氏名,学科 FROM 学生名簿 WHERE 年齢<20 ---------------------------------------------------------------------- それぞれに 1)年齢>20 2)年齢<20 と書いてありますが 1)の場合は、20歳以上という意味なのか、それとも「20歳」は含まず「21歳から」。 2)の場合は、20歳以下という意味なのか、それとも「20歳」は含まず「19歳から」。なのかが分かりません。 この場合だと(1)の答えはc 佐藤 由理子で合っているのでしょうか? それと(2)の答えは 太田 裕子 公共金融経済 18 鍵谷 俊文 産業経営 19 山本 貞真 経済 20 と書き表せばいいのでしょうか? 宜しくお願い致します。

  • Accessでデータベースの設計

    大学内での成績管理をアクセスでデータベース管理するという想定です。 (アクセスの使い方を身に付けるための演習課題ですので、本格的なものでないです) 私の考えていること次の4つのテーブルを作る。(1)学生名簿(2)学生成績(3)教員(4)講義 (1)には、学籍番号、学生氏名、フリガナ、学部、学科、入学年度、学年、備考を  (2)には、学籍番号、講義ナンバー、教員ナンバー、試験得点、試験評価 (3)には、教員ナンバー、教員氏名、フリガナ、学部、学科 (4)には、講義ナンバー、講義名、担当教員、学部、学科、開講学期、単位数、必修・選択 と作ります。 *ただし、大学を想定しているので、成績テーブルを、単に学籍番号、文学、科学、歴史・・・・と作りたくないのです。(高校までなら教科数は限られてますが、大学となると科目数が多すぎるのでフォームがとんでもないことになる) で、ここからが質問です。 最終的に、作りたいものは、(1)各学生への成績通知表(学籍番号・氏名・講義科目・評価・合計の取得単位数)が印刷されたもの(2)各科目の担当教員への成績表(学籍番号・学生氏名・評価)が学籍番号順に印刷されたもの の2つです。 Q1:(1)から(4)のテーブル設計で、最終的にやりたいことができますか? Q2:Q1が可能ならリレーションシップを結ぶために、各テーブルの主キーは何になりますか? Q3:クエリーは、どんなのが必要と考えられますか? Q4:Q1では不可能なら、どんなテーブルが必要となりますか?

  • リレーショナルデータベースについて(情報処理試験用)

    現在情報処理の勉強をしているのですが、 データベースが苦手でどうしても理解できないことがあります。 いくつかの項目を表にする際,区分の仕方がわからず,SQLがつくれません。 1. ・学籍番号 ・氏名 ・住所 ・専攻 ・科目番号 ・科目名 ・単位数 ・成績 これは,全ての項目を学生表,科目表,履修表の3つに分ける例です。 この場合, 学生表(★学籍番号,氏名,専攻) 科目表(★科目番号,科目名,単位数) 履修表(★学籍番号,★科目番号,成績) 以上のように分けられるというのは,学生なので理解できます。 そして次の問題なのですが, 2. ・品目番号 ・品目名 ・在庫量 ・受注番号 ・顧客名 ・受注日 ・受注残 ・納期 これらの項目を「品目表」,「受注表」,「受注明細表」の3つに分ける問題です。この場合どのように区分したらよいでしょうか。 また,区分する際のポイントも教えていただければ嬉しいです。

  • accessのSQL文で

    SELECT 科目Aテーブル.学生番号, 名簿テーブル.氏名, 科目Aテーブル.成績 INTO 科目Aテーブル2 FROM 名簿テーブル INNER JOIN 科目Aテーブル ON 名簿テーブル.学生番号 = 科目Aテーブル.学生番号; (これはテーブル作成クエリによるもの) と表示されたのですが SELECT ~ INTO ~ FROM ~ ON ~ ; のような構文はSQLにあるのでしょうか? ACCESS独自の拡張でしょうか? SELECT ~ INTO とSELECTにINTOがつく構文をインターネットで探したのですが見つかりません

  • セレクト文

    学籍番号が1の学生について、科目番号が3の成績よりも良い成績の科目の科目番号と成績を得たい。ただし、通常の統合質問で回答せよ。 と言う問題です。 exercise=# select * from 履修; 科目番号 | 学籍番号 | 成績 ----------+----------+------ 1 | 2 | 80 2 | 1 | 90 2 | 3 | 70 1 | 3 | 100 1 | 4 | 50 1 | 7 | 80 1 | 10 | 75 ・・・・・ select 履修.科目番号,履修.成績 from 履修 where 履修.学籍番号=1; で学籍番号1の学生を選択できるのですが、科目番号3の成績よりも良い・・・と言うところが分かりません。 また、同じ条件で「入れ子型質問で回答せよ」と言うのもあります。よろしくお願いします。

  • MYSQLのストアドでの動的SQLについて

    MYSQL初心者ですが、よろしくお願いします。 MYSQL(ver5.5)でストアドプロシージャを作成しようと思います。 WEBの検索画面に入力された条件に応じて、WHERE句を動的に作成したいのです。 例えば、WEBの検索画面の検索条件に、 (1)氏名 (2)住所 (3)電話番号 があり、(1)と(3)に入力された場合は、 あるテーブルの検索条件を WHERE 氏名=入力氏名 AND 電話番号=入力電話番号 のように動的にSQLを作成したいです。 (条件に応じて、静的なSQLを使い分けるやりかたはしたくない) このような動的なSQLはストアドプロシージャで作成できのでしょうか? よろしくお願いします。

    • ベストアンサー
    • MySQL
  • SQL ?で終わる

    アクセスのSQL文で、テーブルのフィールドの値が、最後が?で終わるものを抽出したいのですが SELECT テーブル.フィールド FROM テーブル WHERE (((テーブル.フィールド) Like "[*?]")); これだと1件も抽出されません。 Like "[*?]"が間違ってると思うのですが、どうすればいいでしょうか?

  • Accessのテーブルから成績一覧表を作成したい。

    こんにちは。 ExcelはVBAまで使えるレベルですが、Accessはまったくの初心者です。 基本的なことだと思うのですが、Access2003の使い方で質問です。何をどう調べていいのかわからないので、お願いします。 Accessのテーブルで「名簿」、「成績」、「科目名」の3つのテーブルがあります。 それぞれのテーブルのレコードの内容は以下の通りです。 「名簿」--- 番号(5桁で1年1組1番は10101となっています)、氏名 「成績」--- 番号、氏名、成績(5段階です)、科目番号(1~100まで) 「科目名」 --- 科目番号、科目名 以上のテーブルを使って、エクセルの表で成績一覧表を作るようなことは可能なのでしょうか?エクセルだとA列に番号、B列に氏名、C列以下が科目名が入り、それぞれの生徒の成績が横並びになりますが、そのように表示させることは可能かどうかということです。 Accessのことはよくわからないので、補足が必要であれば指摘して下さい。 よろしくお願いします。