ゼファーネットのロゴ

SQLのワンストップガイド

日付:

 この記事は、の一部として公開されました データサイエンスブログソン.

SQLの紹介

  SQL(構造化照会言語) プログラミング言語は、リレーショナルデータベースに格納されている情報を格納、操作、およびクエリするために使用されます。 SQLは、IBMのグループがリレーショナルデータベースのプロトタイプを作成した1974年に初めて登場しました。 リレーショナルソフトウェア (後にオラクルと呼ばれる) 最初の商用リレーショナルデータベースをリリースしました。

SQLには標準があります。 ただし、今日の主要なRDBMSごとに使用できるSQLにはさまざまな種類があります。 一部には、これは次の XNUMX つの要因によるものです。

1) SQLコマンド 標準はかなり複雑であり、標準全体を実装することは実用的ではありません。

2)各データベースベンダーは、その製品を差別化する方法を必要としています。

ビッグデータの出現により、SQLはさらに用途が広くなりました。 当初、ビッグデータテクノロジーはプログラマーを対象としていました。 しかし、最終的にビッグデータベンダーは、アナリストがデータセットをクエリできるようにするためにSQLのようなレイヤーを提供する必要があることに気付き、独自のバージョンのSQLの開発を開始しました。

これらのタイプのSQLとリレーショナルデータベースで実行されるSQLの最大の違いのXNUMXつは、後者には行レベルでデータを管理する機能がないことです。 たとえば、個々の行を更新することはできません。

このデータベース言語は、主にリレーショナルデータベース管理システムでデータを維持するために設計されています。

SQLは、データベースにアクセスして操作するための標準言語です。

なぜSQLを学ぶ必要があるのですか? – 利点

トレーニングがなければ、人々は SQL やその他のコーディング言語を習得するのが難しすぎると考えています。 これが、雇用主が SQL の訓練を受けた従業員を高く評価する理由の XNUMX つです。

SQL はほとんどのデータベース管理において極めて重要な役割を果たしているため、雇用者が SQL に精通していなくても、従業員は SQL を知ることが重要である理由を簡単に説明できます。

そうすることで、従業員は多くの場合、SQL スキルを開発することで雇用主への望ましさを高めることができます。 以下は、SQL の専門知識を必要とする最も一般的なポジションの一部です。

  • バックエンド開発者: この役割には、Webアプリケーションが正しく機能することを保証するコードの管理が含まれます。
  • データベース管理者: このポジションは、データが適切に保存および管理されることを保証します。
  • データアナリスト: このポジションにいる人々は、他の部門の運営を改善するために、関連する傾向についてデータを分析する責任があります。
  • データサイエンティスト: これらの役割は、大量のデータを処理することを任務としています。

In Data Science – SQL を使用する一般的なタスクになります。

  • 有用なビジネス洞察を抽出するためのデータのクエリと調査
  • ビジネス レポート用のデータの収集と集計
  • 特定の処理のためのデータの選択 (ターゲットを絞ったプロモーションを受ける顧客の選択など)
  • 機械学習タスクまたはその他の予測モデリングのためのデータの抽出

SQLで何ができるか?

SQL でできることは他にもたくさんあります。

  • データベースを作成できます。
  • データベースにテーブルを作成できます。
  • データベースから情報を照会または要求できます。
  • データベースにレコードを挿入できます。
  • データベース内のレコードを更新または変更できます。
  • データベースからレコードを削除できます。
  • データセキュリティのために、データベース内でアクセス許可またはアクセス制御を設定できます。
  • ビューを作成すると、頻繁に使用される複雑なクエリを入力する必要がなくなります。

SQLを使用して何ができるかを考える効果的な方法は、頭字語を使用することです。 クラッド

これは少し非公式な頭字語のように見えるかもしれませんが、実際には、リレーショナルデータベースで実行できるコア機能または操作を説明するための非常に効果的な方法です…

