Bogdan Shishedjiev SQL1 SQL Reminder of SQL. Bogdan Shishedjiev SQL 2 Subsets of language Data definition language (DDL) –Domain definition –Schema definition.

Slides:



Advertisements
Similar presentations
BACS 485—Database Management Advanced SQL Overview Advanced DDL, DML, and DCL Commands.
Advertisements

2 Restricting and Sorting Data Important Legal Notice:  Materials on this lecture are from a book titled “Oracle Education” by Kochhar, Gravina, and Nathan.
12-1 Copyright  Oracle Corporation, All rights reserved. What Is a View? EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
Restricting and sorting data 16 May May May Created By Pantharee Sawasdimongkol.
1Eyad Alshareef Enhanced Guide to Oracle 10g Chapter 3: Using SQL Queries to Insert, Update, Delete, and View Data.
Copyright  Oracle Corporation, All rights reserved. 2 Restricting and Sorting Data.
SQL zSeQueL zSQL zSQL ybetter support for Algebraic operations zSQL Post-Relational yrow and column types, stored procedures, triggers,
The Relational Data Model zE.F Codd A Relational Data Model for Large Shared Data Banks (1970) zThe basic model used by Access, Oracle, DB2 zAll Relational.
Writing Basic SQL statement 2 July July July Create By Pantharee Sawasdimongkol.
Session 3: SQL (B): Parts 3 & 4 Original materials supplied by the Oracle Academic Initiative (OAI). Edited for classroom use by Professor Laku Chidambaram.
OO - Lecture 4 Tutorial Review Associations Inheritance of Functions Polymorphism.
Chapter 1 Writing Basic SQL Statements Important Legal Notice:  Materials on this lecture are from a book titled “Oracle Education” by Kochhar, Gravina,
Logical Operators Operator AND OR NOT Meaning Returns TRUE if both component conditions are TRUE Returns TRUE if either component condition is TRUE Returns.
Copyright  Oracle Corporation, All rights reserved. Introduction.
o At the end of this lesson, you will be able to:  Describe the life-cycle development phases  Discuss the theoretical and physical aspects of a relational.
Copyright  Oracle Corporation, All rights reserved. I Introduction.
4-1 Copyright  Oracle Corporation, All rights reserved. Data Manipulation Language (DML)
4-1 Copyright  Oracle Corporation, All rights reserved. Displaying Data from Multiple Tables.
Lecture 8 Database Theory & Practice (2) : The Relational Data Model UFCEKG-20-2 Data, Schemas & Applications.
Displaying Data from Multiple Tables (Join). EMPNO DEPTNO LOC NEW YORK CHICAGO NEW YORK DALLAS.
1 Theory, Practice & Methodology of Relational Database Design and Programming Copyright © Ellis Cohen Introduction to Relational Databases &
MSc IT UFIE8K-15-M Data Management Prakash Chatterjee Room 3P16
2 Writing Basic SELECT Statements. 1-2 Copyright  Oracle Corporation, All rights reserved. Capabilities of SQL SELECT Statements Selection Projection.
Copyright  Oracle Corporation, All rights reserved. Writing Basic SQL Statements.
1 Information Retrieval and Use (IRU) CE An Introduction To SQL Part 1.
SELECT Statements Lecture Notes Sree Nilakanta Fall 2010 (rev)
An Introduction To SQL - Part 1 (Special thanks to Geoff Leese)
Copyright س Oracle Corporation, All rights reserved. I Introduction.
Copyright  Oracle Corporation, All rights reserved. 2 Restricting and Sorting Data.
RELATSIOONILISED ANDMEBAASID(alg) SQLi VÕIMALUSED.
SQL- DQL (Oracle Version). 2 SELECT Statement Syntax SELECT [DISTINCT] column_list FROM table_list [WHERE conditional expression] [GROUP BY column_list]
1 Theory, Practice & Methodology of Relational Database Design and Programming Copyright © Ellis Cohen Basic SQL These slides are licensed under.
Session 2: SQL (A): Parts 1 and 2 Original materials supplied by the Oracle Academic Initiative (OAI). Edited for classroom use by Professor Laku Chidambaram.
Copyright س Oracle Corporation, All rights reserved. 4 Displaying Data from Multiple Tables.
Copyright  Oracle Corporation, All rights reserved. 11 Including Constraints.
Copyright  Oracle Corporation, All rights reserved. Introduction.
Copyright  Oracle Corporation, All rights reserved. 4 Introduction.
SQL: Part 1 Original materials supplied by the Oracle Academic Initiative (OAI). Edited for classroom use by Professor Laku Chidambaram. Not for commercial.
11 Including Constraints Objectives At the end of this lesson, you will be able to: Describe constraints Create and maintain constraints At the.
1 Writing Basic SQL Statements. 1-2 Objectives At the end of this lesson, you should be able to: List the capabilities of SQL SELECT statements Execute.
I-1 Copyright س Oracle Corporation, All rights reserved. Data Retrieval.
SQL: Part 2 Original materials supplied by the Oracle Academic Initiative (OAI). Edited for classroom use by Professor Laku Chidambaram. Not for commercial.
Copyright  Oracle Corporation, All rights reserved. 12 Creating Views.
1 Theory, Practice & Methodology of Relational Database Design and Programming Copyright © Ellis Cohen Subqueries These slides are licensed under.
An Introduction To SQL Part 2 (Special thanks to Geoff Leese)
1 Information Retrieval and Use (IRU) An Introduction To SQL Part 2.
Copyright س Oracle Corporation, All rights reserved. I Introduction.
1 Theory, Practice & Methodology of Relational Database Design and Programming Copyright © Ellis Cohen Relational State Assertions These slides.
Dr. Philip Cannata 1 Programming Languages Haskell.
Oracle CONNECT BY function JAVA WEB Programming. Emp 테이블의 내용 ( 상 / 하급자 계층구조 ) SQL> select * from emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
2-1 Limiting Rows Using a Selection “…retrieve all employees in department 10” EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT BLAKEMANAGER CLARKMANAGER.
1 Theory, Practice & Methodology of Relational Database Design and Programming Copyright © Ellis Cohen Grouping These slides are licensed under.
Copyright س Oracle Corporation, All rights reserved. 12 Creating Views.
1-1 Copyright  Oracle Corporation, All rights reserved. Logging In to SQL*Plus From Windows environment:From Windows environment: From command line:From.
Copyright  Oracle Corporation, All rights reserved. 2 Restricting and Sorting Data.
Writing Basic SQL Statements. Objectives After completing this lesson, you should be able to do the following: –List the capabilities of SQL SELECT statements.
SQL Statements SELECT INSERTUPDATEDELETECREATEALTERDROPRENAMETRUNCATECOMMITROLLBACKSAVEPOINTGRANTREVOKE Data Retrieval Language (DRL) Data Retrieval Language.
Defining a Column Alias
Copyright  Oracle Corporation, All rights reserved. 4 Displaying Data from Multiple Tables.
Copyright  Oracle Corporation, All rights reserved. Introduction.
Displaying Data from Multiple Tables. Objectives After completing this lesson, you should be able to do the following: –Write SELECT statements to access.
4 Displaying Data from Multiple Tables. 4-2 Objectives At the end of this lesson, you should be able to: Write SELECT statements to access data from more.
Copyright س Oracle Corporation, All rights reserved. 1 Writing Basic SQL Statements.
Communicating with a RDBMS Using SQL Database SQL> SELECT loc 2 FROM dept; SQL> SELECT loc 2 FROM dept; SQL statement is entered Statement is sent to database.
Relational Normalization Theory
What Is a View? EMPNO ENAME JOB EMP Table EMPVU10 View
Lecture 16 : The Relational Data Model
Presentation transcript:

