データシート/* Navicat SQLite データ転送 ソースサーバー: school ソース サーバー バージョン: 30808 ソースホスト: :0 ターゲット サーバー タイプ: SQLite ターゲット サーバー バージョン: 30808 ファイルエンコーディング: 65001 日付: 2021-12-23 16:06:04 */ プラグマforeign_keys = OFF; -- ---------------------------- -- コースのテーブル構造 -- ---------------------------- "main"."Course"が存在する場合はテーブルを削除します。 CREATE TABLEコース( CourseID 整数主キー自動増分、 courseme varchar(32)、 教師ID int ); -- ---------------------------- -- コースの記録 -- ---------------------------- INSERT INTO "main"."Course" VALUES (3001, 'Chinese', 1001); 「main」に「コース」VALUES(3002、「数学」、1002)を挿入します。 -- ---------------------------- -- マークのテーブル構造 -- ---------------------------- "main"."Mark"が存在する場合はテーブルを削除します。 CREATE TABLE マーク( ユーザーID整数、 コースID整数がNULLではありません。 スコア int デフォルト 0 ); -- ---------------------------- -- マークの記録 -- ---------------------------- 「main」に「Mark」VALUES(2001、3001、89)を挿入します。 「main」に「Mark」VALUES(2001、3002、90)を挿入します。 「main」に「Mark」VALUES(2002、3001、66)を挿入します。 「main」に「Mark」VALUES(2003、3002、85)を挿入します。 -- ---------------------------- -- sqlite_sequence のテーブル構造 -- ---------------------------- "main"."sqlite_sequence"が存在する場合はテーブルを削除します。 テーブル sqlite_sequence(name,seq) を作成します。 -- ---------------------------- -- sqlite_sequence のレコード -- ---------------------------- "main"."sqlite_sequence" に VALUES ('Teacher', 1002) を挿入します。 "main"."sqlite_sequence" に VALUES ('Student', 2002) を挿入します。 "main"."sqlite_sequence" に VALUES ('Course', 3002) を挿入します。 -- ---------------------------- -- 学生用のテーブル構造 -- ---------------------------- "main"."Student" が存在する場合はテーブルを削除します。 学生テーブルを作成( ユーザーID 整数 主キー 自動増分、 ユーザー名varchar(32)、 使用率 int、 ユーザーセックスvarchar(32) ); -- ---------------------------- -- 学生の記録 -- ---------------------------- 「main」に「学生」値(2001年、「Xiao Ming」、18歳、「男性」)を挿入します。 「main」に「学生」値(2002、「Xiaohong」、18、「女性」)を挿入します。 -- ---------------------------- -- 教師用テーブル構造 -- ---------------------------- "main"."Teacher" が存在する場合はテーブルを削除します。 教師テーブルの作成( 教師ID整数主キー自動増分、 教師名 varchar(32) ); -- ---------------------------- -- 教師の記録 -- ---------------------------- INSERT INTO "main"."Teacher" VALUES (1001, '张三'); 「main」に「Teacher」VALUES (1002, 'Li Si') を挿入します。 質問:1. 「中国語」コースの成績が「数学」コースの成績より低いすべての学生の学生IDを照会します。 からユーザーIDを選択 (Mark から、courseid = '3001' のユーザー ID、スコアを選択)a、 (コースID = '3002' のマークからユーザーID、スコアを選択)b ここで、a.userid = b.userid かつ a.score<b.score; 2. 平均点が60点を超える学生の学生IDと平均点を照会する MarkからユーザーID、平均スコアを選択 ユーザーIDによるグループ化 平均スコアが60以上であること 3. 全学生の学生ID、名前、選択したコース数、合計スコアを照会する 選択したコースの数として s.userid、s.username、count_courseid を選択します。 sum_score は生徒の合計得点 左結合 (userid、count(courseid) を count_courseid として選択し、sum(score) を sum_score として選択します ユーザーIDによるマークグループから)sc s.userid = sc.userid; の場合 4. 姓が「Li」の教師の数を照会します。 count(教師名)を選択 先生から teachername は '张%' のようになります。 5. 中国語コースのスコアが 60 未満の学生の学生 ID を、スコアの降順で検索します。 ユーザーID、スコアを選択 マークより コースID = '3001' スコア<60 スコア降順で並び替え; 6. 教師「張三」が担当するコースを受講した、または受講していない学生の名前を照会します。 ユーザー名を選択 学生から ユーザーIDが( ユーザーIDを選択 マーク、コース、教師より Course.teacherid = Teacher.teacherid かつ Mark.courseid = Course.courseid Teacher.teachername = 'Zhang San' の場合 ); 7. すべての学生の選択科目、コース番号、コース名を照会します。 CourseID、CourseMeを選択 コースから where courseid in (mark group by courseid から courseid を選択します)。 8. 2 つのコースを受講した学生の学生 ID を取得します。 ユーザーIDを選択 マークより ユーザーIDによるグループ化 count(8) == 2である; 9. 各コースとそれに対応する選択科目の受講生数を照会する Course グループから CourseID 、count(*) を CourseID で選択します。 10. 教師「張三」が担当するコースを選択した生徒の中で、最も成績が良い生徒の名前と成績を照会します。 Student.username、Mark.scoreを選択 マークより Mark.userid = Student.userid の Student に参加しました Mark.courseid = Course.courseid のコースに参加しました Course.teacherid = Teacher.teacherid の教師に参加しました Teacher.teachername = 'Zhang San' の場合 そして、Mark.score = ( 最大(スコア)を選択 マーク sc_1 より ここで、Mark.courseid = sc_1.courseid); 11. コースを選択した学生の数: count(2) を選択 (マークとは異なるユーザーIDを選択)a; 12. コースコードが「中国語」で、コーススコアが80点を超える学生の学生IDと名前を照会します。 Mark.userid、Student.usernameを選択 マークより Mark.userid = Student.userid の Student に参加しました ここで、Mark.courseid = '3001' かつ Mark.score>80; 13. 各コースの平均スコアを照会し、結果を平均スコアの昇順で並べ替えます。平均スコアが同じ場合は、コース番号の降順で並べ替えます。 コースID、平均スコアを選択 マークより コースIDでグループ化 平均(スコア)、コースID降順で並べ替え; 14. コース名が「数学」で、スコアが 85 を超える学生の名前とスコアを照会します。 c.courseme、Student.userid、Student.username、Mark.score を選択 コースcから Mark.courseid = c.courseid のマークを左結合します Student を Student.userid = Mark.userid に LEFT JOIN する ここで、c.courseme = 'Mathematics' かつ Mark.score>85; これで、14 の SQL データベース ケースに関するこの記事は終了です。SQL データベース ケースに関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: IE6のmin-widthとmin-heightと互換性を持たせる簡単な方法
Linuxでシェルスクリプトを共有して、MySQLのマスタースレーブ状態を監視し、エンタープライズW...
コア資産管理プロジェクトでは、el-transfer にドラッグ アンド ドロップによる並べ替えと、...
最近、docker を学習していたときに、docker コンテナ内のネットワーク状態を照会するために...
この記事では、キャンバスとjsを使用して簡単な飛行機戦争を実装する方法を参考までに紹介します。具体的...
ホスト 'xxxx' はこの MySQL サーバーに接続できませんエラー: 1130...
禅コーディングテキストエディタプラグインです。 Zen Coding を使用するテキスト エディター...
タイトルの通り、高さは既知で、左と右の列の幅は 300 ピクセル、中央は適応型です。弾性ボックス自体...
目次論理階層化異なる地域から事業を分離するこれを実行する利点このようなシナリオにどう対処するか最適化...
MACでMySQLの初期パスワードを忘れた場合の解決策を参考までに共有します。具体的な内容は次のとお...
MySQL 5.7.18 でパスワードを変更する方法: 1. まずMySQLサーバーをシャットダウン...
注: システムは Ubuntu 14.04LTS、32 ビット オペレーティング システムです。Py...
この記事の例では、登録ページの効果を実現するためのVueの具体的なコードを参考までに共有しています。...
1. イベントバブリング: JavaScript イベント伝播のプロセスでは、要素でイベントがトリガ...
序文CSS がフロントエンド開発の基本的なスキルであるならば、「セレクター」は基礎中の基礎です。これ...
環境: VMware VCSA 6.7 (VMware-VCSA-all-6.7.0-8169922...