Views Objectives Create views Modify/Drop Views Insert/Delete/Update to/from views Retrieve data from views Facts Views as logical representation of data Views are queried like tables Views are objects similar to tables Views are stored queries Every time a view is uses the query is run (Views are not stored database) 3 Advantages of Views Restrict database access Represent data from different tables Make complex query easy Calculate values of formula Represent different views of the same data Views can be created from other views 4 Creating Views CREATE [OR REPLACE] VIEW name AS sub-query [WITH READ ONLY] 5 Creating Views Example: CREATE OR REPLACE VIEW salesEmpl AS SELECT * FROM testdata.Employee WHERE dept=‘Sales’; 6 Check the Structure of Views DESC salesEmpl; Name F_Name L_Name SSN Dept B_Date Null? Type VARCHAR2(20) VARCHAR2(20) NUMBER(9) VARCHAR2(20) DATE 7 Check the Content of Views SELECT FROM * SalesEmpl; Retrieve data from Views SELECT FROM WHERE L_Name, F_Name, SSN SalesEmpl TO_CHAR(B_Date, ‘YYYY’)=1973; 8 Column Aliases: CREATE VIEW GoodStudents AS SELECT Name, SSN ID, Major Area, Email Contact FROM Students Where GPA>3; Alternative Renaming: CREATE OR REPLACE VIEW GoodStudents (Name, ID, Area, Contact) AS SELECT Name, SSN, Major, Email FROM Students WHERE GPA>3; 9 Use of Functions: CREATE VIEW EmployeeData (Dept, MinSal, MaxSal, AvgSal, CountEmp) AS SELECT FROM Dept, MIN(PayRate), Max(PayRate), AVG (PayRate), Count(*) Employee; 10 Use of Functions: SELECT FROM * EmployeeData; How to modify Views? 11 SELECT only Views: CREATE View EmployeeData AS SELECT L_Name, F_Name, Dept FROM Employee WITH READ ONLY; Why do we need a read only view? 12 Delete Views: DROP VIEW Name) DROP VIEW EmployeeData; 13 Check the list of views SELECT FROM * USER_VIEWS; 14 INSERT Data into View INSERT INTO GoodStudent (ID, Name, Area, Contact) VALUES (211202111, ‘John Smith’, ‘COSC’, ‘Jsmith@fsu.edu’); 15 Insert with NULL value: INSERT INTO GoodStudent (ID, Name, Area, Contact) VALUES (211202111, ‘John Smith’, NULL, ‘Jsmith@fsu.edu’); 16 Delete data from views: DELETE WHERE GoodStudent ID=211202111; Update Views: UPDATE SET WHERE GoodStudent Area=‘MATH’ ID=211202111; 17 Create Views from Multiple table CREATE OR REPLACE VIEW SalesInfo (Name, ID, Item, Cost) AS SELECT F_Name || ‘ ‘ || L_Name, ID, HowMany, Price FROM Employee, Sales WHERE ID=E_ID; 18