© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 Fresher Training Program Relational Database Management System Nguyen Minh.

Slides:



Advertisements
Similar presentations
SQL Rohit Khokher.
Advertisements

Database Languages Chapter 7. The Relational Algebra.
TURKISH STATISTICAL INSTITUTE 1 /34 SQL FUNDEMANTALS (Muscat, Oman)
Virtual training week 4 structured query language (SQL)
Copyright © by Royal Institute of Information Technology Introduction To Structured Query Language (SQL) 1.
Introduction to Structured Query Language (SQL)
Introduction to Structured Query Language (SQL)
Fundamentals, Design, and Implementation, 9/e Chapter 6 Introduction to Structured Query Language (SQL)
Structured Query Language Part I Chapter Three CIS 218.
Structured Query Language Chapter Three (Excerpts) DAVID M. KROENKE’S DATABASE CONCEPTS, 2 nd Edition.
Introduction to Structured Query Language (SQL)
Structured Query Language Chapter Three DAVID M. KROENKE’S DATABASE CONCEPTS, 2 nd Edition.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 7 Introduction to Structured Query Language (SQL)
DATABASES AND SQL. Introduction Relation: Relation means table(data is arranged in rows and columns) Domain : A domain is a pool of values appearing in.
Objectives After completing this lesson, you should be able to do the following: Define subqueries Describe the types of problems that the subqueries.
SQL Basics. SQL SQL (Structured Query Language) is a special-purpose programming language designed from managing data in relational database management.
Introduction to SQL J.-S. Chou Assistant Professor.
CPS120: Introduction to Computer Science Information Systems: Database Management Nell Dale John Lewis.
Structured Query Language Chapter Three DAVID M. KROENKE and DAVID J. AUER DATABASE CONCEPTS, 4 th Edition.
 SQL stands for Structured Query Language.  SQL lets you access and manipulate databases.  SQL is an ANSI (American National Standards Institute) standard.
HAP 709 – Healthcare Databases SQL Data Manipulation Language (DML) Updated Fall, 2009.
Copyright © 2004, Oracle. All rights reserved. Lecture 6 Displaying Data from Multiple Tables ORACLE.
Oracle Database Administration Lecture 2 SQL language.
SQL: Data Manipulation Presented by Mary Choi For CS157B Dr. Sin Min Lee.
CPS120: Introduction to Computer Science Lecture 19 Introduction to SQL.
SQL (DDL & DML Commands)
Structure Query Language SQL. Database Terminology Employee ID 3 3 Last name Small First name Tony 5 5 Smith James
SQL SQL Server : Overview SQL : Overview Types of SQL Database : Creation Tables : Creation & Manipulation Data : Creation & Manipulation Data : Retrieving.
Using Special Operators (LIKE and IN)
7 1 Chapter 7 Introduction to Structured Query Language (SQL) Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
Nitin Singh/AAO RTI ALLAHABAD 1 SQL Nitin Singh/AAO RTI ALLAHABAD 2 OBJECTIVES §What is SQL? §Types of SQL commands and their function §Query §Index.
Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. KroenkeChapter 6/1 Copyright © 2004 Please……. No Food Or Drink in the class.
Join, Subqueries and set operators. Obtaining Data from Multiple Tables EMPLOYEES DEPARTMENTS … …
6 1 Lecture 8: Introduction to Structured Query Language (SQL) J. S. Chou, P.E., Ph.D.
BIS Database Systems School of Management, Business Information Systems, Assumption University A.Thanop Somprasong Chapter # 7 Introduction to Structured.
Topic 1: Introduction to SQL. SQL stands for Structured Query Language. SQL is a standard computer language for accessing and manipulating databases SQL.
Database Systems Design, Implementation, and Management Coronel | Morris 11e ©2015 Cengage Learning. All Rights Reserved. May not be scanned, copied or.
SQL Basics. What is SQL? SQL stands for Structured Query Language. SQL lets you access and manipulate databases.
Nikolay Kostov Telerik Corporation
Intermediate SQL: Aggregated Data, Joins and Set Operators.
Database Lab Lecture 1. Database Languages Data definition language ( DDL ) Data definition language –defines data types and the relationships among them.
Database Fundamental & Design by A.Surasit Samaisut Copyrights : All Rights Reserved.
1 SQL SQL (Structured Query Language) : is a database language that is used to create, modify and update database design and data. Good Example of DBMS’s.
AL-MAAREFA COLLEGE FOR SCIENCE AND TECHNOLOGY INFO 232: DATABASE SYSTEMS CHAPTER 7 (Part II) INTRODUCTION TO STRUCTURED QUERY LANGUAGE (SQL) Instructor.
Concepts of Database Management Seventh Edition Chapter 3 The Relational Model 2: SQL.
1/18/00CSE 711 data mining1 What is SQL? Query language for structural databases (esp. RDB) Structured Query Language Originated from Sequel 2 by Chamberlin.
CMPT 258 Database Systems The Relationship Model (Chapter 3)
An Introduction to SQL For CS Overview of SQL  It is the standard language for relational systems, although imperfect  Supports data definition.
© 2002 by Prentice Hall 1 Structured Query Language David M. Kroenke Database Concepts 1e Chapter 3 3.
A Guide to SQL, Eighth Edition Chapter Four Single-Table Queries.
Relational Database Management System(RDBMS) Structured Query Language(SQL)
Oracle & SQL. Oracle Data Types Character Data Types: Char(2) Varchar (20) Clob: large character string as long as 4GB Bolb and bfile: large amount of.
Introduction to Database SEM I, AY Department of Information Technology Salalah College of Technology Chapter No.3 SQL.
7 1 Database Systems: Design, Implementation, & Management, 7 th Edition, Rob & Coronel 7.6 Advanced Select Queries SQL provides useful functions that.
SQL: Structured Query Language It enables to create and operate on relational databases, which are sets of related information stored in tables. It is.
LM 5 Introduction to SQL MISM 4135 Instructor: Dr. Lei Li.
 CONACT UC:  Magnific training   
