この記事は、の一部として公開されました データサイエンスブログソン.
例を使用してSQLを進めるための基本に関する包括的なガイド
やあ、フォークス!
この記事では、構造化照会言語(SQL)とSQLコマンドについて詳しく学びます。
構造化照会言語(SQL)コマンドを実行するには、これを使用してMySQLワークベンチをインストールできます。 チュートリアル またはあなたは任意を参照することができます オンラインSQLコンパイラ。
この記事に進む前に、データベース管理システムの基本的な考え方をすでに理解していると思いますが、そうでない場合は読むことができます。 こちら.
目次
- SQLとRDBMSを理解する
- データ定義言語(DDL)
- データ操作言語(DML)
- データクエリ言語(DQL)
- データ制御言語(DCL)
SQL
構造化照会言語(SQL)は、データベースからのデータを照会および操作するためのANSI / ISO標準言語です。
ただし、Oracle、PostgreSQL、Apache Aurora、Microsoft Access、MariaDBなど、他にもさまざまなクエリ言語があり、これらすべてがコマンドをサポートしている必要があります( SELECT
, UPDATE
, DELETE
, INSERT
, WHERE
).
構造化照会言語(SQL)は、データマイニング、データストレージ、およびOLTPシステムで広く使用されています。
構造クエリ言語(SQL)は、リレーショナルデータベースで機能します。リレーショナルデータベースでは、いくつかの主キーと外部キーを使用してさまざまなテーブルが相互に関連付けられています。 リレーショナルデータベースに格納されているデータはテーブルと呼ばれ、テーブルにはさまざまな列と行が含まれています。
リレーショナルモデルの概念
- テーブル類:リレーションモデルでは、テーブルがデータを保持および構造化します。
- 属性:テーブルの列を属性として使用できます。
- タプル: テーブルの単一の行はタプルと呼ばれます。
- 度: テーブル内の属性の総数。
- 関係キー: リレーショナルデータベースでは、テーブルには、他のテーブルに関連するために使用される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;
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句で使用できます。
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”;
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;
ここに気付いた場合、5つのレコードのみがリストされています。
MIN / MAX
関数 MIN()
SQLでは、選択した列と関数の最小値を返します MAX()
選択した列の最大値を返します。
SELECT MIN(Price)、MAX(Price)FROM Products;
列の名前が表示されている場合は、 MIN(Price)
& MAX(Price)
. キーワードを使用してレコードの列名を指定できますAS
.
SELECT MAX(Price)AS Maxprice、MIN(Price)AS Minprice FROM Products;
私たちが使用した方法 MIN(),MAX()
次のような他のアグリゲーターを使用できます COUNT(), AVG()
, SUM()
同じやり方で。
LIKE
オペレーター LIKE
で使用されています WHERE
特定の文字列パターンを検索する句。
でよく使用される2つのワイルドカードがあります LIKE
オペレーター:-
- (%)→これは、ゼロまたはゼロより大きい文字を表します。
- (_)→これはXNUMX文字のみを表します。
構文:
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'、 'CANADA');
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として機能します。
構文:
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 が所有するものではなく、著者の裁量で使用されています。