PostgreSQLは、業界で30年以上にわたって活発に開発されている、オープンソースのオブジェクトリレーショナルデータベースシステムです。初心者向けのPostgreSQLチュートリアルに関するこの記事では、データベースのさまざまな概念とPostgreSQLで使用されるコマンドを紹介します。
この記事で取り上げるトピックは、主にDDL、DML、DCL、TCLの4つのカテゴリに分類されます。
- DDL (データ定義言語)コマンドは、データベースを定義するために使用されます。例:CREATE、DROP、ALTER、TRUNCATE、COMMENT、RENAME。
- DML (データ操作言語)コマンドは、データベースに存在するデータの操作を処理します。例:SELECT、INSERT、UPDATE、DELETE。
- DCL (データ制御言語)コマンドは、データベースシステムのアクセス許可、権限、およびその他の制御を処理します。例:GRANT、INVOKE。
- TCL (トランザクション制御言語)コマンドは、データベースのトランザクションを処理します。例:BEGIN、COMMIT、ROLLBACK。
コマンドとは別に、この記事では次のトピックについて説明します。
- PostgreSQLとは何ですか?
- WindowsにPostgreSQLをインストールする
- データベース内のさまざまなタイプのキー
- データベースで使用される制約
- オペレーター
- 集計関数
- 操作の設定
- ネストされたクエリ
- 参加
- ビュー
- ストアドプロシージャ
- トリガー
- UUIDデータ型
PostgreSQLとは何ですか? – PostgreSQLチュートリアル
PostgreSQLは、SQL言語を拡張して使用するオブジェクトリレーショナルデータベースシステムです。 1986年に始まり、30年以上にわたって活発に開発されてきました。
PostgreSQLの機能は次のとおりです。
- データ型: PostgreSQLは、プリミティブ、構造化、ドキュメント、ジオメトリ、カスタマイズなど、さまざまなタイプのデータ型をサポートしています。これにより、ユーザーは任意の形式でデータを保存できます。
- データの整合性: データベース内のさまざまな制約とキーの助けを借りて、PostgreSQLは単純なデータベースから複雑なデータベースまでデータの整合性が満たされていることを確認します。
- パフォーマンス: PostgreSQLは、インデックス作成、マルチバージョン同時実行制御、式のJIT複雑化などの機能を提供して、同時実行性とパフォーマンスを確実に維持します。
- 信頼性: ログ先行書き込み(WAL)とレプリケーションの助けを借りて、PostgreSQLは一定期間にわたって最も信頼性の高いデータベースシステムの1つであることが証明されました。
- セキュリティ: PostgreSQLは、認証などの強力なメカニズム、許可されたユーザーのみがデータベースにアクセスできるようにする堅牢なアクセス制御システムを提供します。
- 拡張性: PostgreSQLには、追加機能を提供するためのさまざまな拡張機能が付属しています。また、格納された関数、手続き型言語、および外部データラッパーを使用して拡張機能を拡張しました。
これで、PostgreSQLとは何かがわかったので、WindowsにPostgreSQLをインストールすることから始めましょう。
WindowsへのPostgreSQLのインストール–PostgreSQLチュートリアル
WindowsにPostgreSQLをインストールするには、次の手順に従う必要があります。
ステップ1: PostgreSQLの公式ウェブサイトにアクセスします 次に、ダウンロードするオペレーティングシステムを選択します。ここではWindowsを選択します。
ステップ2: オペレーティングシステムを選択すると、インストーラーをダウンロードする必要があるページにリダイレクトされます。これを行うには、オプションをクリックします:インストーラーをダウンロードします。 以下を参照してください。
ステップ3: 次に、ページにさらにリダイレクトされます。このページでは、オペレーティングシステムに基づいてインストーラーのバージョンを選択する必要があります。 。ここでは、Windows64ビット用に11.4バージョンを選択します。以下を参照してください。
一度、ダウンロードを押します 、PostgreSQLがダウンロードされていることが自動的にわかります。
ステップ4: ここで、ファイルがダウンロードされたら、ファイルをダブルクリックして開きます。画面に次のようなウィザードが表示されます。 次へをクリックします さらに進んでください。
ステップ4.1: 次に、インストールディレクトリを指定します 。ここではそのままにして、次へをクリックします 以下のように。
ステップ4.2: 次に、インストールするコンポーネントを選択します 次に、次へをクリックします 。ここでは、すべてのコンポーネントを選択しています。
ステップ4.3: 次に、データを保存するディレクトリを選択します 。ここではそのままにしておきます。次に、次へをクリックします。
ステップ4.4: 表示される次のダイアログボックスで、スーパーユーザーのパスワードを指定する必要があります。 次に、次へをクリックします。
ステップ4.5: 次に、ポート番号を選択する必要があります どのサーバーでリッスンする必要があります。ここでは、そのままにして、次へをクリックします。
ステップ4.6: 最後に、ロケールを選択 新しいデータベースクラスターで使用されます。そのままにして、次へをクリックします 。
ステップ4.7: 最後に次へをクリックします コンピュータへのPostgreSQLのインストールを開始するために来るウィザードで。
インストールが完了すると、画面に次のようなダイアログボックスが表示されます。 完了をクリックします
ステップ5: ここで、サーバーをデータベースに接続する必要があります。 。これを行うには、PostgreSQLの公式GUIであるpgadminを開きます。 。 pgadminを開くと、パスワードの入力を求めるダイアログボックスが表示されます。そのため、パスワードを入力して、[OK]をクリックします。
PostgreSQLがインストールされている必要があるので、PostgreSQLで使用されるコマンドの使用を開始しましょう。
PostgreSQLチュートリアル初心者向けのこの記事では、コマンドの記述方法を示すために、以下のデータベースを例として検討します。
TeacherID | TeacherName | 住所 | 都市 | 郵便番号 | 国 | 給与 |
01 | Saurav | ガンナムストリート | ソウル | 06499 | 韓国 | 42000 |
02 | Preeti | クイーンズキー | Rio Claro | 560001 | ブラジル | 45900 |
03 | Vinod | キングスロード | ロンドン | SW6 | イギリス | 65000 |
04 | Akanksha | マヨロード | コルカタ | 700069 | インド | 23000 |
05 | 許可 | MGロード | バンガロール | 560001 | インド | 30000 |
では、今すぐ始めましょう!
データ定義(DDL)コマンド– PostgreSQLチュートリアル
記事のこのセクションは、データベースを定義できるコマンドで構成されています。コマンドは次のとおりです。
- 作成
- 後
- ドロップ
- 切り捨て
- 名前の変更
作成
このステートメントは、スキーマ、テーブル、またはインデックスを作成するために使用されます。
「CREATESCHEMA」ステートメント
CREATE SCHEMAステートメントは、データベースまたは最も一般的にはスキーマとして知られているものを作成するために使用されます。
構文:
CREATE SCHEMA Schema_Name;
例:
CREATE SCHEMA teachers;
「CREATETABLE」ステートメント
CREATE TABLEステートメントは、データベースに新しいテーブルを作成するために使用されます。
構文:
CREATE TABLE table_name ( column1 datatype, column2 datatype, column3 datatype, .... );
例:
CREATE TABLE TeachersInfo ( TeacherID int, TeacherName varchar(255), Address varchar(255), City varchar(255), PostalCode int, Country varchar(255), Salary int );
ALTER
このステートメントは、制約または列を追加、変更、または削除するために使用されます。
「ALTERTABLE」ステートメント
ALTER TABLEステートメントは、テーブルから制約と列を追加、変更、または削除するために使用されます。
構文:
ALTER TABLE table_name ADD column_name datatype;
例:
ALTER TABLE TeachersInfo ADD DateOfBirth date;
ドロップ
このコマンドは、データベース、テーブル、または列を削除するために使用されます。
「DROPSCHEMA」ステートメント
DROP SCHEMAステートメントは、完全なスキーマを削除するために使用されます。
構文:
DROP SCHEMA schema_name;
例:
DROP SCHEMA teachers;
「DROPTABLE」ステートメント
DROP TABLEステートメントは、テーブル全体とそのすべての値を削除するために使用されます。
構文:
DROP TABLE table_name;
例:
DROP TABLE TeachersInfo;
切り捨て
TRUNCATEステートメントは、テーブル内に存在するデータを削除するために使用されますが、テーブルは削除されません。
構文:
TRUNCATE TABLE table_name;
例:
TRUNCATE TABLE TeachersInfo;
名前の変更
RENAMEステートメントは、1つ以上のテーブルまたは列の名前を変更するために使用されます。
構文:
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
例:
ALTER TABLE TeachersInfo RENAME TO InfoTeachers; ALTER TABLE InfoTeachers RENAME COLUMN dateofbirth TO dob;
では、PostgreSQLチュートリアルの初心者向けのこの記事に進む前に、データベースの操作中に言及する必要のあるさまざまな種類のキーと制約について説明します。キーと制約は、各テーブルを他のテーブルと関連付けることができるため、はるかに優れた方法でテーブルを作成するのに役立ちます。
データベース内のさまざまなタイプのキー– PostgreSQLチュートリアル
データベースに記載できるキーには主に5種類あります。
- 候補キー– 候補キーは、タプルを一意に識別できる最小限の属性セットの組み合わせです。どのリレーションにも複数の候補キーを含めることができます。キーは単純キーまたは複合キーです。
- スーパーキー– スーパーキーは、タプルを一意に識別できる属性のセットです。したがって、候補キーはスーパーキーですが、その逆は当てはまりません。
- 主キー– 主キーは、すべてのタプルを一意に識別するために使用できる属性のセットです。したがって、関係に3〜4個の候補キーが存在する場合、それらのうち1つを主キーとして選択できます。
- 代替キー– 主キー以外のすべての候補キーは、代替キーと呼ばれます。
- 外部キー– 他の属性の値として存在する値のみをとることができる属性は、それが参照する属性への外部キーです。
データベースで使用される制約– PostgreSQLチュートリアル
データベースで使用できる制約は次のとおりです。
- NOT NULL – NOT NULL制約により、NULL値を列に格納できないようにします
- UNIQUE – UNIQUE制約は、列のすべての値が異なることを確認します
- チェック -CHECK制約は、列のすべての値が特定の条件を満たすことを保証します。
- デフォルト -DEFAULT制約は、値が指定されていない場合の列のデフォルト値のセットで構成されます。
- インデックス – INDEX制約は、データベースからデータを非常に迅速に作成および取得するために使用されます
これで、DDLのコマンドとさまざまなタイプのキーと制約がわかったので、次のセクション、つまりデータ操作コマンドに進みましょう。
データ操作(DML)コマンド– PostgreSQLチュートリアル
記事のこのセクションは、データベースを操作するためのコマンドで構成されています。コマンドは次のとおりです。
- SET SEARCH_PATH
- 挿入
- 更新
- 削除
- SELECT
これらのコマンドの他に、次のような他の操作演算子/関数もあります:
- 算術演算子、ビット演算子、複合演算子、および比較演算子
- 論理演算子
- 集計関数
- 特別な演算子
- 操作の設定
- 制限、オフセット、フェッチ
SET SEARCH_PATH
このステートメントは、すべての操作を実行するためにどのスキーマを使用する必要があるかを示すために使用されます。
構文:
SET search_path TO schema_name;
例:
SET search_path TO teachers;
挿入
INSERTステートメントは、テーブルに新しいレコードを挿入するために使用されます。
構文:
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, ...);
例:
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');
更新
The UPDATE statement is used to modify the existing records in a table.
構文:
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
例:
UPDATE TeachersInfo SET TeacherName = 'Alfred', City= 'Frankfurt' WHERE TeacherID = '01';
削除
DELETEステートメントは、テーブル内の既存のレコードを削除するために使用されます。
構文:
DELETE FROM table_name WHERE condition;
例:
DELETE FROM TeachersInfo WHERE TeacherName='Vinod';
SELECT
SELECTステートメントはデータベースからデータを選択するために使用され、返されたデータは結果セットと呼ばれる結果テーブルに保存されます。 。
このステートメントを使用する2つの方法は次のとおりです。
構文:
SELECT column1, column2, ... FROM table_name; --(*) is used to select all from the table SELECT * FROM table_name;からすべてを選択するために使用されます
例:
SELECT Teachername, City FROM TeachersInfo; SELECT * FROM TeachersInfo;
個々のSELECTキーワードとは別に、次のステートメントでSELECTキーワードを使用できます。
- DISTINCT
- 注文者
- GROUP BY
- HAVING条項
「SELECTDISTINCT」ステートメント
SELECT DISTINCTステートメントは、個別の値または異なる値のみを返すために使用されます。したがって、値が重複しているテーブルがある場合は、このステートメントを使用して個別の値を一覧表示できます。
構文:
SELECT DISTINCT column1, column2, ... FROM table_name;
例:
SELECT Country FROM TeachersInfo;
「ORDERBY」ステートメント
ORDER BYステートメントは、目的の結果を昇順または降順で並べ替えるために使用されます。デフォルトでは、結果は昇順で並べ替えられます。レコードを降順で並べ替える場合は、 DESCを使用する必要があります キーワード。
構文:
SELECT column1, column2, ... FROM table_name ORDER BY column1, column2, ...ASC|DESC;
例:
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;
「GROUPBY」ステートメント
このステートメントは、結果セットを1つ以上の列でグループ化するために集計関数で使用されます。
構文:
SELECT column_name(s) FROM table_name WHERE condition GROUP BY column_name(s) ORDER BY column_name(s);
例:
SELECT COUNT(TeacherID), Country FROM TeachersInfo GROUP BY Country ORDER BY COUNT(TeacherID) DESC;
「HAVING」句のステートメント
WHERE以降 キーワードは集計関数では使用できないため、HAVING句が導入されました。
構文:
SELECT column_name(s) FROM table_name WHERE condition GROUP BY column_name(s) HAVING condition ORDER BY column_name(s);
例:
SELECT COUNT(TeacherID), Country FROM TeachersInfo GROUP BY Country HAVING COUNT(Salary) > 40000;
算術演算子、ビット演算子、複合演算子、および比較演算子– PostgreSQLチュートリアル
算術演算子、ビット演算子、複合演算子、および比較演算子は次のとおりです。
論理演算子
この一連の演算子は、AND / OR/NOTなどの論理演算子で構成されています。
および演算子
この演算子は、ANDで区切られたすべての条件を満たすレコードを表示します。
構文:
SELECT column1, column2, ... FROM table_name WHERE condition1 AND condition2 AND condition3 ...;
例:
SELECT * FROM TeachersInfo WHERE Country='India' AND City='South Korea';
または演算子
この演算子は、ORで区切られた条件のいずれかを満たすレコードを表示します。
構文:
SELECT column1, column2, ... FROM table_name WHERE condition1 OR condition2 OR condition3 ...;
例:
SELECT * FROM TeachersInfo WHERE Country='India' OR City='South Korea';
演算子ではありません
NOT演算子は、条件がTRUEでない場合にレコードを表示します。
構文:
SELECT column1, column2, ... FROM table_name WHERE NOT condition;
例:
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');
集計関数– PostgreSQLチュートリアル
この記事の次のセクションには、次のような機能が含まれます。
- MIN()
- MAX()
- COUNT()
- AVG()
- SUM()
MIN()関数
MIN関数は、テーブル内の選択された列の最小値を返します。
構文:
SELECT MIN(column_name) FROM table_name WHERE condition;
例:
SELECT MIN(Salary) AS SmallestSalary FROM TeachersInfo;
MAX()関数
MAX関数は、テーブル内の選択された列の最大値を返します。
構文:
SELECT MAX (column_name) FROM table_name WHERE condition;
例:
SELECT MAX(Salary) AS LargestSalary FROM TeachersInfo;
COUNT()関数
COUNT関数は、指定された基準に一致する行数を返します。
構文:
SELECT COUNT (column_name) FROM table_name WHERE condition;
例:
SELECT COUNT(TeacherID) FROM TeachersInfo;
AVG()関数
AVG関数は、選択した数値列の平均値を返します。
構文:
SELECT AVG (column_name) FROM table_name WHERE condition;
例:
SELECT AVG(Salary) FROM TeachersInfo;
SUM()関数
SUM関数は、選択した数値列の合計を返します。
構文:
SELECT SUM(column_name) FROM table_name WHERE condition;
例:
SELECT SUM(Salary) FROM TeachersInfo;
特別なオペレーター– PostgreSQLチュートリアル
記事のこのセクションには、次の演算子が含まれます。
- 間
- IS NULL
- いいね
- IN
- 存在
- すべて
- 任意
オペレーター間
BETWEEN演算子は、指定された範囲内の値(数値、テキスト、または日付)を選択する包括的な演算子です。
構文:
SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2;
例:
SELECT * FROM TeachersInfo WHERE Fees BETWEEN 30000 AND 45000;
ISNULL演算子
比較演算子(=、<、>)を使用してNULL値をテストすることはできないため、代わりにISNULLおよびISNOTNULL演算子を使用できます。
構文:
--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;
例:
SELECT TeacherName FROM TeachersInfo WHERE Address IS NULL; SELECT TeacherName FROM TeachersInfo WHERE Address IS NOT NULL;
LIKE演算子
LIKE演算子は、WHERE句で使用され、テーブルの列で指定されたパターンを検索します。
以下は、LIKE演算子と組み合わせて使用される2つのワイルドカードです。
-
%–パーセント記号は、0、1、または複数の文字を表します
-
_ –アンダースコアは1文字を表します
構文:
SELECT column1, column2, ... FROM table_name WHERE column LIKE pattern;
例:
SELECT * FROM TeachersInfo WHERE TeacherName LIKE 'S%';
IN演算子
IN演算子は省略演算子であり、複数のOR条件に使用されます。
構文:
SELECT column_name(s) FROM table_name WHERE column_name IN (value1, value2, ...);
例:
SELECT * FROM TeachersInfo WHERE Country IN ('South Korea', 'India', 'Brazil');
注: ネストされたクエリの作成中にINを使用することもできます。
既存のオペレーター
EXISTS演算子は、レコードが存在するかどうかをテストするために使用されます。
構文:
SELECT column_name(s) FROM table_name WHERE EXISTS (SELECT column_name FROM table_name WHERE condition);
例:
SELECT TeacherName FROM TeachersInfo WHERE EXISTS (SELECT * FROM TeachersInfo WHERE TeacherID = 05 AND Salary &amp;amp;amp;gt; 25000);
すべてのオペレーター
ALL演算子はWHERE句またはHAVING句とともに使用され、すべてのサブクエリ値が条件を満たしている場合はtrueを返します。
構文:
SELECT column_name(s) FROM table_name WHERE column_name operator ALL (SELECT column_name FROM table_name WHERE condition);
例:
SELECT TeacherName FROM TeachersInfo WHERE TeacherID = ALL (SELECT TeacherID FROM TeachersInfo WHERE Salary &amp;amp;amp;gt; 25000);
任意のオペレーター
ALL演算子と同様に、ANY演算子もWHEREまたはHAVING句で使用され、サブクエリ値のいずれかが条件を満たす場合にtrueを返します。
構文:
SELECT column_name(s) FROM table_name WHERE column_name operator ANY (SELECT column_name FROM table_name WHERE condition);
例:
SELECT TeacherName FROM TeachersInfo WHERE TeacherID = ANY (SELECT TeacherID FROM TeachersInfo WHERE Salary BETWEEN 32000 AND 45000);
操作の設定– PostgreSQLチュートリアル
主に、UNION、INTERSECT、MINUSの3つのセット操作があります。 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 声明。
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 ” and I will get back to you.