構造化照会言語は、構造化データを処理するために使用されます。テーブル形式で保存されるデータは構造化データです。これらのSQLコマンドは、レコードまたはデータをテーブルに格納し、格納されたテーブルからレコードをフェッチするためにも使用されます。構造化照会言語コマンドには、次の4つのタイプがあります。
- データ定義言語コマンド。
- データ操作言語コマンド。
- データ制御言語コマンド。
- トランザクション制御言語コマンド。
データ定義言語コマンド
DDLは、データ定義言語の略語です。データ定義言語コマンドは、構造、つまり、レコードまたはデータが格納されているテーブルまたは関係を処理するために使用されます。データ定義言語コマンドは、テーブルの作成、削除、および変更に使用されます。データ定義言語のコマンドは次のとおりです。
- CREATEコマンド。
- ALTERコマンド。
- DROPコマンド。
- TRUNCATEコマンド。
CREATEコマンド: 構造化照会言語では、データをテーブルに格納し、新しいテーブルまたはデータベースを作成するには、データ定義言語コマンドのCREATEコマンドを使用します。以下は、データベースを作成するための構文です。
CREATE DATABASE DATABASE_NAME;
たとえば、
- 新しいデータベースを作成するためのクエリを記述し、その後にデータベース名Companyを続けます。
CREATE DATABASE COMPANY;
データベース会社が作成されているかどうかを確認するには、次のクエリを使用します。
SHOW DATABASES;
データベース |
会社 |
従業員 |
information_schema |
mysql |
performance_schema |
phpmyadmin |
上記の結果は、会社の作成に成功したことを示しています。 データベース。
- 新しいテーブルを作成するためのクエリを作成します:
会社内に従業員の新しいテーブルを作成します データベース。会社データベースを選択する必要があります。
CREATE TABLE TABLE_NAME(COLUMN_NAME1 DATATYPE(COLUMN SIZE), COLUMN_NAME2 DATATYPE (COLUMN SIZE),COLUMN_NAME3 DATATYPE (COLUMN SIZE));
会社データベースを選択するには、次のクエリを使用します。
USE COMPANY;
ここで、データベースとして会社を選択します。 CREATE TABLEクエリを実行してテーブルを作成します:
CREATE TABLE EMPLOYEES (EMPLOYEE INT PRIMARY KEY, FIRST_NAME VARCHAR (20), LAST_NAME VARCHAR (20), SALARY INT, CITY VARCHAR (20) );
テーブル名従業員を作成しました CREATETABLEクエリを使用します。
テーブルEmployeesが作成されているかどうかを確認するには、次のクエリを使用します。
SHOW TABLES;
Tables_in_company |
従業員 |
上記の結果は、「従業員」テーブルの作成に成功したことを示しています。
CREATETABLEを使用して別のテーブルを作成します。
CREATE TABLE DEPARTMENT (DEPARTMENT INT PRIMARY KEY, DEPARTMENT_NAME VARCHAR (20));
CREATETABLEクエリを使用してテーブル名「Department」を作成しました。
テーブルDepartmentが作成されているかどうかを確認するには、次のクエリを使用します。
SHOW TABLES;
Tables_in_company |
部門の従業員 |
上記の結果は、「従業員」テーブルの作成に成功したことを示しています。
ALTERコマンド: 構造化照会言語では、テーブルスキーマまたは構造を変更する場合は常に、データ定義言語コマンドのALTERコマンドを使用します。 ALTERコマンドは、新しい列を追加したり、テーブルから既存の列を削除したりして、テーブルスキーマを変更するために使用されます。以下は、新しい列を追加するためのALTERコマンドの構文です。
ALTER TABLE TABLE_NAME ADD COLUMN_NAME DATATYPE (COLUMN SIZE);
既存の列を削除するためのALTERコマンドの構文:
ALTER TABLE TABLE-NAME DROP COLUMN COLUMN_NAME;
既存のテーブルの列の名前を変更するALTERコマンドの構文:
ALTER TABLE TABLE_NAME RENAME COLUMN OLD_COLUMN-NAME TO NEW_COLUMN_NAME;
たとえば、
- Employeesテーブルに新しい列を追加するクエリを記述します:
ALTER TABLE EMPLOYEES ADD DEPARTMENT VARCHAR (20);
ここでは、テーブルEmployeesに対してALTER TABLEコマンドを実行し、続いてADDキーワードを実行しました。これは、列名がDepartment、データ型がVARCHAR、列サイズが20の列を追加することを意味します。上記のクエリは、'という名前の新しい列を追加したことを示しています。データ型がVARCHARで列サイズが20のDepartment'。
テーブルEmployeesに新しい列が追加されているかどうかを確認するには、従業員のテーブルでDESCコマンドを使用します。
DESC EMPLOYEES;
フィールド | タイプ | ヌル | キー | デフォルト | 追加 |
EMPLOYEEID | int(11) | いいえ | PRI | NULL | |
FIRST_NAME | varchar(20) | はい | NULL | ||
LAST_NAME | varchar(20) | はい | NULL | ||
給与 | int(11) | はい | NULL | ||
CITY | varchar(20) | はい | NULL | ||
部門 | varchar(20) | はい | NULL |
上記の結果は、新しい列が従業員のテーブルに正常に追加されたことを確認します。
DROPコマンド: 構造化照会言語のDROPコマンドは、データベースから表と表スキーマを削除するために使用されます。 DROPコマンドの構文は次のとおりです;
DROP TABLE TABLE_NAME;
従業員データベースからDepartmentテーブルを削除するクエリを記述します。
DROP TABLE DEPARTMENT;
ここでは、テーブル部門でDROPTABLEクエリを実行しました。
テーブルDepartmentが削除されているかどうかを確認するには、次のクエリを使用します。
SHOW TABLES;
Tables_in_company |
従業員 |
上記の結果は、CompanyデータベースからDepartmentテーブルを正常に削除したことを示しています。
TRUNCATEコマンド: 構造化照会言語のTRUNCATEコマンドは、データベースの表スキーマを乱すことなく、表からすべてのデータを削除します。以下は、TRUNCATEコマンドの構文です。
TRUNCATE TABLE TABLE_NAME
テーブルEmployeesからすべてのレコードを削除するクエリを記述します。
SELECTクエリを使用して、最初にEmployeesテーブルのデータをフェッチしてから、TRUNCATEクエリを実行します。
SELECT * FROM EMPLOYEES;
EMPLOYEEID | FIRST_NAME | LAST_NAME | 給与 | CITY | 部門 |
1 | Vaibhav | シャルマ | 65000 | ノイダ | Oracle |
2 | シュエタ | シャルマ | 55000 | ジャイプール | Oracle |
3 | ソナリ | マリ | 60000 | ナシック | FMW |
TRUNCATE TABLE EMPLOYEES;
ここでは、Employeesテーブルからすべてのデータを正常に削除しました。次に、EmployeesテーブルでSELECTクエリを使用します。
TRUNCATE TABLE EMPLOYEES;
EmployeesテーブルでSELECTクエリを実行すると、結果には空のセットが表示されます。これは、テーブル全体が正常に削除されたことを意味します。
データ操作言語コマンド
DMLはデータ操作言語の略です。構造化照会言語のデータ操作言語コマンドは、データベース内のデータを操作します。データ操作言語コマンドは、データのフェッチ、データの保存、データの変更、および既存のテーブルからのデータの削除に使用されます。
構造化照会言語のデータ操作言語コマンドは次のとおりです。
- SELECTコマンド。
- INSERTコマンド。
- UPDATEコマンド。
- DELETEコマンド。
最初に、構造化照会言語でのデータ操作言語のINSERTコマンドを見ていきます。 INSERTの後、SELECTコマンドに移動します。
INSERTコマンド: INSERTコマンドは、データベーステーブルにデータまたはレコードを格納します。 INSERTコマンドは、構造化照会言語のデータ操作言語の重要なコマンドです。
INSERTデータ操作言語コマンドの構文:
INSERT INTO TABLE_NAME VALUES (VALUE1, VALUE2, VALUE3, VALUE);
この構文では、テーブルのすべてのフィールドが許可されます。選択したフィールドに値を挿入する場合は、次の構文を使用してください:
INSERT INTO TABLE_NAME (COLUMN_NAME1, COLUMN_NAME2) VALUES (VALUE1, VALUE2);
上記の構文は、テーブルの選択されたフィールドの値を格納するために使用されます。
たとえば、
この例では、テーブル内のすべてのフィールドのレコードを挿入します。
空のEmployeesテーブルを見てみましょう。スタッドテーブルにレコードを挿入します。
次に、新しいレコードをEmployeesテーブルに保存します。レコードをテーブルに格納するには、次のデータ操作言語のINSERTコマンドを実行します。
INSERT INTO EMPLOYEES VALUES (1001, 'VAIBHAVI', 'MISHRA', 65000, 'PUNE', 'ORACLE');
INSERT INTO EMPLOYEES VALUES (1002, 'VAIBHAV', 'SHARMA', 60000, 'NOIDA', 'ORACLE');
INSERT INTO EMPLOYEES VALUES (1003, 'NIKHIL', 'VANI', 50000, 'JAIPUR', 'FMW');
INSERT INTO EMPLOYEES VALUES (1004, 'ANUJA', 'WANRE', 55000, 'DELHI', 'FMW');
INSERT INTO EMPLOYEES VALUES (2001, 'PRACHI', 'SHARMA', 55500, 'CHANDIGARH', 'ORACLE');
INSERT INTO EMPLOYEES VALUES (2002, 'BHAVESH', 'JAIN', 65500, 'PUNE', 'ORACLE');
従業員テーブルに6つのレコードを挿入しました。
SELECTコマンド: SQLで最も重要なデータ操作言語コマンドはSELECTコマンドです。 SELECTコマンドは、指定されたテーブルのデータをフェッチするために使用され、SELECTコマンドは、クエリのWHERE句を使用してテーブルの選択されたフィールドをフェッチするためにも使用されます。
SELECTデータ操作言語コマンドの構文
SELECT * FROM TABLE_NAME;
上記の構文は、テーブル全体をフェッチするために使用されます。
SELECT COLUMN_NAME1, COLUMN_NAME2, COLUMN_NAMEN FROM TABLE_NAME;
上記の構文は、選択した列のすべてのレコードをフェッチするためのものです。
SELECT * FROM TABLE_NAME WHERE COLUMN_NAME;
上記の構文は、列名で指定されたWHERE句を使用して単一のレコードをフェッチするために使用されます。
たとえば、 テーブルから各列のすべてのデータをフェッチするとします。
SELECT * FROM EMPLOYEES;
この構造化照会言語は、EMPLOYEESテーブルの次のデータを示しています。
- テーブルから列名で指定されたWHERE句を使用して、単一行のすべてのデータを取得します。
SELECT * FROM EMPLOYEES WHERE SALARY > 55000;
上記のクエリは、給与が55000を超える従業員のすべてのレコードをフェッチします。
この構造化照会言語は、EMPLOYEESテーブルの次のデータを示しています。
UPDATEコマンド: UPDATEコマンドは、SQLのもう1つの貴重なデータ操作言語コマンドです。 UPDATEコマンドは、データベーステーブルのレコードを変更するために使用されます。
UPDATEデータ操作言語コマンドの構文
UPDATE TABLE_NAME SET COLUMN_NAME1 = VALUES, COLUMN_NAME2 = VALUES WHERE CONDITION;
UPDATE、SET、およびWHEREは、構造化照会言語のキーワードです。
例については、
- この例では、値を変更する方法について説明します。
EMPLOYEESテーブルについて考えてみましょう:
EMPLOYEEID | FIRST_NAME | LAST_NAME | 給与 | CITY | 部門 |
1001 | VAIBHAVI | MISHRA | 65000 | PUNE | ORACLE |
1002 | VAIBHAV | シャルマ | 60000 | NOIDA | ORACLE |
1003 | NIKHIL | VANI | 50000 | ジャイプール | FMW |
2001 | PRACHI | シャルマ | 55500 | チャンディーガル | ORACLE |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW |
2003 | ルチカ | JAIN | 50000 | ムンバイ | テスト |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA |
3002 | ANUJA | 場所 | 50500 | ジャイプール | FMW |
3003 | DEEPAM | ジャウハリ | 58500 | ムンバイ | JAVA |
4001 | RAJESH | GOUD | 60500 | ムンバイ | テスト |
- 名前が「Jain」であるレコードを変更するクエリを記述し、Departmentの値を「FMW」に設定します。
UPDATE TABLE_NAME SET COLUMN_NAME1 = VALUES, COLUMN_NAME2 = VALUES WHERE CONDITION;
値が変更されているかどうかを確認するために、姓がJainであるEmployeesテーブルでSELECTクエリを使用します。
SELECT * FROM EMPLOYEES WHERE LAST_NAME = ‘JAIN’;
この構造化照会言語は、EMPLOYEESテーブルの次のデータを示しています。
DELETEコマンド: DELETEは、テーブルからレコードを削除するために使用されるデータ操作言語コマンドです。クエリでWHERE句を使用して、テーブルからレコードを削除します。
UPDATEデータ操作言語コマンドの構文
DELETE FROM TABLE_NAME WHERE CONDITION;
たとえば、 EMPLOYEESテーブルについて考えてみましょう:
EMPLOYEEID | FIRST_NAME | LAST_NAME | 給与 | CITY | 部門 |
1001 | VAIBHAVI | MISHRA | 65000 | PUNE | ORACLE |
1002 | VAIBHAV | シャルマ | 60000 | NOIDA | ORACLE |
1003 | NIKHIL | VANI | 50000 | ジャイプール | FMW |
2001 | PRACHI | シャルマ | 55500 | チャンディーガル | ORACLE |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW |
2003 | ルチカ | JAIN | 50000 | ムンバイ | テスト |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA |
3002 | ANUJA | 場所 | 50500 | ジャイプール | FMW |
3003 | DEEPAM | ジャウハリ | 58500 | ムンバイ | JAVA |
4001 | RAJESH | GOUD | 60500 | ムンバイ | テスト |
- 都市名が「ムンバイ」のデータを削除するクエリを作成します。
DELETE FROM EMPLOYEES WHERE CITY = ‘MUMBAI’;
EmployeesテーブルでSELECTクエリを使用して、値が変更されているかどうかを確認します。
SELECT * FROM EMPLOYEES;
この構造化照会言語は、EMPLOYEESテーブルの次のデータを示しています。
EMPLOYEEID | FIRST_NAME | LAST_NAME | 給与 | CITY | 部門 |
1001 | VAIBHAVI | MISHRA | 65000 | PUNE | ORACLE |
1002 | VAIBHAV | シャルマ | 60000 | NOIDA | ORACLE |
1003 | NIKHIL | VANI | 50000 | ジャイプール | FMW |
2001 | PRACHI | シャルマ | 55500 | チャンディーガル | ORACLE |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA |
3002 | ANUJA | 場所 | 50500 | ジャイプール | FMW |
上記の結果は、CityMumbaiのレコードが正常に削除されたことを示しています。
データ制御言語コマンド
DCLは、DataControlLanguageの略語です。データ制御言語コマンドを使用して、構造化照会言語テーブル内のレコードへのアクセス権を制御します。データ制御言語コマンドを使用すると、許可されたユーザーに、テーブルまたはデータベースに配置されたデータにアクセスするための特権のみを与えることができます。
ユーザーには、特定のユーザーのみのテーブルに配置されたデータにアクセスするための事前に作成されたアクセス権限があります。データ制御言語コマンドを使用して、構造化照会言語またはデータベースのユーザーに特権を割り当てたり、ユーザーから特権を取り戻したり(取り消したり)することができます。 2つのデータ制御言語コマンドがあります:
- 付与: 付与コマンドは、データベースまたはテーブルのユーザーにアクセス権を割り当てるために使用されます。
- 取り消し: ユーザーにアクセス権を付与できるかどうか。その場合、データベースのユーザーから割り当てられた特権を取り戻したいと思います。 REVOKEコマンドを使用して、割り当てられたすべての特権をユーザーから取り消すことができます。
トランザクション制御言語
構造化照会言語には、構造化照会言語のトランザクション制御言語(TCL)コマンドと同じように、データ定義言語(DDL)コマンドとデータ操作言語(DML)コマンドがあります。構造化照会言語のトランザクション制御言語コマンドはコミットです およびロールバック 。
実行したコマンドはすべて、トランザクションと呼ばれる1つの作業単位にラップされています。トランザクションで実行されたテーブルに対して1つの更新または削除操作を実行したとします。 DDLまたはDMLのすべての操作またはコマンドは、トランザクションに格納または実行されます。このように実行されたDDLまたはDMLを保存するには、トランザクション制御言語のcommitコマンドを実行する必要があります。コミットは、テーブルに対して実行したすべての操作を保存するために使用されます。すべての操作が保存されます。これはすべてコミットに関するものです。
では、commitコマンドを使用して保存した操作を元に戻したい場合はどうでしょうか。次に、構造化照会言語で操作を元に戻すことはできますか?はい、コミットされた操作を元に戻すことができます。トランザクション制御言語の別のコマンドを使用して操作を元に戻します。そのコマンドはロールバックです。ロールバックコマンドを使用して、構造化照会言語でのコミット操作を元に戻します。トランザクション制御言語のコマンドは次のとおりです。
- コミット
- ロールバック
次のレコードを持つ既存の従業員のテーブルについて考えてみます。
EMPLOYEEID | FIRST_NAME | LAST_NAME | 給与 | CITY | 部門 |
1001 | VAIBHAVI | MISHRA | 65000 | PUNE | ORACLE |
1002 | VAIBHAV | シャルマ | 60000 | NOIDA | ORACLE |
1003 | NIKHIL | VANI | 50000 | ジャイプール | FMW |
2001 | PRACHI | シャルマ | 55500 | チャンディーガル | ORACLE |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW |
2003 | ルチカ | JAIN | 50000 | ムンバイ | テスト |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA |
3002 | ANUJA | 場所 | 50500 | ジャイプール | FMW |
3003 | DEEPAM | ジャウハリ | 58500 | ムンバイ | JAVA |
4001 | RAJESH | GOUD | 60500 | ムンバイ | テスト |
トランザクションを開始せずにcommitおよびRollbackコマンドを使用できますが、トランザクションの開始を使用してトランザクションを開始します。 良い習慣のための命令。
始めて、各操作例を1つずつ見ていきましょう。
まず、auto-commitの値を0に割り当てて、auto-commitをオフにします
。SET AUTOCOMMIT = 0;
- 既存のテーブルの従業員に新しい値を挿入してから、コミットコマンドを使用します:
INSERT INTO EMPLOYEES VALUES (2003, ‘RUCHIKA’, ‘JAIN’, 50000, ‘MUMBAI’, ‘TESTING’);
SELECTクエリを使用して、データがテーブルに挿入されているかどうかを確認します。
SELECT * FROM EMPLOYEES WHERE EMPLOYEE = 2003;
ここで、このトランザクションを保存するために、commitコマンドを使用します。
COMMIT;
従業員ID2001の詳細が保存されるようになりました。削除コマンドを使用して削除しない限り、ロールバックにはなりません。
- 従業員ID2003のすべての情報を削除してから、ロールバックを使用して削除コマンドをロールバックします。
DELETE FROM EMPLOYEES WHERE EMPLOYEE ID = 2003;
SELECTクエリを使用して、データがテーブルから削除されているかどうかを確認します。
SELECT * FROM EMPLOYEES;
従業員ID2003がテーブルから削除されます。次に、ロールバックコマンドを使用して削除操作を元に戻します。
ROLLBACK;
ロールバックコマンドを実行した後、SELECTクエリを再度使用して、削除操作がロールバックであるかどうかを確認します。
SELECT * FROM EMPLOYEES WHERE EMPLOYEE ID = 2003;