1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/xuthus5-Database-SQL-Actual-Combat

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Примеры работы с SQL в базах данных|Опция|Описание|

|:---:|:------:| |:monkey_face:|Пройден| |:see_no_evil:|Не пройден или не соответствует синтаксису MySQL 5.7||

Номер Категория Заголовок Подтверждение
1 Фильтрация [Найти все данные о сотрудниках с самым поздним днём приема] :monkey_face:
2 Фильтрация [Найти всех сотрудников, чьё время приема находится на третьем месте с конца] :monkey_face:
3 Соединение [Найти текущие детали заработной платы и номер отдела dept_no] :monkey_face:
4 Соединение [Найти last_name и first_name всех сотрудников, которым уже назначен отдел] :monkey_face:
5 Соединение [Найти last_name и first_name всех сотрудников и соответствующий им номер отдела dept_no] :monkey_face:
6 Соединение [Найти информацию о начальной зарплате при найме всех сотрудников] :monkey_face:
7 Группировка [Найти номер сотрудника emp_no и количество повышений зарплаты t, превышающее 15] :monkey_face:
8 Фильтрация [Найти текущую зарплату salary всех сотрудников] :monkey_face:
9 Соединение [Получить текущую зарплату менеджера для каждого отдела, включая dept_no, emp_no и salary, где to_date = 9999-01-01] :monkey_face:
10 Фильтрация [Получить список всех сотрудников, которые не являются менеджерами, emp_no] :monkey_face:
11 Соединение [Получить текущего менеджера для каждого сотрудника] :monkey_face:
13 Группировка и агрегация [Получить группировку данных по title из таблицы titles] :monkey_face:
14 Группировка и агрегация [Получить группировку данных по title из таблицы titles] :monkey_face:
15 Фильтрация [Найти данные из таблицы employees] :monkey_face:
16 Группировка и агрегация [Подсчитать среднюю зарплату для каждого типа должностей на основе текущей зарплаты]
--- --- ---
17 Фильтрация Получение номера сотрудника emp_no с второй по величине текущей зарплатой salary 😹
18 Соединение Получение номера сотрудника emp_no с второй по величине текущей зарплатой salary без использования ORDER BY 😹
19 Соединение Поиск всех сотрудников last_name и first_name вместе с соответствующими названиями департаментов dept_name 😹
20 Фильтрация Поиск номера сотрудника emp_no равного 10001 и его увеличения зарплаты growth с момента найма 😹
22 Группировка и агрегация Подсчет количества случаев повышения заработной платы для каждого департамента 😹
23 Ранг Распределение рангов всем сотрудникам по зарплате salary от 1 до N 🙈
24 Соединение Получение текущих зарплат всех сотрудников, кроме менеджеров 😹
25 Соединение Получение информации о сотрудниках, чья текущая зарплата выше зарплаты своего менеджера 😹
26 Соединение и группировка Сводка количества распределения типов должностей title для каждого департамента 😹
27 Соединение Указание номера сотрудника emp_no для каждого сотрудника, у которого годовой прирост зарплаты превышает 5000 🙈
29 Соединение Используя метод join найти id и название фильмов, не имеющих категорий :monkey_face:
30 Подзапрос Используйте подзапрос для выявления всех фильмов, относящихся к категории Action, и их title, description :monkey_face:
31 Оптимизация Получите план выполнения запроса SELECT * FROM employees :monkey_face:
32 Обработка строк Соедините last_name и first_name всех сотрудников в таблице employees как Name :see_no_evil:
33 Действия над таблицами Создайте таблицу actor со следующими столбцами информации :see_no_evil:
34 Действия над данными Большое количество вставок данных :monkey_face:
36 Действия над таблицами и данными [Создайте таблицу actor_name](36. Создание таблицы actor_name.md) :monkey_face:
37 Индексы [Создайте уникальный индекс uniq_idx_firstname для first_name](37. Создание уникального индекса uniq_idx_firstname для first_name.md) :monkey_face:
38 Виды [Создайте представление actor_name_view для таблицы actor](38. Создание представления actor_name_view для таблицы actor.md) :monkey_face:
39 Индексы [Создайте индекс idx_emp_no для поля emp_no в таблице salaries](39. Создание индекса idx_emp_no для поля emp_no в таблице salaries.md) :see_no_evil:
40 Действия над таблицами [Добавьте новую колонку create_date после колонки last_update](40. Добавление новой колонки create_date после колонки last_update.md) :see_no_evil:
41 Триггеры [Создайте триггер audit_log](41. Создание триггера audit_log.md) :monkey_face:
42 Действия над данными [Удалите повторяющиеся записи emp_no, оставив только минимальные id](42. Удаление повторяющихся записей emp_no, оставив только минимальные id.md) :monkey_face:
43 Действия над данными [Обновите все to_date = '9999-01-01' до NULL](43. Обновление всех to_date = '9999-01-01' до NULL.md) :monkey_face:
44 Действия над данными [Замените данные строки id=5 и emp_no=10001 на id=5 и emp_no=10005](44. Замена данных строки id=5 и emp_no=10001 на id=5 и emp_no=10005.md) :monkey_face:
46 Внешний ключ [Создание внешнего ключа в таблице audit, где emp_no соответствует первичному ключу id в таблице employees_test](Создание внешнего ключа в таблице audit.md) :monkey_face:
47 Соединение [Как получить данные с одинаковым значением no из emp_v и employees](Как получить данные с одинаковым значением no из emp_v и employees.md) :monkey_face:
48 Операции с данными [Увеличение текущей зарплаты всех сотрудников, получающих премию, на 10%](Увеличение текущей зарплаты всех сотрудников, получающих премию, на 10%.md) :monkey_face:
49 Обработка строк [Генерация SQL-запросов SELECT COUNT(*) для всех таблиц в базе данных](Генерация SQL-запросов для всех таблиц в базе данных.md) :see_no_evil:
50 Обработка строк [Объединение last_name и first_name всех сотрудников в таблице employees через ('')](Объединение last_name и first_name всех сотрудников в таблице employees через ''.md) :see_no_evil:
51 Обработка строк [Поиск количества вхождений запятой ',' в строке '10,A,B'](Поиск количества вхождений запятой ','.md) :monkey_face:
52 Обработка строк [Получение имени first_name из таблицы Employees](Получение имени first_name из таблицы Employees.md) :monkey_face:
53 Агрегирующие функции [Агрегация по dept_no](Агрегация по dept_no.md) :monkey_face:
55 ключевые слова [Пагинация запроса к таблице employees, 5 строк на страницу, вернуть данные второй страницы](55. Пагинация запроса к таблице employees.md) :monkey_face:
56 соединение [Получение emp_no всех сотрудников](56. Получение emp_no всех сотрудников.md) :monkey_face:
57 подзапрос [Использование ключевого слова EXISTS для поиска информации о сотрудниках, не имеющих конкретного отдела](57. Использование ключевого слова EXISTS для поиска информации о сотрудниках, не имеющих конкретного отдела.md) :monkey_face:
58 представление [Получение строк данных из таблицы employees, которые также содержатся в emp_v](58. Получение строк данных из таблицы employees, которые также содержатся в emp_v.md) :monkey_face:
59 условные выражения [Получение информации о сотрудниках, получающих премию](59. Получение информации о сотрудниках, получающих премию.md) :monkey_face:
60 повторное использование таблиц [Статистика суммы зарплат running_total](60. Статистика суммы зарплат running_total.md) :monkey_face:
61 повторное использование таблиц [Первое имя first_name для нечётных строк в таблице employees](61. Первое имя first_name для нечётных строк в таблице employees.md) :see_no_evil:

