Presentation is loading. Please wait.

Presentation is loading. Please wait.

Structured Query Language – The Basics

Similar presentations


Presentation on theme: "Structured Query Language – The Basics"— Presentation transcript:

1 Structured Query Language – The Basics
By Hitesh Sahni

2 What We’re Going to Cover
Overview of SQL (This may be review for some of you) Data Definition Language Creating tables (we’ll just talk about this) Data Manipulation Language Inserting/Updating/Deleting data Retrieving data Single table queries Where Joins Grouping

3 SQL SQL is a data manipulation language.
SQL is not a programming language. SQL commands are interpreted by the DBMS engine. SQL commands can be used interactively as a query language within the DBMS. SQL commands can be embedded within programming languages.

4 3 Types of SQL Commands Data Definition Language (DDL):
Commands that define a database - Create, Alter, Drop Data Manipulation Language (DML) Commands that maintain and query a database. Data Control Language (DCL) Commands that control a database, including administering privileges and committing data.

5 Data Manipulation Language (DML)
Four basic commands: INSERT UPDATE DELETE SELECT

6 Inserting Data into a Table
INSERT INTO tablename (column-list) VALUES (value-list) PUTS ONE ROW INTO A TABLE INSERT INTO COURSE (COURSE_CODE, COURSE_NAME, CREDIT_HOURS) VALUES (‘MIS499’,’ADVANCED ORACLE’,4);

7 More on Inserting Data INSERT INTO COURSE VALUES (‘MIS499’,’ADVANCED ORACLE’,4); INSERT INTO COURSE (COURSE_NAME, COURSE_CODE, CREDIT_HOURS) VALUES (’ADVANCED ORACLE’,‘MIS499’,4); COLUMN LIST IS OPTIONAL IF YOU PLAN TO INSERT A VALUE IN EVERY COLUMN AND IN THE SAME ORDER AS IN THE TABLE COLUMN LIST IS NEEDED TO CHANGE THEORDER - MUST MATCH VALUE LIST NOTE - TABLE STILL HAS THE ORIGINAL COLUMN ORDER

8 Inserting Null Data INSERT INTO COURSE (COURSE_CODE, CREDIT_HOURS)
VALUES (‘MIS499’,4); VALUES (‘MIS499’,’’,4); VALUES (‘MIS499’,NULL,4); COLUMN LIST IS NEEDED IF YOU PLAN TO LEAVE OUT A VALUE IN THE VALUE LIST COLUMN LIST CAN BE OMITTED IF YOU PUT IN A BLANK VALUE THE NULL KEYWORD CAN BE USED TO CREATE A BLANK COLUMN ALL OF THESE ASSUME THAT THE DATABASE ALLOWS THE COLUMN TO BE NULL. YOU CANNOT LEAVE PRIMARY KEYS AND FOREIGN KEYS BLANK

