MySQLクエリは通常、一度記述されてから、コードの繰り返しを最小限に抑えるためにクラス関数でラップされます。この記事では、MySQLで最も頻繁に使用される10のクエリを一覧表示します。
クエリは、基本的に、データベーステーブルまたはテーブルの組み合わせから取得する情報の要求です。単純なクエリから複雑なクエリの範囲を実行するために記述できるクエリ言語はたくさんあります。クエリは、検索が要求された特定のデータに基づいて特定の基準をフィルタリングします。また、データ管理タスクを自動化し、計算を行うこともできます。このガイドでは、最も一般的な10のMySQLクエリについて説明します。
これらのデモデータベースを使用して、各クエリがどのように機能するかをさらに理解するのに役立てましょう。
EmployeeID |
---|
1002 |
1003 |
1004 |
EmployeeID | ||
---|---|---|
1002 | HR | 36 |
1003 | 21 | |
1004 | 39 |
すべて選択
単純なSELECTクエリを使用して、データベースからのすべてのデータをフェッチして送り返します。その構文はそのように書くことができます;
コード:
SELECT * FROM Employees;
結果:
1002 Webster W. Executive 1003 Lizzy S. Manager 1004 Oliver T. Software Engineer
テーブルで使用可能なすべての列を選択するには、「*」を使用して、可能なすべての情報を返す必要があることを示す必要があります。次に、データベーステーブルからデータを受信するためにFROMキーワードを記述します。最後に、ステートメントの最後にセミコロン「;」を付けることを忘れないでください。リクエストを適切に完了するため。
SELECT列
すべてではなく特定の列からデータを取得するには、アスタリスク(*)を使用する代わりに、フィールド名を指定するだけです。
コード:
SELECT Title FROM Employees;
結果:
Title Executive Manager Software Engineer
データベースから複数の列を選択する場合は、コンマで区切る必要があります。そのように;
SELECT Title, Name FROM Employees;
WHERE句
SELECTクエリでWHERE句を使用すると、データレコードがフィルタリングされ、結果として条件に一致するレコードが抽出されます。
コード:
SELECT * FROM Employees WHERE EmployeeID = 1004 ;
結果:
1004 Oliver T. Software Engineer
WHERE句には、ANDキーワードを使用して区切ることができる複数の条件を含めることができます。
CREATEテーブル
このクエリを使用して、推奨される列を選択した新しいテーブルを生成できます。列名を追加するときは、必ずデータ型を指定してください。
コード:
CREATE TABLE EmployeeInfo ( EmployeeId INT, Department VARCHAR(25), Age NUMBER );
期待されるテーブルの結果:
EmployeeID | Department | Department |
NULL | NULL | NULL |
CREATE TABLEコマンドを実行して列のタイトルを入力すると、上記のクエリによってデータベースに「EmployeeInfo」テーブルが作成されます。特定の値を挿入していないため、基本的に各列はNULLを返します。これで、次のクエリINSERTINTOに進みます。
INSERTINTOクエリ
これは、テーブルの新しいレコードの1つ以上の行に値を挿入するための最も一般的なクエリです。 EmployeeInfoテーブルにいくつかのサンプルデータを入力できます。
コード:
INSERT INTO EmployeeInfo (EmployeeID,Department,Age) VALUES (1002, HR , 46), (1003, Finance , 28), (1004, IT , 39);
表の結果:
EmployeeInfo
EmployeeID | Department | Age |
1002 | HR | 46 |
1003 | Finance | 28 |
1004 | IT | 39 |
INSERT INTOクエリを作成する場合、VALUESコマンドは完全なステートメントの一部である必要があります。
UPDATEクエリ
このキーワードは、テーブル内の1つ以上の既存の列を変更するために使用されます。このクエリを使用すると、特定の条件に基づいて新しいデータでテーブルレコードが更新されます。
EmployeeInfo
EmployeeID | Department | Age |
1002 | HR | 36 |
1003 | Sales | 21 |
1004 | IT | 39 |
コード:
UPDATE EmployeeInfo SET Age = 22 WHERE EmployeeID = 1003;
表の結果:
EmployeeInfo
EmployeeID | Department | Age |
1002 | HR | 36 |
1003 | Sales | 22 |
1004 | IT | 39 |
UPDATEコマンドに続いて、キーワードSETを使用して、変更する列を常に指定し、更新されたデータを適用する必要がある場所を正確に指定します。
クエリから削除
1つまたは複数の条件に基づいてテーブルからレコードを削除するには、DELETEFROMステートメントを使用する必要があります。条件を使用すると、クエリの影響を受ける行数が制限されます。
コード:
DELETE FROM Employees WHERE Name = ‘Lizzy’;
表の結果:
従業員
EmployeeID | Name | Title |
1002 | Webster W. | Executive |
1004 | Oliver T. | Software Engineer |
以前の記事で説明したように、 WHERE条件を使用すると、データをフィルターで除外して実行するように要求する場所が正確に決まります。そのクエリは、「Lizzy」という名前に一致する従業員のテーブルからすべてのレコードを削除することです。
GROUP BYを使用して、句を使用する
GROUP BY句は、ほとんどの場合、集計関数で使用されます。このキーワードを使用すると、結果セットが1つ以上の列でグループ化されます。
HAVINGキーワードは、その結果セットをフィルタリングするために使用されます。理想的には、代わりにWHERE句が配置されると思いますが、HAVING句は集計に条件を導入します。
EmployeeInfo
EmployeeID | Department | Age |
1002 | HR | 36 |
1003 | Sales | 21 |
1004 | IT | 39 |
コード:
SELECT COUNT(Age), EmployeeID FROM EmployeeInfo GROUP BY EmployeeID HAVING COUNT(Age) > 21;
結果:
COUNT(Age) EmployeeID 39 1004 36 1002
集計関数(SUM、AVG、COUNT)
テーブルのデータを解釈したり計算を実行したりできる、非常に一般的な3つの集計関数があります。
- COUNT:指定された列に一致する行数を返します。
- AVG:列の平均値を返します
- SUM:選択した列のすべての値の合計を返します。
EmployeeInfo
EmployeeID | 部門 | 年齢 |
1002 | HR | 36 |
1003 | 販売 | 21 |
1004 | IT | 39 |
COUNTのコード:
SELECT COUNT(Department) FROM EmployeeInfo;
結果:
COUNT(Department): 3
AVGのコード:
SELECT AVG(Age) FROM EmployeeInfo;
結果:
AVG(Age): 32
SUMのコード
SELECT SUM(Age) FROM EmployeeInfo;
結果:
SUM(Age): 96
参加
結合は、テーブル間の関連する列に基づいて、少なくとも2つのテーブルの行をまとめるために使用されます。最も一般的なプラクティス結合は、INNER、FULL、およびLEFTです。
- 内部結合–結合条件が真の場合、異なるテーブルの行を結合します。
- 完全結合–左または右のテーブルレコードに一致する場合、すべての行を返します。
- LEFT Join –左側のテーブルからすべての行を取得し、右側のテーブルから一致するレコードを取得します。
従業員–表#1(左)
EmployeeID | 名前 | タイトル |
1002 | Webster W. | エグゼクティブ |
1003 | リジーS。 | マネージャー |
1004 | オリバーT。 | ソフトウェアエンジニア |
EmployeeInfo –表#2(右)
EmployeeID | 部門 | 年齢 |
1002 | HR | 36 |
1003 | 販売 | 21 |
1004 | IT | 39 |
内部結合コード:
SELECT Employees.Title, EmployeeInfo.Department FROM Employees INNER JOIN EmployeeInfo ON Employees.EmployeeID = Employees.EmployeeID;
結果:
Title Department Executive HR Manager Sales Software Engineer IT
完全参加コード:
SELECT * FROM Employees FULL JOIN EmployeeInfo ON Employees.EmployeeID = Employees.EmployeeID;
結果:
重複を含め、両方のテーブルからすべての行と列を取得し、それらを1つのテーブル全体に結合します。
左参加コード:
SELECT Employees.Name, EmployeeInfo.Age FROM Employees LEFT JOIN EmployeeInfo ON Employees.EmployeeID = Employees.EmployeeID;
結果:
Name Age Webster W. 36 Lizzy S. 21 Oliver T. 39
「Employee」テーブルの「EmployeeID」列は、「EmployeeInfo」テーブルの「EmployeeID」を参照しており、基本的に、EmployeeID列は両方のテーブル間の関係であることを示しています。結合はトリッキーになる可能性がありますが、同時に、より大きなデータベースをソートするときに非常に役立ちます。
ユーザーとデータベースは、本質的に同じ言語を話すことにより、情報を正常に交換することができます。上記のクエリは、初心者と専門家の両方で最も一般的に使用されています。 MySQLクエリの記述は、データベース管理のドメイン内で最も頻繁に使用される機能と見なされています。
この記事は、2022年4月にKelseyPerkinsによってレビューおよび更新されました。