7271029 SQL Tutorial

Embed Size (px)

Citation preview

  • 8/13/2019 7271029 SQL Tutorial

    1/31

    SQL Tutorial

    SQL TutorialSQL is a standard computer language for accessing andmanipulating databases.

    In this tutorial you will learn how to use SQL to access andmanipulate data in Oracle, Sybase, SQL Server, D !, "ccess, andother database systems.

    Introduction to SQL

    SQL is a standard computer language for accessing and manipulating databases.

    #hat is SQL$

    SQL stands for S tructured Q uery Language SQL allows you to access a database SQL is an ANSI standard computer language SQL can execute queries against a database SQL can retrieve data from a database SQL can insert new records in a database SQL can delete records from a database SQL can update records in a database SQL is easy to learn

    SQL is a Standard % &T....

    SQL is an ANSI (American National Standards Institute) standard computer language for accessingand manipulating database systems SQL statements are used to retrieve and update data in adatabase SQL wor!s wit" database programs li!e #S Access$ %&'$ Informix$ #S SQL Server$

    racle$ Sybase$ etc

    nfortunately$ t"ere are many different versions of t"e SQL language$ but to be in compliance wit"t"e ANSI standard$ t"ey must support t"e same ma*or !eywords in a similar manner (suc" asS+L+,-$ .%A-+$ %+L+-+$ INS+/-$ 01+/+$ and ot"ers)

    'ote( #ost of t"e SQL database programs also "ave t"eir own proprietary extensions in addition tot"e SQL standard2

    SQL Database Tables

    A database most often contains one or more tables +ac" table is identified by a name (e g3,ustomers3 or 3 rders3) -ables contain records (rows) wit" data

    &elow is an example of a table called 3.ersons34

  • 8/13/2019 7271029 SQL Tutorial

    2/31

    Last'ame )irst'ame "ddress *ity1ansen la -imoteivn 56 SandnesSvendson -ove &orgvn '7 Sandnes.ettersen 8ari Storgt '6 Stavanger

    -"e table above contains t"ree records (one for eac" person) and four columns (LastName$9irstName$ Address$ and ,ity)

    SQL Queries

    0it" SQL$ we can query a database and "ave a result set returned

    A query li!e t"is4

    SELECT LastName FROM Persons

    :ives a result set li!e t"is4

    Last'ame1ansenSvendson.ettersen

    'ote 4 Some database systems require a semicolon at t"e end of t"e SQL statement 0e don;t uset"e semicolon in our tutorials

    SQL Data +anipulation Language D+L-

    SQL (Structured Query Language) is a syntax for executing queries &ut t"e SQL language alsoincludes a syntax to update$ insert$ and delete records

    -"ese query and update commands toget"er form t"e %ata #anipulation Language (%#L) part ofSQL4

    S L *T < extracts data from a database table &/D"T < updates data in a database table D L T < deletes data from a database table I'S 0T I'TO < inserts new data into a database table

    SQL Data Definition Language DDL-

    -"e %ata %efinition Language (%%L) part of SQL permits database tables to be created or deleted0e can also define indexes (!eys)$ specify lin!s between tables$ and impose constraints betweendatabase tables

    -"e most important %%L statements in SQL are4

    *0 "T T" L < creates a new database table "LT 0 T" L < alters (c"anges) a database table

  • 8/13/2019 7271029 SQL Tutorial

    3/31

    D0O/ T" L < deletes a database table *0 "T I'D 1 < creates an index (searc" !ey) D0O/ I'D 1 < deletes an index

    Introduction to SQL

    SQL is a standard computer language for accessing and manipulating databases.

    #hat is SQL$

    SQL stands for S tructured Q uery Language SQL allows you to access a database SQL is an ANSI standard computer language SQL can execute queries against a database SQL can retrieve data from a database SQL can insert new records in a database SQL can delete records from a database SQL can update records in a database SQL is easy to learn

    SQL is a Standard % &T....

    SQL is an ANSI (American National Standards Institute) standard computer language for accessingand manipulating database systems SQL statements are used to retrieve and update data in adatabase SQL wor!s wit" database programs li!e #S Access$ %&'$ Informix$ #S SQL Server$

    racle$ Sybase$ etc

    nfortunately$ t"ere are many different versions of t"e SQL language$ but to be in compliance wit"t"e ANSI standard$ t"ey must support t"e same ma*or !eywords in a similar manner (suc" asS+L+,-$ .%A-+$ %+L+-+$ INS+/-$ 01+/+$ and ot"ers)

    'ote( #ost of t"e SQL database programs also "ave t"eir own proprietary extensions in addition tot"e SQL standard2

    SQL Database Tables

    A database most often contains one or more tables +ac" table is identified by a name (e g3,ustomers3 or 3 rders3) -ables contain records (rows) wit" data

    &elow is an example of a table called 3.ersons34

    Last'ame )irst'ame "ddress *ity1ansen la -imoteivn 56 SandnesSvendson -ove &orgvn '7 Sandnes.ettersen 8ari Storgt '6 Stavanger

  • 8/13/2019 7271029 SQL Tutorial

    4/31

    -"e table above contains t"ree records (one for eac" person) and four columns (LastName$9irstName$ Address$ and ,ity)

    SQL Queries

    0it" SQL$ we can query a database and "ave a result set returned

    A query li!e t"is4

    SELECT LastName FROM Persons

    :ives a result set li!e t"is4

    Last'ame1ansenSvendson.ettersen

    'ote 4 Some database systems require a semicolon at t"e end of t"e SQL statement 0e don;t uset"e semicolon in our tutorials

    SQL Data +anipulation Language D+L-

    SQL (Structured Query Language) is a syntax for executing queries &ut t"e SQL language alsoincludes a syntax to update$ insert$ and delete records

    -"ese query and update commands toget"er form t"e %ata #anipulation Language (%#L) part ofSQL4

    S L *T < extracts data from a database table &/D"T < updates data in a database table D L T < deletes data from a database table I'S 0T I'TO < inserts new data into a database table

    SQL Data Definition Language DDL-

    -"e %ata %efinition Language (%%L) part of SQL permits database tables to be created or deleted0e can also define indexes (!eys)$ specify lin!s between tables$ and impose constraints betweendatabase tables

    -"e most important %%L statements in SQL are4

    *0 "T T" L < creates a new database table "LT 0 T" L < alters (c"anges) a database table D0O/ T" L < deletes a database table *0 "T I'D 1 < creates an index (searc" !ey) D0O/ I'D 1 < deletes an index

    SQL #2 0 *lause

  • 8/13/2019 7271029 SQL Tutorial

    5/31

    The #2 0 clause is used to specify a selection criterion.

    The #2 0 *lause

    -o conditionally select data from a table$ a 01+/+ clause can be added to t"e S+L+,- statement

    Synta3

    SELECT column FROM tableWHERE column operator value

    0it" t"e 01+/+ clause$ t"e following operators can be used4

    Operator Description= +qual>? Not equal

    ? :reater t"an> Less t"an?= :reater t"an or equal>= Less t"an or equal&+-0++N &etween an inclusive rangeLI8+ Searc" for a pattern

    'ote( In some versions of SQL t"e >? operator may be written as 2=

    &sing the #2 0 *lause

    -o select only t"e persons living in t"e city 3Sandnes3$ we add a 01+/+ clause to t"e S+L+,-statement4

    SELECT * FROM PersonsWHERE City !San"nes!

    4/ersons4 table

    Last'ame )irst'ame "ddress *ity 5ear1ansen la -imoteivn 56 Sandnes 5@ 5Svendson -ove &orgvn '7 Sandnes 5@BCSvendson Stale 8aivn 5C Sandnes 5@C6

    .ettersen 8ari Storgt '6 Stavanger 5@D6

    0esult

    Last'ame )irst'ame "ddress *ity 5ear1ansen la -imoteivn 56 Sandnes 5@ 5Svendson -ove &orgvn '7 Sandnes 5@BCSvendson Stale 8aivn 5C Sandnes 5@C6

  • 8/13/2019 7271029 SQL Tutorial

    6/31

    &sing Quotes

    Note t"at we "ave used single quotes around t"e conditional values in t"e examples

    SQL uses single quotes around text values (most database systems will also accept double quotes)Numeric values s"ould not be enclosed in quotes

    9or text values4

    T#is is correct$SELECT * FROM Persons WHERE FirstName !Tove!T#is is %ron&$SELECT * FROM Persons WHERE FirstName Tove

    9or numeric values4

    T#is is correct$SELECT * FROM Persons WHERE 'ear() +,T#is is %ron&$SELECT * FROM Persons WHERE 'ear(!) +,!

    The LI6 *ondition

    -"e LI8+ condition is used to specify a searc" for a pattern in a column

    Synta3

    SELECT column FROM tableWHERE column L-.E pattern

    A 3E3 sign can be used to define wildcards (missing letters in t"e pattern) bot" before and after t"epattern

    &sing LI6

    -"e following SQL statement will return persons wit" first names t"at start wit" an ; ;4

    SELECT * FROM PersonsWHERE FirstName L-.E !O/!

    -"e following SQL statement will return persons wit" first names t"at end wit" an ;a;4

    SELECT * FROM PersonsWHERE FirstName L-.E !/a!

    -"e following SQL statement will return persons wit" first names t"at contain t"e pattern ;la;4

    SELECT * FROM PersonsWHERE FirstName L-.E !/la/!

  • 8/13/2019 7271029 SQL Tutorial

    7/31

    SQL I'S 0T I'TO Statement

    The I'S 0T I'TO Statement

    -"e INS+/- IN- statement is used to insert new rows into a table

    Synta3

    -NSERT -NTO table0name12L3ES 4value)5 value6577778

    Fou can also specify t"e columns for w"ic" you want to insert data4

    -NSERT -NTO table0name 4column)5 column65777812L3ES 4value)5 value6577778

    Insert a 'ew 0ow

    -"is 3.ersons3 table4

    Last'ame )irst'ame "ddress *ity.ettersen 8ari Storgt '6 Stavanger

    And t"is SQL statement4

    -NSERT -NTO Persons12L3ES 4!Hetlan"!5 !Camilla!5 !Ha&aba99a 6:!5 !San"nes!8

    0ill give t"is result4

    Last'ame )irst'ame "ddress *ity.ettersen 8ari Storgt '6 Stavanger1etland ,amilla 1agaba!!a 'G Sandnes

    Insert Data in Specified *olumns

    -"is 3.ersons3 table4

    Last'ame )irst'ame "ddress *ity.ettersen 8ari Storgt '6 Stavanger1etland ,amilla 1agaba!!a 'G Sandnes

    And -"is SQL statement4

    -NSERT -NTO Persons 4LastName5 2""ress8

  • 8/13/2019 7271029 SQL Tutorial

    8/31

    12L3ES 4!Rasmussen!5 !Stor&t +;!8

    0ill give t"is result4

    Last'ame )irst'ame "ddress *ity.ettersen 8ari Storgt '6 Stavanger1etland ,amilla 1agaba!!a 'G Sandnes/asmussen Storgt DB

    SQL &/D"T Statement

    The &pdate Statement

    -"e .%A-+ statement is used to modify t"e data in a table

    Synta3

    3P

  • 8/13/2019 7271029 SQL Tutorial

    9/31

    SET 2""ress !Stien )6!5 City !Stavan&er!WHERE LastName !Rasmussen!

    0esult(

    Last'ame )irst'ame "ddress *ityNilsen 9red 8ir!egt D Stavanger/asmussen Nina Stien 5' Stavanger

    SQL D L T Statement

    The D L T Statement

    -"e %+L+-+ statement is used to delete rows in a table

    Synta3

  • 8/13/2019 7271029 SQL Tutorial

    10/31

  • 8/13/2019 7271029 SQL Tutorial

    11/31

  • 8/13/2019 7271029 SQL Tutorial

    12/31

    Svendson Step"en 8aivn 5C Sandnes

    3ample

    se AN% to display eac" person wit" t"e first name equal to 3-ove3$ and t"e last name equal to

    3Svendson34

    SELECT * FROM PersonsWHERE FirstName !Tove!2N< LastName !Sven"son!

    0esult(

    Last'ame )irst'ame "ddress *itySvendson -ove &orgvn '7 Sandnes

    3ample

    se / to display eac" person wit" t"e first name equal to 3-ove3$ or t"e last name equal to3Svendson34

    SELECT * FROM PersonsWHERE >irstname !Tove!OR lastname !Sven"son!

    0esult(

    Last'ame )irst'ame "ddress *itySvendson -ove &orgvn '7 SandnesSvendson Step"en 8aivn 5C Sandnes

    3ample

    Fou can also combine AN% and / (use parent"eses to form complex expressions)4

    SELECT * FROM Persons WHERE4FirstName !Tove! OR FirstName !Step#en!82N< LastName !Sven"son!

    0esult(

    Last'ame )irst'ame "ddress *itySvendson -ove &orgvn '7 SandnesSvendson Step"en 8aivn 5C Sandnes

    SQL I'

  • 8/13/2019 7271029 SQL Tutorial

    13/31

    I'

    -"e IN operator may be used if you !now t"e exact value you want to return for at least one of t"ecolumns

    SELECT column0name FROM table0name

    WHERE column0name -N 4value) , value65778

    Original Table used in the e3amples-

    Last'ame )irst'ame "ddress *ity1ansen la -imoteivn 56 SandnesNordmann Anna Neset 5C Sandnes.ettersen 8ari Storgt '6 StavangerSvendson -ove &orgvn '7 Sandnes

    3ample 9

    -o display t"e persons wit" LastName equal to 31ansen3 or 3.ettersen3$ use t"e following SQL4

    SELECT * FROM PersonsWHERE LastName -N 4!Hansen!5!Pettersen!8

    0esult(

    Last'ame )irst'ame "ddress *ity1ansen la -imoteivn 56 Sandnes.ettersen 8ari Storgt '6 Stavanger

    SQL T# '

    T# ' ... "'D

    -"e &+-0++N AN% operator selects a range of data between two values -"ese values can benumbers$ text$ or dates

    SELECT column0name FROM table0nameWHERE column0name=ETWEEN value) 2N< value6

    Original Table used in the e3amples-

    Last'ame )irst'ame "ddress *ity1ansen la -imoteivn 56 SandnesNordmann Anna Neset 5C Sandnes.ettersen 8ari Storgt '6 StavangerSvendson -ove &orgvn '7 Sandnes

  • 8/13/2019 7271029 SQL Tutorial

    14/31

    SQL "lias

    #ith SQL, aliases can be used for column names and table names.

    *olumn 'ame "lias

    -"e syntax is4

    SELECT column 2S column0alias FROM table

    Table 'ame "lias

    -"e syntax is4

    SELECT column FROM table 2S table0alias

    3ample( &sing a *olumn "lias

    -"is table (.ersons)4

    Last'ame )irst'ame "ddress *ity1ansen la -imoteivn 56 SandnesSvendson -ove &orgvn '7 Sandnes

    .ettersen 8ari Storgt '6 Stavanger

    And t"is SQL4

    SELECT LastName 2S Family5 FirstName 2S NameFROM Persons

    /eturns t"is result4

    )amily 'ame1ansen laSvendson -ove

    .ettersen 8ari

    3ample( &sing a Table "lias

    -"is table (.ersons)4

    Last'ame )irst'ame "ddress *ity

  • 8/13/2019 7271029 SQL Tutorial

    15/31

    1ansen la -imoteivn 56 SandnesSvendson -ove &orgvn '7 Sandnes.ettersen 8ari Storgt '6 Stavanger

    And t"is SQL4

    SELECT LastName5 FirstNameFROM Persons 2S Employees

    /eturns t"is result4

    -able +mployees4

    Last'ame )irst'ame1ansen laSvendson -ove.ettersen 8ari

    SQL :OI'

    :oins and 6eys

    Sometimes we "ave to select data from two or more tables to ma!e our result complete 0e "aveto perform a *oin

    -ables in a database can be related to eac" ot"er wit" !eys A primary !ey is a column wit" aunique value for eac" row +ac" primary !ey value must be unique wit"in t"e table -"e purpose isto bind data toget"er$ across tables$ wit"out repeating all of t"e data in every table

    In t"e 3+mployees3 table below$ t"e 3+mployeeHI%3 column is t"e primary !ey$ meaning t"at notwo rows can "ave t"e same +mployeeHI% -"e +mployeeHI% distinguis"es two persons even if t"ey"ave t"e same name

    0"en you loo! at t"e example tables below$ notice t"at4

    -"e 3+mployeeHI%3 column is t"e primary !ey of t"e 3+mployees3 table -"e 3.rodHI%3 column is t"e primary !ey of t"e 3 rders3 table -"e 3+mployeeHI%3 column in t"e 3 rders3 table is used to refer to t"e persons in t"e

    3+mployees3 table wit"out using t"eir names

    mployees 4

    mployee;ID 'ame65 1ansen$ la6' Svendson$ -ove67 Svendson$ Step"en

  • 8/13/2019 7271029 SQL Tutorial

    16/31

    6G .ettersen$ 8ari

    Orders(

    /rod;ID /roduct mployee;ID'7G .rinter 65D B -able 67CD ,"air 67

    0eferring to Two Tables

    0e can select data from two tables by referring to two tables$ li!e t"is4

    3ample

    0"o "as ordered a product$ and w"at did t"ey order

    SELECT Employees7Name5 Or"ers7Pro"uctFROM Employees5 Or"ersWHERE Employees7Employee0-< Or"ers7Employee0-iel"65 >iel"?FROM >irst0table-NNER @O-N secon"0tableON >irst0table79ey>iel" secon"0table7>orei&n09ey>iel"

    0"o "as ordered a product$ and w"at did t"ey order

    SELECT Employees7Name5 Or"ers7Pro"uctFROM Employees-NNER @O-N Or"ersON Employees7Employee0-< Or"ers7Employee0-iel")5 >iel"65 >iel"?FROM >irst0tableLEFT @O-N secon"0tableON >irst0table79ey>iel" secon"0table7>orei&n09ey>iel"

    List all employees$ and t"eir orders < if any

    SELECT Employees7Name5 Or"ers7Pro"uctFROM EmployeesLEFT @O-N Or"ersON Employees7Employee0-< Or"ers7Employee0-