9 Inserting and Integrity Constraints
SQL> INSERT INTO SECTION VALUES ('1234','MIS333','10-12','MW','COPE101',' '); INSERT INTO SECTION VALUES ('1234','MIS333','10-12','MW','COPE101', * ERROR at line 1: ORA-02291: integrity constraint (ORA40.SYS_C00337) violated - parent key not found COURSE COURSE_CODE KEY COURSE_NAME CREDIT_HOURS SECTION CALL_NUMBER KEY COURSE_CODE SECTION_TIME SECTION_DAYS SECTION_ROOM INSTRUCTOR_ID INSTRUCTOR INSTRUCTOR_ID KEY INSTRUCTOR_NAME INSTRUCTOR_OFFICE

10 Entity Integrity Problems
SQL> INSERT INTO COURSE VALUES ('MIS220','NEW',4); insert into course values ('MIS220','NEW',4) * ERROR at line 1: ORA-00001: unique constraint (ORA40.SYS_C00335) violated

11 Deleting Data DELETE COURSE; DELETES ALL ROWS
Be careful!! This deletes ALL of the rows in your table. If you use this command in error, you can use ROLLBACK to undo the changes. DELETE COURSE; DELETES ALL ROWS DELETE COURSE WHERE COURSE_CODE = ‘MIS220’; DELETES SPECIFIC ROWS (MORE TYPICAL) DELETE COURSE WHERE HOURS=4; DELETES A GROUP OF ROWS DELETE COURSE WHERE HOURS<4;

12 Deleting and Integrity Constraints
SQL> DELETE COURSE WHERE COURSE_CODE='MIS220'; DELETE COURSE WHERE COURSE_CODE='MIS220' * ERROR at line 1: ORA-02292: integrity constraint (ORA40.SYS_C00341) violated - child record found

13 Updating Data UPDATE COURSE SET HOURS=5; CHANGES EVERY ROW
WHERE COURSE_CODE=‘MIS220’ CHANGES ONE ROW (MORE TYPICAL) UPDATE COURSE SET HOURS=3 WHERE COURSE_CODE LIKE ‘MIS%’ CHANGES A GROUP OF ROWS

14 Updating and Integrity Constraints
YOU CAN CHANGE THE VALUE OF A FOREIGN KEY AS LONG AS THE NEW VALUE ALSO COMPLIES WITH REFERENTIAL INTEGRITY CONSTRAINTS. PRIMARY KEY VALUES CAN BE UPDATED AS LONG AS THERE ARE NO ROWS IN OTHER TABLES WITH FOREIGN KEYS WITH THE SAME VALUE DOES NOT MATTER IF CONSTRAINT IS RESTRICTED OR CASCADED

15 Integrity Error SQL> UPDATE COURSE SET COURSE_CODE='MIS221‘ WHERE COURSE_CODE='MIS220'; UPDATE COURSE * ERROR at line 1: ORA-02292: integrity constraint (ORA40.SYS_C00341) violated - child record found

16 Rollback and Commit CHANGES TO DATA ARE TEMPORARY DURING YOUR SQLPLUS SESSION DOES NOT APPLY TO CHANGES IN DATABASE STRUCTURE - ALTER... BEFORE LEAVING SQLPLUS, YOU CAN REVERSE THEM APPLIES TO INSERTS, UPDATES, AND DELETES

17 Rollback and Commit SQL>ROLLBACK; Rollback complete.
REVERSES ALL CHANGES TO DATA MADE DURING YOUR SESSION SQL>COMMIT; MAKES ALL CHANGES TO THIS POINT PERMANENT POINTS AT WHICH COMMIT IS ISSUED, DEFINE EXTENT OF ROLLBACK ROLLBACK REVERSES EVERY CHANGE SINCE THE LAST COMMIT EXITING SQLPLUS ISSUES A COMMIT

18 SQL for Retrieving Data from One Table
SELECT column_name, column_name, … FROM table_name WHERE condition/criteria; This statement will retrieve the specified field values for all rows in the specified table that meet the specified conditions. Every SELECT statement returns a recordset.

19 Conceptual Evaluation Strategy
Semantics of an SQL query defined in terms of the following conceptual evaluation strategy: Compute the cross-product of relation-list. Discard resulting tuples if they fail qualifications. Delete attributes that are not in target-list. If DISTINCT is specified, eliminate duplicate rows. This strategy is probably the least efficient way to compute a query! An optimizer will find more efficient strategies to compute the same answers.

20 WHERE Conditions SELECT * FROM COURSE WHERE COURSE_CODE LIKE ‘MIS%’;
WHERE CREDIT HOURS BETWEEN 3 AND 5; SELECT * FROM CUSTOMER WHERE BALANCE < CREDIT_LIMIT; USE % TO SUBSTITUTE FOR ANY STRING 3 AND 5 ARE INCLUDED YOU CAN COMPARE TWO COLUMNS

21 More WHERE Conditions SELECT * FROM CUSTOMER WHERE STATE IN (‘OH’,’WV’,’KY’); SELECT * FROM CUSTOMER WHERE (CREDIT_LIMIT - BALANCE) <1000; LIST OF SPECIFIC VALUES TO LOOK FOR CAN MANIPULATE NUMBER VALUES MATHMATICALLY

22 AND/OR/NOT Conditions
SELECT * FROM CUSTOMER WHERE BALANCE >= AND BALANCE<=1000; WHERE STATE = ‘OH’ OR CREDIT_LIMIT>1000; WHERE NOT (STATE=‘OH’); TWO COMPARISONS ON THE SAME COLUMN TWO COMPARISONS ON THE DIFFERENT COLUMNS SAME AS STATE<>‘OH’

23 More on AND/OR/NOT SELECT * FROM CUSTOMER WHERE STATE = ‘OH’ OR (CREDIT_LIMIT= AND BALANCE <500); Use parentheses to make complex logic more understandable. CUST STATE LIMIT BAL A OH B WV C OH D OH E KY F KY G MA H NB Who will be selected??

24 SQL - Other Features * - All columns in a table Aliases
SELECT EmployeeID, LastName, FirstName, BirthDate AS DOB FROM Employee; SELECT EmployeeID, LastName, FirstName, FROM Employee AS E; Dot Notation - ambiguous attribute names SELECT Customer.LName, E.Lname FROM Customer, Employee AS E WHERE ...

25 SQL - Other Features DISTINCT Arithmetic operators: +, -, *, /
Comparison operators: =, >, >=, <, <=, <> Concatenation operator: || Substring comparisons: %, _ BETWEEN AND, OR

26 SQL - Other Features ORDER BY Clause UNION, EXCEPT, INTERSECT IN

27 SQL for Retrieving Data from Two or More Tables
SQL provides two ways to retrieve data from related tables: Join - When two or more tables are joined by a common field. Subqueries - When one Select command is nested within another command.

28 SQL - Joins Joins: The WHERE clause is used to specify the common field. For every relationship among the tables in the FROM clause, you need one WHERE condition (2 tables - 1 join, 3 tables - 2 joins…) SELECT C.Cust_ID, Comp_Name, Country,OrderID FROM Customer AS C, Order AS O WHERE C.Cust_ID = O.Cust_ID AND Country = ‘USA’;

29 Interesting, right? This is just a sneak preview of the full presentation. We hope you like it! To see the rest of it, just click here to view it in full on PowerShow.com. Then, if you’d like, you can also log in to PowerShow.com to download the entire presentation for free.


Download ppt "Structured Query Language – The Basics"

Similar presentations


Ads by Google