見てみましょう!

  • 作成: データベースとスキーマ(ほとんどすべてを整理するのに役立つパーティションとして機能します)を設計および作成できます。もちろん、テーブルを作成することもできます。
  • 読みます: これは主にデータのクエリに関するものなので、基本的に、必要な情報を提供するテーブルから関連する行と列を取得します
  • UPDATE: 既存のテーブルに行と列を追加したり、テーブル内のレコードを変更したりできます
  • DELETE: これはあなたが期待するようなものです。特定の行と列を削除したり、テーブル全体、スキーマ、さらにはデータベースを削除したりすることもできます。

SQLで使用される主要な用語

  • データベース: テーブルは、特定の構造化データ セットを格納するために使用されます。 テーブルは、レコードまたはタプルとも呼ばれる行と、属性とも呼ばれる列で構成されます
  • スキーマ: スキーマは、名前で見つけられるように、ビュー、リレーションなどを含むテーブルやその他のオブジェクトをグループ化する方法でデータを編成する方法です。
  • テーブル: このテーブルは、データを保持する列と行で構成されています。 列は「属性」と見なされますが、行はその属性の値を表すエントリです。 列では、すべての値が同じタイプである必要があります。
  • SQLインデックス: インデックスは特別なルックアップテーブルです。 これは、データベースから驚くほど高速にデータを取得するために使用されます。
  • 句: SQLで句を使用することにより、データのクエリ方法やフィルタリング方法をカスタマイズできます。
  • 集計関数: 関数は、派生元の累積データの重要性を表す単一の値を返す数学計算です。
  • 窓関数:ウィンドウ関数では、現在の行と何らかの関係がある一連のテーブル行に対して計算が行われます。 基本的に、これは集計関数で実行できる計算のタイプに似ています。
  • オペレーター:タスクの実行に使用される一意の単語または文字これらのタスクは、複雑な比較から単純な算術演算まで多岐にわたります。 SQL演算子は、電卓のさまざまなボタンの動作に類似していると考えてください。
  • 正規化: この表では、正規化によって冗長性が排除され、データの整合性が強化されています。 また、データベース内のデータ編成も容易になります。 このプロセスには、データを表形式に変換し、リレーショナルテーブルから重複を削除することが含まれます
  • ジョイン:JOIN句は、共通の列に基づいてXNUMXつ以上のテーブルの行を結合するために使用されます。
  • サブクエリ: サブクエリは、別の SQL クエリ内のクエリであり、WHERE 句内に埋め込まれています。
  • キー: テーブル内のタプルの行を一意に識別する XNUMX つの列 (または属性) または列のグループのいずれかが存在する可能性があります。

リレーショナル データベースとは

リレーショナルデータベースは、テーブルと呼ばれる論理ユニットで構成され、テーブルはデータベース内で相互に関連付けられています。 リレーショナルデータベースを使用すると、データを論理的で、より小さく、より管理しやすい単位に分割して、保守を容易にし、パフォーマンスを向上させることができます。

リレーショナルデータベースシステムでは、テーブルは共通のキーまたはフィールドを介してリンクされるため、目的のデータが複数のテーブルにある場合は、それらを簡単に結合して、単一のクエリを使用して結合されたデータセットを取得できます。

SQLでの正規化

SQLでの正規化正規化 最小化するプロセスです 冗長性 リレーションまたはリレーションのセットから。 関連する冗長性により、挿入、削除、および更新の異常が発生する可能性があります。 したがって、関係の冗長性を最小限に抑えるのに役立ちます。 通常の形式 データベーステーブルの冗長性を排除または削減するために使用されます。

なぜノーマライゼーションが必要なのか?

関係を正規化する主な理由は、これらの異常を取り除くことです。 異常を排除できないと、データの冗長性が発生し、データベースが大きくなるにつれてデータの整合性やその他の問題が発生する可能性があります。 正規化は、優れたデータベース構造を作成するためのガイドとなる一連のガイドラインで構成されています。

データ改ざん異常は XNUMX つのタイプに分類できます

挿入異常: 挿入異常とは、データが不足しているために新しいタプルを関係に挿入できない場合を指します。

削除異常: 削除異常とは、データを削除した結果、他の重要なデータが意図せず失われる状況を指します。

