PostgreSQL is een open-source object-relationeel databasesysteem met meer dan 30 jaar actieve ontwikkeling in de industrie. In dit artikel over PostgreSQL-zelfstudie voor beginners, zal ik u kennis laten maken met de verschillende concepten van databases en de opdrachten die in PostgreSQL worden gebruikt.
De onderwerpen die in dit artikel worden behandeld, zijn hoofdzakelijk onderverdeeld in 4 categorieën:DDL, DML, DCL &TCL.
- De DDL (Data Definition Language)-opdrachten worden gebruikt om de database te definiëren. Voorbeeld:CREATE, DROP, ALTER, TRUNCATE, COMMENT, RENAME.
- De DML (Data Manipulation Language)-commando's hebben betrekking op de manipulatie van gegevens in de database. Voorbeeld:SELECT, INSERT, UPDATE, DELETE.
- De DCL (Data Control Language)-commando's hebben betrekking op de machtigingen, rechten en andere controles van het databasesysteem. Voorbeeld:SUBSIDIE, INVOKE.
- De TCL (Transaction Control Language)-opdrachten behandelen de transactie van de database. Voorbeeld:BEGIN, COMMIT, ROLLBACK.
Afgezien van de opdrachten, worden de volgende onderwerpen in dit artikel behandeld:
- Wat is PostgreSQL?
- Installeer PostgreSQL op Windows
- Verschillende soorten sleutels in database
- Beperkingen gebruikt in database
- Operators
- Totale functies
- Bewerkingen instellen
- Geneste zoekopdrachten
- Doe mee
- Beelden
- Opgeslagen procedures
- Triggers
- UUID-gegevenstype
Wat is PostgreSQL? – PostgreSQL-zelfstudie
PostgreSQL is een object-relationeel databasesysteem dat de SQL-taal uitbreidt en gebruikt. Het stamt uit het jaar 1986 en is al meer dan 30 jaar actief in ontwikkeling.
De kenmerken van PostgreSQL zijn als volgt:
- Gegevenstypen: PostgreSQL ondersteunt verschillende soorten gegevenstypen, zoals primitief, gestructureerd, document, geometrie en aanpassingen. Dit helpt de gebruiker om gegevens in elk formaat op te slaan.
- Gegevensintegriteit: Met behulp van verschillende beperkingen en sleutels in de database zorgt PostgreSQL ervoor dat aan de gegevensintegriteit wordt voldaan voor eenvoudige tot complexe databases.
- Prestaties: PostgreSQL biedt functies zoals indexering, gelijktijdigheidscontrole van meerdere versies, JIT-complicatie van expressies om ervoor te zorgen dat de gelijktijdigheid en de prestaties op peil blijven.
- Betrouwbaarheid: Met behulp van Write Ahead Logging (WAL) en replicatie heeft PostgreSQL zich in de loop van de tijd bewezen als een van de meest betrouwbare databasesystemen.
- Beveiliging: PostgreSQL biedt krachtige mechanismen zoals authenticatie, een robuust toegangscontrolesysteem om ervoor te zorgen dat alleen geautoriseerde gebruikers toegang hebben tot de databases.
- Uitbreidbaarheid: PostgreSQL wordt geleverd met verschillende extensies om extra functionaliteiten te bieden. Het heeft ook zijn uitbreidbaarheidsfuncties geschaald met opgeslagen functies, proceduretaal en buitenlandse gegevenswrappers.
Nu u weet wat PostgreSQL is, laten we beginnen door PostgreSQL op Windows te installeren.
Installeer PostgreSQL op Windows – PostgreSQL-zelfstudie
Om PostgreSQL op Windows te installeren, moet u de onderstaande stappen volgen:
Stap 1: Ga naar de officiële website van PostgreSQL en kies vervolgens het besturingssysteem waarvoor u wilt downloaden. Hier zal ik Windows kiezen.
Stap 2: Zodra het besturingssysteem is gekozen, wordt u doorgestuurd naar een pagina waar u het installatieprogramma moet downloaden. Klik hiervoor op de optie:Download het installatieprogramma. Zie hieronder.
Stap 3: Vervolgens wordt u verder doorgestuurd naar een pagina waar u de installatieversie moet kiezen op basis van het besturingssysteem . Hier zal ik de 11.4-versie voor Windows 64 bit kiezen. Zie hieronder.
Eenmaal klik je op Download , zult u automatisch zien dat PostgreSQL wordt gedownload.
Stap 4: Nu, zodra het bestand is gedownload, dubbelklikt u op het bestand om het te openen en verschijnt er een wizard op uw scherm zoals hieronder. Klik op Volgende en ga verder.
Stap 4.1: Nu, geef de installatiemap op . Hier laat ik het zoals het is en klik ik opVolgende zoals hieronder.
Stap 4.2: Kies nu de componenten die u wilt installeren en klik vervolgens op Volgende . Hier selecteer ik alle componenten.
Stap 4.3: Selecteer vervolgens de map waarin u gegevens wilt opslaan . Hier ga ik het laten zoals het is. Klik vervolgens op Volgende.
Stap 4.4: In het volgende dialoogvenster dat verschijnt, moet u het wachtwoord voor de supergebruiker vermelden. Klik vervolgens op Volgende.
Stap 4.5: Vervolgens moet u het poortnummer selecteren op welke server moet luisteren. Hier laat ik het zoals het is en klik dan op Volgende.
Stap 4.6: selecteer ten slotte de landinstelling te gebruiken door het nieuwe databasecluster. Ik laat het zoals het is en klik dan op Volgende .
Stap 4.7: Klik ten slotte op Volgende in de wizards die komen om de installatie van PostgreSQL op uw computer te starten.
Zodra de installatie is voltooid, ziet u een dialoogvenster zoals hieronder op uw scherm. Klik op Voltooien.
Stap 5: Nu moet je de server verbinden met een database . Open hiervoor pgadmin, de officiële GUI van PostgreSQL . Zodra u pgadmin opent, ziet u een dialoogvenster waarin u om het wachtwoord wordt gevraagd. Vermeld dus het wachtwoord en klik op OK.
Nu u PostgreSQL moet hebben geïnstalleerd, gaan we aan de slag met de opdrachten die in PostgreSQL worden gebruikt.
In dit artikel over PostgreSQL Tutorial For Beginners ga ik de onderstaande database als voorbeeld beschouwen, om je te laten zien hoe je commando's schrijft.
Leraar-ID | TeacherName | Adres | Stad | Postcode | Land | Salaris |
01 | Saurav | Gangnam-straat | Seoel | 06499 | Zuid-Korea | 42000 |
02 | Preeti | Queens Quay | Rio Claro | 560001 | Brazilië | 45900 |
03 | Vinod | Kings Road | Londen | SW6 | Verenigd Koninkrijk | 65000 |
04 | Akanksha | Mayo Road | Kolkata | 700069 | India | 23000 |
05 | Amit | MG Road | Bengaluru | 560001 | India | 30000 |
Laten we nu beginnen!
Data Definition (DDL)-opdrachten – PostgreSQL-zelfstudie
Dit gedeelte van het artikel bestaat uit die commando's, waarmee je je database kunt definiëren. De commando's zijn:
- MAKEN
- VERANDER
- DROP
- AFKNOP
- HERNAME
MAKEN
Deze instructie wordt gebruikt om een schema, tabellen of een index te maken.
De 'CREATE SCHEMA'-verklaring
De CREATE SCHEMA-instructie wordt gebruikt om een database te maken of staat meestal bekend als een schema.
Syntaxis:
CREATE SCHEMA Schema_Name;
Voorbeeld:
CREATE SCHEMA teachers;
De 'CREATE TABLE'-instructie
De instructie CREATE TABLE wordt gebruikt om een nieuwe tabel in een database te maken.
Syntaxis:
CREATE TABLE table_name ( column1 datatype, column2 datatype, column3 datatype, .... );
Voorbeeld:
CREATE TABLE TeachersInfo ( TeacherID int, TeacherName varchar(255), Address varchar(255), City varchar(255), PostalCode int, Country varchar(255), Salary int );
ALTER
Deze verklaring wordt gebruikt om beperkingen of kolommen toe te voegen, te wijzigen of te verwijderen.
De 'ALTER TABLE'-instructie
De ALTER TABLE-instructie wordt gebruikt om beperkingen en kolommen uit een tabel toe te voegen, te wijzigen of te verwijderen.
Syntaxis:
ALTER TABLE table_name ADD column_name datatype;
Voorbeeld:
ALTER TABLE TeachersInfo ADD DateOfBirth date;
DROP
Dit commando wordt gebruikt om de database, tabellen of kolommen te verwijderen.
De 'DROP SCHEMA'-verklaring
De DROP SCHEMA-instructie wordt gebruikt om het volledige schema te verwijderen.
Syntaxis:
DROP SCHEMA schema_name;
Voorbeeld:
DROP SCHEMA teachers;
De 'DROP TABLE'-instructie
De DROP TABLE-instructie wordt gebruikt om de hele tabel met al zijn waarden te verwijderen.
Syntaxis:
DROP TABLE table_name;
Voorbeeld:
DROP TABLE TeachersInfo;
TRUNCATE
De TRUNCATE-instructie wordt gebruikt om de gegevens in een tabel te verwijderen, maar de tabel wordt niet verwijderd.
Syntaxis:
TRUNCATE TABLE table_name;
Voorbeeld:
TRUNCATE TABLE TeachersInfo;
NAAM hernoemen
De RENAME-instructie wordt gebruikt om een of meer tabellen of kolommen te hernoemen.
Syntaxis:
ALTER TABLE table_name RENAME TO new_table_name; --Rename Table name
ALTER TABLE table_name RENAME COLUMN column_name TO new_column_name; -- Rename Column name
Voorbeeld:
ALTER TABLE TeachersInfo RENAME TO InfoTeachers; ALTER TABLE InfoTeachers RENAME COLUMN dateofbirth TO dob;
Voordat ik verder ga in dit artikel over PostgreSQL-zelfstudie voor beginners, wil ik u eerst de verschillende soorten sleutels en beperkingen vertellen die u moet noemen bij het manipuleren van de databases. De toetsen en beperkingen helpen je om tabellen op een veel betere manier te maken, omdat je elke tabel kunt relateren aan de andere tabel.
Verschillende soorten sleutels in database – PostgreSQL-zelfstudie
Er zijn hoofdzakelijk 5 soorten sleutels die in de database kunnen worden vermeld.
- Kandidaatsleutel – Een kandidaatsleutel is een combinatie van een minimale set attributen die een tuple op unieke wijze kan identificeren. Elke relatie kan meer dan één kandidaatsleutel hebben, waarbij de sleutel een eenvoudige of een samengestelde sleutel is.
- Supertoets – Een supersleutel is de set attributen die een tuple op unieke wijze kan identificeren. Een kandidaatsleutel is dus een supersleutel, maar omgekeerd is dat niet waar.
- Primaire sleutel – Een primaire sleutel is een set attributen die kan worden gebruikt om elke tuple op unieke wijze te identificeren. Dus als er 3-4 kandidaatsleutels in een relatie aanwezig zijn, dan kan er één als primaire sleutel worden gekozen.
- Alternatieve sleutel – Alle andere kandidaatsleutels dan de primaire sleutel worden een alternatieve sleutel genoemd.
- Buitenlandse sleutel – Een attribuut dat alleen de aanwezige waarden kan aannemen als de waarden van een ander attribuut, is de refererende sleutel naar het attribuut waarnaar het verwijst.
Beperkingen gebruikt in database – PostgreSQL-zelfstudie
De beperkingen die u in databases kunt gebruiken zijn als volgt:
- NIET NULL – De beperking NOT NULL zorgt ervoor dat een NULL-waarde niet in een kolom kan worden opgeslagen
- UNIEK – De UNIQUE-beperking zorgt ervoor dat alle waarden in een kolom verschillend zijn
- CHECK -De beperking CHECK zorgt ervoor dat alle waarden in een kolom aan een specifieke voorwaarde voldoen.
- STANDAARD -De DEFAULT-beperking bestaat uit een set standaardwaarden voor een kolom wanneer er geen waarde is opgegeven.
- INDEX – De INDEX-beperking wordt gebruikt om zeer snel gegevens uit de database te maken en op te halen
Nu u de commando's in DDL en de verschillende soorten toetsen en beperkingen kent, gaan we verder met de volgende sectie, d.w.z. Opdrachten voor gegevensmanipulatie.
Opdrachten voor gegevensmanipulatie (DML) – PostgreSQL-zelfstudie
Dit gedeelte van het artikel bestaat uit de commando's waarmee je je database kunt manipuleren. De commando's zijn:
- SET SEARCH_PATH
- INSERT
- UPDATE
- VERWIJDEREN
- SELECTEER
Behalve deze commando's zijn er ook andere manipulatieve operatoren/functies zoals:
- Rekenkundige, bitsgewijze, samengestelde en vergelijkingsoperatoren
- Logische operatoren
- Aggregatiefuncties
- Speciale operators
- Bewerkingen instellen
- Limit, Offset en Fetch
SET SEARCH_PATH
Deze instructie wordt gebruikt om aan te geven welk schema moet worden gebruikt om alle bewerkingen uit te voeren.
Syntaxis:
SET search_path TO schema_name;
Voorbeeld:
SET search_path TO teachers;
INSERT
De INSERT-instructie wordt gebruikt om nieuwe records in een tabel in te voegen.
Syntaxis:
The INSERT INTO statement can be written in the following two ways:
INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...); --You need not mention the column names INSERT INTO table_name VALUES (value1, value2, value3, ...);
Voorbeeld:
INSERT INTO TeachersInfo(TeacherID, TeacherName, Address, City, PostalCode, Country, Salary) VALUES ('01', 'Saurav','Gangnam Street', 'Seoul', '06499', 'South Korea', '42000'); INSERT INTO TeachersInfo VALUES ('02', 'Preeti','Queens Quay', 'Rio Claro', '13500', 'Brazil', '45900');
UPDATE
The UPDATE statement is used to modify the existing records in a table.
Syntaxis:
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
Voorbeeld:
UPDATE TeachersInfo SET TeacherName = 'Alfred', City= 'Frankfurt' WHERE TeacherID = '01';
VERWIJDEREN
De DELETE-instructie wordt gebruikt om bestaande records in een tabel te verwijderen.
Syntaxis:
DELETE FROM table_name WHERE condition;
Voorbeeld:
DELETE FROM TeachersInfo WHERE TeacherName='Vinod';
SELECTEER
De SELECT-instructie wordt gebruikt om gegevens uit een database te selecteren en de geretourneerde gegevens worden opgeslagen in een resultatentabel, de result-set genoemd. .
Dit zijn de volgende twee manieren om deze verklaring te gebruiken:
Syntaxis:
SELECT column1, column2, ... FROM table_name; --(*) is used to select all from the table SELECT * FROM table_name;
Voorbeeld:
SELECT Teachername, City FROM TeachersInfo; SELECT * FROM TeachersInfo;
Behalve het individuele SELECT-trefwoord, kunt u het SELECT-trefwoord gebruiken met de volgende statements:
- VERSCHILLEND
- BESTEL DOOR
- GROEPEREN OP
- clausule HEBBEN
De 'SELECT DISTINCT'-instructie
De SELECT DISTINCT-instructie wordt gebruikt om alleen verschillende of verschillende waarden te retourneren. Dus als je een tabel hebt met dubbele waarden, dan kun je deze instructie gebruiken om verschillende waarden weer te geven.
Syntaxis:
SELECT DISTINCT column1, column2, ... FROM table_name;
Voorbeeld:
SELECT Country FROM TeachersInfo;
De 'ORDER BY'-verklaring
Het ORDER BY-statement wordt gebruikt om de gewenste resultaten in oplopende of aflopende volgorde te sorteren. Standaard worden de resultaten in oplopende volgorde gesorteerd. Als u de records in aflopende volgorde wilt sorteren, moet u de DESC gebruiken zoekwoord.
Syntaxis:
SELECT column1, column2, ... FROM table_name ORDER BY column1, column2, ...ASC|DESC;
Voorbeeld:
SELECT * FROM TeachersInfo ORDER BY Country; SELECT * FROM TeachersInfo ORDER BY Country DESC; SELECT * FROM TeachersInfo ORDER BY Country, TeachersName; SELECT * FROM TeachersInfo ORDER BY Country ASC, TeachersName DESC;
De 'GROUP BY'-instructie
Deze instructie wordt gebruikt met de aggregatiefuncties om de resultaatset te groeperen in een of meer kolommen.
Syntaxis:
SELECT column_name(s) FROM table_name WHERE condition GROUP BY column_name(s) ORDER BY column_name(s);
Voorbeeld:
SELECT COUNT(TeacherID), Country FROM TeachersInfo GROUP BY Country ORDER BY COUNT(TeacherID) DESC;
De 'HAVING'-clausuleverklaring
Sinds de WHERE trefwoord kan niet worden gebruikt met aggregatiefuncties, de HAVING-clausule is geïntroduceerd.
Syntaxis:
SELECT column_name(s) FROM table_name WHERE condition GROUP BY column_name(s) HAVING condition ORDER BY column_name(s);
Voorbeeld:
SELECT COUNT(TeacherID), Country FROM TeachersInfo GROUP BY Country HAVING COUNT(Salary) > 40000;
Rekenkundige, bitsgewijze, samengestelde en vergelijkingsoperatoren – PostgreSQL-zelfstudie
De rekenkundige, bitsgewijze, samengestelde en vergelijkingsoperatoren zijn als volgt:
LOGISCHE OPERATORS
Deze reeks operatoren bestaat uit logische operatoren zoals AND/OR/NOT.
EN OPERATOR
Deze operator geeft de records weer die aan alle voorwaarden voldoen, gescheiden door AND.
Syntaxis:
SELECT column1, column2, ... FROM table_name WHERE condition1 AND condition2 AND condition3 ...;
Voorbeeld:
SELECT * FROM TeachersInfo WHERE Country='India' AND City='South Korea';
OF OPERATOR
Deze operator geeft de records weer die voldoen aan een van de voorwaarden, gescheiden door OR.
Syntaxis:
SELECT column1, column2, ... FROM table_name WHERE condition1 OR condition2 OR condition3 ...;
Voorbeeld:
SELECT * FROM TeachersInfo WHERE Country='India' OR City='South Korea';
NIET OPERATOR
De NOT-operator geeft een record weer wanneer de voorwaarde(n) NIET WAAR zijn.
Syntaxis:
SELECT column1, column2, ... FROM table_name WHERE NOT condition;
Voorbeeld:
SELECT * FROM TeachersInfo WHERE NOT Country='India'; --You can also combine all the above three operators and write a query like this: SELECT * FROM TeachersInfo WHERE NOT Country='India' AND (City='Bengaluru' OR City='Kolkata');
Aggregatiefuncties – PostgreSQL-zelfstudie
Het volgende gedeelte van het artikel bevat functies zoals:
- MIN()
- MAX()
- AANTAL()
- AVG()
- SOM()
MIN() Functie
De MIN-functie retourneert de kleinste waarde van de geselecteerde kolom in een tabel.
Syntaxis:
SELECT MIN(column_name) FROM table_name WHERE condition;
Voorbeeld:
SELECT MIN(Salary) AS SmallestSalary FROM TeachersInfo;
MAX() Functie
De MAX-functie retourneert de grootste waarde van de geselecteerde kolom in een tabel.
Syntaxis:
SELECT MAX (column_name) FROM table_name WHERE condition;
Voorbeeld:
SELECT MAX(Salary) AS LargestSalary FROM TeachersInfo;
COUNT() Functie
De COUNT-functie retourneert het aantal rijen dat overeenkomt met de opgegeven criteria.
Syntaxis:
SELECT COUNT (column_name) FROM table_name WHERE condition;
Voorbeeld:
SELECT COUNT(TeacherID) FROM TeachersInfo;
AVG()-functie
De AVG-functie retourneert de gemiddelde waarde van een numerieke kolom die u kiest.
Syntaxis:
SELECT AVG (column_name) FROM table_name WHERE condition;
Voorbeeld:
SELECT AVG(Salary) FROM TeachersInfo;
SUM() Functie
De functie SOM retourneert de totale som van een numerieke kolom die u kiest.
Syntaxis:
SELECT SUM(column_name) FROM table_name WHERE condition;
Voorbeeld:
SELECT SUM(Salary) FROM TeachersInfo;
Speciale operators – PostgreSQL-zelfstudie
Dit gedeelte van het artikel bevat de volgende operatoren:
- TUSSEN
- IS NULL
- LIKE
- IN
- BESTAAT
- ALLE
- ELKE
TUSSEN Operator
De BETWEEN-operator is een inclusieve operator die waarden (getallen, teksten of datums) selecteert binnen een bepaald bereik.
Syntaxis:
SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2;
Voorbeeld:
SELECT * FROM TeachersInfo WHERE Fees BETWEEN 30000 AND 45000;
IS NULL-operator
Aangezien het niet mogelijk is om te testen op NULL-waarden met de vergelijkingsoperatoren(=, <,>), kunnen we in plaats daarvan IS NULL- en IS NOT NULL-operatoren gebruiken.
Syntaxis:
--Syntax for IS NULL SELECT column_names FROM table_name WHERE column_name IS NULL; --Syntax for IS NOT NULL SELECT column_names FROM table_name WHERE column_name IS NOT NULL;
Voorbeeld:
SELECT TeacherName FROM TeachersInfo WHERE Address IS NULL; SELECT TeacherName FROM TeachersInfo WHERE Address IS NOT NULL;
LIKE-operator
De LIKE-operator wordt gebruikt in een WHERE-component om te zoeken naar een gespecificeerd patroon in een kolom van een tabel.
De onderstaande twee jokertekens worden gebruikt in combinatie met de LIKE-operator:
% – Het procentteken staat voor nul, één of meerdere tekens
_ – Het onderstrepingsteken vertegenwoordigt een enkel teken
Syntaxis:
SELECT column1, column2, ... FROM table_name WHERE column LIKE pattern;
Voorbeeld:
SELECT * FROM TeachersInfo WHERE TeacherName LIKE 'S%';
IN-operator
De IN-operator is een verkorte operator en wordt gebruikt voor meerdere OR-voorwaarden.
Syntaxis:
SELECT column_name(s) FROM table_name WHERE column_name IN (value1, value2, ...);
Voorbeeld:
SELECT * FROM TeachersInfo WHERE Country IN ('South Korea', 'India', 'Brazil');
OPMERKING: U kunt IN ook gebruiken tijdens het schrijven van geneste query's.
BESTAAT Operator
De EXISTS-operator wordt gebruikt om te testen of een record bestaat of niet.
Syntaxis:
SELECT column_name(s) FROM table_name WHERE EXISTS (SELECT column_name FROM table_name WHERE condition);
Voorbeeld:
SELECT TeacherName FROM TeachersInfo WHERE EXISTS (SELECT * FROM TeachersInfo WHERE TeacherID = 05 AND Salary &amp;amp;amp;gt; 25000);
ALL-operator
De operator ALL wordt gebruikt met een WHERE- of HAVING-component en retourneert true als alle subquerywaarden aan de voorwaarde voldoen.
Syntaxis:
SELECT column_name(s) FROM table_name WHERE column_name operator ALL (SELECT column_name FROM table_name WHERE condition);
Voorbeeld:
SELECT TeacherName FROM TeachersInfo WHERE TeacherID = ALL (SELECT TeacherID FROM TeachersInfo WHERE Salary &amp;amp;amp;gt; 25000);
ELKE exploitant
Vergelijkbaar met de ALL-operator, wordt de ANY-operator ook gebruikt met een WHERE- of HAVING-clausule en retourneert deze true als een van de subquerywaarden aan de voorwaarde voldoet.
Syntaxis:
SELECT column_name(s) FROM table_name WHERE column_name operator ANY (SELECT column_name FROM table_name WHERE condition);
Voorbeeld:
SELECT TeacherName FROM TeachersInfo WHERE TeacherID = ANY (SELECT TeacherID FROM TeachersInfo WHERE Salary BETWEEN 32000 AND 45000);
Bewerkingen instellen – PostgreSQL-zelfstudie
Er zijn hoofdzakelijk drie set-bewerkingen:UNION, INTERSECT, MINUS. You can refer to the image below to understand the set operations in SQL. Refer to the below image:
UNION
The UNION operator is used to combine the result-set of two or more SELECT statements.
Syntax
SELECT column_name(s) FROM table1 UNION SELECT column_name(s )FROM table2;
INTERSECT
The INTERSECT clause is used to combine two SELECT statements and return the intersection of the data-sets of both the SELECT statements.
Syntax
SELECT Column1 , Column2 .... FROM table_name; WHERE condition INTERSECT SELECT Column1 , Column2 .... FROM table_name; WHERE condition
EXCEPT
The EXCEPT operator returns those tuples that are returned by the first SELECT operation, and are not returned by the second SELECT operation.
Syntax
SELECT column_name FROM table_name; EXCEPT SELECT column_name FROM table_name;
Limit, Offset and Fetch – PostgreSQL Tutorial
LIMIT
The LIMIT statement is used to retrieve a portion of the rows out of the complete rows present in the table.
Syntax:
SELECT column_name
FROM table_name LIMIT number;
Example:
SELECT * FROM TeachersInfo LIMIT 5;
OFFSET
The OFFSET statement omits the number of rows you mention and then retrieves the rest portion of the rows.
Syntax:
SELECT column_name
FROM table_name OFFSET number LIMIT number;
Example:
--Select 3 rows from TeachersInfo after the 5th row SELECT * FROM TeachersInfo OFFSET 5 LIMIT 3; --Select all rows from TeachersInfo SELECT * FROM TeachersInfo OFFSET 2;
FETCH
The FETCH keyword is used to fetch records from a table using a cursor. Here the cursors will be the following:
- NEXT
- PRIOR
- FIRST
- LAST
- RELATIVE Count
- ABSOLUTE Count
- Count
- ALL
- BACKWARD
- BACKWARD Count
- BACKWARD ALL
- FORWARD
- FORWARD Count
- FORWARD ALL
Syntax:
FETCH cursorname;
Example:
SELECT * FROM TeachersInfo OFFSET 5 FETCH FIRST 5 ROWS ONLY;
Nested Queries – PostgreSQL Tutorial
Nested queries are those queries which have an outer query and inner subquery. So, basically, the subquery is a query which is nested within another query such as SELECT, INSERT, UPDATE or DELETE. Refer to the image below:
So, when you execute this query, you will see the name of the teacher who is from Brazil.
Joins – PostgreSQL Tutorial
JOINS in PostgreSQL are used to combine rows from two or more tables, based on a related column between those tables. The following are the types of joins:
- INNER JOIN: The INNER JOIN returns those records which have matching values in both the tables.
- LEFT JOIN: The LEFT JOIN returns records from the left table, and also those records which satisfy the condition from the right table.
- RIGHT JOIN: The RIGHT JOIN returns records from the right table, and also those records which satisfy the condition from the left table.
- FULL JOIN: The FULL JOIN returns all those records which either have a match in the left or the right table.
Let’s consider the below table apart from the TeachersInfo table, to understand the syntax of joins.
SubjectID | TeacherID | SubjectName |
1 | 10 | Maths |
2 | 11 | Physics |
3 | 12 | Chemistry |
INNER JOIN
Syntax:
SELECT column_name(s) FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name;
Example:
SELECT Subjects.SubjectID, TeachersInfo.TeacherName FROM Subjects INNER JOIN TeachersInfo ON Subjects.TeacherID = TeachersInfo.TeacherID;
LEFT JOIN
Syntax:
SELECT column_name(s) FROM table1 LEFT JOIN table2 ON table1.column_name = table2.column_name;
Example:
SELECT TeachersInfo.TeacherName, Subjects.SubjectID FROM TeachersInfo LEFT JOIN Subjects ON TeachersInfo.TeacherID = Subjects.TeacherID ORDER BY TeachersInfo.TeacherName;
RIGHT JOIN
Syntax:
SELECT column_name(s) FROM table1 RIGHT JOIN table2 ON table1.column_name = table2.column_name;
Example:
SELECT Subjects.SubjectID FROM Subjects RIGHT JOIN TeachersInfo ON Subjects.SubjectID = TeachersInfo.TeacherID ORDER BY Subjects.SubjectID;
FULL JOIN
Syntax:
SELECT column_name(s) FROM table1 FULL OUTER JOIN table2 ON table1.column_name = table2.column_name;
Example:
SELECT TeachersInfo.TeacherName, Subjects.SubjectID FROM TeachersInfo FULL OUTER JOIN Subjects ON TeachersInfo.TeacherID = Subjects.SubjectID ORDER BY TeachersInfo.TeacherName;
Now, next in this article, I will discuss Views, Stored Procedures, and Triggers.
Views – PostgreSQL Tutorial
A view is a single table, which is derived from other tables. So, a view contains rows and columns similar to a real table and has fields from one or more table.
The ‘CREATE VIEW’ statement
The CREATE VIEW statement is used to create a view from an existing table.
Syntax
CREATE VIEW view_name AS SELECT column1, column2, ..., columnN FROM table_name WHERE condition;
Example
CREATE VIEW teachers_view AS SELECT TeacherName, TeacherID FROM TeachersInfo WHERE City = 'Bengaluru';
The ‘DROP VIEW’ statement
The DROP VIEW statement is used to delete a view.
Syntax
DROP VIEW view_name;
Example
DROP VIEW teachers_view;
PostgreSQL Tutorial For Beginners: Stored Procedures
Stored Procedures are snippets of codes which can be saved and re-used.
Syntax
CREATE PROCEDURE procedure_name
LANGUAGE lang_name;
Example
--Create two tables CREATE TABLE tbl1(tb1id int); CREATE TABLE tbl2(tb2id int); --Create Procedure CREATE PROCEDURE insert_data (a1 integer, b1 integer) LANGUAGE SQL AS $$ INSERT INTO tbl1 VALUES (a1); INSERT INTO tbl2 VALUES (b1); $$; CALL insert_data(4, 5);
T riggers – PostgreSQL Tutorial
Triggers are a set of SQL statements which are stored in the database catalog. These statements are executed whenever an event associated with a table occurs. So, a trigger can be invoked either BEFORE or AFTER the data is changed by INSERT , UPDATE or DELETE uitspraak.
Syntax
CREATE TRIGGER trigger_name [BEFORE|AFTER|INSTEAD OF] event_name ON table_name [ --Mention Logic Here ];
Example
--CREATE TRIGGER CREATE TRIGGER example_trigger AFTER INSERT ON TeachersInfo;
Data Control (DCL) Commands – PostgreSQL Tutorial
This section consists of those commands which are used to control privileges in the database. The commands are:
- GRANT
- REVOKE
GRANT
The GRANT command is used to provide user access privileges or other privileges for the schema.
Syntax:
GRANT privileges ON object TO user;
Example:
GRANT INSERT ON TeachersInfo TO PUBLIC;
REVOKE
The REVOKE command is used to withdraw user’s access privileges given by using the GRANT command.
Syntax:
REVOKE privileges ON object FROM user;
Example:
REVOKE INSERT ON TeachersInfo FROM PUBLIC;
Now, let’s move on to the last section of this article i.e. the TCL Commands.
Transaction Control (TCL) Commands – PostgreSQL Tutorial
- BEGIN
- COMMIT
- ROLLBACK
- SAVEPOINT
- RELEASE SAVEPOINT
- SET TRANSACTION
BEGIN
The BEGIN TRANSACTION command is used to start the transaction.
Syntax:
BEGIN;
BEGIN TRANSACTION;
Example:
BEGIN; DELETE * FROM TeachersInfo WHERE Salary = 65000;
COMMIT
The COMMIT command saves all the transactions to the database since the last COMMIT or ROLLBACK command.
Syntax:
COMMIT;
Example:
DELETE * FROM TeachersInfo WHERE Salary = 65000; COMMIT;
ROLLBACK
The ROLLBACK command is used to undo transactions since the last COMMIT or ROLLBACK command was issued.
Syntax:
ROLLBACK;
Example:
DELETE * FROM TeachersInfo WHERE Salary = 65000; ROLLBACK;
SAVEPOINT
The SAVEPOINT command defines a new savepoint within the current transaction.
Syntax:
SAVEPOINT savepoint_name; --Syntax for saving the SAVEPOINT ROLLBACK TO savepoint_name --Syntax for rolling back to the SAVEPOINT
Example:
SAVEPOINT SP1; DELETE FROM TeachersInfo WHERE Fees = 65000; SAVEPOINT SP2;
RELEASE SAVEPOINT
The RELEASE SAVEPOINT command is used to remove a SAVEPOINT that you have created.
Syntax:
RELEASE SAVEPOINT savepoint_name;
Example:
RELEASE SAVEPOINT SP2;
SET TRANSACTION
The SET TRANSACTION command sets the characteristics of the current transaction.
Syntax:
SET TRANSACTION transaction_mode;
UUID Data Type – PostgreSQL Tutorial
UUID data type stores Universally Unique Identifiers (UUID) with a 128 byte length. It is written as a sequence of lower-case hexadecimal digits and is generated by an algorithm. This algorithm is designed to make sure that the same UUID is not generated by any other person in the universe.
Example:
--Generate a a unique UUID SELECT uuid_generate_v4();
With this, we come to the end of this article on PostgreSQL Tutorial For Beginners. I hope you enjoyed reading this article on PostgreSQL Tutorial For Beginners. We have seen the different commands that will help you write queries and play around with your databases. If you wish to learn more about SQL and get to know this open source relational database, then check out our SQL Essentials Training. This training will help you understand SQL in depth and help you achieve mastery over the subject.
Got a question for us? Please mention it in the comments section of ”PostgreSQL Tutorial For Beginners ” en ik zal contact met je opnemen.