ゼファーネットのロゴ

すべての人のための構造化照会言語(SQL)

日付:

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

例を使用してSQLを進めるための基本に関する包括的なガイド

SQL
                                                                       出典:ironhack.com

やあ、フォークス!

この記事では、構造化照会言語(SQL)とSQLコマンドについて詳しく学びます。

構造化照会言語(SQL)コマンドを実行するには、これを使用してMySQLワークベンチをインストールできます。 チュートリアル またはあなたは任意を参照することができます オンラインSQLコンパイラ。

この記事に進む前に、データベース管理システムの基本的な考え方をすでに理解していると思いますが、そうでない場合は読むことができます。 こちら.

目次

  1. SQLとRDBMSを理解する
  2. データ定義言語(DDL)
  3. データ操作言語(DML)
  4. データクエリ言語(DQL)
  5. データ制御言語(DCL)

SQL

構造化照会言語(SQL)は、データベースからのデータを照会および操作するためのANSI / ISO標準言語です。

ただし、Oracle、PostgreSQL、Apache Aurora、Microsoft Access、MariaDBなど、他にもさまざまなクエリ言語があり、これらすべてがコマンドをサポートしている必要があります( SELECT, UPDATE, DELETE, INSERT, WHERE).

構造化照会言語(SQL)は、データマイニング、データストレージ、およびOLTPシステムで広く使用されています。

構造クエリ言語(SQL)は、リレーショナルデータベースで機能します。リレーショナルデータベースでは、いくつかの主キーと外部キーを使用してさまざまなテーブルが相互に関連付けられています。 リレーショナルデータベースに格納されているデータはテーブルと呼ばれ、テーブルにはさまざまな列と行が含まれています。

構造化照会言語
                                                                                    ソース:guru99.com

リレーショナルモデルの概念

  • テーブル類:リレーションモデルでは、テーブルがデータを保持および構造化します。
  • 属性:テーブルの列を属性として使用できます。
  • タプル: テーブルの単一の行はタプルと呼ばれます。
  • 度: テーブル内の属性の総数。
  • 関係キー: リレーショナルデータベースでは、テーブルには、他のテーブルに関連するために使用されるXNUMXつ以上の属性が含まれています。

SQLコマンド

構造化照会言語(SQL)プログラミングを開始する前に、まず、データベース作成、データ操作とデータ更新、照会(データの取得)、アクセス制御など、さまざまな機能を実行するための基本的なコマンド・カテゴリーを理解する必要があります。

SQLには多数のコマンドがあり、各コマンドは使用方法に基づいて分類されています。

構造化照会言語
                                                                              出典:著者

SQLコマンドの主なカテゴリ

データ定義言語(DDL)

これにより、テーブルの作成、再構築が可能になります。 DDLはテーブルの構造のみを担当し、テーブル内のデータは担当しません。

最も一般的なDDLコマンドは、DROP、CREATE、ALTERです。

データ操作言語(DML)

これらのタイプのコマンドを使用すると、テーブル内のデータを操作できます。 最も一般的なDMLコマンドは、DELETE、INSERT、UPDATEです。

データクエリ言語(DQL)

これらのカテゴリのコマンドは、テーブルからデータを選択するために使用されます。 最も一般的なコマンドはSELECTです。

トランザクション制御コマンド(TCL)

TCLコマンドを使用すると、ユーザーはトランザクション(変更)を管理してデータベースの整合性を維持できます。 データベースに元に戻すか、変更を明示的にコミットして、TCLコマンドを使用して管理することができます。

最も一般的なTCLコマンドは、ROLLBACK、COMMITです。

十分な理論!!!

SQLの詳細な作業を始めましょう

これを使用してSQLWorkbenchまたはオンラインSQLコンパイラを開きます .

さらに、SQLコマンドでは大文字と小文字は区別されませんが、大文字の大文字と小文字を区別してコマンドを作成することをお勧めします。

SQLデータベースおよびテーブルコマンド

複数のデータベースを持つデータベース管理システムを使用している場合は、使用可能なすべてのデータベースを一覧表示し、そのうちのXNUMXつを選択できます。

