4 способа удаления повторяющихся записей в Oracle

Оглавление:

4 способа удаления повторяющихся записей в Oracle
4 способа удаления повторяющихся записей в Oracle

Видео: 4 способа удаления повторяющихся записей в Oracle

Видео: 4 способа удаления повторяющихся записей в Oracle
Видео: Создание графических изображений | Информатика 7 класс #21 | Инфоурок 2024, Май
Anonim

При работе в Oracle вы можете обнаружить, что некоторые из ваших записей имеют дубликаты. Вы можете удалить эти повторяющиеся строки, идентифицировав их и используя его RowID или адрес строки. Перед тем, как начать, вы должны создать резервную копию таблицы на случай, если вам понадобится ссылаться на нее после удаления записей.

Шаги

Метод 1 из 4: определение дубликата

Удаление повторяющихся записей в Oracle Шаг 1
Удаление повторяющихся записей в Oracle Шаг 1

Шаг 1. Найдите дубликат

В этом случае укажите дубликат примера: «Алан». Убедитесь, что записи, которые вы пытаетесь удалить, на самом деле дубликаты, введя SQL ниже.

Удаление повторяющихся записей в Oracle, шаг 2
Удаление повторяющихся записей в Oracle, шаг 2

Шаг 2. Идентификация по столбцу «Имена

«В экземпляре столбца с именем« Имена »вы должны заменить« имя_столбца »на Имена.

Удаление повторяющихся записей в Oracle, шаг 3
Удаление повторяющихся записей в Oracle, шаг 3

Шаг 3. Отождествление с другими столбцами

Если вы пытались идентифицировать дубликат по другому столбцу, например по возрасту Алана, а не по его имени, вы должны ввести «Возраст» вместо «имя_столбца» и так далее.

выберите имя_столбца, количество (имя_столбца) из группы таблиц по имени_столбца, имеющему count (имя_столбца)> 1;

Метод 2 из 4: удаление одного дубликата

Удаление повторяющихся записей в Oracle Шаг 4
Удаление повторяющихся записей в Oracle Шаг 4

Шаг 1. Выберите «имя из имен

«После« SQL », что означает стандартный язык запросов, введите« выбрать имя из имен ».

Удаление повторяющихся записей в Oracle Шаг 5
Удаление повторяющихся записей в Oracle Шаг 5

Шаг 2. Удалите все строки с повторяющимся именем

После «SQL» введите «удалить из имен, где name = 'Alan';. Обратите внимание, что здесь важно использовать заглавные буквы, поэтому будут удалены все строки с именем «Алан». После «SQL» введите «фиксация».

Удаление повторяющихся записей в Oracle Шаг 6
Удаление повторяющихся записей в Oracle Шаг 6

Шаг 3. Сдать ряд без дубликата

Теперь, когда вы удалили все строки с примером имени «Алан», вы можете вставить одну обратно, введя «вставить в значения имени ('Алан');». После «SQL» введите «commit», чтобы создать новую строку.

Удаление повторяющихся записей в Oracle Шаг 7
Удаление повторяющихся записей в Oracle Шаг 7

Шаг 4. Смотрите ваш новый список

Выполнив вышеуказанные шаги, вы можете убедиться, что у вас больше нет повторяющихся записей, введя «выбрать * из имен».

SQL> выберите имя из имен; ИМЯ ------------------------------ Алан Кэрри Том Алан выделены строки. SQL> удалить из имен, где name = 'Alan'; строки удалены. SQL> совершить; Фиксация завершена. SQL> вставить в имена значения ('Алан'); строка создана. SQL> совершить; Фиксация завершена. SQL> выберите * из имен; ИМЯ ------------------------------ Алан Кэрри Том выбраны строки.

Метод 3 из 4: удаление нескольких дубликатов

Удаление повторяющихся записей в Oracle Шаг 8
Удаление повторяющихся записей в Oracle Шаг 8

Шаг 1. Выберите RowID, который вы хотите удалить

После «SQL» введите «select rowid, name from names;.»

Удаление повторяющихся записей в Oracle, шаг 9
Удаление повторяющихся записей в Oracle, шаг 9

Шаг 2. Удалите дубликат

После «SQL» введите «удалить из имен a, где rowid> (выберите min (rowid) из имен b, где b.name = a.name);» для удаления повторяющихся записей.

Удаление повторяющихся записей в Oracle Шаг 10
Удаление повторяющихся записей в Oracle Шаг 10

Шаг 3. Проверьте дубликаты

После того, как вы выполнили все вышеизложенное, команды проверят, есть ли у вас повторяющиеся записи, введя "select rowid, name from names;" а затем "совершить".

SQL> выберите rowid, имя из имен; ИМЯ ROWID ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Выбраны строки Alan. SQL> удалить из имен a, где rowid> (выберите min (rowid) из имен b, где b.name = a.name); строки удалены. SQL> выберите rowid, имя из имен; ИМЯ ROWID ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Алан AABJnsAAGAAAdfOAAC Кэрри AABJnsAAGAAAdfOAAD Выбранные строки Tom. SQL> совершить; Фиксация завершена.

Метод 4 из 4: удаление строк со столбцами

Удаление повторяющихся записей в Oracle Шаг 11
Удаление повторяющихся записей в Oracle Шаг 11

Шаг 1. Выберите ваши строки

После "SQL" введите "выберите * из имен;" чтобы увидеть ваши строки.

Удаление повторяющихся записей в Oracle Шаг 12
Удаление повторяющихся записей в Oracle Шаг 12

Шаг 2. Удалите повторяющиеся строки, указав их столбец

После «SQL '» введите «удалить из имен a, где rowid> (выберите min (rowid) из имен b, где b.name = a.name и b.age = a.age);» удалить повторяющиеся записи.

Удаление повторяющихся записей в Oracle Шаг 13
Удаление повторяющихся записей в Oracle Шаг 13

Шаг 3. Проверьте дубликаты

Выполнив вышеуказанные шаги, введите «выберите * из имен»; а затем «зафиксируйте», чтобы убедиться, что вы успешно удалили повторяющиеся записи.

SQL> выберите * из имен; ИМЯ ВОЗРАСТ ------------------------------ ---------- Алан 50 Кэрри 51 Том 52 Алан 50 строки выбраны. SQL> удалить из имен a, где rowid> (выберите min (rowid) из имен b, где b.name = a.name и b.age = a.age); строка удалена. SQL> выберите * из имен; ИМЯ ВОЗРАСТ ------------------------------ ---------- Алан 50 Кэрри 51 Том 52 строки выбраны. SQL> совершить; Фиксация завершена.

Предупреждения

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

    SQL> создать таблицу alan.names_backup как select * from names; Таблица создана.

Рекомендуемые: