SQL VIEWの概念は、レコードの難しさを隠すのに役立ち、データベースへのアクセスに制限を提供します。
SQLビューはSQLテーブルに似ています。 SQLテーブルでは、データ全体を行と列に格納します。同様に、SQLビューは行と列にレコードを格納するためにも使用されますが、不要なデータではなく、ユーザーが必要とするデータのみを格納します。
SQLVIEWは仮想テーブルです。 SQLビューでは、テーブルデータ全体ではなく、特定の列レコードにのみアクセスできます。
CREATE VIEWキーワードを使用して1つ以上のテーブルを選択することにより、ビューを簡単に作成できます。ビューを更新および削除することもできます。
この記事全体では、ビューの作成、ビューの削除、およびビューの更新の方法に関するビューの概念を理解します。
1 SQLビューの作成:-
SQLでは、CREATEVIEWキーワードを使用してビューを簡単に作成できます。単一のテーブルと複数のテーブルのビューを作成できます。
CREATE VIEW(単一テーブル)の構文
CREATE VIEW VIEW_NAME AS SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME WHERE CONDITION;
上記の構文は、単一のテーブルからビューを作成するためのものです。上記の構文では、VIEW_NAMEはSQLでビューを作成するためのビューの名前です。 Table_nameは、特定のレコードを選択するテーブルの名前です。SQLクエリではWHERE句はオプションです。
CREATE VIEW(複数テーブル)の構文
CREATE VIEW VIEW_NAME AS SELECT T1.COLUMN_NAME, T1.COLUMN_NAME2, T2.COLUMN_NAME1, T2.COLUMN_NAME2 FROM T1, T2 WHERE CONDITION;
上記の構文は、複数のテーブルからビューを作成するためのものです。上記の構文では、VIEW_NAMEはSQLでビューを作成するためのビューの名前です。 T1、T2は、特定のレコードを選択するテーブルの名前です。SQLクエリではWHERE句はオプションです。
与えられたレコードと一緒に次の表を検討してください。
表1:Emp
EMPLOYEEID | FIRST_NAME | LAST_NAME | 給与 | CITY | 部門 | MANAGERID |
1001 | VAIBHAVI | MISHRA | 65000 | PUNE | ORACLE | 1 |
1002 | VAIBHAV | シャルマ | 60000 | NOIDA | ORACLE | 1 |
1003 | NIKHIL | VANI | 50000 | ジャイプール | FMW | 2 |
2001 | PRACHI | シャルマ | 55500 | チャンディーガル | ORACLE | 1 |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW | 2 |
2003 | ルチカ | JAIN | 50000 | ムンバイ | テスト | 4 |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA | 3 |
3002 | ANUJA | 場所 | 50500 | ジャイプール | FMW | 2 |
3003 | DEEPAM | ジャウハリ | 58500 | ムンバイ | JAVA | 3 |
4001 | RAJESH | GOUD | 60500 | ムンバイ | テスト | 4 |
表2:マネージャー。
Managerid | manager_name | manager_department |
1 | Snehdeep Kaur | ORACLE |
2 | Kirti Kirtane | FMW |
3 | Abhishek Manish | JAVA |
4 | アヌパムミシュラ | テスト |
単一のテーブルからVIEWを作成する例。
例1:従業員ID、名、姓、Empテーブルの給与を使用してビューを作成するクエリを記述します。
CREATE VIEW EMPLOYEE_VIEW AS SELECT EMPLOYEEID, CONCAT (FIRST_NAME, CONCAT (“ ”, LAST_NAME)) AS NAME, SALARY FROM EMP;
上記のクエリでは、従業員IDを使用してビュー名EMPLOYEE_VIEWを作成し、名と姓をName、EmpTableからの給与として連結しました。
テーブル内のレコードを確認する場合は常に、SELECT*FROMクエリを使用します。ビューに対して行うのと同じ方法で、テーブル名の代わりにビュー名を使用します。
SELECT * FROM EMPLOYEE_VIEW;
例2:クエリを記述して、マネージャーID、マネージャー名、およびマネージャーテーブルの部門を含むビューを作成します。
CREATE VIEW MANAGER_VIEW AS SELECT MANAGERID, MANAGER_NAME, MANAGER_DEPARTMENT FROM MANAGER;
上記のクエリでは、マネージャーID、マネージャー名、およびマネージャーテーブルの部門を使用してビュー名MANAGER_VIEWを作成しました。
テーブル内のレコードを確認する場合は常に、SELECT*FROMクエリを使用します。ビュー名を使用します。同様に、テーブル名の代わりにビューに対して行います。
SELECT * FROM MANAGER_VIEW;
例3:クエリを記述して、従業員ID、名、姓、給与、給与が54000を超える従業員の市区町村、および市区町村にEmpテーブルのPuneとMumbaiが含まれるビューを作成します。
CREATE VIEW EMPLOYEE_VIEW1 AS SELECT EMPLOYEEID, CONCAT (FIRST_NAME, CONCAT (“ ”, LAST_NAME)) AS NAME, SALARY, CITY FROM EMP WHERE SALARY > 54000 AND CITY IN (‘PUNE’, ‘MUMBAI’);
上記のクエリでは、従業員IDを使用してビュー名EMPLOYEE_VIEW1を作成し、名、給与、給与が54000を超える従業員の名前、給与、市を連結し、市のAND演算子を使用してEmpTableのPuneとMumbaiを含めました。 。
テーブル内のレコードを確認する場合は常に、SELECT*FROMクエリを使用します。ビュー名を使用します。同様に、テーブル名の代わりにビューに対して行います。
SELECT * FROM EMPLOYEE_VIEW1;
例4:クエリを記述して、マネージャーID、マネージャー名、およびマネージャーテーブルの部門が「Oracle」および「Java」であるマネージャーの部門を含むビューを作成します。
CREATE VIEW MANAGER_VIEW1 AS SELECT MANAGERID, MANAGER_NAME, MANAGER_DEPARTMENT FROM MANAGER; WHERE MANAGER_DEPARTMENT IN (‘ORACLE’, ‘JAVA’);
上記のクエリでは、マネージャーID、マネージャー名、および部門が「Oracle」であるマネージャーの部門、およびマネージャーテーブルの「Java」を使用してビュー名MANAGER_VIEWを作成しました。
テーブル内のレコードを確認する場合は常に、SELECT*FROMクエリを使用します。ビュー名を使用します。同様に、テーブル名の代わりにビューに対して行います。
SELECT * FROM MANAGER_VIEW1;
上記のCREATEVIEWの例はすべて、単一のテーブルからのものです。 CREATE VIEWの次の例は、複数のテーブルからのものです。
与えられたレコードと一緒に次の表を検討してください。
表1:Emp
EMPLOYEEID | FIRST_NAME | LAST_NAME | 給与 | CITY | 部門 | MANAGERID |
1001 | VAIBHAVI | MISHRA | 65000 | PUNE | ORACLE | 1 |
1002 | VAIBHAV | シャルマ | 60000 | NOIDA | ORACLE | 1 |
1003 | NIKHIL | VANI | 50000 | ジャイプール | FMW | 2 |
2001 | PRACHI | シャルマ | 55500 | チャンディーガル | ORACLE | 1 |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW | 2 |
2003 | ルチカ | JAIN | 50000 | ムンバイ | テスト | 4 |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA | 3 |
3002 | ANUJA | 場所 | 50500 | ジャイプール | FMW | 2 |
3003 | DEEPAM | ジャウハリ | 58500 | ムンバイ | JAVA | 3 |
4001 | RAJESH | GOUD | 60500 | ムンバイ | テスト | 4 |
表2:マネージャー。
Managerid | manager_name | manager_department |
1 | Snehdeep Kaur | ORACLE |
2 | Kirti Kirtane | FMW |
3 | Abhishek Manish | JAVA |
4 | アヌパムミシュラ | テスト |
例1:Empテーブルとマネージャーテーブルから従業員ID、名前、市区町村、マネージャーID、マネージャー名を使用してビューを作成するクエリを記述します。
CREATE VIEW EMP_MAN_VIEW AS SELECT EMP.EMPLOYEEID, CONCAT(EMP.FIRST_NAME, CONCAT(“ ”, EMP.LAST_NAME)) AS NAME, CITY, MANAGER.MANAGERID, MANAGER.MANAGER_NAME FROM EMP, MANAGER WHERE EMP.MANAGERID = MANAGER.MANAGERID;
上記のクエリでは、従業員ID、名前、都市、マネージャーID、およびマネージャー名を使用して、Empテーブルとマネージャーテーブルからビューを作成しました。
テーブル内のレコードを確認する場合は常に、SELECT*FROMクエリを使用します。ビュー名を使用します。同様に、テーブル名の代わりにビューに対して行います。
SELECT * FROM EMP_MAN_VIEW;
2 SQLビューの更新:-
updateステートメントは、SQLの既存のテーブルと既存のビューを変更します。 SQLの既存のビューに新しいデータを挿入することもできます。 SQLでは、以下の条件が満たされた場合にのみビューが変更されます。指定された条件の1つが満たされない場合、ビューを変更することはできません。
- DISTINCTキーワードはSELECTステートメントでは使用しないでください。
- ビューにすべてのNOTNULL値を含めることはできません。
- SELECTステートメントでビューを作成するときに、ORDERBY句とGROUPBY句を使用しないでください。
- 作成されたビューに単一のテーブルの列が含まれている場合、ビューを変更できます。つまり、ビュー内で複数のテーブルを使用することは許可されていません。
- サブクエリを使用してビューを作成したり、複雑なクエリを含めたりしないでください
- ビューにはSQL集計関数が含まれています。既存のビューを変更することは許可されていません。
CREATE OR REPLACE VIEWステートメントは、ビューから新しいフィールドを追加したり、フィールドを削除したりするために使用されます。
構文:
CREATE OR REPLACE VIEW VIEW_NAME AS SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME WHERE CONDITION;
例1:Employee_Viewを更新し、ビューのEmpテーブルからManagerId列を追加するクエリを記述します。
CREATE OR REPLACE VIEW EMPLOYEE_VIEW AS SELECT EMPLOYEEID, CONCAT(FIRST_NAME,CONCAT(" ", LAST_NAME)) AS NAME, SALARY, MANAGERID FROM EMP WHERE DEPARTMENT IN ('ORACLE', 'FMW');
上記のクエリは、既存のEmployee_viewを変更し、指定されたSELECTクエリに基づいてレコードを変更します。
テーブル内のレコードを確認する場合は常に、SELECT*FROMクエリを使用します。ビュー名を使用します。同様に、テーブル名の代わりにビューに対して行います。
SELECT * FROM EMPLOYEE_VIEW;
例2:Manager_Viewを更新するクエリを記述します。
CREATE OR REPLACE VIEW MANAGER_VIEW AS SELECT MANAGERID, MANAGER_NAME FROM MANAGER WHERE MANAGER_NAME LIKE ‘A%’;
上記のクエリは、既存のEmployee_viewを変更し、指定されたSELECTクエリに基づいてレコードを変更します。
テーブル内のレコードを確認する場合は常に、SELECT*FROMクエリを使用します。ビュー名を使用します。同様に、テーブル名の代わりにビューに対して行います。
SELECT * FROM MANAGER_VIEW;
既存のビューに新しいレコードを挿入する
新しいレコードをテーブルに挿入します。同様に、ビューに挿入することもできます。
構文
INSERT INTO VIEW_NAME VALUES(VALUE1, VALUE2);
例:Manager_viewに新しいレコードを挿入するクエリを記述します。
INSERT INTO MANAGER_VIEW VALUES (5, ‘Akash Kadam’);
Manager_Viewに新しいレコードを挿入します。新しいデータが挿入されているかどうかを確認するには、SELECTクエリを使用します:
SELECT * FROM MANAGER_VIEW;
3ドロップビュー:-
テーブルを落とします。同様に、ビューをドロップすることもできます。
構文:
DROP VIEW VIEW_NAME;
例:EMP_MAN_VIEWを削除するクエリを記述します。
DROP VIEW EMP_MAN_VIEW;
ビューが削除されているかどうかを確認する場合は、SHOWTABLESクエリを使用します。
SHOW TABLES;
ビュー名EMP_MAN_VIEWがデータベースにありません。これは、ビューを正常に削除したことを意味します。