SQLテスト - 初級編 (学校データベース)

このテストは、学校の生徒、科目、教員といった基本的なデータを操作し、SQLの基礎を測定することを目的としています。

注: 各問題の解答は、SQL Serverの構文に基づいて記述してください。

問題

以下のテーブル定義をもとに、各問題に解答してください。

テーブル定義: Students (生徒情報)

CREATE TABLE Students (
    StudentID INT PRIMARY KEY IDENTITY(1,1),
    FirstName NVARCHAR(50) NOT NULL,
    LastName NVARCHAR(50) NOT NULL,
    DateOfBirth DATE,
    EnrollmentDate DATE,
    Grade INT, -- 学年
    Enabled BIT DEFAULT 1,
    InsertDate DATETIME DEFAULT GETDATE(),
    UpdateDate DATETIME DEFAULT GETDATE(),
    DeleteDate DATETIME,
    UpdateUser NVARCHAR(50)
);
            

テーブル定義: Courses (科目情報)

CREATE TABLE Courses (
    CourseID INT PRIMARY KEY IDENTITY(1,1),
    CourseName NVARCHAR(100) NOT NULL,
    Credits INT, -- 単位数
    Department NVARCHAR(50), -- 所属学科
    Enabled BIT DEFAULT 1,
    InsertDate DATETIME DEFAULT GETDATE(),
    UpdateDate DATETIME DEFAULT GETDATE(),
    DeleteDate DATETIME,
    UpdateUser NVARCHAR(50)
);
            

テーブル定義: Teachers (教員情報)

CREATE TABLE Teachers (
    TeacherID INT PRIMARY KEY IDENTITY(1,1),
    FirstName NVARCHAR(50) NOT NULL,
    LastName NVARCHAR(50) NOT NULL,
    Specialty NVARCHAR(100), -- 専門分野
    HireDate DATE,
    Enabled BIT DEFAULT 1,
    InsertDate DATETIME DEFAULT GETDATE(),
    UpdateDate DATETIME DEFAULT GETDATE(),
    DeleteDate DATETIME,
    UpdateUser NVARCHAR(50)
);
            
問題 1.1: Students テーブルに、以下の生徒情報を新規登録するSQL文を記述してください。
名: '花子', 姓: '田中', 生年月日: '2010-04-15', 入学日: '2023-04-01', 学年: 7

解答欄:

問題 1.2: Courses テーブルから、単位数(Credits)が3以上の有効な科目のCourseNameDepartmentを取得するSQL文を記述してください。

解答欄:

問題 1.3: Teachers テーブルで、TeacherIDが2の教員のSpecialtyを'数学'に更新するSQL文を記述してください。(UpdateUserも適切に設定してください)

解答欄:

問題 1.4: Students テーブルから、学年(Grade)が9の生徒のFirstNameLastNameDateOfBirthを、生年月日が古い順(降順)で取得するSQL文を記述してください。有効な生徒のみを対象とします。

解答欄:

問題 1.5: Courses テーブルから、CourseIDが4の科目を論理削除するSQL文を記述してください。(Enabledを0に更新し、DeleteDateUpdateUserも適切に設定してください)

解答欄:

問題 1.6: Teachers テーブルに、以下の教員情報を複数件一括で登録するSQL文を記述してください。
名: 'ジョン', 姓: 'スミス', 専門分野: '英語', 採用日: '2020-09-01'
名: 'メアリー', 姓: 'ブラウン', 専門分野: '生物学', 採用日: '2021-04-10'

解答欄:

目次へ戻る