更新異常: 更新の異常とは、単一のデータ値の更新で複数行のデータを更新する必要がある場合です。

  • 第一正規形: リレーションに複合属性または複数値属性が含まれている場合、それは最初の正規形に違反します。または、リレーションに複合属性または複数値属性が含まれていない場合、リレーションは最初の正規形になります。 リレーション内のすべての属性が単一値の属性である場合、リレーションは最初の正規形になります。
  • 第 XNUMX 正規形: 第2正規形であるためには、リレーションは第XNUMX正規形である必要があり、リレーションに部分的な依存関係が含まれていてはなりません。 関係がある場合はXNUMXNFにあります 部分的な依存関係なしつまり、非プライム属性(候補キーの一部ではない属性)は、テーブルの候補キーの適切なサブセットに依存しません。

部分的な依存: 候補キーの適切なサブセットが非プライム属性を決定する場合、それは部分依存と呼ばれます。

  • XNUMX番目の正規形: 非プライム属性に推移的な依存関係がない場合、および第3正規形の場合、リレーションは第XNUMX正規形になります。 次の条件の少なくともXNUMXつがすべての自明でない関数従属性に当てはまる場合、関係はXNUMXNFにありますX –> Y

Note

X はスーパーキーです。

Yは素数属性です(Yの各要素はいくつかの候補キーの一部です)。

  • ボイスコッド正規形(BCNF):Rが第XNUMX正規形であり、すべてのFDについて、LHSがスーパーキーである場合、関係RはBCNFにあります。 すべての重要な機能従属性X–> Yで、Xがスーパーキーである場合、関係はBCNFにあります。
  • 第 XNUMX 正規形: データベーステーブルインスタンスに、関連するエンティティを説明する4つ以上の独立した複数値のデータが含まれていない場合、それは第XNUMX正規形になります。
  • XNUMX番目の通常の形式: テーブルが 5NF であり、データを失うことなく小さなテーブルに分解できない場合にのみ、テーブルは第 4 正規形になります。
  • 第 XNUMX 正規形: 第 6 正規形は標準化されていませんが、データベースの専門家の間でしばらく議論されています。 近い将来、第 6 正規形の明確で標準化された定義が得られることを願っています。

既存のテーブルのキーの管理

テーブルの作成時にキーを指定しない場合は、テーブルの作成後にキーを指定できます。 SQLテーブルは、次のキータイプをサポートしています。

既存のテーブルのキーの管理
  • 主キー: ヌルおよび重複値が許可されていないテーブル内のレコードを一意に識別するXNUMXつ以上のフィールド/列。
  • 候補キー: 候補キーは、コミットされていない主キーのセットのようなものです。 これらのキーは一意の値のみを受け入れますが、主キーの代わりに使用することはできません。 主キーとは対照的に、テーブルごとに複数の候補キーが存在する可能性があります。
  • 代替キー: これにより、単一の候補キーが識別されます (必要に応じて主キーの機能を果たすことができます)。
  • コンポジット/コンパウンドキー: 複数の列の値を組み合わせると、その合計は常に一意の値になります。 XNUMXつのテーブルに、複数の候補キーが存在できます。 各候補キーは主キーとして機能します。
  • 一意のキー: データベース テーブル内のレコードを一意に識別する XNUMX つ以上のテーブル フィールド/列のコレクション。 これは主キーに似ていますが、null 値を XNUMX つだけ受け入れることができ、重複する値を持つことはできません。
  • 外部キー: 外部キーは、別のテーブルの主キーとして機能するフィールドです。 外部キーは、テーブル間の接続を確立するのに役立ちます。 プライマリである親テーブルには外部キーが必要ですが、他のテーブルに関連することを目的としたテーブルの外部キーはnullまたは空にすることができます。

SQL コマンドの概要

データベースとの通信には、SQLコマンドが使用されます。 基本的なSQLコマンドを使用すると、テーブルの作成やデータの追加から、テーブルの変更やユーザー権限の設定まで、すべてを行うことができます。

このようなデータベース管理システム Oracle データベース、MySQL、Microsoft SQL Server、PostgreSQL など, MariaDB 最も人気のあるオプションの一部です。

SQLコマンドには次のXNUMXつのタイプがあります。 DDL、DML、DCL、TCL、および DQL。

SQL コマンドの概要

データ定義言語

データ定義言語は、データベーススキーマの作成に使用されるSQLコマンドのセットです。 DDLは、データに影響を与えることなくデータベース構造を作成、変更、および削除するSQLコマンドのセットです。 データベーススキーマの記述を扱い、データベース内のデータベースオブジェクトを作成および変更するために使用されます。 ほとんどの場合、一般ユーザーはこれらのコマンドを使用せず、アプリケーションを使用してデータベースにアクセスします。

DDL の下にあるコマンドを次に示します。

CREATE

変更する

DROP

切り捨てる

  • 作成: このコマンドは、データベースまたはそのオブジェクト(テーブル、インデックス、関数、ビュー、ストアドプロシージャ、トリガーなど)を作成します。

構文:

CREATE TABLE TABLE_NAME(COLUMN_NAME DATATYPES [、....]);  

例:

CREATE TABLE STUDENT(名前 VARCHAR2(20), 電子メール VARCHAR2(100), 生年月日);  
  • 変更: このコマンドは、データベースの構造を変更します。 データベースの構造を変更するために使用されます。 この変更は、既存の属性の特性を変更するか、おそらく新しい属性を追加するためのものです。

構文:

テーブルに新しい列を追加するには

ALTER TABLE table_name ADDcolumn_nameCOLUMN-定義;    

テーブル内の既存の列を変更するには:

ALTER TABLE テーブル名 MODIFY(列定義....);  

例:

ALTER TABLE STUDENT_DETAILS ADD(ADDRESS VARCHAR2(20));
ALTER TABLE STUDENT _DETAILS MODIFY(NAME VARCHAR2(20));  
  • 落とす: このコマンドは、データベース内のオブジェクトを削除するために使用されます。 テーブルに格納されている構造とレコードの両方を削除するために使用されます。

構文

DROP TABLE テーブル名;  

ドロップテーブルの学生;  
  • 切り捨て: この操作により、テーブルからすべてのレコードと、レコードに割り当てられたすべてのスペースが削除されます。

構文:

TRUNCATE TABLE テーブル名;

例:

テーブルの学生を切り捨てます。  

DML(データ操作言語)

データベース内のデータを操作するSQLコマンドは、DML(Data Manipulation Language)に属しており、SQLステートメントの大部分が含まれています。 これは、データおよびデータベースへのアクセスを制御するSQLステートメントの一部です。 これらは通常、DMLステートメントと一緒にグループ化されます。

DML の下にあるコマンドを次に示します。

INSERT

DELETE

UPDATE

  • インサート: これは、テーブルの行にデータを挿入する方法です。

構文:

INSERT INTO TABLE_NAME (col1, col2, col3,.... col N) VALUES (value1, value2, value3, .... valueN);  

Or

INSERT INTO TABLE_NAME VALUES (値1、値2、値3、....値N);    

例:

INSERT INTO SQLJOINT (作成者、サブジェクト) VALUES ("ロジャー"、"DBMS");  
  • DELETE: このメソッドは、データベース テーブルのテーブルから XNUMX つまたは複数の行を削除するために使用されます。

構文:

DELETE FROM table_name [WHERE条件];  

例:

DELETE FROM SQLJOINT WHERE Author = "Roger"; 
  • UPDATE: この関数は、テーブル内の既存のデータの列の値を更新または変更するために使用されます

構文:

UPDATE table_name SET [column_name1 = value1、... column_nameN = valueN] [WHERE CONDITION]   

例:

UPDATE従業員SETUser_Name='Roger' WHERE Emp_Id = '5'  

DCL (データ制御言語)

データ制御言語である DCL は、データベースに格納されているデータを管理する方法です。 これには、主にデータの権利、許可、およびその他の制御を扱う GRANT や REVOKE などのコマンドが含まれます。

DCL を使用して、任意のデータベース ユーザーからデータベース内のテーブルへのアクセスを許可または取り消すことができます。 grant コマンドはユーザーまたはグループに特定のテーブルへのアクセス権を付与し、revoke コマンドはそれらの権限を奪います。

以下は、DCL の下にあるコマンドの一部です。

グラント

取り消す

  • 許す: コマンドは、他の誰か (またはグループ) がデータベース内のデータにアクセスできるようにする場合に使用されます。

MY_TABLE の SELECT、UPDATE を SOME_USER、ANOTHER_USER に許可します。  
  • 取り消す: コマンドは、他の誰か(または一部のグループ)にアクセスを許可しないようにする場合に使用されます

SELECTを取り消し、USER1、USER2からMY_TABLEを更新します。 

TCL (トランザクション制御言語)

TCLコマンドは、INSERT、DELETE、UPDATEなどのDMLコマンドでのみ使用できます。

これらの操作はデータベースに自動的にコミットされるため、テーブルの作成中または削除中には使用できません。

TCLに含まれるコマンド:

  • コミット: コマンドは、すべてのトランザクションをデータベースに保存するために使用されます。

構文:

COMMIT;  

例:

AGE = 22 のユーザーから削除します。 専念;  
  • ロールバック: コマンドは、データベースにまだ保存されていないトランザクションを元に戻すために使用されます。

構文:

ロールバック;  

例:

年齢=22のユーザーから削除; ロールバック;  
  • セーブポイント: これは、トランザクション全体をロールバックせずに、トランザクションを特定のポイントにロールバックするために使用されます。

構文:

セーブポイント セーブポイント_NAME; 

DQL (データクエリ言語)

DQLは、データベースからデータをフェッチするために使用されます。

次のXNUMXつのコマンドのみを使用します。

SELECT

  • 選択する: これは関係代数の射影演算と同じです。 これは、WHERE句で記述された条件に基づいて属性を選択するために使用されます。

構文:

SELECT 式 FROM TABLES WHERE 条件; 

例:

SELECT emp_name FROM employee WHERE age> 20。

SQL句のタイプ

SQL句のタイプ
  • GROUP BY: SQL GROUP BYステートメントは、同一のデータをグループにグループ化するために使用されます。 SQL SELECTステートメントでは、GROUPBYステートメントが使用されます。 SELECTステートメントでは、GROUP BY句がWHERE句の後に続き、ORDERBY句の前にあります。 集計は、GROUPBYステートメントを使用して実行されます。

構文:

SELECT列
TABLE_NAME FROM
WHERE 条件
GROUP BY列
ORDERBY列 

  • 持っている:  
    having 句は、グループまたは集計の検索条件を指定します。 持つことは
    GROUPBY句で使用されます。 GROUPBY句の代わりにHAVING関数を使用すると
    WHERE句を使用するような

構文:

SELECT 列 1、列 2 FROM テーブル名 WHERE 条件 GROUP BY 列 1、列 2 HAVING 条件 ORDER BY 列 1、列 2;  
  • 注文者: ORDER BY句では、結果セットは昇順または降順でソートされます。 デフォルトでは、レコードは昇順で並べ替えられます。 DESCキーワードは、レコードを降順でソートするために使用されます。

構文:

SELECT 列 1、列 2 FROM テーブル名 WHERE 条件 ORDER BY 列 1、列 2... ASC|DESC; 

どこ:

ASC: これは、結果セットを式の昇順で並べ替えるために使用されます。

DESC: 結果セットを式で降順にソートします。

SQL集計関数の種類

SQL集計関数の種類
  • AVG 関数: AVG関数は、数値タイプの平均値を計算するために使用されます。 AVG関数は、Null以外のすべての値の平均を返します。

構文:

AVG() または AVG( [ALL|DISTINCT] 式 )  
  • 最小機能: MIN関数は、特定の列の最小値を見つけるために使用されます。 この関数は、列で選択されたすべての値の最小値を決定します。

構文:

MIN() または MIN( [ALL|DISTINCT] 式 )  
  • 最大関数: MAX関数は、特定の列の最大値を見つけるために使用されます。 この関数は、列で選択されたすべての値の最大値を決定します。

構文:

MAX() または MAX( [ALL|DISTINCT] 式 )  
  • SUM 関数: 合計関数は、選択したすべての列の合計を計算するために使用されます。 数値フィールドでのみ機能します。

構文:

SUM() または SUM( [ALL|DISTINCT] 式 )  
  • カウント機能: count関数は、データベーステーブルの行数をカウントするために使用されます。 数値データ型と非数値データ型の両方で機能します。 指定されたテーブルのすべての行の数を返すCOUNT(*)を使用します。 COUNT(*)は、重複とNullを考慮します。

構文:

COUNT(*) または COUNT( [ALL|DISTINCT] 式 )  

SQL Windows 関数の種類

SQL Windows 関数の種類

ウィンドウ関数は、特定のウィンドウ(行のセット)の集計およびランク付け関数に適用されます。 OVER句は、そのウィンドウを定義するためにウィンドウ関数とともに使用されます。 OVER句はXNUMXつのことを行います:

  • 行を行のフォームセットに分割します。 (PARTITION BY句が使用されます)
  • それらのパーティション内の行を特定の順序に並べ替えます。 (ORDER BY句が使用されます)

注意:
パーティションが作成されていない場合、ORDERBYはテーブルのすべての行を並べ替えます。

 構文:

SELECT coulmn_name1、 
 window_function(cloumn_name2)、
 OVER([PARTITION BY 列名 1] [ORDER BY 列名 3]) AS 新しい列
FROM テーブル名;

window_function = 集計またはランキング関数
列名1=選択する列
カラム名2= ウィンドウ関数が適用される列
列名3= 行の分割が行われる基準となる列
new_column = 新しい列の名前
テーブル名= テーブルの名前


  • 集約ウィンドウ関数: 特定のウィンドウ(行のセット)に適用されるSUM()、COUNT()、AVERAGE()、MAX()、MIN()などのさまざまな集計関数は、集計ウィンドウ関数と呼ばれます。

例:

各部門の従業員の平均給与を見つけ、部門内の従業員を年齢別に注文します。

名前、年齢、部署、給与、 
 AVERAGE(Salary)OVER(PARTITION BY Department ORDER BY Age)AS Avg_Salary
 従業員から
  • ランキングウィンドウ関数: ランキング関数は、RANK()、DENSE_RANK()、ROW_NUMBER() です。

RANK(): 名前が示すように、ランク関数はすべてのパーティション内のすべての行にランクを割り当てます。 ランクは、最初の行にランク1が割り当てられ、同じ値を持つ行に同じランクが割り当てられるように割り当てられます。 XNUMXつの同じランク値の後の次のランクでは、XNUMXつのランク値がスキップされます。

デンスランク(): パーティション内の各行にランクを割り当てます。 ランク関数と同じように、最初の行にランク 1 が割り当てられ、同じ値を持つ行は同じランクになります。 RANK() と DENSE_RANK() の違いは、DENSE_RANK() では、XNUMX つの同じランクの後の次のランクでは、連続する整数が使用され、ランクがスキップされないことです。

行番号(): パーティション内のすべての行に連続した整数を割り当てます。 パーティション内では、XNUMX つの行が同じ行番号を持つことはできません。

注意:
ランク ウィンドウ関数を使用する場合は、ORDER BY() を強制的に指定する必要があります。

値ウィンドウの機能: 

  • 遅れ: 現在の行の前にある特定の物理オフセットで行へのアクセスを提供します。
  • リード: 現在の行に続く特定の物理オフセットで行へのアクセスを提供します。
  • FIRST_VALUE: 結果セットの順序付きパーティションの最初の行の値を取得します。
  • LAST_VALUE: 結果セットの順序付けられたパーティションの最後の行の値を取得します。
  • ナタイル:順序付けられたパーティションの行をいくつかのグループまたはバケットに分散します

SQL 結合の種類

SQL Windows 関数の種類

SQL 結合は、定義された条件に基づいて XNUMX つ以上のテーブルからデータ (行または列) を取得または結合するために使用されます。

  • 内部結合: INNER JOIN キーワードは、条件が満たされている限り、両方のテーブルからすべての行を選択します。 このキーワードは、条件が満たされる両方のテーブルのすべての行を組み合わせて結果セットを作成します。つまり、共通フィールドの値は同じになります。

構文:

SELECT table1.column1,table1.column2,table2.column1,.... FROM table1 INNER JOIN table2 ON table1.matching_column = table2.matching_column;

table1: 最初のテーブル。

table2:セカンドテーブル

一致する列:両方のテーブルに共通の列。

Note: INNER JOIN の代わりに JOIN と書くこともできます。 JOIN は INNER JOIN と同じです。


  • 左結合します:この結合は、結合の左側にあるテーブルのすべての行を返し、結合の右側にあるテーブルの行と一致します。 右側に一致する行がない行の場合、結果セットには次の内容が含まれます。 ヌル。 LEFT JOIN は、LEFT OUTER JOIN とも呼ばれます。

構文:

SELECT table1.column1,table1.column2,table2.column1,.... FROM table1 LEFT JOIN table2 ON table1.matching_column = table2.matching_column;

table1:最初のテーブル。
table2:XNUMX番目のテーブル
matching_column: 両方のテーブルに共通の列。

Note: LEFT JOIN の代わりに LEFT OUTER JOIN を使用することもできます。どちらも同じです。

  • 正しい参加: RIGHT JOIN は LEFT JOIN に似ています。 この結合は、結合の右側にあるテーブルのすべての行と、結合の左側にあるテーブルの一致する行を返します。 左側に一致する行がない行の場合、結果セットには次が含まれます ヌル。 RIGHT JOIN は、RIGHT OUTER JOIN とも呼ばれます。

構文:

SELECT table1.column1,table1.column2,table2.column1,.... FROM table1 RIGHT JOIN table2 ON table1.matching_column = table2.matching_column;

table1:最初のテーブル。

table2:XNUMX番目のテーブル

matching_column: 両方のテーブルに共通の列。

Note:
RIGHTJOINの代わりにRIGHTOUTERJOINを使用することもできます。どちらも同じです。

  • 完全結合: FULL JOINは、LEFTJOINとRIGHTJOINの両方の結果を組み合わせて結果セットを作成します。 結果セットには、両方のテーブルのすべての行が含まれます。 一致する行がない場合、結果セットには次のものが含まれます NULL

構文:

SELECT table1.column1,table1.column2,table2.column1,....
FROM テーブル 1 
完全結合 table2
ON テーブル 1.マッチング列 = テーブル 2.マッチング列;

table1:最初のテーブル。
table2:XNUMX番目のテーブル
matching_column: 両方のテーブルに共通の列。


クロスジョイン: これはCARTESIANJOINとも呼ばれ、XNUMXつ以上の結合されたテーブルのデカルト積を返します。 CROSS JOINは、最初のテーブルの各行をXNUMX番目のテーブル行ごとにマージするテーブルを生成します。 CROSSJOINに条件を含める必要はありません。

構文:

table_1 クロス結合 table_2 から * を選択します。 または、 table_1、table_2 から column3、column1、column2 を選択します。  
  • 自己参加: XNUMXつのテーブルがあったので、それ自体を結合してテーブルを作成するために使用される SELF JOIN です。 SQL ステートメントで少なくとも XNUMX つのテーブルの一時的な名前を付けます。

構文:

column1、column2、column(s) FROM table_1 Tbl1、table_2 Tbl2 WHERE 条件を選択します。  

まとめ

この記事では、データ分析におけるSQLの重要性について説明しています。 ビジネスプロセスのデータ分析を容易にする簡単な説明が提供されます。

SQLはすべてのデータ駆動型セクターで使用されており、ビッグデータ処理の重要性を強調しています。

データ サイエンティスト、データ アナリスト、および開発者は、データベースからデータにアクセスする必要があるため、SQL は、データ駆動型の企業の通常の部分になっています。

重要なポイント!

データベースは SQL を使用して管理されます。 データ アナリストは、SQL を使用してデータのテーブルをクエリし、洞察を得ます。 同様に、データ サイエンティストは SQL を使用してデータをモデルにロードします。 SQL を使用すると、データ エンジニアとデータベース管理者は、組織内の誰もがデータに簡単かつ直感的にアクセスできるようになります。

ほぼすべての Web サイトには SQL バックエンドがあり、ユーザーの詳細から特定のアプリ全体のエンゲージメントまですべてが保存されます。

この記事に示されているメディアは Analytics Vidhya が所有するものではなく、著者の裁量で使用されています。

スポット画像

最新のインテリジェンス

スポット画像

私たちとチャット

やあ! どんな御用でしょうか?