Bogdan Shishedjiev SQL1 SQL Reminder of SQL

Bogdan Shishedjiev SQL 2 Subsets of language Data definition language (DDL) –Domain definition –Schema definition –Constraint definition –View definition –Access right definition Data manipulation language (DML) –Queries –Tuple insertion –Tuple deletion –Tuple modification

Bogdan Shishedjiev SQL 3 DDL Domain definition –Simple domains Chars Numbers Date/Time Raw BLOB Logical –Named domain – only in some DBMS

Bogdan Shishedjiev SQL 4 DDL Create Table CREATE TABLE име ( Attribut1 type1, Attribut2 type2,...); –Definition by Query CREATE TABLE nom AS SELECT.... –Default Value Definition default(expression) –Constraints UNIQUE NOT NULL Primary Key CONSTRAINT Keyname PRIMARY KEY (Attrname1,Attrname2,...) Foreign Key CONSTRAINT Keyname FOREIGN KEY(Attrname,...) REFERENCES Tablename (Attrname,...) CHECK(expression)

Bogdan Shishedjiev SQL 5 DDL Table elimination DROP TABLE name; Table modification ALTER TABLE name ADD COLUMN(name_of_column type,...); - adds an attribute/ attributs ALTER TABLE name ADD CONSTRAINT...; ALTER TABLE name MODIFY(column type....); changes the attribute type ALTER TABLE name DROP column,....; removes attribute

