Advertisement
MaximTakkaTo

Untitled

Dec 7th, 2020
1,080
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 7.65 KB | None | 0 0
  1. USE Carsh
  2. GO
  3. --1) Запросы с выбором строк по условию
  4. --запрос с использованием операторов сравнения
  5. SELECT *
  6.  FROM Тариф
  7.  WHERE Цена_за_час > 60
  8. --запрос с использованием логических операторов AND
  9. SELECT Госномер, YEAR(Год_выпуска) AS [Год выпуска]
  10.  FROM Автомобиль
  11.  WHERE Марка = 'Volkswagen' AND Модель = 'Polo'
  12. --запрос с использованием логических операторов OR
  13. SELECT Госномер, Марка, Модель, YEAR(Год_выпуска) AS [Год выпуска]
  14.  FROM Автомобиль
  15.  WHERE Марка = 'Renault' OR Марка = 'Hyundai'
  16. --запрос с использованием логических операторов NOT
  17. SELECT Название
  18.  FROM Тариф
  19.  WHERE NOT Страховка = 'Без страховки'
  20. --запрос на использование выражений над столбцами
  21. SELECT Название, Страховка, CAST(Цена_за_час * 0.8 AS int) AS [Цена за час со скидкой]
  22.  FROM Тариф
  23. --запрос с проверкой на принадлежность множеству
  24. SELECT *
  25.  FROM Поездка
  26.  WHERE Автомобиль IN (1, 2, 3)
  27. --запрос с проверкой на принадлежность диапазону значений
  28. SELECT *
  29.  FROM Тариф
  30.  WHERE Цена_за_час BETWEEN 70 AND 120
  31. --запрос с проверкой на соответствие шаблону
  32. SELECT Госномер, Марка, Модель
  33.  FROM Автомобиль
  34.  WHERE Госномер LIKE '[ОУ]%'
  35. --запрос с проверкой на неопределенное значение
  36. SELECT Название, Страховка
  37.  FROM Тариф
  38.  WHERE Описание IS NULl
  39. --2) Запросы на теоретико-множественные реляционные операции
  40. --запрос на объединение таблиц
  41. SELECT ФИО
  42.  FROM Клиент
  43.  WHERE Адрес LIKE 'г. Рязань%'
  44. UNION
  45. SELECT ФИО
  46.  FROM Клиент
  47.  WHERE Адрес LIKE 'г. Санкт-Петербург%'
  48. --запрос на пересечение таблиц
  49. SELECT Клиент
  50.  FROM Поездка
  51.  WHERE Автомобиль = 3
  52. INTERSECT
  53. SELECT Клиент
  54.  FROM Поездка
  55.  WHERE Автомобиль = 5
  56. --запрос на вычитание таблиц
  57. SELECT id_Автомобиля
  58.  FROM Автомобиль
  59. EXCEPT
  60. SELECT Автомобиль
  61.  FROM Поездка
  62. --3) Многотабличные запросы
  63. --запрос с использованием соединения двух таблиц по равенству и условием отбора
  64. SELECT ФИО, Автомобиль
  65.  FROM Клиент JOIN Поездка ON Клиент.id_Клиента = Поездка.Клиент
  66.  WHERE Адрес LIKE 'г. Рязань%'
  67. --запрос с использованием соединения трех таблиц по равенству и условием отбора
  68. SELECT id_Поездки, ФИО, Марка, Модель
  69.  FROM Автомобиль JOIN (Клиент JOIN Поездка ON Клиент.id_Клиента = Поездка.Клиент) ON Автомобиль.id_Автомобиля = Автомобиль
  70.  WHERE ФИО LIKE 'Шишкина%' AND Марка = 'Hyundai'
  71. --запрос с использованием соединения по четырем таблицам
  72. SELECT Название, Страховка, Госномер, Фио
  73.  FROM Тариф JOIN (Автомобиль JOIN (Клиент JOIN Поездка ON Клиент.id_Клиента = Поездка.Клиент) ON Автомобиль.id_Автомобиля = Автомобиль) ON Тариф.id_Тарифа = Тариф
  74. --запрос с использованием левого внешнего соединения
  75. SELECT Госномер, id_Поездки
  76.  FROM Поездка LEFT JOIN Автомобиль ON Автомобиль.id_Автомобиля = Поездка.Автомобиль
  77. --запрос на использование правого внешнего соединения
  78. SELECT Номер_ВУ, id_Поездки
  79.  FROM Клиент RIGHT JOIN Поездка ON Поездка.Клиент = Клиент.id_Клиента
  80. --- запрос с использованием функции COUNT
  81. SELECT ФИО, COUNT (ФИО) AS [Совершенные поездки]
  82.  FROM Клиент JOIN Поездка ON Клиент.id_Клиента = Поездка.Клиент
  83.  GROUP BY ФИО
  84. --запрос с использованием функции SUM
  85. SELECT Марка, SUM(DATEDIFF(hour,Дата_время_начала, Дата_время_окончания)) AS [Время поездки в часах]
  86.  FROM Тариф JOIN (Автомобиль JOIN Поездка ON Автомобиль.id_Автомобиля = Поездка.Автомобиль) ON Тариф.id_Тарифа = Тариф
  87.  GROUP BY Марка
  88. --3 запроса с использованием временных функций
  89. SELECT ФИО, DATEDIFF(DAY, Дата_время_окончания, SYSDATETIME()) AS [Прошло дней с момента поездки]
  90.  FROM Клиент JOIN Поездка ON Клиент.id_Клиента = Поездка.Клиент
  91. SELECT ФИО, Автомобиль, FORMAT(Дата_время_начала, 'D', 'ru-RU') + FORMAT(Дата_время_начала, N'HH:mm:ss'),
  92.                   FORMAT(Дата_время_окончания, 'D', 'ru-RU') + FORMAT(Дата_время_окончания, N'HH:mm:ss')
  93.  FROM Клиент JOIN Поездка ON Клиент.id_Клиента = Поездка.Клиент
  94. SELECT Марка, AVG(DATEDIFF(HOUR, Дата_время_начала, Дата_время_окончания))
  95.  FROM Автомобиль JOIN Поездка ON Автомобиль.id_Автомобиля = Поездка.Автомобиль
  96.  GROUP BY Марка
  97. --запрос с использованием группировки по одному столбцу
  98. SELECT Марка, COUNT(Марка) AS [Количество поездок]
  99.  FROM Автомобиль JOIN Поездка ON Автомобиль.id_Автомобиля = Поездка.Автомобиль
  100.  GROUP BY Марка
  101. --запрос на использование группировки по нескольким столбцам
  102. SELECT Марка, Модель, COUNT(Марка) AS [Количество поездок]
  103.  FROM Автомобиль JOIN Поездка ON Автомобиль.id_Автомобиля = Поездка.Автомобиль
  104.  GROUP BY Марка, Модель
  105. --запрос с использованием условия отбора групп HAVING
  106. SELECT Марка, COUNT(Марка) AS [Количество поездок]
  107.  FROM Автомобиль JOIN Поездка ON Автомобиль.id_Автомобиля = Поездка.Автомобиль
  108.  GROUP BY Марка
  109.  HAVING COUNT(Марка) > 1
  110. --запрос с использованием сортировки по столбцу
  111. SELECT Марка, SUM(DATEDIFF(hour,Дата_время_начала, Дата_время_окончания)) AS [Время поездки в часах]
  112.  FROM Тариф JOIN (Автомобиль JOIN Поездка ON Автомобиль.id_Автомобиля = Поездка.Автомобиль) ON Тариф.id_Тарифа = Тариф
  113.  GROUP BY Марка
  114.  ORDER BY [Время поездки в часах] DESC
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement