При работе в Oracle вы можете обнаружить, что некоторые из ваших записей имеют дубликаты. Вы можете удалить эти повторяющиеся строки, идентифицировав их и используя его RowID или адрес строки. Перед тем, как начать, вы должны создать резервную копию таблицы на случай, если вам понадобится ссылаться на нее после удаления записей.
Шаги
Метод 1 из 4: определение дубликата
Шаг 1. Найдите дубликат
В этом случае укажите дубликат примера: «Алан». Убедитесь, что записи, которые вы пытаетесь удалить, на самом деле дубликаты, введя SQL ниже.
Шаг 2. Идентификация по столбцу «Имена
«В экземпляре столбца с именем« Имена »вы должны заменить« имя_столбца »на Имена.
Шаг 3. Отождествление с другими столбцами
Если вы пытались идентифицировать дубликат по другому столбцу, например по возрасту Алана, а не по его имени, вы должны ввести «Возраст» вместо «имя_столбца» и так далее.
выберите имя_столбца, количество (имя_столбца) из группы таблиц по имени_столбца, имеющему count (имя_столбца)> 1;
Метод 2 из 4: удаление одного дубликата
Шаг 1. Выберите «имя из имен
«После« SQL », что означает стандартный язык запросов, введите« выбрать имя из имен ».
Шаг 2. Удалите все строки с повторяющимся именем
После «SQL» введите «удалить из имен, где name = 'Alan';. Обратите внимание, что здесь важно использовать заглавные буквы, поэтому будут удалены все строки с именем «Алан». После «SQL» введите «фиксация».
Шаг 3. Сдать ряд без дубликата
Теперь, когда вы удалили все строки с примером имени «Алан», вы можете вставить одну обратно, введя «вставить в значения имени ('Алан');». После «SQL» введите «commit», чтобы создать новую строку.
Шаг 4. Смотрите ваш новый список
Выполнив вышеуказанные шаги, вы можете убедиться, что у вас больше нет повторяющихся записей, введя «выбрать * из имен».
SQL> выберите имя из имен; ИМЯ ------------------------------ Алан Кэрри Том Алан выделены строки. SQL> удалить из имен, где name = 'Alan'; строки удалены. SQL> совершить; Фиксация завершена. SQL> вставить в имена значения ('Алан'); строка создана. SQL> совершить; Фиксация завершена. SQL> выберите * из имен; ИМЯ ------------------------------ Алан Кэрри Том выбраны строки.
Метод 3 из 4: удаление нескольких дубликатов
Шаг 1. Выберите RowID, который вы хотите удалить
После «SQL» введите «select rowid, name from names;.»
Шаг 2. Удалите дубликат
После «SQL» введите «удалить из имен a, где rowid> (выберите min (rowid) из имен b, где b.name = a.name);» для удаления повторяющихся записей.
Шаг 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: удаление строк со столбцами
Шаг 1. Выберите ваши строки
После "SQL" введите "выберите * из имен;" чтобы увидеть ваши строки.
Шаг 2. Удалите повторяющиеся строки, указав их столбец
После «SQL '» введите «удалить из имен a, где rowid> (выберите min (rowid) из имен b, где b.name = a.name и b.age = a.age);» удалить повторяющиеся записи.
Шаг 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; Таблица создана.