1 Introduction to Database Systems, CS420 SQL JOIN, Group-by and Sub-query Clauses.
SQL SQL Ayshah I. Almugahwi Maryam J. Alkhalifa
Fundamentals of DBMS Notes-1.
SQL Query Getting to the data ……..
Relational Database Design
Quiz Questions Q.1 An entity set that does not have sufficient attributes to form a primary key is a (A) strong entity set. (B) weak entity set. (C) simple.
Using the Set Operators
Using the Set Operators
Database systems Lecture 3 – SQL + CRUD
Introduction To Structured Query Language (SQL)
Contents Preface I Introduction Lesson Objectives I-2
Using the Set Operators
Introduction to SQL Server and the Structure Query Language
Presentation transcript:

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 Fresher Training Program Relational Database Management System Nguyen Minh Tien

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 Contents  DDL statements  DML statements

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 Learning approach  The following are strongly suggested for a better learning and understanding of this course: Noting down the key concepts in the class Analyze all the examples / code snippets provided Study and understand the self study topics Completion and submission of all the assignments, on time Completion of the self review questions in the lab guide Study and understand all the artifacts including the reference materials / e-learning / supplementary materials specified Completion of the project (if application for this course) on time inclusive of individual and group activities Taking part in the self assessment activities Participation in the doubt clearing sessions

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 SQL – Structure Query Language  SQL is a language that all commercial RDBMS implementations understand.  SQL is a non-procedural language

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 Data Types  String data  CHAR(n) – string type with fixed length include n characters (maximum 2000 bytes).  VARCHAR2(n) – string type with changeable length include n characters (maximum 4000 bytes).  LONG – string with changeable length, maximum 4GB (only one column in a table).  Numeric data  NUMBER(p,q) – kiểu số có p ký số và q số lẻ.  INTEGER(p) – kiểu số nguyên có p ký số.  Date-time data  DATE – datetime type with fixed length in dd-mm-yy format

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 Constants/Literals  ANSI standard defines format for literals  Numeric: 21, -32, $0.75,1.2E4  String: enclosed within ‘ …’  Date : 12-mar-03*

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 Comparision Conditions OperatorMeaning =Equal to >Greater than >=Greater than or equal to <Less than <=Less than or equal to <>Not equal to BETWEEN …AND…Between two values (inclusive) IN (set)Match any of a list of values LIKEMatch a character pattern IS NULLIs a null value

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 Logical Conditions OperatorMeaning ANDReturns TRUE if both component conditions are true ORReturns TRUE if either component condition is true NOTReturns TRUE if the following condition is false

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 NULL  Missing/unknown/inapplicable data represented as a null value  NULL is not a data value. It is just an indicator that the value is unknown

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 Statements  DDL: Data definition language (CREATE, ALTER, DROP, TRUNCATE)  DML: Data manipulation language (SELECT, INSERT, UPDATE, DELETE)  DCL: Data control language (COMMIT, ROLLBACK, SET TRANSACTION, GRANT, REVOKE)

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 SQL – DDL Data Definition Language

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 CREATE TABLE  CREATE TABLE used to create structure of table.  Syntax: CREATE TABLE (, … [ ]);

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 CREATE TABLE  Steps of creating a table  Step 1. Define data column.  Step 2. Column may contain NULL value??.  Step 3. Define columns has unique data (candidate key).  Step 4. Define primay key – foreign key.  Step 5. Define default values.  Step 6. Define constraint.  Step 7. Create table & index.

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 CREATE TABLE – CHECK constraint  CHECK constraint: used to specify constraint conditions to data. Whenever data changed (INSERT, UPDATE), these constraints are used to verify regular data.  Syntax: [CONSTRAINT tên_ràng_buộc] CHECK ( đ iều_kiện)

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 CREATE TABLE – PRIMARY constraint  PRIMARY constraint: used to specify primary key of table.  Syntax: [CONSTRAINT tên_ràng_buộc] PRIMARY KEY [(danh_sách_cột)]

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 CREATE TABLE – UNIQUE constraint  UNIQUE constraint: used to define candidate keys for the table.  Syntax: [CONSTRAINT tên_ràng_buộc] UNIQUE [(danh_sách_cột)]

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 CREATE TABLE – FOREIGN  FOREIGN constraint: used to define relationships between tables in the database.  Syntax: [CONSTRAINT tên_ràng_buộc] FOREIGN KEY [(danh_sách_cột)] REFERENCES tên_bảng_tham_chiếu(danh_sách_cột_tham_chiếu) [ON DELETE CASCADE | NO ACTION | SET NULL | SET DEFAULT] [ON UPDATE CASCADE | NO ACTION | SET NULL | SET DEFAULT]

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 CREATE TABLE - Exp CREATE TABLE lop ( malop NVARCHAR(10) NOT NULL, tenlop NVARCHAR(30) NOT NULL, khoa SMALLINT NULL, hedaotao NVARCHAR(25) NULL, namnhaphoc INT NULL, makhoa NVARCHAR(5), CONSTRAINT pk_lop PRIMARY KEY (malop), CONSTRAINT unique_lop_tenlop UNIQUE(tenlop) )

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 ALTER TABLE  ALTER TABLE ALTER TABLE is used to change table structure: add/remove/update/change columns and constraints Syntax: ALTER TABLE ALTER COLUMN [ ]| ADD [ ] | DROP COLUMN [ ] With table name should be changed change column column name need to add, change or remove date type changed to column. ADD add new column to table. DROP COLUMN remove column from table.

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 ALTER TABLE - Exp CREATE TABLE nhanvien ( manv NVARCHAR(10) NOT NULL, hoten NVARCHAR(30) NOT NULL, ngaysinh DATETIME, diachi CHAR(30) NOT NULL ) ALTER TABLE nhanvien ADD dienthoai NVARCHAR(6) CONSTRAINT chk_nhanvien_dienthoai CHECK (dienthoai LIKE '[0-9][0-9][0-9][0-9][0-9][0-9]')

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 DROP TABLE  DROP TABLE DROP TABLE statement is used to delete a table from DB, all relevant objects are removed: indexes, Triggers, Constraints. Syntax: With, table name removed DROP TABLE

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 DROP TABLE - Exp  Remove constraint firstly ALTER TABLE nhanvien DROP CONSTRAINT fk_nhanvien_madv  Remove table: DROP TABLE donvi

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 SQL – DML Data Manipulation Language

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 Data Manipulation Language - DML  DML includes the following statements: SELECT, INSERT, UPDATE, DELETE, used to manipulate data in the database.  DML’s statements: SELECT statement INSERT statement UPDATE statement DELETE statement

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 INSERT  Syntax: INSERT INTO tablename VALUES (value list) Exp:  Single-row insert INSERT INTO Sinhvien VALUES(‘SV3’,’SUP3’,’BLORE’,10)  Inserting one row, many columns at a time INSERT INTO Sinhvien (MaSV, Hoten) VALUES (‘SV3’, ‘Smith’);  Inserting many rows, all/some columns at a time. INSERT INTO luusinhvien SELECT hodem,ten,ngaysinh FROM sinhvien WHERE noisinh like ‘%Huế%’

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 Specify column name in INSERT  Must specify column’s name in INSERT statement  INSERT INTO Table_A (Col1, Col2, Col3) VALUES (‘1’, ‘2’, ‘3’)

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 UPDATE  Syntax: UPDATE tablename SET column_name =value [ WHERE condition]  Exp: UPDATE S SET CITY = ‘KANPUR’ WHERE SNO=‘S1’ UPDATE EMP SET SAL = 1.10 * SAL

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 Use CASE in UPDATE statement UPDATE nhatkyphong SET tienphong=songay*CASE WHEN loaiphong='A' THEN 100 WHEN loaiphong='B' THEN 70 ELSE 50 END

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 UPDATE data from tables UPDATE nhatkybanhang SET thanhtien = soluong*gia FROM mathang WHERE mathang.mahang =(SELECT mathang.mahang FROM mathang WHERE mathang.mahang = nhatkybanhang.mahang)

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 DELETE  Syntax: DELETE FROM tablename WHERE condition Exp:  DELETE FROM SP WHERE PNO= ‘P1’  DELETE FROM SP

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 Use sub-query in DELETE DELETE FROM sinhvien FROM lop WHERE lop.malop=sinhvien.malop AND tenlop='Tin K24' DELETE FROM lop WHERE malop NOT IN (SELECT DISTINCT malop FROM sinhvien)

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 Delete all data DELETE FROM diemthi Or TRUNCATE TABLE diemthi

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 SELECT  Syntax: SELECT [ALL/DISTINCT],, … FROM [WHERE ] [GROUP BY grouping columns] [HAVING search condition] [ORDER BY sort specification] Exp: SELECT SNAME, CITY FROM S

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 Change column title SELECT 'Mã lớp'= malop,tenlop 'Tên lớp', khoa AS 'Khoá' FROM lop

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 Use CASE structure in SELECT  Syntax: CASE biểu_thức WHEN biểu_thức_kiểm_tra THEN kết_quả [... ] [ELSE kết_quả_của_else] END SELECT masv,hodem,ten, CASE gioitinh WHEN 1 THEN 'Nam' ELSE 'Nữ' END AS gioitinh FROM sinhvien

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 Using constant & Expression SELECT tenmonhoc,'Số tiết: ',sodvht*15 AS sotiet FROM monhoc

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 DISTINCT & TOP  SELECT DISTINCT khoa FROM lop  SELECT TOP 5 hodem,ten,ngaysinh FROM sinhvien  SELECT TOP 10 PERCENT hodem,ten,ngaysinh FROM sinhvien

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 IN and NOT IN SELECT * FROM monhoc WHERE sodvht=2 OR sodvht=4 OR sodvht=5 May be replaced by: trong-sql-server SELECT * FROM monhoc WHERE sodvht IN (2,4,5)

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 LIKE and NOT LIKE WildcardDescriptionExample _ Nó sẽ hiển thị một ký tự đơn.SELECT * FROM Person.Contact WHERE Suffix LIKE ‘Jr_’ % Nó sẽ hiển thị một chuổi với chiều dài bất kỳ. SELECT * FROM Person.ContactWHERE LastName LIKE ‘B%’ [ ] Nó sẽ hiển thị một ký tự đơn trong phạm vi khoảng được bao đóng trong cặp ngoặc vuông SELECT * FROM Sales.CurrencyRate WHERE ToCurrencyCode LIKE ‘C[AN][DY]’ [^] Sẽ hiển thị bất kỳ ký tự đơn nào không có trong khoảng của cặp ngoặc vuông. SELECT * FROM Sales.CurrencyRate WHERE ToCurrencyCode LIKE ‘A[^R][^S]’

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 LIKE and NOT LIKE SELECT hodem,ten FROM sinhvien WHERE hodem LIKE 'Lê%' AND ten LIKE '[AB]%'

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 Create new table from SELECT SELECT hodem,ten,YEAR(GETDATE())- YEAR(ngaysinh) AS tuoi INTO tuoisv FROM sinhvien

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 Specify data existing in a table  Do not use COUNT(*) to specify a table has data or not: SELECT COUNT(*) FROM Table_A  Must use: SELECT TOP 1 FROM Table_A

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 Sorting  Syntax: SELECT COL1,COL2, FROM TABLE_NAME WHERE ORDER BY COL-NAME [DESC] Example: SELECT CITY,COLOR,WEIGHT FROM P WHEREWEIGHT IN (12,17) ORDER BY 1 DESC, 2

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 UNION  UNION is used to add data from many tables into one table  Syntax: UNION [ALL] Câu_lệnh_2 [UNION [ALL] Câu_lệnh_3]... [UNION [ALL] Câu_lệnh_n] [ORDER BY cột_sắp_xếp] [COMPUTE danh_sách_hàm_gộp [BY danh_sách_cột]]

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 INTERSECT  INTERSECT operator return all rows that are common to multiple queries  The number of columns and the data types of the columns in the queries must be identical in all the SELECT statements used in the query.  Reversing the order of the intersected tables does not alter the result  INTERSECT does not ignore NULL values

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 INTERSECT  Display the employee IDs and job IDs of those employees who currently have a job title that is the same as their job title when they were initially hired (that is, they changed jobs but have now gone back to doing their original job) SELECT employee_id, job_id FROM employees INTERSECT SELECT employee_id, job_id FROM job_history;

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 MINUS  MINUS operator returns rows returned by the first query that are not present in the second query  The number of columns and the data types of the columns being selected by the SELECT statements in the queries must be identical in all the SELECT statements used in the query.  All of the columns in the WHERE clause must be in the SELECT clause for the MINUS operator to work

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 MINUS  Display the employee IDs of those employees who have not changed their jobs even once SELECT employee_id, job_id FROM employees MINUS SELECT employee_id, job_id FROM job_history;

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 JOIN  Inner join  Cross join  Outer join Left-outer join Right-outer join  Self join

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 INNER JOIN  Common type of join  Combines records from two tables with matching values on a column.  Example: SELECT hodem,ten,ngaysinh FROM sinhvien INNER JOIN lop ON sinhvien.malop=lop.malop WHERE tenlop='Tin K24'

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 OUTER JOIN  LEFT OUTER JOIN: SELECT e.last_name, e.department_id, d.department_name FROM employees e LEFT OUTER JOIN departments d ON (e.department_id=d.department_id);  This query retrieves all rows in the EMPLOYEES table, which is left table even if there is no match in the DEPARTMENTS table

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 OUTER JOIN  RIGHT OUTER JOIN SELECT e.last_name, d.department_name FROM employees e RIGHT OUTER JOIN departments d ON e.department_id=d.department_id;  This query retrieves all rows in the DEPARTMENTS table, which is the right table even if there is no match in the EMPLOYEES table

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 OUTER JOIN (3)  FULL OUTER JOIN: SELECT e.last_name, d.department_id, d.department_name FROM employees e FULL OUTER JOIN departments d ON (e.department_id=d.department_id);  This query retrieves all rows in the EMPLOYEES table, even if there is no match in the DEPARTMENTS table. It also retrieves all rows in the DEPARTMENTS table, even if there is no match in the EMPLOYEES table

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 SELF JOIN SELECT FIRST.SNO, SECOND.SNO FROM S FIRST, S SECOND WHERE FIRST.CITY=SECOND.CITY Get all pairs of SNO who are co-located

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 CROSS JOIN  A join without any conditions is called a Cartesian product  It will be a collection of all possible combinations of rows from the tables involved  Practically of little use  Just included for conceptual completeness  Example: SELECT Hocvien.MaHV, Lop.Malop FROM Hocvien H, Lop P;

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 Aggregate functions  Used when information you want to extract from a table has to do with the data in the entire table taken as a set.  Aggregate functions are used in place of column names in the SELECT statement  The aggregate functions in SQL are: SUM(), AVG(), MAX(), MIN(), COUNT()

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 Types Of Group function FunctionDescription AVG([DISTINCT|ALL]n)Average value of n, ignoring null values COUNT({*|[DISTINCT|ALL]expr})Number of rows, where expr evaluates to something other than null (count all selected rows using *, including duplicate and rows with nulls) MAX ([DISTINCT|ALL]expr)Maximum value of expr, ignoring null values MIN([DISTINCT|ALL]expr)Minimum value of expr, ignoring null values SUM([DISTINCT|ALL]n)Sum values of n, ignoring null values

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 SUM function  Adds up the values in the specified column  Column must be numeric data type  Value of the sum must be within the range of that data type  Example: SELECT SUM (QTY) FROM SP WHERE PNO=‘P2’

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 AVG function  Returns the average of all the values in the specified column  Column must be numeric data type  Example: SELECT AVG(QTY) FROM SP WHERE SNO=‘S1’

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 MAX function  Returns the largest value that occurs in the specified column  Column need not be numeric type  Example: SELECT MAX(QTY) FROM SP WHERE SNO =‘S1’

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 MIN function  Returns the smallest value that occurs in the specified column  Column need not be numeric type  Example: SELECT MIN(QTY) FROM SP WHERE SNO=‘S1’

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 COUNT function  Returns the number of rows in the table  Example: SELECT COUNT(*) FROM S

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 GROUP BY  Related rows can be grouped together by GROUP BY clause by specifying a column as a grouping column.  GROUP BY is associated with an aggregate function  Example: For each part supplied get the part number and the total shipment quantity  Example: SELECT PNO, SUM(QTY) FROM SP GROUP BY PNO

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 HAVING  Used to specify condition on group  Example: SELECT SNO, COUNT(*) FROM SP GROUP BY SNO HAVING COUNT(*)>=2

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 Independent sub-queries  Inner query is independent of outer query.  Inner query is executed first and the results are stored.  Outer query then runs on the stored results.

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 Using sub-queries SELECT SNAME FROM S WHERE SNO IN (SELECT SNO FROM SP WHERE PNO =‘P2’)

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 Using sub-queries (2) SELECT SNO FROM S WHERE STATUS < (SELECT STATUS FROM S WHERE SNO=‘S1’)

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 Using sub-queries (3) SELECT SNO FROM S WHERE STATUS < (SELECT MAX(STATUS) FROM S)

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 Using sub-queries (4) SELECT DISTINCT SNO FROM SPJ X WHERE PNO=‘P1’ AND QTY> (SELECT AVG(QTY) FROM SPJ Y WHERE PNO=‘P1’ AND X.JNO=Y.JNO)

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 EXIST and NOT EXIST  Used in sub-query SELECT hodem,ten FROM sinhvien JOIN lop on sinhvien.malop=lop.malop WHERE tenlop='Tin K25' AND year(ngaysinh)IN(SELECT year(ngaysinh) FROM sinhvien JOIN lop ON sinhvien.malop=lop.malop WHERE lop.tenlop='Toán K25') SELECT hodem,ten FROM sinhvien WHERE NOT EXISTS(SELECT masv FROM diemthi WHERE diemthi.masv=sinhvien.masv)

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/4 Q & A