🤖

🔰SQL練習用のサンプルデータ - students -

2022/11/13に公開

この記事では、🔰SQL練習用のサンプルデータ - students -をご紹介します。
このサンプルデータでは、3つ以上のテーブル結合のSQL練習ができますので、よかったら、ご使用ください🙌

サンプルデータ

teacher_id teacher_name
101 寺内鞍
102 田尻朋美
103 内村海凪
student_id student_name
301 黒沢春馬
302 新垣愛留
303 柴崎春花
304 森下風凛
305 河口菜恵子
306 河田咲奈
307 織田柚夏
308 永田悦子
309 相沢吉夫
310 吉川伽羅
course_id course_name teacher_id
1 ITのための基礎知識 101
2 UNIX入門 102
3 Cプログラミング演習 101
course_id student_id
1 301
1 302
1 303
1 306
1 307
1 308
1 310
2 301
2 309
3 310

SQL

--------------------------------------
-- 教師テーブル
---------------------------------------
DROP TABLE IF EXISTS teachers;

CREATE TABLE teachers (
  teacher_id BIGINT PRIMARY KEY
  , teacher_name VARCHAR(64)
);

INSERT INTO teachers VALUES (101,'寺内鞍');
INSERT INTO teachers VALUES (102,'田尻朋美');
INSERT INTO teachers VALUES (103,'内村海凪');

SELECT * FROM teachers;

---------------------------------------
-- 学生テーブル
---------------------------------------
DROP TABLE IF EXISTS students;

CREATE TABLE students (
  student_id BIGINT PRIMARY KEY
  , student_name VARCHAR(64)
);

INSERT INTO students VALUES (301,'黒沢春馬');
INSERT INTO students VALUES (302,'新垣愛留');
INSERT INTO students VALUES (303,'柴崎春花');
INSERT INTO students VALUES (304,'森下風凛');
INSERT INTO students VALUES (305,'河口菜恵子');
INSERT INTO students VALUES (306,'河田咲奈');
INSERT INTO students VALUES (307,'織田柚夏');
INSERT INTO students VALUES (308,'永田悦子');
INSERT INTO students VALUES (309,'相沢吉夫');
INSERT INTO students VALUES (310,'吉川伽羅');

SELECT * FROM students;

---------------------------------------
-- 講座テーブル
---------------------------------------
DROP TABLE IF EXISTS courses;

CREATE TABLE courses (
  course_id VARCHAR(16) PRIMARY KEY
  , course_name VARCHAR(128) NOT NULL
  , teacher_id BIGINT
  , FOREIGN KEY (teacher_id) REFERENCES teachers(teacher_id)
);

INSERT INTO courses VALUES (1,'ITのための基礎知識',101);
INSERT INTO courses VALUES (2,'UNIX入門',102);
INSERT INTO courses VALUES (3,'Cプログラミング演習',101);

SELECT * FROM courses;

---------------------------------------
-- 受講テーブル
---------------------------------------
DROP TABLE IF EXISTS student_courses;

CREATE TABLE student_courses (
  course_id VARCHAR(16)
  , student_id BIGINT

  , FOREIGN KEY (course_id) REFERENCES courses(course_id)
  , FOREIGN KEY (student_id) REFERENCES students(student_id)
  , PRIMARY KEY (course_id, student_id)
);

INSERT INTO student_courses VALUES (1,301);
INSERT INTO student_courses VALUES (1,302);
INSERT INTO student_courses VALUES (1,303);
INSERT INTO student_courses VALUES (1,306);
INSERT INTO student_courses VALUES (1,307);
INSERT INTO student_courses VALUES (1,308);
INSERT INTO student_courses VALUES (1,310);
INSERT INTO student_courses VALUES (2,301);
INSERT INTO student_courses VALUES (2,309);
INSERT INTO student_courses VALUES (3,310);

SELECT * FROM student_courses;

SQLを実行できるWebアプリはこちら → DB Fiddle

動作確認済み

  • SQLite 3.39
  • MySQL 8.0
  • PostgreSQL 15

おわりに

この記事では、🔰SQL練習用のサンプルデータ - students -をご紹介しました。

このサンプルデータでは、3つ以上のテーブル結合のSQL練習ができますので、よかったら、ご使用ください🙌

この記事は、下記の海外サイトを参考にさせて頂きました。ありがとうございました。

参考

Discussion