Database schema:
CREATE TABLE Students (
  Student_ID NUMBER PRIMARY KEY,
  First_Name TEXT,
  Middle_Name TEXT,
  Last_Name TEXT,
  Gender_MFU TEXT,
  Student_Address TEXT,
  Email_Adress TEXT,
  Cell_Mobile_Phone TEXT,
  Home_Phone TEXT
);
CREATE TABLE Questions (
  Question_ID NUMBER PRIMARY KEY,
  Type_of_Question_Code TEXT,
  Question_Text TEXT
);
CREATE TABLE Exams (
  Exam_ID NUMBER PRIMARY KEY,
  Subject_Code TEXT,
  Exam_Date TIME,
  Exam_Name TEXT
);
CREATE TABLE Questions_in_Exams (
  Exam_ID NUMBER PRIMARY KEY,
  Question_ID NUMBER,
  FOREIGN KEY (Exam_ID) REFERENCES Exams(Exam_ID),
  FOREIGN KEY (Question_ID) REFERENCES Questions(Question_ID)
);
CREATE TABLE Valid_Answers (
  Valid_Answer_ID NUMBER PRIMARY KEY,
  Question_ID NUMBER,
  Valid_Answer_Text TEXT,
  FOREIGN KEY (Question_ID) REFERENCES Questions(Question_ID)
);
CREATE TABLE Student_Answers (
  Student_Answer_ID NUMBER PRIMARY KEY,
  Exam_ID NUMBER,
  Question_ID NUMBER,
  Student_ID NUMBER,
  Date_of_Answer TIME,
  Comments TEXT,
  Satisfactory_YN TEXT,
  Student_Answer_Text TEXT,
  FOREIGN KEY (Exam_ID) REFERENCES Questions_in_Exams(Exam_ID),
  FOREIGN KEY (Question_ID) REFERENCES Questions_in_Exams(Question_ID),
  FOREIGN KEY (Student_ID) REFERENCES Students(Student_ID)
);
CREATE TABLE Student_Assessments (
  Student_Answer_ID TEXT PRIMARY KEY,
  Valid_Answer_ID NUMBER,
  Student_Answer_Text TEXT,
  Satisfactory_YN TEXT,
  Assessment TEXT,
  FOREIGN KEY (Valid_Answer_ID) REFERENCES Valid_Answers(Valid_Answer_ID)
);

Question: How many exams are there?
SQL: SELECT count(*) FROM Exams

Question: What are the type of questions and their counts?
SQL: SELECT Type_of_Question_Code ,  COUNT(*) FROM Questions GROUP BY Type_of_Question_Code

Question: Find the valid answer text that appeared most frequently.
SQL: SELECT Valid_Answer_Text FROM Valid_Answers GROUP BY Valid_Answer_Text ORDER BY COUNT(*) DESC LIMIT 1

Question: Show all information on students.
SQL: SELECT * FROM Students

Question: Sort the student answer texts in descending order of their frequency of occurrence.
SQL: SELECT Student_Answer_Text FROM Student_Answers GROUP BY Student_Answer_Text ORDER BY COUNT(*) DESC

Question: Which assessment has the smallest frequency count?
SQL: SELECT Assessment FROM Student_Assessments GROUP BY Assessment ORDER BY COUNT(*) ASC LIMIT 1

Question: Please show the first names of the students that have at least two answer records.
SQL: SELECT T2.First_Name FROM Student_Answers AS T1 JOIN Students AS T2 ON T1.Student_ID  =  T2.Student_ID GROUP BY T1.Student_ID HAVING COUNT(*)  >=  2

Question: What are the dates of the exams whose subject code contains the substring "data"? Return them in descending order of dates.
SQL: SELECT Exam_Date FROM Exams WHERE Subject_Code LIKE '%data%' ORDER BY Exam_Date DESC

Question: Which students do not have any answers? Find their first names.
SQL: SELECT First_Name FROM Students WHERE Student_ID NOT IN (SELECT Student_ID FROM Student_Answers)

Question: List each gender and the corresponding number of students.
SQL: SELECT Gender_MFU ,  COUNT(*) FROM Students GROUP BY Gender_MFU

Question: Give me an alphabetically ordered list of the distinct subject code for exams.
SQL: SELECT DISTINCT Subject_Code FROM Exams ORDER BY Subject_Code

Question: Which types of questions have 3 or more questions? Return the questions type code.
SQL: SELECT Type_of_Question_Code FROM Questions GROUP BY Type_of_Question_Code HAVING count(*)  >=  3

Question: List all the distinct student answer texts to which comments "Normal" were given?
SQL: SELECT DISTINCT Student_Answer_Text FROM Student_Answers WHERE Comments  =  "Normal"