Вопросы по SQL

Вопросы по SQL


1) За что отвечает символ звёздочка (*) в SQL-запросе select?

2) Чем отличается оператор union от оператора join?

3) Чем отличается union от union all?

 4) Расставьте в хронологическом порядке операции над БД выполняемые в следующем запросе, написав номер операции над ней в таблице ниже::

 select top 10 *

from weather w (nolock) left join holidays h (nolock)

      on w.date = h.date and h.event != 'Christmas_holidays'

where h.type = 'Weekend'

group by month(w.date)

having datepart(year, h.date) % 4 = 0

order by h.weekday

6 1 2 3 4 5 7

5) Если имеются две таблицы с совпадающими названиями полей (например таблицы Weather с полем date и таблица Holidays с полем date), объединенный join-ом по некоторому полю != date , а нужно вывести результат только одной таблицы. Каким образом это указывается в запросе?

6)  Какая конструкция будет (в среднем) выполняться быстрее:

select

      Клиент,

      case when Источник_клиента = 'интернет-заявка'

            then '1'

            when Источник_клиента = 'оффлайн'

            then '2'

      end "Категория клиента"

from Clients (nolock)

--=======================

select

      Клиент,

      1 as Категория клиента

from Clients (nolock)

where Источник_клиента = 'интернет-заявка'


union all

      

select

      Клиент,

      2 as Категория клиента

from Clients (nolock)

where Источник_клиента = 'оффлайн'

7) Имеются 2 поля в формате datetime, но из-за неудачного проектирования запись идет таким образом, что в одном поле дата, но без времени, а в другом поле – время, но без даты, нужно получить одно поле в котором будет и дата и время:

 date (datetime, но время не пишется – оно всегда статично)

2020-01-14 00:00:00:000

2020-01-15 00:00:00:000

2020-01-16 00:00:00:000

2020-01-17 00:00:00:000

Time (пишется время, но день всегда статичен)

1970-01-01 01:38:00:000

1970-01-01 12:56:00:000

1970-01-01 11:58:04:000

1970-01-01 08:38:07:000

Нужное поле – содержит и время, и дату

2020-01-14 01:38:00:0000

2020-01-15 12:56:00:0000

2020-01-16 11:58:04:0000

2020-01-17  08:38:07:0000

8) Что является более быстрым при прочих равных при select-запросе из двух объединенных таблиц – указание условий в блоке join или указание условий в блоке where?

9) Чем отличается raw_number от rank?

10) Какой командой можно вернуть все строки таблице, где поле Comment содержит хотя бы пробел или пустое выражение (но не NULL):

Пример таблицы

Id Comment

1 NULL

2 _

3 Ada___

4 Не известноыыю

5 Кто здесь??

11) Напишите условие, которое вернет все строки, содержащие нижнее подчеркивание в поле Comment

12) Какие существуют функции, позволяющиеся представить запись формата datetime (например, 20181031 00:00:00:012)

-                     в строку нужного вида (например ’31 октября 2018’)


-                     в запись того же формата datetime, но в нужном виде (например 31.10.18)

13)  За что отвечает команда GO в SQL?

14) С помощью какой команды можно завести переменную?

15) Какие бывают типы данных в SQL?

16) Как сделать так, чтобы команды в SQL-скрипте выполнялись пошагово, а не одновременно? (например при создании таблицы, добавлении полей и изменения их типов)

17) Вернет ли ошибку нижеприведенный запрос или отработает без ошибок:

declare @name varchar = 'Nikolay'

select * from Clients_offline where Name = @name

GO

select * from Clients_online where Name = @name




Report Page