basic sql statementschientt

Upload: thuy-ngan-luong

Post on 10-Apr-2018

224 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/8/2019 Basic SQL StatementsChienTT

    1/23

    Copyright 2006 FPT Software 1 FPT SOFTWARE TRAINING MATERIAL 04e-BM/DT/HDCV/FSOFT v2.2

    Author:oang Tuyet Nhung - QA G8

    Instructor: Tran Thanh Chien QA G2

    Basic SQL statementsBasic SQL statements

  • 8/8/2019 Basic SQL StatementsChienTT

    2/23

    Copyright 2006 FPT Software 2 FPT SOFTWARE TRAINING MATERIAL 04e-BM/DT/HDCV/FSOFT v2.2

    Purpose:

    Provide understanding and using SQL statements

    Targeted attendees:

    Testers

    SQA

    Estimated duration: 2hours

    Introduction

  • 8/8/2019 Basic SQL StatementsChienTT

    3/23

    Copyright 2006 FPT Software 3 FPT SOFTWARE TRAINING MATERIAL 04e-BM/DT/HDCV/FSOFT v2.2

    Afterthe course, studentwill be ableto:Know how touse SQLstatementsto query and manipulateinformation contained withinarelational database

    The basic components of a SELECT statement used to queryinformation held on a database

    Returningunique information using the DISTINCT clause.

    Sorting the information returned via the ORDER BY clause.

    Limiting the information returned by the WHERE clause.

    Manipulating data contained within the database using basicINSERT, UPDATE and DELETE statements.

    Objectives

  • 8/8/2019 Basic SQL StatementsChienTT

    4/23

    Copyright 2006 FPT Software 4 FPT SOFTWARE TRAINING MATERIAL 04e-BM/DT/HDCV/FSOFT v2.2

    Basic SQL statements

  • 8/8/2019 Basic SQL StatementsChienTT

    5/23

    Copyright 2006 FPT Software 5 FPT SOFTWARE TRAINING MATERIAL 04e-BM/DT/HDCV/FSOFT v2.2

    CREATE TABLE statement

    CREATETABLEtable_name(column1 data_type_for_column_1,column2 data_type_for_column_2,

    ... );

    Explanation:Createatable withnametable_name andhave column1, column2

  • 8/8/2019 Basic SQL StatementsChienTT

    6/23

    Copyright 2006 FPT Software 6 FPT SOFTWARE TRAINING MATERIAL 04e-BM/DT/HDCV/FSOFT v2.2

    Example: CREATE TABLE customer (First_Name char(50), Last_Name

    char(50),Address char(50), City char(50), Country char(25), DOB date);

    To specify a default value, add "Default [value]" after the data typedeclaration. In the above example, if we want to default column"Address" to "Unknown" and City to Hanoi", we would type in:

    CREATE TABLE customer (First_Name char(50), Last_Namechar(50),

    Address char(50) default 'Unknown', City char(50) default Hanoi',Country char(25), DOB date);

    CREATECREATE TABLE statementTABLE statement

  • 8/8/2019 Basic SQL StatementsChienTT

    7/23

    Copyright 2006 FPT Software 7 FPT SOFTWARE TRAINING MATERIAL 04e-BM/DT/HDCV/FSOFT v2.2

    SELECT statement

    SELECT column_listFROMtable_list; --thesimplest

    SELECT * FROM employee; -- listall rows with

    all fieldsintable SELECT col1, col2, col3 FROM employee; -- listall rows with 3 fieldsfromtable

  • 8/8/2019 Basic SQL StatementsChienTT

    8/23

    Copyright 2006 FPT Software 8 FPT SOFTWARE TRAINING MATERIAL 04e-BM/DT/HDCV/FSOFT v2.2

    Comparison

    SE

    LEC

    T column-listFROM table_list

    [WHERE condition]; --Comparison Operators: =,!=,,=

    Example:

    SELECT empno,surname

    FROM employeeWHERE depno= 3;

    SELECT forenames,surname

    FROM employee

    WHERE dob> 2-jan-1958;

  • 8/8/2019 Basic SQL StatementsChienTT

    9/23

    Copyright 2006 FPT Software 9 FPT SOFTWARE TRAINING MATERIAL 04e-BM/DT/HDCV/FSOFT v2.2

    SELECT with BEWEEN

    SELECT empno, surname, forenames, dob

    FROM employee

    WHERE dob BETWEEN 30-jun-1954 AND 1-jan-1959;

    Note that the BETWEEN predic ate is inclusive. The above conditionis equivalent to:

    WHERE dob>= 30-jun-1954 AND

  • 8/8/2019 Basic SQL StatementsChienTT

    10/23

    Copyright 2006 FPT Software 10 FPT SOFTWARE TRAINING MATERIAL 04e-BM/DT/HDCV/FSOFT v2.2

    Pattern matching

    Simple pattern matching is carried out using LIKE

    LIKE pattern-to-matchWhere the pattern can include special wildcard

    characters:

    % 0 or more arbitrary characters_ any one character

    Example:

    SELECT forenames, surname, address

    FROM employee

    WHERE address LIKE %Edinburgh%;

  • 8/8/2019 Basic SQL StatementsChienTT

    11/23

    Copyright 2006 FPT Software 11 FPT SOFTWARE TRAINING MATERIAL 04e-BM/DT/HDCV/FSOFT v2.2

    ORDER and DISTINCT

  • 8/8/2019 Basic SQL StatementsChienTT

    12/23

    Copyright 2006 FPT Software 12 FPT SOFTWARE TRAINING MATERIAL 04e-BM/DT/HDCV/FSOFT v2.2

    A SELECT query can be used within another SELECT condition and isthen known as a subquery

    A subquery can return onlyone attribute having zeroor more values

    The use of a view mayprovide a simpler queryformat than usingtechniques such as self-joins

    Operations with subquery: >, =, ( Select dob

    From employee

    Where forename=Viet and surname =Anh)

    Subqueries

  • 8/8/2019 Basic SQL StatementsChienTT

    13/23

    Copyright 2006 FPT Software 13 FPT SOFTWARE TRAINING MATERIAL 04e-BM/DT/HDCV/FSOFT v2.2

    Example 2: List the names and employee numbers of all those whohave never been on a training course:

    SELECT empno,forenames,surname

    FROM employee

    WHERE empno NOT IN

    (SELECT DISTINCT empnoFROM empcourse);

    Example3: List the numberof each employee in departments HCD orFAF, plus employees who join course Test pool:

    (SELECT empno

    FROM employee

    WHERE depname IN (HCD,FAF)) UNION (SELECT empno FROM course, empcourse

    WHERE course.courseno=empcourse.courseno

    AND course.cname like %Test Pool%)

    Subqueries (cont)

  • 8/8/2019 Basic SQL StatementsChienTT

    14/23

    Copyright 2006 FPT Software 14 FPT SOFTWARE TRAINING MATERIAL 04e-BM/DT/HDCV/FSOFT v2.2

    INSERT INTO table_name [(column list)]

    VALUES (value list)

    The column_list can be omited if every columns is to be assigned avalue, otherwise it must list columns to be assigned values.

    The value_list is a set of literal values giving the value of eachcolumn in the same order as the column_list, if specified, or as thecolumns are defined in the original CREATE TABLE.

    Example:

    INSERT INTO course

    Values (11,Advanced Accounting,10-jan-2000);

    INSERT INTO course (courseno, cname)

    Values(13,Advanced Administration);

    INSERT

  • 8/8/2019 Basic SQL StatementsChienTT

    15/23

    Copyright 2006 FPT Software 15 FPT SOFTWARE TRAINING MATERIAL 04e-BM/DT/HDCV/FSOFT v2.2

    DELETE FROM table_name

    [WHERE condition];

    Explanation: the rows of table_namewhich satifythe condition aredeleted.

    Example:

    DELETE FROM employee; -- delete all rows in employee table, leavingan empty table

    DELETE FROM employee WHERE dob>10/07/2000 deleteemployee that have date of birth after 10/7/2000.

    DROP table_name;

    DROP employee; --remove employee table completely

    DELETE/DROP

  • 8/8/2019 Basic SQL StatementsChienTT

    16/23

    Copyright 2006 FPT Software 16 FPT SOFTWARE TRAINING MATERIAL 04e-BM/DT/HDCV/FSOFT v2.2

    UPDATE table_name

    SET column_name(s) = expression(s) [WHERE condition];

    The expression can be

    NULL

    A literal value

    An expression based upon the current column value

    Example: Give a salaryrise of 10% to all testers

    UPDATE Salary

    SET empsal =empsal *1.10

    WHEREposition LIKE %TESTER%

    UPDATE

  • 8/8/2019 Basic SQL StatementsChienTT

    17/23

    Copyright 2006 FPT Software 17 FPT SOFTWARE TRAINING MATERIAL 04e-BM/DT/HDCV/FSOFT v2.2

    Create a DB with name Pool12 have 3tables as description inscript.txtfile

    Practise:

    1. List all students of Tin1class

    2. List out student have highest mark of

    Tin1class3. Count all students of IT faculty

    4. Count students of each class

    5. Add student(s) into DB

    6. Update student marks: if mark

  • 8/8/2019 Basic SQL StatementsChienTT

    18/23

    Copyright 2006 FPT Software 18 FPT SOFTWARE TRAINING MATERIAL 04e-BM/DT/HDCV/FSOFT v2.2

    SQL Command

    SQL SELECT

    SQL DISTINCT

    SQL WHERE

    SQL AND OR

    SQL INSQL BETWEEN

    SQL LIKE

    SQL ORDER BY

    SQL Functions

    SQL COUNT

    SQL GROUP BYSQL HAVING

    SQL ALIAS

    SQL JOIN

    SQL OUTER JOIN

    SQL CONCATENATE

    SQL SUBSTRINGSQL TRIM

    Table Manipulation

    SQL CREATE TABLE

    SQL CONSTRAINTSQL PRIMARY KEY

    SQL FOREIGN KEY

    SQL CREATE VIEW

    SQL CREATE INDEX

    SQL ALTER TABLE

    SQL DROP TABLESQL TRUNCATE TABLE

    SQL INSERT INTO

    SQL UPDATE

    SQL DELETE FROM

    SQL Command & Table Manipulation

    c1

    c2

    c3c4

  • 8/8/2019 Basic SQL StatementsChienTT

    19/23

    Slide 18

    c1 - AVG- COUNT

    - MAX

    - MIN- SUMchientt, 10/2/2007

    c2 MySQL:CONCAT()

    Oracle:CONCAT(), ||

    SQLServer: +chientt, 10/2/2007

    c3 MySQL:SUBSTR(), SUBSTRING()

    Oracle:SUBSTR()

    SQLServer:SUBSTRING()chientt, 10/2/2007

    c4 MySQL:TRIM(), RTRIM(), LTRIM()

    Oracle:RTRIM(), LTRIM()SQLServer:RTRIM(), LTRIM()

    TRIM([[LOCATION][remstr] FROM]str):[LOCATION] can be eitherLEADING, TRAILING, orBOTH. Thisfunction getsridofthe[remstr]patternfrom eitherthe beginningofthestringorthe endofthestring, or both. Ifno[remstr]isspecified, whitespacesare

    removed.

    LTRIM(str):Removesall whitespacesfromthe beginningofthestring.

    RTRIM(str):Removesall whitespacesatthe endofthestring.chientt, 10/2/2007

  • 8/8/2019 Basic SQL StatementsChienTT

    20/23

    Copyright 2006 FPT Software 19 FPT SOFTWARE TRAINING MATERIAL 04e-BM/DT/HDCV/FSOFT v2.2

    SQL UNION

    SQL UNION ALL

    SQL INTERSECTSQL MINUS

    SQL Subquery

    SQL EXISTSSQL CASE

    SQL Advance

    c5

    c6

    c7

  • 8/8/2019 Basic SQL StatementsChienTT

    21/23

    Slide 19

    c5 ThepurposeoftheSQLUNION commandisto combinetheresultsoftwo queriestogether. Inthisrespect, UNIONissomewhat

    similarto JOINinthatthey are bothusedtorelatedinformationfrommultipletables. OnerestrictionofUNIONisthatall

    corresponding columnsneedto beofthesamedatatype. Also, whenusingUNION, only distinctvaluesareselectedchientt, 10/2/2007

    c6 ThepurposeoftheSQLUNIONALL commandisalsoto combinetheresultsoftwo queriestogether. Thedifference betweenUNIONALLandUNIONisthat, whileUNIONonly selectsdistinctvalues, UNIONALLselectsall values.

    ThesyntaxforUNIONALLisasfollows:[SQLStatement1]UNIONALL[SQLStatement2]chientt, 10/2/2007

    c7 SimilartotheUNION command, INTERSECTalsooperatesontwoSQLstatements. Thedifferenceisthat, whileUNION essentially

    actsasanORoperator(valueisselectedifitappearsin eitherthefirstorthesecondstatement), theINTERSECT commandactsasanANDoperator(valueisselectedonly ifitappearsin bothstatements).Thesyntaxisasfollows:[SQLStatement1]

    INTERSECT

    [SQLStatement2]chientt, 10/2/2007

  • 8/8/2019 Basic SQL StatementsChienTT

    22/23

    Copyright 2006 FPT Software 20 FPT SOFTWARE TRAINING MATERIAL 04e-BM/DT/HDCV/FSOFT v2.2

    Table & Relationship

  • 8/8/2019 Basic SQL StatementsChienTT

    23/23

    Copyright 2006 FPT Software 21 FPT SOFTWARE TRAINING MATERIAL 04e-BM/DT/HDCV/FSOFT v2.2

    QuestionsandAnswersQuestionsandAnswers