SQL Flashcards

1
Q

найти вторую самую высокую зарплату работника

A
select MAX(Salary) from Employee 
WHERE Salary NOT IN (select MAX(Salary) from Employee );
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

найти максимальную зарплату от каждого отдела.

A

SELECT DeptID, MAX(Salary) FROM Employee GROUP BY DeptID.

Если Интервьюер попросит вас напечатать название отдела вместо отдела ID,
SELECT DeptName, MAX(Salary) FROM Employee e
RIGHT JOIN Department d ON e.DeptId = d.DeptID
GROUP BY DeptName;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

запрос для отображения текущей даты.

A

SELECT GetDate();

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Напишите SQL запрос, чтобы напечатать имя отдельного работника у которого поле DOB составляет от 01/02/1965 до 31/11/1970.

A

SELECT DISTINCT EmpName FROM Employees

WHERE DOB BETWEEN ‘01/02/1965’ AND ‘31/11/1970’;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

: написать SQL запрос, где найти количество сотрудников в зависимости от пола , чье поле DOB между 01/02/1965 до 31/11/1970.

A

SELECT COUNT(*), sex from Employees
WHERE DOB BETWEEN ‘01/02/1965’ AND ‘31/11/1970’
GROUP BY sex;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Напишите SQL запрос, чтобы найти сотрудника, чья зарплата равна или превышает 20000.

A

SELECT EmpName FROM Employees WHERE Salary>=20000;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Напишите SQL запрос, чтобы найти имя сотрудника, чье имя начинается с ‘M’

A

SELECT * FROM Employees WHERE EmpName like ‘M%’

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Найти все записи о сотрудниках, содержащие слово “Роман”, независимо от того, был ли он, как РОМАН, Роман, или роман.

A

SELECT * from Employees WHERE UPPER(EmpName) like ‘%РОМАН%’;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Написать SQL – запрос для поиска дубликатов строк в базе данных? а затем написать SQL запрос, чтобы удалить их?

A

SELECT * FROM emp a
WHERE rowid = (SELECT MAX(rowid) FROM EMP b WHERE a.empno = b.empno)

DELETE FROM emp a
WHERE rowid != (SELECT MAX(rowid) FROM emp b WHERE a.empno = b.empno);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Существует таблица, которая содержит два столбца Student и Marks, вам нужно найти всех студентов, чьи оценки являются больше, чем средние оценки, т.е. список студентов выше среднего.

A

SELECT student, marks

from table where marks > SELECT AVG(marks) from table)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Как вы находите всех сотрудников, которые являются также менеджерами?

A

SELECT e.name, m.name FROM Employee e, Employee m

WHERE e.mgr_id = m.emp_id;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

У вас есть композитный индекс из трех колонок, как вы обеспечиваете значение двух столбцов в WHERE на выборку? Будет ли индекс использоваться для этой операции?

A

SELECT * FROM Employee WHERE EmpId=2 and EmpFirstName=’Radhe’

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

что такое база данных

A

набор организованных данных

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

какие бывают модели данных

A

сетевые, обьектные, иерархические, реляционные

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Что такое нормализация

A

неделимая информация в ячейках, неделимость смысловых столбцов

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Какие бывают типы связей в БД

A

1 ко многим, один к одному, многие ко многим

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Primery Key

A

id столбец(обычно) в котором идет привязка к данным

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Foreign key

A

Внишний ключ, вторичный является дублером primery key другого столбца, для свзяи данных

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Индекс

A

метки для ускорения чтения - замедляют вставку и удаление..знаю ID, другие пока не встречал

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Как создать соединение с БД

A