#これは利用可能なすべてのデータベースを一覧表示しますSHOWデータベース; #これにより、コンテキストUSEDATABASE_NAMEでデータベースが選択されます

データベースの作成

管理者権限のみを持っている場合は、データベースを作成、更新、および削除し、使用可能なすべてのデータベースを一覧表示できます。

データベース作成 データベース名; #インスタンスにテーブルのない空のデータベースを作成します

CREATE

  テーブルを作成 コマンドは、選択したデータベースに新しいテーブルを作成するために使用されます。

テーブルを作成 TABLE_NAME (
 column1データ型の制約,
 column2データ型の制約,
 column3データ型の制約、....);

SQL制約は、テーブルの列のプロパティです。 SQLには一般的に使用される制約がいくつかあります—

  • NOT NULL:これにより、列にnull値を含めることができなくなります。
  • UNIQUE –列が一意の値を持つことができるようにし、重複する値は許可されません。
  • PRIMARY KEY –主キーは特定の行を識別するために使用されます。主キーは非ヌルであり、一意の値が含まれています。
  • FOREIGN KEY –外部キーは、テーブルを共通の列を持つ別のテーブルにリンクするために使用されます。
  • DEFAULT –その列に値が指定されていない場合は、デフォルト値を設定できます。デフォルト値が使用されます。
  • を使用して、テーブルのすべての列の名前、データ型、および制約を確認できます。 DESC / DESCRIBE
DESC Table_name; DESCRIBE Table_name;
関数SQLを記述します
                                                                                                       出典:著者

DROP

DROPステートメントを使用してデータベースまたはテーブルを削除できます。

ドロップデータベース データベース名; ドロップテーブル テーブル名

データベースを作成した後、それにテーブルを追加する必要があり、テーブルはレコードを保持します。

IGNOREを挿入する

これまでのところ、空のテーブルを作成しました。次に、テーブルにデータを挿入します。 IGNOREを挿入する キーワードは、データをテーブルに配置するために使用されます。

INSERT IGNORE INTOステートメント形式—

IGNOREを挿入する TABLE_NAME (列_1, 列_2, 列_3、...)値(値_1, 値_2, 値_3、...);

すべての列に値を入力する場合、列名を指定する必要はありません。

IGNOREを挿入する TABLE_NAME
値(value1, value2, value3、...);

:

人の価値観に無視を挿入(1、 "ABHISHEK"、 "JAISWAL"、 "ubi palace"、 "JAUNPUR"); INSERT IGNORE INTO Persons VALUES(2、 "AMAN"、 "JAISWAL"、 "ubi palace"、 "JAUNPUR");

SELECT

  SELECT テーブルから行と列(レコード)を選択するために使用され、結果セットとしてレコードを返します。

SELECT column_1、column_2、column_3 FROM TABLE_NAME;

列を指定すると、指定した列のみからレコードが選択されます

SELECT * FROM テーブル名;

*は、すべての列を選択していることを示しています。

SELECT DISTINCT column1、column2 FROM table_name;

これにより、column1から一意の値が選択され、column2には同じ行が選択されます。

WHERE

これは、いくつかの条件を満たすレコードを除外するために使用されます

SELECT 列_1, column_2、column_3..。
FROM TABLE_NAME
WHERE 条件;

条項 WHERE で使用されているだけではありません SELECT ステートメントでは、いくつかの条件を満たす行を選択する必要があるときはいつでも可能です。 WHEREは一般的に使用されます SELECT,UPDATE,DELETE 等々

SELECT Country、City、Name FROM Customers WHERE Country = 'Mexico';

の演算子 WHERE

これらの演算子は、条件を指定するためのWHERE句で使用できます。

構造化照会言語
                                                                            ソース:w3schools.com

AND、ORおよびNOT

使い方 AND ,OR 演算子は、複数の条件に基づいてレコードをフィルタリングできます。

  NOT 条件が満たされない場合、オペレーターはレコードをフィルター処理します。

