Эта статья является расширением часто задаваемых вопросов интервью СУБД | Установите 1 .
В. Есть таблица, в которой полностью повторяется только одна строка. Напишите запрос, чтобы найти повторную строку
Name | Section |
abc | CS1 |
bcd | CS2 |
abc | CS1 |
В приведенной выше таблице мы можем найти повторяющуюся строку, используя запрос ниже.
SELECT name, section FROM tbl GROUP BY name, section HAVING COUNT(*) > 1
Q. Запрос, чтобы найти 2-й самый высокий оклад сотрудника?
SELECT max(salary) FROM EMPLOYEES WHERE salary IN (SELECT salary FROM EMPLOYEEs MINUS SELECT max(salary) FROM EMPLOYEES);
ИЛИ
SELECT max(salary) FROM EMPLOYEES WHERE salary <> (SELECT max(salary) FROM EMPLOYEES);
Q. Рассмотрите следующую таблицу сотрудников. Сколько строк в результате следующего запроса?
ID зарплаты DeptName
1 10000 EC
2 40000 EC
3 30000 CS
4 40000 МЕ
5 50000 ME
6 60000 ME
7 70000 CS
Сколько строк в результате следующего запроса?
SELECT E.ID FROM Employee E WHERE EXISTS (SELECT E2.salary FROM Employee E2 WHERE E2.DeptName = 'CS' AND E.salary > E2.salary)
Следующие 5 строк будут результатом запроса, так как 3000 — минимальная зарплата сотрудников CS, и все эти строки больше 30000.
2
4
5
6
7
Q. Напишите триггер для обновления таблицы Emp так, чтобы, если обновление выполнялось в таблице Dep, зарплата всех сотрудников этого отдела была увеличена на некоторое количество (обновление)
Предполагая, что в качестве имени таблицы используются Dept и Emp, триггер можно записать как —
CREATE OR REPLACE TRIGGER update_trig AFTER UPDATE ON Dept FOR EACH ROW DECLARE CURSOR emp_cur IS SELECT * FROM Emp; BEGIN FOR i IN emp_cur LOOP IF i.dept_no = :NEW.dept_no THEN DBMS_OUTPUT.PUT_LINE(i.emp_no); -- for printing those UPDATE Emp -- emp number which are SET sal = i.sal + 100 -- updated WHERE emp_no = i.emp_no; END IF; END LOOP; END;
Q. Существует таблица, которая содержит два столбца «Студент» и «Оценки», вам нужно найти всех учащихся, оценки которых превышают средние оценки, то есть список учащихся выше среднего уровня.
SELECT student, marks FROM table WHERE marks > SELECT AVG(marks) from table;
Q. Назовите студента, который получил третье высшее образование, используя подзапросы.
SELECT Emp1.Name FROM Employee Emp1 WHERE 2 = (SELECT COUNT(DISTINCT(Emp2.Salary)) FROM Employee Emp2 WHERE Emp2.Salary > Emp1.Salary )
* ЛОГИКА — Количество людей с зарплатой выше, чем этот человек будет 2.
В. Почему мы не можем использовать предложение WHERE с агрегатными функциями, такими как HAVING?
Различие между предложением where и where в SQL заключается в том, что предложение where НЕ МОЖЕТ использоваться с агрегатами, а предложение has может. Обратите внимание: это не предопределенное правило, но в целом вы увидите, что в большом количестве SQL-запросов мы используем WHERE до GROUP BY и HAVING после GROUP BY.
Предложение Where действует как предварительный фильтр, а в качестве Имеющего — как пост-фильтр.
Предложение where работает с данными строки, а не с агрегированными данными.
Рассмотрим ниже таблицу «Знаки».
Оценка студенческого курса
с1 40
с2 50
б с3 60
д с1 70
е с2 80
Рассмотрим запрос
SELECT Student, sum(Score) AS total FROM Marks
Это выберет данные построчно. Имеющий предложение работает на агрегированных данных.
Например, вывод запроса ниже
SELECT Student, sum(score) AS total FROM Marks
Всего студентов
90
б 60
д 70
Е 80
Когда мы применяем наличие в запросе выше, мы получаем
SELECT Student, sum(score) AS total FROM Marks having total > 70
Всего студентов
90
Е 80
В. Разница между первичным ключом и уникальным ключом и почему следует использовать уникальный ключ, если он допускает только один ноль?
Первичный ключ:
- Только один в ряд (кортеж).
- Никогда не допускает нулевого значения (только ключевое поле).
- Уникальный идентификатор ключа и не может быть нулевым и должен быть уникальным.
Уникальный ключ:
- Может быть более одного уникального ключа в одном ряду.
- Уникальный ключ может иметь нулевые значения (допускается только один нулевой).
- Это может быть ключ-кандидат.
- Уникальный ключ может быть нулевым и не может быть уникальным.
В. В чем разница между материализованным и динамическим представлением?
Материализованные взгляды
- На основе диска и периодически обновляются на основе определения запроса.
- Материализованная таблица создается или обновляется нечасто, и ее необходимо синхронизировать с соответствующими базовыми таблицами.
Динамические представления
- Только виртуальный и запускайте определение запроса каждый раз, когда к ним обращаются.
- Динамическое представление может создаваться каждый раз, когда пользователь запрашивает конкретное представление.
В. Что такое встроенный и динамический SQL?
Статический или встроенный SQL
- Операторы SQL в приложении, которые не изменяются во время выполнения и, следовательно, могут быть жестко запрограммированы в приложении.
Динамический SQL
- Операторы SQL, которые создаются во время выполнения; например, приложение может разрешать пользователям вводить свои собственные запросы.
- Динамический SQL — это метод программирования, который позволяет динамически создавать операторы SQL во время выполнения. Вы можете создавать более универсальные, гибкие приложения, используя динамический SQL, поскольку полный текст оператора SQL может быть неизвестен при компиляции.
S.No. | Static (embedded) SQL | Dynamic (interactive) SQL |
1. | In static SQL how database will be accessed is predetermined in the embedded SQL statement. | In dynamic SQL, how database will be accessed is determined at run time. |
2. | It is more swift and efficient. | It is less swift and efficient. |
3. | SQL statements are compiled at compile time. | SQL statements are compiled at run time. |
4. | Parsing, validation, optimization, and generation of application plan are done at compile time. | Parsing, validation, optimization, and generation of application plan are done at run time. |
5. | It is generally used for situations where data is distributed uniformly. | It is generally used for situations where data is distributed non-uniformly. |
6. | EXECUTE IMMEDIATE, EXECUTE and PREPARE statements are not used. | EXECUTE IMMEDIATE, EXECUTE and PREPARE statements are used. |
7. | It is less flexible. | It is more flexible. |
http://docs.oracle.com/cd/A87860_01/doc/appdev.817/a76939/adg09dyn.htm
В. В чем разница между CHAR и VARCHAR?
- CHAR и VARCHAR различаются по хранению и поиску.
- Длина столбца CHAR фиксирована, а длина VARCHAR является переменной.
- Максимум нет. символьный тип данных CHAR может содержать до 255 символов, а VARCHAR может содержать до 4000 символов.
- CHAR на 50% быстрее, чем VARCHAR.
- CHAR использует статическое выделение памяти, а VARCHAR использует динамическое выделение памяти.
Вам также может понравиться:
- Практические тесты по СУБД
- Заметки в последнюю минуту — СУБД
- Статьи СУБД
Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.
Рекомендуемые посты:
- Вопросы об интервью SQL
- Разложение без потерь в СУБД
- Внедрение реляционной алгебры в СУБД
- Нужна для СУБД
- Часто задаваемые вопросы интервью СУБД | Комплект 1
- Нормальные формы в СУБД
- Просмотр сериализуемости в транзакциях СУБД
- Реляционная модель в СУБД
- Контроль параллелизма в СУБД
- Сериализуемость конфликта в СУБД
- Восстанавливаемость в СУБД
- Заметки в последнюю минуту — СУБД
- Свойства ACID в СУБД
- Архитектура СУБД 2-х уровневая, 3-х уровневая
- Внедрение СУБД (Система управления базами данных) | Комплект 1
0.00 (0%) 0 votes