Connection connection=Driver.Manager.getConnection(“jdbc:mysql://localhost”,”login”, “password”);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

что такое Statement

A

запрос

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

что такое prepareStatement

A

запрос с параметрами

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Какие бывают типы чтения транзакции

A

грязное - читаются данные во время выччисления, могут прочитаться ложные данные

неповторяющиеся - А прочитало строку, Б изменило строку , А снова прочитало

фантомное чтение - тоже когда несколько строк

24
Q

Уровни изоляции транзакций

A

none - драйвер не поддерживает транзакции
read uncommited - позволяет транзакции видеть не сохраненные транзакции
repeatable read- разрешает только фантомное чтение
serializable - фантомное чтение тоже запрещено

25
Q

Типы
управления
доступом

A

Дискреционный - владелец объекта сам определяет
тех, кто имеет доступ к объекту, а
также вид их доступа

Обязательный - Каждому субъекту и объекту
системы назначается некоторый
уровень безопасности (УБ).

Ролевой - на основе ролей

26
Q

Корелляция нормализация и

производительности в бд

A

нормализация - устранение
противоречивости
как следствие порождает множество дополнительных таблиц, которые придется джойнить

27
Q

как в кратце работает компьютер.

A

Из тригеров собирается логика - процессор. Из конденсаторов битная память. Команды воздеюствуют на память - получается программы. Из них собирается ОС и языки программирования.

28
Q

Сетевая модель OSI

A
Физический бит физическая среда
Канальный фрейм сетевая карта
Сетевой пакет Ipv4
Транспортный дейтаграммы TCP/UDP
Сеансовый Реализации на сокетах
Представительский ASCII
Прикладной HTTP
29
Q

RPC

A

Удалённый вызов процедур, реже Вызов удалённых процедур (от англ. Remote Procedure Call, RPC) — класс технологий, позволяющих компьютерным программам вызывать функции или процедуры в другом адресном пространстве (как правило, на удалённых компьютерах). Обычно реализация RPC-технологии включает в себя два компонента: сетевой протокол для обмена в режиме клиент-сервер и язык сериализации объектов (или структур, для необъектных RPC). Различные реализации RPC имеют очень отличающуюся друг от друга архитектуру и разнятся в своих возможностях: одни реализуют архитектуру SOA, другие - CORBA или DCOM. На транспортном уровне RPC используют в основном протоколы TCP и UDP, однако, некоторые построены на основе HTTP (что нарушает архитектуру ISO/OSI, так как HTTP - изначально не транспортный протокол).

30
Q

Пакеты

A

из фреймов

31
Q

фрейм

A
Преамбула
Начало кадра
MAC получателя
MAC отправителя
Длина
Данные
Контрольная сумма кадра
32
Q

отличия TCP от UDP

A

ТСP - достоверность и порядок
UDP веерная расслыка
без подтверждений

33
Q

NIC

A

NIC(сетевая карта\вафай)

34
Q

Протокол Передачи Гипертекст

A

HTTP и HTTPS

35
Q

NAT

A
механизм преобразования IP
адресов в сетевых пакетах
позволяет динамически менять
эти адреса и сохранять таблицу
подменённых адресов.
36
Q

VPN

A

вложение одного tcp/ip пакета в другой и шифрование
содержимого. Получается виртуальная сеть работающая
внутри реальной сети. Для виртуальных сетей создаются
виртуальные сетевые устройства (tun/tap) с виртуальными же
IP адресами, видимыми только внутри нашей виртуальной
зашифрованной сети.

37
Q

DNS - служба

A

таблица соответствия

доменных имен IP адресам

38
Q

DHCP

A

протокол, использующийся для
автоматического выставления различной
конфигурации, в том числе IP-адресов

39
Q

ARP

A

ассоциирует MAC-адрес

сервера с его IP адресом

40
Q

VLAN

A

виртуальная частная сеть, когда сервера
в разных локация, к кадру
к кадрам добавляется дополнительный заголовок
с VLAN-тегом, по которому и определяется к какой
сети принадлежит кадр.
мост(между двумя маршрутизаторами)

41
Q

Задеплоить приложение

A

собирает варник в папке с
приложением mvn clean install

копируешь в томкат\вебаппс
томкат\бин\стартап
в урле
локалхост:порт\имя_приложения\

42
Q

Очереди сообщений

A

Сервер очереди хранит список сообщений (или задач,
job queue), которые отправляет ему основное
приложение. Задача — это просто информация о том,
что и как нужно выполнить. Сам сервер очереди ничего не выполняет.
Единственной его задачей является хранение самой очереди.
Сервер очереди хранит список сообщений (или задач,
job queue), которые отправляет ему основное
приложение. Задача — это просто информация о том,
что и как нужно выполнить. Сам сервер очереди ничего не выполняет.
Единственной его задачей является хранение самой очереди.

43
Q

Что такое транзакции в БД

A

атомарного действия над БД, переводящего ее из одного целостного состояния в другое целостное состояние.

44
Q

Чем отличается left join от inner join

A

грубо говоря, из 2х таблиц left join выберет из главной таблицы все записи, даже если во второй таблице нет совпадений по какому-то условию. INNER JOIN выберет только те, что полностью соответствуют условию

45
Q

Ссылочная целостность

A

можно хранить данные без избыточного дублирования, то есть в нормализованном виде.

46
Q

JPQL что такое

A

Язык запросов через JPA сущности

47
Q

Что такое Уровень изолированности транзакций в общем

A

условное значение, определяющее, какие данные буду прочитаны во время транзакции

48
Q

Проблемы параллельного доступа с использованием транзакций

A

потерянное обновление — при одновременном изменении одного блока данных разными транзакциями одно из изменений теряется;

«грязное» чтение (англ. dirty read) — чтение данных, добавленных или изменённых транзакцией, которая впоследствии не подтвердится (откатится);

неповторяющееся чтение (англ. non-repeatable read) — при повторном чтении в рамках одной транзакции ранее прочитанные данные оказываются изменёнными;

фантомное чтение (англ. phantom reads) — одна транзакция в ходе своего выполнения несколько раз выбирает множество строк по одним и тем же критериям. Другая транзакция в интервалах между этими выборками добавляет или удаляет строки или изменяет столбцы некоторых строк, используемых в критериях выборки первой транзакции, и успешно заканчивается. В результате получится, что одни и те же выборки в первой транзакции дают разные множества строк.

49
Q

Какие вы знаете Уровни изоляции транзакции

A

Read uncommitted Транзакции, выполняющие только чтение, при данном уровне изоляции никогда не блокируются.

Read committed

Repeatable read Уровень, при котором читающая транзакция «не видит» изменения данных, которые были ею ранее прочитаны. При этом никакая другая транзакция не может изменять данные, читаемые текущей транзакцией, пока та не окончена.Однако другие транзакции могут вставлять новые строки, соответствующие условиям поиска инструкций, содержащихся в текущей транзакции. При повторном запуске инструкции текущей транзакцией будут извлечены новые строки, что приведёт к фантомному чтению.

Serializable (упорядочиваемость) Самый высокий уровень изолированности; транзакции полностью изолируются друг от друга, каждая выполняется так, как будто параллельных транзакций не существует. Только на этом уровне параллельные транзакции не подвержены эффекту «фантомного чтения».

50
Q

code first & db first

A

Обычно проектируется БД затем по ней пишутся модели. Есть же фреймворки на которых мы сначала пишем модели, а они сами настраивают Архитектуру базы

51
Q

минусы индексации в БД

A

1) индексы занимают дополнительное место на диске и в оперативной памяти.
2) Замедляются операции вставки, обновления и удаления записей. Однако алгоритмы построения индексов разработаны таким образом что бы иметь как можно меньший негативный эффект для указанных операций и даже позволяет выполнять их быстрее