SELECT 列_1, column_2、..。
FROM TABLE_NAME
WHERE condition1 そして condition2 そして 条件3..。; #------------------------------------------------- -  選択する 列_1, column_2、..。
FROM TABLE_NAME
WHERE condition1 OR condition2 OR 条件3..。; #------------------------------------------------- - - 選択する 列_1, column_2、..。
FROM TABLE_NAME
どこにもない 条件;

例:

SELECT CustomerName、City、Country FROM Customers WHERE Country = 'Mexico' OR City =“ Berlin”;
構造化照会言語
                                                                   ソース:w3schools.com

ORDER BY

キーワード ORDER BY デフォルトでは、データを昇順で並べ替えます。 を使用して ORDER BY   DESC データを降順で並べ替えます。

構文:

SELECT 列_1, column_2、..。
FROM TABLE_NAME
ORDER BY column_1、column_2、..。 ASC | DESC;

まず、 Column_1 ソートされてから column_2 が並べ替えられ、これらXNUMXつの列に従って、出力全体が並べ替えられます。ASC 昇順を意味し、デフォルトであるため、言及する必要はありません ASC .

SELECT Country、City、Customername FROM Customers ORDER BY Country、CITY、CustomerName DESC;
構造化照会言語
                                                                               出典:著者

ORDER BYは、SQLステートメントの最後にあります。

リミットン

LIMITキーワードは、大きなテーブルからn個のレコードのみを選択するために使用されます。

SELECT Country、City、Customername FROM Customers ORDER BY Country、CITY、CustomerName DESC LIMIT 5;
制限n
                                                                               出典:著者

ここに気付いた場合、5つのレコードのみがリストされています。

MIN / MAX

関数 MIN() SQLでは、選択した列と関数の最小値を返します MAX()選択した列の最大値を返します。

SELECT MIN(Price)、MAX(Price)FROM Products;
MIN / MAX
                                                                              出典:著者

列の名前が表示されている場合は、 MIN(Price) & MAX(Price). キーワードを使用してレコードの列名を指定できますAS.

SELECT MAX(Price)AS Maxprice、MIN(Price)AS Minprice FROM Products;
MIN / MAX
                                                                                  出典:著者

私たちが使用した方法 MIN(),MAX() 次のような他のアグリゲーターを使用できます COUNT(), AVG(), SUM() 同じやり方で。

LIKE

オペレーター LIKE で使用されています WHERE 特定の文字列パターンを検索する句。

でよく使用される2つのワイルドカードがあります LIKEオペレーター:-

  • (%)→これは、ゼロまたはゼロより大きい文字を表します。
  • (_)→これはXNUMX文字のみを表します。
構造化照会言語
                                                                          ソース:w3schools.com

構文:

SELECT CustomerName FROM Customers WHERE CustomerName LIKE'a% 'またはCustomerName Like'%a 'Limit 5;

「a」で始まる、または「a」で終わるすべての顧客名を返します。

射撃記録
                                                                           出典:著者

SQLワイルドカード

ワイルドカードは、文字列の置換またはパターンの検索に使用されます。 ワイルドカードはで使用されます LIKE 条項と LIKE で使用されています WHERE 条項。

ワイルドカード
                                                                                     出典:著者

これらのワイルドカードはすべて、使用したのと同じ方法で使用されます( %) と( _).

IN

オペレーター IN で複数の値を指定できます WHERE 声明。 また、SQLでサブクエリを作成することもできます。

SELECT column_name(s)
FROM TABLE_NAME
WHERE 列名 NS (value1, value2、...);
#-------------サブクエリ------------------------------ SELECT column_name(s)
FROM TABLE_NAME
WHERE 列名 NS (ステートメントの選択);

例:

SELECT * FROM Customers WHERE Country IN( 'Germany'、 'France'、 'UK'、 'C​​ANADA');

SQLサブクエリ

INキーワードを使用して、サブクエリを作成できます。 サブクエリは、クエリ内に書き込むクエリです。

:

SELECT * FROM Customers WHERE CustomerID IN(SELECT CustomerID FROMorders WHERE OrderDate> '1997-01-08');

これにより、「」の後に注文したすべての顧客の詳細が返されます。1997–01–08 

構造化照会言語
                                                                            出典:著者

BETWEEN

オペレーター BETWEEN 指定された範囲内の値を選択します。 これらの値は、数値、日付、およびテキストにすることができます。 BETWEEN 条項の下で使用されますWHERE.

構文:

SELECT column_name(s)
FROM TABLE_NAME
WHERE 列名 BETWEEN value1 そして 値2;

グループ化

キーワード GROUP BY選択した列の値が要約行と同じである行をグループ化します。

アグリゲーターは次のように機能します COUNT(), MAX(), MIN(), SUM(), AVG() でよく使用されます GROUP BY 声明。

構文:

SELECT column_name(s)
FROM TABLE_NAME
WHERE 条件
グループ化 column_name(s)
ORDER BY column_name(s);

:

SELECT COUNT(CustomerID)as customer_count、Country FROM Customers GROUP BY Country ORDER BY customer_count;
ワンランク上の
                                                                  出典:著者

Note:行をグループ化した後、使用できなくなります WHERE 条項、キーワードのみ HAVINGグループ化された行をフィルタリングするために使用できます。

例:

SELECT Count(Country)AS Occurence、Country FROM Customers WHERE LENGTH(Country)> 5 GROUP BY Country HAVING Occurence> 2 ORDER BY Occurence、Country;
構造化照会言語

出典–著者

SQL結合

条項 JOINそれらの間の関連する列に基づいて、XNUMXつまたはXNUMXつ以上のテーブルの行を結合するために使用されます。

SQLのJOINのタイプ:

  • (INNER) JOIN:特定の条件を満たす両方のテーブルからすべての行を返します。
  • LEFT(OUTER) JOIN:左側のテーブルのすべての行と、右側のテーブルの一致する行を返します。
  • RIGHT(OUTER) JOIN:右側のテーブルからすべての行を返し、左側のテーブルから一致する行を返します。
  • FULL JOIN:完全結合はSQLではUNIONとして機能します。
構造化照会言語
                                                                              出典:educative.io

構文:

SELECT table_1.column_1、table1.column_2、table_2.column1、.... FROM table_1 INNER JOIN table_2 ON table_1.matching_column = table_2.matching_column;
#------------------------------------------------- ---- SELECT table_1.column_1、table_1.column_2、table_2.column_1、.... FROM table_1 OUTER / LEFT / RIGHT JOIN table_2 ON table_1.matching_column = table_2.matching_column;

このステートメントは、次のすべてのレコードを返します—

table_1.matching_column = table_2.matching_column.

注:の場所に INNER JOIN 他のタイプの結合を指定できます。 FULL JOIN, LEFT JOIN, RIGHT JOIN

例:

SELECT Orders.OrderID、Customers.CustomerName、Orders.OrderDate FROM Orders INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID ORDER BY CustomerName LIMIT 5;
構造化照会言語
                                                                                   著者:出典

注:XNUMXつのテーブルを結合するには、両方に共通の属性または列が必要です。

まとめ

この記事では、データベースとテーブルを作成、削除、および更新するための重要なSQLコマンドについて説明しました。 データベースから行を選択する方法、グループ化と集計を適用する方法を見てきました。 さまざまなアグリゲーター関数とさまざまな結合を見ました。

SQLワークベンチまたはクラウドベースのSQLコンパイラを使用してこれらのコマンドを練習することを強くお勧めします。

これだけでは不十分です。次のようなSQLのより高度な概念について説明します。

ビュー、トリガー、ウィンドウ関数、正規化 私の次の次の記事で。

読んでくれてありがとう !!

気軽に私を殴ってください LinkedIn 何か提案や質問があれば。

参考文献

https://www.w3schools.com

https://www.educative.io/

https://www.guru99.com/

SQLに関するその他の記事を読むには、をクリックしてください ページ をご覧ください

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

スポット画像

最新のインテリジェンス

スポット画像