Как очистить таблицу в sql
Для создания таблиц используется команда CREATE TABLE . Эта команды применяет ряд операторов, которые определяют столбцы таблицы и их атрибуты. Общий формальный синтаксис команды CREATE TABLE:
CREATE TABLE название_таблицы (название_столбца1 тип_данных атрибуты_столбца1, название_столбца2 тип_данных атрибуты_столбца2, . название_столбцаN тип_данных атрибуты_столбцаN, атрибуты_уровня_таблицы )
После команды CREATE TABLE идет название таблицы. Имя таблицы выполняет роль ее идентификатора в базе данных, поэтому оно должно быть уникальным. Затем в скобках перечисляются названия столбцов, их типы данных и атрибуты. В самом конце можно определить атрибуты для всей таблицы. Атрибуты столбцов, а также атрибуты таблицы указывать необязательно.
Создадим простейшую таблицу. Для этого выполним следующий скрипт:
CREATE DATABASE productsdb; USE productsdb; CREATE TABLE Customers ( Id INT, Age INT, FirstName VARCHAR(20), LastName VARCHAR(20) );
Таблица не может создаваться сама по себе. Она всегда создается в определенной базе данных. Вначале здесь создается база данных productsdb. И затем, чтобы указать, что все дальнейшие операции, в том числе создание таблицы, будут производиться с этой базой данных, применяется команда USE .
Далее собственно идет создание таблицы, которая называется Customers. Она определяет четыре столбца: Id, Age, FirstName, LastName. Первые два столбца представляют идентификатор клиента и его возраст и имеют тип INT , то есть будут хранить числовые значения. Следующие столбцы представляют имя и фамилию клиента и имеют тип VARCHAR(20) , то есть представляют строку длиной не более 20 символов. В данном случае для каждого столбца определены имя и тип данных, при этом атрибуты столбцов и таблицы в целом отсутствуют.
И в результате выполнения этой команды будет создана база данных productsdb, в которой будет создана таблица Customers.
Переименование таблиц
Если после создания таблицы мы захотим ее переименовать, то для этого нужно использовать команду RENAME TABLE , которая имеет следующий синтаксис:
RENAME TABLE старое_название TO новое_название;
Например, переименуем таблицу Customers в Clients:
RENAME TABLE Customers TO Clients;
Полное удаление данных
Для полного удаления данных, очистки таблицы применяется команда TRUNCATE TABLE . Например, очистим таблицу Clients:
TRUNCATE TABLE Clients;
Удаление таблиц
Для удаления таблицы из БД применяется команда DROP TABLE , после которой указывается название удаляемой таблицы. Например, удалим таблицу Clients:
DROP TABLE Clients;
Как очистить таблицу от значений postgresql
Как очистить таблицу House от всех значений. Сами столбцы оставить, нужно убрать содержимое. Сделал такой вариант, но мне нужно не в одном столбце, а по всем. Попробовать заменить «column» на «*»?
UPDATE "house" SET "column" = NULL
Отслеживать
задан 2 окт 2020 в 22:45
1,375 1 1 золотой знак 17 17 серебряных знаков 37 37 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Команда DELETE удаляет из указанной таблицы строки, удовлетворяющие условию WHERE . Если предложение WHERE отсутствует, она удаляет из таблицы все строки, в результате будет получена рабочая, но пустая таблица.
delete from house;
Команда TRUNCATE быстро удаляет все строки из набора таблиц. Она действует так же, как безусловная команда DELETE для каждой таблицы, но гораздо быстрее, так как она фактически не сканирует таблицы. Более того, она немедленно высвобождает дисковое пространство, так что выполнять операцию VACUUM после неё не требуется. Наиболее полезна она для больших таблиц.
truncate house;
Как очистить таблицу в sql
DELETE — удалить записи таблицы
Синтаксис
[ WITH [ RECURSIVE ]запрос_WITH[, . ] ] DELETE FROM [ ONLY ]имя_таблицы[ * ] [ [ AS ]псевдоним] [ USINGсписок_USING] [ WHEREусловие| WHERE CURRENT OFимя_курсора] [ RETURNING * |выражение_результата[ [ AS ]имя_результата] [, . ] ]
Описание
Команда DELETE удаляет из указанной таблицы строки, удовлетворяющие условию WHERE . Если предложение WHERE отсутствует, она удаляет из таблицы все строки, в результате будет получена рабочая, но пустая таблица.
Подсказка
TRUNCATE — расширение Postgres Pro , реализующее более быстрый механизм удаления всех строк из таблицы.
Удалить строки в таблице, используя информацию из других таблиц в базе данных, можно двумя способами: применяя вложенные запросы или указав дополнительные таблицы в предложении USING . Выбор предпочитаемого варианта зависит от конкретных обстоятельств.
Предложение RETURNING указывает, что команда DELETE должна вычислить и возвратить значения для каждой фактически удалённой строки. Вычислить в нём можно любое выражение со столбцами целевой таблицы и/или столбцами других таблиц, упомянутых в USING . Список RETURNING имеет тот же синтаксис, что и список результатов SELECT .
Чтобы удалять данные из таблицы, необходимо иметь право DELETE для неё, а также право SELECT для всех таблиц, перечисленных в предложении USING , и таблиц, данные которых считываются в условии .
Параметры
запрос_WITH
Предложение WITH позволяет задать один или несколько подзапросов, на которые затем можно ссылаться по имени в запросе DELETE . Подробнее об этом см. Раздел 7.8 и SELECT . имя_таблицы
Имя (возможно, дополненное схемой) таблицы, из которой будут удалены строки. Если перед именем таблицы добавлено ONLY , соответствующие строки удаляются только из указанной таблицы. Без ONLY строки будут также удалены из всех таблиц, унаследованных от указанной. При желании, после имени таблицы можно указать * , чтобы явно обозначить, что операция затрагивает все дочерние таблицы. псевдоним
Альтернативное имя целевой таблицы. Когда указывается это имя, оно полностью скрывает фактическое имя таблицы. Например, в запросе DELETE FROM foo AS f дополнительные компоненты оператора DELETE должны обращаться к целевой таблице по имени f , а не foo . список_USING
Список табличных выражений, позволяющий добавлять в условие WHERE столбцы из других таблиц. Он подобен списку таблиц, который можно задать в предложении Предложение FROM оператора SELECT ; например, в нём можно определить псевдоним для таблицы. Целевую таблицу повторять в списке_USING нужно, только если требуется определить замкнутое соединение. условие
Выражение, возвращающее значение типа boolean . Удалены будут только те строки, для которых это выражение возвращает true . имя_курсора
Имя курсора, который будет использоваться в условии WHERE CURRENT OF . С таким условием будет удалена строка, выбранная из этого курсора последней. Курсор должен образовываться запросом, не применяющим группировку, к целевой таблице команды DELETE . Заметьте, что WHERE CURRENT OF нельзя задать вместе с булевским условием. За дополнительными сведениями об использовании курсоров с WHERE CURRENT OF обратитесь к DECLARE . выражение_результата
Выражение, которое будет вычисляться и возвращаться командой DELETE после удаления каждой строки. В этом выражении можно использовать имена любых столбцов таблицы имя_таблицы или таблиц, перечисленных в списке USING . Чтобы получить все столбцы, достаточно написать * . имя_результата
Имя, назначаемое возвращаемому столбцу.
Выводимая информация
В случае успешного завершения, DELETE возвращает метку команды в виде
DELETE число
Здесь число — количество удалённых строк. Заметьте, что это число может быть меньше числа строк, соответствующих условию , если удаления были подавлены триггером BEFORE DELETE . Если число равно 0, это означает, что запрос не удалил ни одной строки (это не считается ошибкой).
Если команда DELETE содержит предложение RETURNING , её результат будет похож на результат оператора SELECT (с теми же столбцами и значениями, что содержатся в списке RETURNING ), полученный для строк, удалённых этой командой.
Замечания
Postgres Pro позволяет ссылаться на столбцы других таблиц в условии WHERE , когда эти таблицы перечисляются в предложении USING . Например, удалить все фильмы определённого продюсера можно так:
DELETE FROM films USING producers WHERE producer_id = producers.id AND producers.name = 'foo';
По сути в этом запросе выполняется соединение таблиц films и producers , и все успешно включённые в соединение строки в films помечаются для удаления. Этот синтаксис не соответствует стандарту. Следуя стандарту, эту задачу можно решить так:
DELETE FROM films WHERE producer_id IN (SELECT id FROM producers WHERE name = 'foo');
В ряде случаев запрос в стиле соединения легче написать и он может работать быстрее, чем в стиле вложенного запроса.
Примеры
Удаление всех фильмов, кроме мюзиклов:
DELETE FROM films WHERE kind <> 'Musical';
Очистка таблицы films :
DELETE FROM films;
Удаление завершённых задач с получением всех данных удалённых строк:
DELETE FROM tasks WHERE status = 'DONE' RETURNING *;
Удаление из tasks строки, на которой в текущий момент располагается курсор c_tasks :
DELETE FROM tasks WHERE CURRENT OF c_tasks;
Совместимость
Эта команда соответствует стандарту SQL , но предложения USING и RETURNING являются расширениями Postgres Pro , как и возможность использовать WITH с DELETE .
| Пред. | Наверх | След. |
| DECLARE | Начало | DISCARD |
DROP TABLE
Команда DROP TABLE удаляет таблицу. Полное описание вы можете найти на странице описания команды документации PostgreSQL.
Описание
DROP TABLE удаляет таблицы из базы данных. Только владелец таблицы, владелец схемы и суперпользователь могут удалить таблицу. Чтобы очистить таблицу от данных, не удаляя таблицу, используйте DELETE или TRUNCATE .
DROP TABLE всегда удаляет все индексы, правила, триггеры и ограничения, существующие в указанной таблице. Однако, чтобы удалить таблицу, на которую ссылается представление или ограничение внешнего ключа другой таблицы, необходимо указать CASCADE . CASCADE полностью удалит зависимое представление, но в случае использования внешнего ключа удаляется только это ограничение, а не вся таблица, к которой оно относится.
Использование
Общий вид команды приведён ниже:
DROP TABLE [ IF EXISTS ] name [, . ] [ CASCADE | RESTRICT ]
Не считается ошибкой, если таблица не существует. В этом случае будет выдано уведомление
Имя (опционально, со схемой) удаляемой таблицы
Автоматическое удаление объектов, зависящих от данной таблицы (например, представлений), и всех зависящих от них объектов
Отказ в удалении таблицы, если от неё зависят какие-либо объекты. Это поведение по умолчанию
Пример
DROP TABLE IF EXISTS test CASCADE;