52
Q

зачем нужны индексы

A

если вы создадите индекс по первичному ключу, а затем будете искать строку с данными, используя значения первичного ключа, то SQL Server сначала найдет значение индекса, а затем использует индекс для быстрого нахождения всей строки с данными. Без индекса будет выполнен полный просмотр (сканирование) всех строк таблицы, что может оказать значительное влияние на производительность.

53
Q

Какие бывают индексы в БД

A

Составной ключ - индекс может быть создан на основании нескольких полей.длина ключа индекса не должна превышать 900 байтов

Уникальные индексы - для реализации целостности данных в БД.

54
Q

Как вставлять большие данные в таблицу

A

Через JOIN и желательно группировать по индексу - так быстрее чем по полю

55
Q

Почему нельзя писать константы в запросе? (hardcode)

A

Дурной тон, потому как:

возможны Sql injections - нужно заворачивать в preparedStatement + забивается кэш в некоторых БД

56
Q

зачем пул соединений нужен?

A

открытия соединения с сервером, является довольно долгим и мы можем его исключить заранее подготовив пул уже открытых соединений и предоставляя из него соединения приложению по мере необходимости. Если все открытые соединения уже заняты, создаётся новое. Как только пользователь освобождает одно из уже существующих соединений, оно становится доступно для других пользователей. Если соединение долго не используется, оно закрывается.