Bogdan Shishedjiev SQL 6 DDL Indexes –Creation CREATE [UNIQUE] INDEX name_index ON name_table (attribut [ASCIDESC],...); –Deletion DROP INDEX name_index; Views –Creation CREATE VIEW name [(names of columns)] AS SELECT....; –Deletion DROP VIEW name ;

Bogdan Shishedjiev SQL 7 Example CREATE TABLE DEPT ( DEPTNOINTEGER NOT NULL, DNAMEVARCHAR(14) CHARACTER SET ISO8859_1, LOCVARCHAR(13) CHARACTER SET ISO8859_1, CONSTRAINT PK_DEPT PRIMARY KEY (DEPTNO) ); CREATE TABLE EMP ( EMPNOINTEGER NOT NULL, ENAMEVARCHAR(10) CHARACTER SET ISO8859_1, JOBVARCHAR(9) CHARACTER SET ISO8859_1, MGRINTEGER CHECK (MGR isNULL or DeptNo = (select DeptNo from Employee E where E.RegNo = Superior), HIREDATETIMESTAMP, SALNUMERIC(9, 2), COMMNUMERIC(9, 2), DEPTNOINTEGER, CONSTRAINT PK_EMP PRIMARY KEY (EMPNO) ); ALTER TABLE EMP ADD CONSTRAINT FK_DEPTNO FOREIGN KEY (DEPTNO) REFERENCES DEPT (DEPTNO);

Bogdan Shishedjiev SQL 8 Example EMP NOENAMEJOBMGRHIREDATESAL COMM DEPTNO 7369SMITHCLERK ALLENSALESMAN WARDSALESMAN JONESMANAGER MARTINSALESMAN BLAKEMANAGER CLARKMANAGER SCOTTANALYST KINGPRESIDENT TURNERSALESMAN ADAMSCLERK JAMESCLERK FORDANALYST MILLERCLERK DEPTNODNAMELOC 10ACCOUNTINGNEW YORK 20RESEARCHDALLAS 30SALESCHICAGO 40OPERATIONSBOSTON

Bogdan Shishedjiev SQL 9 Queries SELECT Statement SELECT [DISTINCT | ALL ]{* | expression| attribute },... FROM,... [WHERE Logical expression – condition for selection or join] [GROUP BY list of attributes] [HAVING Logical expression – condition for group selection] [UNION | INTERSECT | MINUS SELECT...] [ORDER BY list of attributes [ASC | DESC] ];

Bogdan Shishedjiev SQL 10 Projection SELECT job, mgr FROM emp; /* Query12 */ JOBMGR CLERK7902 SALESMAN7698 SALESMAN7698 MANAGER7839 SALESMAN7698 MANAGER7839 MANAGER7839 ANALYST7566 PRESIDENT SALESMAN7698 CLERK7788 CLERK7698 ANALYST7566 CLERK7782 JOBMGR CLERK7902 SALESMAN7698 MANAGER7839 ANALYST7566 PRESIDENT CLERK7788 CLERK7698 CLERK7782 SELECT DISTINCT job, mgr FROM emp; /* Query13 */

Bogdan Shishedjiev SQL 11 Operators CodeOperator -Inversing the sign *, /Multiplication, division +, -, || (&) Addition, substraction, concatenation SELECT ENAME || '(' || EMPNO || ')' 'NAME', 2 * SAL 'DoubleSal' FROM EMP; (Query 39) 'NAME''DoubleSal' SMITH(7369)1600 ALLEN(7499)3200 WARD(7521)2500 JONES(7566)5950 MARTIN(7654)2500 BLAKE(7698)5700 CLARK(7782)4900 SCOTT(7788)6000 KING(7839)10000 TURNER(7844)3000 ADAMS(7876)2200 JAMES(7900)1900 FORD(7902)6000 MILLER(7934)2600

Bogdan Shishedjiev SQL 12 Selection SELECT * FROM emp WHERE deptno=10; /* Query14 */ EMPNOENAMEJOBMGRHIREDATESALCOMMDEPTNO 7782CLARKMANAGER KINGPRESIDENT MILLERCLERK

Bogdan Shishedjiev SQL 13 Selection & Projection SELECT ename, job, sal FROM emp WHERE job = ‘MANAGER’ AND sal>2500; /* Query15 */ ENAMEJOBSAL JONESMANAGER2975 BLAKEMANAGER2850

Bogdan Shishedjiev SQL 14 Predicates BETWEEN / NOT BETWEEN SELECT ename FROM emp WHERE hiredate BETWEEN AND ; /* Query1 */ IN / NOT IN SELECT ename FROM emp WHERE job In ('ANALYST','MANAGER'); /* Query2 */ ENAME SMITH JONES BLAKE CLARK ADAMS JAMES MILLER ENAME ALLEN WARD JONES MARTIN BLAKE CLARK KING TURNER JAMES FORD

Bogdan Shishedjiev SQL 15 Predicates LIKE/NOT LIKE compares strings with wildcards “%” substitutes for any 0 or more characters, “_” substitutes for any one character. In Microsoft DBMSs the corresponding examples are “ * “ and “? “. Examples: LIKE 'TARKO%', LIKE '%WSKI', LIKE 'A_C‘ SELECT ename, job FROM Emp WHERE.ename LIKE "b*";/* Query4 */. SELECT ename, job,sal FROM emp WHERE ename LIKE '%mi%'; /*Query16*/ ENAMEJOB BLAKEMANAGER enamejobsal SMITHCLERK800 MILLERCLERK1300

Bogdan Shishedjiev SQL 16 Aggregate SELECT count(*) FROM emp WHERE deptno=20; /* Query10 */ SELECT AVG(sal) average FROM emp WHERE deptno=20; /* Query11 */ SELECT count(Job) as Jobs FROM emp; SELECT count(DISTINCT Job) as Jobs FROM emp; Count 5 Average 2175 Jobs 14 Jobs 5

Bogdan Shishedjiev SQL 17 Join Cartesian product SELECT * FROM emp, dept; /* Query17 */ Join SELECT * FROM emp,dept WHERE emp.deptno = dept.deptno; /* Query18 */ SELECT * FROM emp INNER JOIN dept ON emp.deptno = dept.deptno; /* Query19 */ SELECT * FROM emp E,dept D WHERE E.deptno = D.deptno; /*Query20 */ SELECT * FROM emp as E INNER JOIN dept as D ON E.deptno = D.deptno; /* Query21 */

Bogdan Shishedjiev SQL 18 Join EMPN O ENAMEJOBMGRHIREDSALCOMME.DEPTNOD.DEPTNODNAMELOC 7782CLARKMANAGER ACCOUNTINGNEW YORK 7839KINGPRESIDENT ACCOUNTINGNEW YORK 7934MILLERCLERK ACCOUNTINGNEW YORK 7369SMITHCLERK RESEARCHDALLAS 7566JONESMANAGER RESEARCHDALLAS 7788SCOTTANALYST RESEARCHDALLAS 7876ADAMSCLERK RESEARCHDALLAS 7902FORDANALYST RESEARCHDALLAS 7499ALLENSALESMAN SALESCHICAGO 7521WARDSALESMAN SALESCHICAGO 7654MARTINSALESMAN SALESCHICAGO 7698BLAKEMANAGER SALESCHICAGO 7844 TURNE R SALESMAN SALESCHICAGO 7900JAMESCLERK SALESCHICAGO

Bogdan Shishedjiev SQL 19 All operators SELECT ename, job, dept.deptno, dname FROM emp, dept WHERE emp.deptno = dept.deptno AND job = 'CLERK'; /* Query22 */ SELECT ename, job, dept.deptno, dname FROM emp INNER JOIN dept ON emp.deptno = dept.deptno WHERE job = 'CLERK'; enamejobdeptnodname SMITHCLERK20RESEARCH ADAMSCLERK20RESEARCH JAMESCLERK30SALES MILLERCLERK10ACCOUNTING

Bogdan Shishedjiev SQL 20 Grouping SELECT deptno, MIN(sal), MAX (sal) FROM emp GROUP BY deptno; /* Query26 */ SELECT deptno, MIN(sal), MAX (sal)FROM emp WHERE job = 'CLERK' GROUP BY deptno; /* Query27 */ deptnoMinsalMaxsal deptno MinsalMaxsal

Bogdan Shishedjiev SQL 21 Grouping GROUP BY groups resulting rows by the identical values of some attributes and aggregate functions to be applied on each group. All attributes that are not parameters of an aggregate function MUST participate in grouping. Order of execution: –WHERE clause removes all rows that don’t satisfy the condition. –The grouping is accomplished and all aggregate values are calculated. –All groups that don’t satisfy the condition of HAVING clause are removed.

Bogdan Shishedjiev SQL 22 Grouping HAVING SELECT deptno, MIN(sal), MAX(sal) FROM emp GROUP BY deptno HAVING MAX(sal) >1200; /* Query28 */ SELECT deptno, MIN(sal), MAX(sal) FROM emp WHERE job = 'CLERK' GROUP BY deptno HAVING MIN(sal)<1000; /* Query29 */ deptno MinsalMaxsal deptno MinsalMaxsal

Bogdan Shishedjiev SQL 23 Ordering ORDER BY ORDER BY {ASC | DESC} SELECT ename, deptno, sal FROM emp ORDER BY deptno, sal DESC; /* Query30 */ enamedeptnosal KING CLARK MILLER FORD SCOTT JONES ADAMS SMITH20800 BLAKE ALLEN TURNER MARTIN WARD301250

Bogdan Shishedjiev SQL 24 Updating Insertion INSERT INTO table [(col1[,col2…])] VALUES(list of values); or : INSERT INTO table [(col1[,col2…])] VALUES SELECT... ; –Example : INSERT INTO Emp ( EMPNO, ENAME, JOB, HIREDATE, SAL, COMM, DEPTNO ) SELECT [EMPNO]+20 AS Expr5, ENAME, "CLERK" AS Expr2, #9/1/99# AS Expr4, 800 AS Expr3, COMM, 40 AS Expr1 FROM Emp WHERE DEPTNO=10;

Bogdan Shishedjiev SQL 25 Updating Update UPDATE table или view SET {column = expression | (list of columns)=(list of expressions)} [WHERE condition] ; –Example: UPDATE Emp SET Emp.SAL = [Sal]+100 WHERE DEPTNO=40; Delete DELETE FROM table [WHERE condition]; –Example: DELETE FROM emp WHERE DEPTNO=40;