Advertisement
Guest User

Untitled

a guest
Nov 17th, 2019
339
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 5.50 KB | None | 0 0
  1. USE QALight;
  2.  
  3.  
  4. --  !!! В выходной выборке должны присутствовать только запрашиваемые в условии поля.
  5.  
  6. -- 1. Напишите один запрос с использованием псевдонимов для таблиц и псевдонимов полей,
  7. --    выбирающий все возможные комбинации городов (CITY) из таблиц
  8. --    STUDENTS, LECTURERS и UNIVERSITIES
  9. --    строки не должны повторяться, убедитесь в выводе только уникальных троек городов
  10. --    Внимание: убедитесь, что каждая колонка выборки имеет свое уникальное имя
  11.  
  12. SELECT DISTINCT S.CITY AS CITY_STUD,L.CITY AS CITY_LECT,U.CITY AS CITY_UNIV
  13. FROM STUDENTS AS S,LECTURERS AS L,UNIVERSITIES AS U;
  14.  
  15.  
  16. -- 2. Напишите запрос для вывода полей в следущем порядке: семестр, в котором он
  17. --    читается, идентификатора (номера ID) предмета обучения, его наименования и
  18. --    количества отводимых на этот предмет часов для всех строк таблицы SUBJECTS
  19. SELECT SEMESTER, ID, NAME, HOURS
  20. FROM SUBJECTS;
  21.  
  22.  
  23. -- 3. Выведите все строки таблицы EXAM_MARKS, в которых предмет обучения SUBJ_ID равен 4
  24. SELECT *
  25. FROM EXAM_MARKS
  26. WHERE SUBJ_ID=4;
  27.  
  28.  
  29.  
  30. -- 4. Необходимо выбирать все данные, в следующем порядке
  31. --    Стипендия, Курс, Фамилия, Имя  из таблицы STUDENTS, причем интересуют
  32. --    студенты, родившиеся после '1993-07-21'
  33. SELECT STIPEND, COURSE, SURNAME, NAME
  34. FROM STUDENTS
  35. WHERE BIRTHDAY > '1993-07-21';
  36.  
  37.  
  38.  
  39. -- 5. Вывести на экран все предметы: их наименования и кол-во часов для каждого из них
  40. --    в 1-м семестре и при этом кол-во часов не должно превышать 41
  41. SELECT NAME, HOURS
  42. FROM SUBJECTS
  43. WHERE SEMESTER = 1 AND HOURS < 41;
  44.  
  45. -- 6. Напишите запрос, позволяющий вывести из таблицы EXAM_MARKS уникальные
  46. --    значения экзаменационных оценок, которые были получены '2012-06-12'
  47.  
  48. SELECT DISTINCT MARK
  49. FROM EXAM_MARKS
  50. WHERE EXAM_DATE = '2012-06-12';
  51.  
  52.  
  53.  
  54. -- 7. Выведите список фамилий студентов, обучающихся на третьем и последующих
  55. --    курсах и при этом проживающих не в Киеве, не Харькове и не Львове.
  56.  
  57. SELECT SURNAME
  58. FROM STUDENTS
  59. WHERE COURSE >= 3 AND CITY != 'Киев' AND CITY != 'Харьков' AND CITY != 'Львов' ;
  60.  
  61. SELECT SURNAME
  62. FROM STUDENTS
  63. WHERE COURSE >= 3 AND CITY NOT IN ('Киев', 'Харьков', 'Львов');
  64. -- 8. Покажите данные о фамилии, имени и номере курса для студентов,
  65. --    получающих стипендию в диапазоне от 450 до 650, не включая
  66. --    эти граничные суммы. Приведите несколько вариантов решения этой задачи.
  67. SELECT SURNAME, NAME, COURSE
  68. FROM STUDENTS
  69. WHERE STIPEND BETWEEN 451 AND 649;
  70.  
  71. SELECT SURNAME, NAME, COURSE
  72. FROM STUDENTS
  73. WHERE STIPEND > 450 AND STIPEND > 650;
  74.  
  75. -- 9. Напишите запрос, выполняющий выборку из таблицы LECTURERS всех фамилий
  76. --    преподавателей, проживающих во Львове, либо же преподающих в университете
  77. --    с идентификатором 14
  78. SELECT SURNAME
  79. FROM LECTURERS
  80. WHERE CITY = 'Львов' OR UNIV_ID = 14;
  81.  
  82.  
  83. -- 10. Выясните в каких городах (названия) расположены университеты,  
  84. --     рейтинг которых составляет 528 +/- 47 баллов.
  85. SELECT CITY
  86. FROM UNIVERSITIES
  87. WHERE RATING BETWEEN 481 AND 575
  88.  
  89. -- 11. Отобрать список фамилий киевских студентов, их имен и дат рождений
  90. --     для всех нечетных курсов.
  91.  
  92. SELECT SURNAME, NAME, BIRTHDAY
  93. FROM STUDENTS
  94. WHERE CITY = 'Киев' AND COURSE IN (1, 3, 5);
  95.  
  96. -- 12. Упростите выражение фильтрации (избавтесь от NOT) и дайте логическую формулировку запроса?
  97. -- SELECT * FROM STUDENTS WHERE (STIPEND < 500 OR NOT (BIRTHDAY >= '1993-01-01' AND ID > 9))
  98. -- Подсказка: после упрощения, запрос должен возвращать ту же выборку, что и оригинальный
  99.  
  100. SELECT *
  101. FROM STUDENTS
  102. WHERE STIPEND < 500 OR (BIRTHDAY < '1993-01-01' AND ID <= 9) ;
  103.  
  104. -- 13. Упростите выражение фильтрации (избавтесь от NOT) и дайте логическую формулировку запроса?
  105. -- SELECT * FROM STUDENTS WHERE NOT ((BIRTHDAY = '1993-06-07' OR STIPEND > 500) AND ID >= 9)
  106. -- Подсказка: после упрощения, запрос должен возвращать ту же выборку, что и оригинальный
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement