Съдържание
PostgreSQL е един от механизмите за бази данни, който отговаря най -добре на стандартите на ANSI-SQLВ допълнение към това, той отива по -далеч, като предлага нови функции и конструктори, които варират от прости преки пътища за извършване на заявки до неочаквани елементи, които позволяват да се преодолеят границите на това, което може да бъде SQL израз.Изгледи
Подобно на повечето релационни бази данни, PostgreSQL има подкрепа за изгледи, но за разлика от SQL Server и MySQL, изгледите в PostgreSQL не се актуализират автоматично, без да се прибягва до използването на тригери от типа ВМЕСТО, по този начин с използването на TRIGGERS се адаптира и е по -близо до стандарта.
Предимството на това е, че ни позволява да поддържаме по -голям контрол върху изгледите и по начина, по който таблиците, които предоставят информацията, ще бъдат актуализирани.
Нека видим на следващото изображение пример за това как да създадете изглед в PostgreSQL използвайки своите специални функции:
Нека обясним номерираните точки от примерното изображение, за да можем да разгледаме по -отблизо темата.
- Дръжте изтриването с инструкция ИЗТРИЙ, изтрива само записа, който съответства на същия ключ като стария запис.
- Обработва вмъквания на данни.
- Актуализирайте само ако поне една от колоните на таблицата факти Тя беше променена.
- Управлявайте актуализациите, използвайте OLD или стария запис, за да определите кои записи да изтриете или актуализирате с данните от НОВИЯ или новия запис.
CREATE TRIGGER trip_01_vw_facts_ins_upd_del ВМЕСТО НА ВМЕСТВАНЕ ИЛИ АКТУАЛИЗИРАНЕ ИЛИ ИЗТРИВАНЕ НА преброяването.vw_facts ЗА ВСЕКИ РЕД ИЗПЪЛНИТЕЛНА ПРОЦЕДУРА popis.trig_vw_facts_ins_upd_del ();
По този начин, когато правим някакво вмъкване или промяна или изтриване на нашия изглед, таблиците, които го съставят, ще получат данните, нека видим примерна заявка:
АКТУАЛИЗИРАНЕ на преброяването.vw_facts SET yr = 2012 WHERE yr = 2011 AND tractor_id = '25027761200';
Какво би ни дало успешен резултат: Заявката е върната успешно: засегнати са 51 реда, 21 ms време за изпълнение.
Прозорец
The Windows са стандартна функция ANSI-SQL, поддържана от PostgreSQL, това ни позволява да виждаме и използваме данните, които са извън текущия запис, без тези функции би трябвало да свършим ПРИСЪЕДИНЯВА СЕ Y Подзаявки да могат да получат данните и ресурсите по много по -сложен начин.
Следващият пример се състои в получаване на стойността средно аритметично на колона в таблица, нека видим примера на следното изображение:
Както видяхме с функцията AVG, тя ни позволява да получим стойностите на всички полета, без да се налага да правим JOINS и функцията НАД нека да превърнем това във функция Прозорец. По този начин, когато PostgreSQL види функция от този тип, тя ще сканира всички редове, които отговарят на клаузата WHERE, за да получат резултата.
С това завършихме урока, с който бихме могли да научим малко повече как PostgreSQL той обработва стандартните ANSI-SQL функции, както и вижда как добавя свой собствен стил, за да разшири полезността на тези функции.Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка