sql >> データベース >  >> RDS >> PostgreSQL

初心者のためのPostgreSQLチュートリアル–PostgreSQLについて知っておくべきことすべて

    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の機能は次のとおりです。

    1. データ型: PostgreSQLは、プリミティブ、構造化、ドキュメント、ジオメトリ、カスタマイズなど、さまざまなタイプのデータ型をサポートしています。これにより、ユーザーは任意の形式でデータを保存できます。
    2. データの整合性: データベース内のさまざまな制約とキーの助けを借りて、PostgreSQLは単純なデータベースから複雑なデータベースまでデータの整合性が満たされていることを確認します。
    3. パフォーマンス: PostgreSQLは、インデックス作成、マルチバージョン同時実行制御、式のJIT複雑化などの機能を提供して、同時実行性とパフォーマンスを確実に維持します。
    4. 信頼性: ログ先行書き込み(WAL)とレプリケーションの助けを借りて、PostgreSQLは一定期間にわたって最も信頼性の高いデータベースシステムの1つであることが証明されました。
    5. セキュリティ: PostgreSQLは、認証などの強力なメカニズム、許可されたユーザーのみがデータベースにアクセスできるようにする堅牢なアクセス制御システムを提供します。
    6. 拡張性: 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;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;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.


    1. MySQL LOG()関数–値の自然対数を返します

    2. MySQLのバージョンを確認する方法

    3. 同一サーバーのさまざまな計画

    4. 非同期スレーブを使用したGaleraクラスターのハイブリッドOLTP/分析データベースワークロード