**Ответы полностью проверены на платформе NowCoder.Язык SQL — SQLite 3.7.9Решение задач в основном основано на форуме NowCoder.

Локальные тесты проводятся с использованием MySQL 5.7, некоторые синтаксические конструкции отличаются от SQLite. Для MySQL версий 5.7+, следует установить параметр sql_mode, чтобы правильно использовать группировки (решает проблему строгих условий запросов GROUP BY из-за ONLY_FULL_GROUP_BY, этот метод используется временно).

SET SQL_MODE = (SELECT REPLACE(@@SQL_MODE, 'ONLY_FULL_GROUP_BY', ''));

Дополнительно см.: Понимание и настройка sql_mode в MySQL

Настройка локальной базы данных для обучения

Данные на платформе NowCoder практически совпадают с данными для тестирования на MySQL, поэтому можно сначала протестировать локально, а затем отправить результат на NowCoder.

  1. Перейти по адресу https://launchpad.net/test-db/employees-db-1/1.0.6 и скачать файл employees_db-full-1.0.6.tar.bz2

  2. Распаковать скачанный файл

    tar jxvf employees_db-full-1.0.6.tar.bz2
    cd employees_db-full-1.0.6
  3. Изменить файл employees.sql

    # Замените строку 38 set default_storage_engine = InnoDB;
    SET DEFAULT_STORAGE_ENGINE = INNODB;
    # Замените строку 44 SELECT CONCAT('storage engine: ', @@DEFAULT_STORAGE_ENGINE) AS INFO;
    SELECT CONCAT('storage engine: ', @@DEFAULT_STORAGE_ENGINE) AS INFO;
  4. Импортировать базу данных

    mysql -u root -p -t < employees.sql

Ссылки:
https://blog.csdn.net/appleyuchi/article/details/79439387
GitHub: https://github.com/datacharmer/test_db

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/xuthus5-Database-SQL-Actual-Combat.git
git@api.gitlife.ru:oschina-mirror/xuthus5-Database-SQL-Actual-Combat.git
oschina-mirror
xuthus5-Database-SQL-Actual-Combat
xuthus5-Database-SQL-Actual-Combat
master