ПостгреСКЛ ПОСТОЈИ са примерима

Преглед садржаја:

Anonim

Шта ПостгреСКЛ постоји?

Оператор ЕКСИСТС тестира да ли у подупиту постоје редови. То значи да се оператор користи заједно са подупитом. Каже се да је оператер Екистс испуњен када се у подупиту пронађе барем један ред. Ову операцију можете користити заједно са наредбама СЕЛЕЦТ, УПДАТЕ, ИНСЕРТ и ДЕЛЕТЕ.

У овом водичу за ПостгреСКЛ научићете следеће:

  • Синтакса
  • Са СЕЛЕЦТ изјавом
  • Уз ИНСЕРТ изјаву
  • Са УПДАТЕ изјавом
  • Уз ДЕЛЕТЕ изјаву
  • Уз пгАдмин

Синтакса

Ево синтаксе за наредбу ПостгреСКЛ ЕКСИСТС:

WHERE EXISTS (subquery);

Горња синтакса показује да оператор ЕКСИСТС узима аргумент, који је подупит. Подупит је једноставно СЕЛЕЦТ наредба која треба да започне са СЕЛЕЦТ * уместо са списком имена стубаца или израза.

Са СЕЛЕЦТ изјавом

Погледајмо како се користи СЕЛЕЦТ наредба са оператором ЕКСИСТС. Имамо следеће табеле:

Боок:

Цена:

Покрените следећу изјаву:

SELECT *FROM BookWHERE EXISTS (SELECT *FROM PriceWHERE Book.id = Price.id);

Ово враћа следеће:

Горња команда треба да врати све записе у табели Боок чији се ид подудара са ид-ом свих записа у подупиту. Подударан је само један ИД. Отуда је враћен само један запис.

Уз ИНСЕРТ изјаву

Оператор ЕКСИСТС можемо користити у ИНСЕРТ изразу. Имамо следеће 3 табеле:

Боок:

Цена:

Прице2:

Тада можемо покренути следећу изјаву:

INSERT INTO PriceSELECT id, priceFROM Price2WHERE EXISTS (SELECT idFROM BookWHERE Book.id = Price2.id);

Табела цена је сада следећа:

Подудара се ред са ИД-ом 5 у табели названом Прице2. Овај запис је затим убачен у табелу са ценама.

Са УПДАТЕ изјавом

Оператор ЕКСИСТС можемо користити у УПДАТЕ изразу.

Покрените следећи упит:

UPDATE PriceSET price = (SELECT priceFROM Price2WHERE Price2.id = Price.id)WHERE EXISTS (SELECT id, priceFROM Price2WHERE Price2.id = Price.id);

Ажурирамо колону цена табеле Цена. Циљ нам је да цене предмета који деле идентитет буду исте. Подударан је само један ред, односно 5.

Међутим, с обзиром да су цене једнаке, односно 205, ажурирање није извршено. Да је било разлике, било би извршено ажурирање.

Уз ДЕЛЕТЕ изјаву

Изјава ПостгреСКЛ ДЕЛЕТЕ може да користи оператор ЕКСИСТС. Ево примера:

DELETE FROM PriceWHERE EXISTS (SELECT *FROM Price2WHERE Price.id = Price2.id);

Табела цена је сада следећа:

Ред са ИД-ом 5 је избрисан.

Уз пгАдмин

Сада да видимо како се ове радње могу извршити помоћу пгАдмин-а.

Са СЕЛЕЦТ изјавом

Да бисте то постигли путем пгАдмин-а, урадите ово:

Корак 1) Пријавите се на свој пгАдмин налог.

Корак 2)

  1. На траци за навигацију са леве стране кликните на Базе података.
  2. Кликните Демо.

Корак 3) Укуцајте упит у уређивачу упита:

SELECT *FROM BookWHERE EXISTS (SELECT *FROM PriceWHERE Book.id = Price.id);

Корак 4) Кликните на дугме Изврши.

Требало би да врати следеће:

Уз ИНСЕРТ изјаву

Да бисте то постигли путем пгАдмин-а, урадите ово:

Корак 1) Пријавите се на свој пгАдмин налог.

Корак 2)

  1. На траци за навигацију са леве стране кликните на Базе података.
  2. Кликните Демо.

Корак 3) Укуцајте упит у уређивачу упита:

INSERT INTO PriceSELECT id, priceFROM Price2WHERE EXISTS (SELECT idFROM BookWHERE Book.id = Price2.id);

Корак 4) Кликните на дугме Изврши.

Табела цена сада треба да буде следећа:

Са УПДАТЕ изјавом

Да бисте то постигли путем пгАдмин-а, урадите ово:

Корак 1) Пријавите се на свој пгАдмин налог.

Корак 2)

  1. На траци за навигацију са леве стране кликните на Базе података.
  2. Кликните Демо.

Корак 3) Укуцајте упит у уређивачу упита:

UPDATE PriceSET price = (SELECT priceFROM Price2WHERE Price2.id = Price.id)WHERE EXISTS (SELECT id, priceFROM Price2WHERE Price2.id = Price.id);

Корак 4) Кликните на дугме Изврши.

Табела цена сада треба да буде следећа:

Уз ДЕЛЕТЕ изјаву

Да бисте то постигли путем пгАдмин-а, урадите ово:

Корак 1) Пријавите се на свој пгАдмин налог.

Корак 2)

  1. На траци за навигацију са леве стране кликните на Базе података.
  2. Кликните Демо.

Корак 3) Укуцајте упит у уређивачу упита:

DELETE FROM PriceWHERE EXISTS (SELECT *FROM Price2WHERE Price.id = Price2.id);

Корак 4) Кликните на дугме Изврши.

Табела цена сада треба да буде следећа:

Резиме

  • Оператор ЕКСИСТС тестира да ли у подупиту постоје редови.
  • Користи се са подупитом и каже се да је испуњен када подупит врати барем један ред.
  • Користи се заједно са наредбама СЕЛЕЦТ, УПДАТЕ, ИНСЕРТ и ДЕЛЕТЕ.

Преузмите базу података кориштену у овом водичу