0% found this document useful (0 votes)
123 views

What Is SQL?: SQL Is A Standard Language For Accessing and Manipulating Databases

SQL is a standard language for managing and accessing databases. It allows users to retrieve, insert, update, and delete data from databases. SQL statements like SELECT, INSERT, UPDATE, and DELETE are used to work with data in databases. SQL can be divided into two parts: the data manipulation language (DML) for querying and modifying data, and the data definition language (DDL) for managing database structures.

Uploaded by

srivatsandelight
Copyright
© © All Rights Reserved
Available Formats
Download as RTF, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
123 views

What Is SQL?: SQL Is A Standard Language For Accessing and Manipulating Databases

SQL is a standard language for managing and accessing databases. It allows users to retrieve, insert, update, and delete data from databases. SQL statements like SELECT, INSERT, UPDATE, and DELETE are used to work with data in databases. SQL can be divided into two parts: the data manipulation language (DML) for querying and modifying data, and the data definition language (DDL) for managing database structures.

Uploaded by

srivatsandelight
Copyright
© © All Rights Reserved
Available Formats
Download as RTF, PDF, TXT or read online on Scribd
You are on page 1/ 276

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL SQL is a standard language for accessing and manipulating databases.

What is SQL?

SQL stands for Structured Query Language SQL lets you access and manipulate databases SQL is an ANSI (American National Standards Institute) standard

What

an SQL do?

SQL can e!ecute "ueries against a database SQL can retrie#e data from a database SQL can insert records in a database

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

SQL can update records in a database SQL can delete records from a database SQL can create ne$ databases SQL can create ne$ tables in a database SQL can create stored procedures in a database SQL can create #ie$s in a database SQL can set permissions on tables% procedures% and #ie$s

SQL is a Standard & '()....


Although SQL is an ANSI (American National Standards Institute) standard% there are many different #ersions of the SQL language.

2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


*o$e#er% to be compliant $ith the ANSI standard% they all support at least the ma+or commands (such as S,L, )% (-.A),% .,L,),% INS,/)% W*,/,) in a similar manner. Note: 0ost of the SQL database programs also ha#e their o$n proprietary e!tensions in addition to the SQL standard1

(sing SQL in 2our Web Site



)o build a $eb site that sho$s some data from a database% you $ill need the follo$ing3 An /.'0S database program (i.e. 0S Access% SQL Ser#er% 0ySQL) A ser#er&side scripting language% li4e -*- or ASSQL *)0L 5 SS

3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

/.'0S

/.'0S stands for /elational .atabase 0anagement System. /.'0S is the basis for SQL% and for all modern database systems li4e 0S SQL Ser#er% I'0 .'6% 7racle% 0ySQL% and 0icrosoft Access. )he data in /.'0S is stored in database ob+ects called tables. A table is a collections of related data entries and it consists of columns and ro$s.

.atabase )ables
A database most often contains one or more tables. ,ach table is identified by a name (e.g. 8 ustomers8 or 87rders8). )ables contain records (ro$s) $ith data. 'elo$ is an e!ample of a table called 8-ersons83

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


P_Id LastName FirstName Address City 9 *ansen 7la )imotei#n 9: Sandnes 6 S#endson )o#e 'org#n 6; Sandnes ; -ettersen <ari Storgt 6: Sta#anger )he table abo#e contains three records (one for each person) and fi#e columns (-=Id% LastName% >irstName% Address% and ity).

SQL Statements
S,L, ) ? >/70 -ersons

0ost of the actions you need to perform on a database are done $ith SQL statements. )he follo$ing SQL statement $ill select all the records in the 8-ersons8 table3 In this tutorial $e $ill teach you all about the different SQL statements.

5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

<eep in 0ind )hat...

SQL is not case sensiti#e

Semicolon after SQL Statements?

Some database systems re"uire a semicolon at the end of each SQL statement. Semicolon is the standard $ay to separate each SQL statement in database systems that allo$ more than one SQL statement to be e!ecuted in the same call to the ser#er. We are using 0S Access and SQL Ser#er 6::: and $e do not ha#e to put a semicolon after each SQL statement% but some database programs force you to use it.

SQL .0L and ..L


6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


SQL can be di#ided into t$o parts3 )he .ata 0anipulation Language (.0L) and the .ata .efinition Language (..L). )he "uery and update commands form the .0L part of SQL3 SELECT & e!tracts data from a database UPDATE & updates data in a database DELETE & deletes data from a database INSERT INTO & inserts ne$ data into a database )he ..L part of SQL permits database tables to be created or deleted. It also define inde!es (4eys)% specify lin4s bet$een tables% and impose constraints bet$een tables. )he most important ..L statements in SQL are3 CREATE DATABASE & creates a ne$ database

7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

ALTER DATABASE & modifies a database CREATE TABLE & creates a ne$ table ALTER TABLE & modifies a table DROP TABLE & deletes a table CREATE INDEX & creates an inde! (search 4ey) DROP INDEX & deletes an inde!

@ )his chapter $ill e!plain the S,L,

) and the S,L, ) ? statements.

8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

o
@ @

)he SQL S,L, ) Statement


)he S,L, ) statement is used to select data from a database. )he result is stored in a result table% called the result&set.

SQL SELECT Syntax


S,L, ) column=name(s) >/70 table=name

9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

and S,L, ) ? >/70 table=name

Note: SQL is not case sensiti#e. S,L, ) is the same as select.

o
@

An SQL S,L, ) ,!ample


)he 8-ersons8 table3

10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


P_Id 9 6 ; LastName *ansen S#endson -ettersen FirstName 7la )o#e <ari Address )imotei#n 9: 'org#n 6; Storgt 6: City Sandnes Sandnes Sta#anger

@ @

No$ $e $ant to select the content of the columns named 8LastName8 and 8>irstName8 from the table abo#e. We use the follo$ing S,L, ) statement3 S,L, ) LastName%>irstName >/70 -ersons

)he result&set $ill loo4 li4e this3

11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


LastName *ansen S#endson -ettersen FirstName 7la )o#e <ari

o
@

S,L, ) ? ,!ample
No$ $e $ant to select all the columns from the 8-ersons8 table.

12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

We use the follo$ing S,L, ) statement3 S,L, ) ? >/70 -ersons

@ @

Tip: )he asteris4 (?) is a "uic4 $ay of selecting all columns1 )he result&set $ill loo4 li4e this3 P_Id 9 6 ; LastName *ansen S#endson -ettersen FirstName 7la )o#e <ari Address )imotei#n 9: 'org#n 6; Storgt 6: City Sandnes Sandnes Sta#anger

13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

o
@ @

Na#igation in a /esult&set
0ost database soft$are systems allo$ na#igation in the result&set $ith programming functions% li4e3 0o#e&)o&>irst&/ecord% Aet&/ecord& ontent% 0o#e&)o&Ne!t&/ecord% etc. -rogramming functions li4e these are not a part of this tutorial. )o learn about accessing data $ith function calls% please #isit our A.7 tutorial or our -*- tutorial.

14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

)he SQL S,L, ) .IS)IN ) Statement


In a table% some of the columns may contain duplicate #alues. )his is not a problem% ho$e#er% sometimes you $ill $ant to list only the different (distinct) #alues in a table. )he .IS)IN ) 4ey$ord can be used to return only distinct (different) #alues.

SQL SELECT DISTINCT Syntax


S,L, ) .IS)IN ) column=name(s) >/70 table=name

15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

S,L, ) .IS)IN ) ,!ample


)he 8-ersons8 table3 P_Id 9 6 ; LastName *ansen S#endson -ettersen FirstName 7la )o#e <ari Address )imotei#n 9: 'org#n 6; Storgt 6: City Sandnes Sandnes Sta#anger

No$ $e $ant to select only the distinct #alues from the column named 8 ity8 from the table abo#e. We use the follo$ing S,L, ) statement3

16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


S,L, ) .IS)IN ) ity >/70 -ersons )he result&set $ill loo4 li4e this3 City Sandnes Sta#anger

)he W*,/,

lause

)he W*,/, clause is used to e!tract only those records that fulfill a specified criterion.

17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL SQL WHERE Syntax
S,L, ) column=name(s) >/70 table=name W*,/, column=name operator #alue

W*,/,

lause ,!ample
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18

)he 8-ersons8 table3

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


P_Id 9 6 ; LastName *ansen S#endson -ettersen FirstName 7la )o#e <ari Address )imotei#n 9: 'org#n 6; Storgt 6: City Sandnes Sandnes Sta#anger

No$ $e $ant to select only the persons li#ing in the city 8Sandnes8 from the table abo#e. We use the follo$ing S,L, ) statement3 S,L, ) ? >/70 -ersons W*,/, ityBCSandnesC )he result&set $ill loo4 li4e this3

19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


P_Id 9 6 LastName *ansen S#endson FirstName 7la )o#e Address )imotei#n 9: 'org#n 6; City Sandnes Sandnes

Quotes Around )e!t >ields


SQL uses single "uotes around te!t #alues (most database systems $ill also accept double "uotes). Although% numeric #alues should not be enclosed in "uotes. >or te!t #alues3

20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


)his is correct3 S,L, ) ? >/70 -ersons W*,/, >irstNameBC)o#eC )his is $rong3 S,L, ) ? >/70 -ersons W*,/, >irstNameB)o#e >or numeric #alues3 )his is correct3 S,L, ) ? >/70 -ersons W*,/, 2earB9DEF

21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


)his is $rong3 S,L, ) ? >/70 -ersons W*,/, 2earBC9DEFC

7perators Allo$ed in the W*,/,


Operato Descriptio

lause

With the W*,/, clause% the follo$ing operators can be used3

22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


r B GH H G HB GB ',)W,, N LI<, IN ,"ual Not e"ual Areater than Less than Areater than or e"ual Less than or e"ual 'et$een an inclusi#e range Search for a pattern If you 4no$ the e!act #alue you $ant to return for at least one of the columns

23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


Note: In some #ersions of SQL the GH operator may be $ritten as 1B

)he AN. I 7/ operators are used to filter records based on more than one condition.

)he AN. I 7/ 7perators AN. 7perator ,!ample


)he 8-ersons8 table3 P_Id LastName 9 *ansen

)he AN. operator displays a record if both the first condition and the second condition is true. )he 7/ operator displays a record if either the first condition or the second condition is true.

FirstName 7la

Address )imotei#n 9:

City Sandnes

24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


6 S#endson )o#e 'org#n 6; Sandnes ; -ettersen <ari Storgt 6: Sta#anger No$ $e $ant to select only the persons $ith the first name e"ual to 8)o#e8 AN. the last name e"ual to 8S#endson83 We use the follo$ing S,L, ) statement3 S,L, ) ? >/70 -ersons W*,/, >irstNameBC)o#eC AN. LastNameBCS#endsonC )he result&set $ill loo4 li4e this3 P_Id LastName 6 S#endson FirstName )o#e Address 'org#n 6; City Sandnes

25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

7/ 7perator ,!ample
No$ $e $ant to select only the persons $ith the first name e"ual to 8)o#e8 7/ the first name e"ual to 87la83 We use the follo$ing S,L, ) statement3 S,L, ) ? >/70 -ersons W*,/, >irstNameBC)o#eC 7/ >irstNameBC7laC )he result&set $ill loo4 li4e this3 P_Id LastName 9 *ansen FirstName 7la Address )imotei#n 9: City Sandnes

26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


6 S#endson )o#e 'org#n 6; Sandnes

2ou can also combine AN. and 7/ (use parenthesis to form comple! e!pressions). No$ $e $ant to select only the persons $ith the last name e"ual to 8S#endson8 AN. the first name e"ual to 8)o#e8 7/ to 87la83 We use the follo$ing S,L, ) statement3 S,L, ) ? >/70 -ersons W*,/, LastNameBCS#endsonC AN. (>irstNameBC)o#eC 7/ >irstNameBC7laC) )he result&set $ill loo4 li4e this3

ombining AN. I 7/

27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


P_Id 6 LastName S#endson FirstName )o#e Address 'org#n 6; City Sandnes

)he 7/.,/ '2 4ey$ord is used to sort the result&set.

)he 7/.,/ '2 <ey$ord


)he 7/.,/ '2 4ey$ord is used to sort the result&set by a specified column. )he 7/.,/ '2 4ey$ord sort the records in ascending order by default. If you $ant to sort the records in a descending order% you can use the .,S 4ey$ord.

28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL SQL ORDER BY Syntax
S,L, ) column=name(s) >/70 table=name 7/.,/ '2 column=name(s) AS J.,S

7/.,/ '2 ,!ample


)he 8-ersons8 table3

29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


P_Id 9 6 ; K LastName *ansen S#endson -ettersen Nilsen FirstName 7la )o#e <ari )om Address )imotei#n 9: 'org#n 6; Storgt 6: Ling#n 6; City Sandnes Sandnes Sta#anger Sta#anger

No$ $e $ant to select all the persons from the table abo#e% ho$e#er% $e $ant to sort the persons by their last name. We use the follo$ing S,L, ) statement3 S,L, ) ? >/70 -ersons 7/.,/ '2 LastName

30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


)he result&set $ill loo4 li4e this3 P_Id 9 K ; 6 LastName *ansen Nilsen -ettersen S#endson FirstName 7la )om <ari )o#e Address )imotei#n 9: Ling#n 6; Storgt 6: 'org#n 6; City Sandnes Sta#anger Sta#anger Sandnes

31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

7/.,/ '2 .,S

,!ample

No$ $e $ant to select all the persons from the table abo#e% ho$e#er% $e $ant to sort the persons descending by their last name. We use the follo$ing S,L, ) statement3 S,L, ) ? >/70 -ersons 7/.,/ '2 LastName .,S )he result&set $ill loo4 li4e this3 P_Id LastName FirstName Address City

32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


6 ; K 9 S#endson -ettersen Nilsen *ansen )o#e <ari )om 7la 'org#n 6; Storgt 6: Ling#n 6; )imotei#n 9: Sandnes Sta#anger Sta#anger Sandnes

)he INS,/) IN)7 statement is used to insert ne$ records in a table.

)he INS,/) IN)7 Statement


)he INS,/) IN)7 statement is used to insert a ne$ ro$ in a table.

33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL SQL INSERT INTO Syntax
It is possible to $rite the INS,/) IN)7 statement in t$o forms. )he first form doesnCt specify the column names $here the data $ill be inserted% only their #alues3 INS,/) IN)7 table=name LAL(,S (#alue9% #alue6% #alue;%...) )he second form specifies both the column names and the #alues to be inserted3 INS,/) IN)7 table=name (column9% column6% column;%...) LAL(,S (#alue9% #alue6% #alue;%...)

34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

SQL INS,/) IN)7 ,!ample


We ha#e the follo$ing 8-ersons8 table3 P_Id 9 6 ; LastName *ansen S#endson -ettersen FirstName 7la )o#e <ari Address )imotei#n 9: 'org#n 6; Storgt 6: City Sandnes Sandnes Sta#anger

No$ $e $ant to insert a ne$ ro$ in the 8-ersons8 table.

35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


We use the follo$ing SQL statement3 INS,/) IN)7 -ersons LAL(,S (K%CNilsenC% CMohanC% C'a44en 6C% CSta#angerC) )he 8-ersons8 table $ill no$ loo4 li4e this3 P_Id 9 6 ; K LastName *ansen S#endson -ettersen Nilsen FirstName 7la )o#e <ari Mohan Address )imotei#n 9: 'org#n 6; Storgt 6: 'a44en 6 City Sandnes Sandnes Sta#anger Sta#anger

36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

Insert .ata 7nly in Specified

olumns

It is also possible to only add data in specific columns. )he follo$ing SQL statement $ill add a ne$ ro$% but only add data in the 8-=Id8% 8LastName8 and the 8>irstName8 columns3 INS,/) IN)7 -ersons (-=Id% LastName% >irstName) LAL(,S (F% C)+essemC% CMa4obC) )he 8-ersons8 table $ill no$ loo4 li4e this3

37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


P_Id 9 6 ; K F LastName *ansen S#endson -ettersen Nilsen )+essem FirstName 7la )o#e <ari Mohan Ma4ob Address )imotei#n 9: 'org#n 6; Storgt 6: 'a44en 6 City Sandnes Sandnes Sta#anger Sta#anger

)he (-.A), statement is used to update records in a table.

38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

)he (-.A), Statement


)he (-.A), statement is used to update e!isting records in a table.

SQL UPDATE Syntax


(-.A), table=name S,) column9B#alue% column6B#alue6%... W*,/, some=columnBsome=#alue Note: Notice the W*,/, clause in the (-.A), Syntax. )he W*,/, clause specifies $hich record or records that should be updated. If you omit the W*,/, clause% all records $ill be updated1

39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

SQL (-.A), ,!ample


)he 8-ersons8 table3 P_Id 9 6 ; K F LastName *ansen S#endson -ettersen Nilsen )+essem FirstName 7la )o#e <ari Mohan Ma4ob Address )imotei#n 9: 'org#n 6; Storgt 6: 'a44en 6 City Sandnes Sandnes Sta#anger Sta#anger

No$ $e $ant to update the person 8)+essem% Ma4ob8 in the 8-ersons8 table.

40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


We use the follo$ing SQL statement3 (-.A), -ersons S,) AddressBCNissestien ENC% ityBCSandnesC W*,/, LastNameBC)+essemC AN. >irstNameBCMa4obC )he 8-ersons8 table $ill no$ loo4 li4e this3 P_Id 9 6 ; K LastName *ansen S#endson -ettersen Nilsen FirstName 7la )o#e <ari Mohan Address )imotei#n 9: 'org#n 6; Storgt 6: 'a44en 6 City Sandnes Sandnes Sta#anger Sta#anger

41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


F )+essem Ma4ob Nissestien EN Sandnes

SQL (-.A), Warning


'e careful $hen updating records. If $e had omitted the W*,/, clause in the e!ample abo#e% li4e this3 (-.A), -ersons S,) AddressBCNissestien ENC% ityBCSandnesC

)he 8-ersons8 table $ould ha#e loo4ed li4e this3

42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


P_Id 9 6 ; K F LastName *ansen S#endson -ettersen Nilsen )+essem FirstName 7la )o#e <ari Mohan Ma4ob Address Nissestien Nissestien Nissestien Nissestien Nissestien EN EN EN EN EN City Sandnes Sandnes Sandnes Sandnes Sandnes

)he .,L,), statement is used to delete records in a table.

43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

)he .,L,), Statement


)he .,L,), statement is used to delete ro$s in a table.

SQL DELETE Syntax


.,L,), >/70 table=name W*,/, some=columnBsome=#alue Note: Notice the W*,/, clause in the .,L,), Syntax. )he W*,/, clause specifies $hich record or records that should be deleted. If you omit the W*,/, clause% all records $ill be deleted1

44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

SQL .,L,), ,!ample


)he 8-ersons8 table3 P_Id 9 6 ; K F LastName *ansen S#endson -ettersen Nilsen )+essem FirstName 7la )o#e <ari Mohan Ma4ob Address )imotei#n 9: 'org#n 6; Storgt 6: 'a44en 6 Nissestien EN City Sandnes Sandnes Sta#anger Sta#anger Sandnes

No$ $e $ant to delete the person 8)+essem% Ma4ob8 in the 8-ersons8 table. We use the follo$ing SQL statement3

45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


.,L,), >/70 -ersons W*,/, LastNameBC)+essemC AN. >irstNameBCMa4obC )he 8-ersons8 table $ill no$ loo4 li4e this3 P_Id 9 6 ; K LastName *ansen S#endson -ettersen Nilsen FirstName 7la )o#e <ari Mohan Address )imotei#n 9: 'org#n 6; Storgt 6: 'a44en 6 City Sandnes Sandnes Sta#anger Sta#anger

46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

.elete All /o$s


It is possible to delete all ro$s in a table $ithout deleting the table. )his means that the table structure% attributes% and inde!es $ill be intact3 .,L,), >/70 table=name or .,L,), ? >/70 table=name Note: 'e #ery careful $hen deleting records. 2ou cannot undo this statement1

47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47 47

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL S!L Ad"a ced

)he )7-

lause

)he )7- clause is used to specify the number of records to return. )he )7- clause can be #ery useful on large tables $ith thousands of records. /eturning a large number of records can impact on performance. Note: Not all database systems support the )7- clause.

48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL SQL Server Syntax
S,L, ) )7- numberJpercent column=name(s) >/70 table=name

49 49 49 49 49 49 49 49 49 49 49 49 49 49 49 49 49 49 49 49 49 49 49 49 49 49 49 49 49 49 49 49 49 49 49 49 49 49 49

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

SQL S,L, ) )7- ,"ui#alent in 0ySQL and 7racle


MySQL Syntax
S,L, ) column=name(s) >/70 table=name LI0I) number

Example
S,L, ) ?

50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


>/70 -ersons LI0I) F

Oracle Syntax
S,L, ) column=name(s) >/70 table=name W*,/, /7WN(0 GB number

51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL Example


S,L, ) ? >/70 -ersons W*,/, /7WN(0 GBF

SQL )7- ,!ample


)he 8-ersons8 table3

52 52 52 52 52 52 52 52 52 52 52 52 52 52 52 52 52 52 52 52 52 52 52 52 52 52 52 52 52 52 52 52 52 52 52 52 52 52 52

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


P_Id 9 6 ; K LastName *ansen S#endson -ettersen Nilsen FirstName 7la )o#e <ari )om Address )imotei#n 9: 'org#n 6; Storgt 6: Ling#n 6; City Sandnes Sandnes Sta#anger Sta#anger

No$ $e $ant to select only the t$o first records in the table abo#e. We use the follo$ing S,L, ) statement3 S,L, ) )7- 6 ? >/70 -ersons )he result&set $ill loo4 li4e this3

53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


P_Id 9 6 LastName *ansen S#endson FirstName 7la )o#e Address )imotei#n 9: 'org#n 6; City Sandnes Sandnes

SQL )7- -,/ ,N) ,!ample


)he 8-ersons8 table3 P_Id 9 6 LastName *ansen S#endson FirstName 7la )o#e Address )imotei#n 9: 'org#n 6; City Sandnes Sandnes

54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


; K -ettersen Nilsen <ari )om Storgt 6: Ling#n 6; Sta#anger Sta#anger

No$ $e $ant to select only F:O of the records in the table abo#e. We use the follo$ing S,L, ) statement3 S,L, ) )7- F: -,/ ,N) ? >/70 -ersons )he result&set $ill loo4 li4e this3 P_Id 9 6 LastName *ansen S#endson FirstName 7la )o#e Address )imotei#n 9: 'org#n 6; City Sandnes Sandnes

55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL )he LI<, operator is used in a W*,/, clause to search for a specified pattern in a column.

)he LI<, 7perator


)he LI<, operator is used to search for a specified pattern in a column.

SQL LIKE Syntax


S,L, ) column=name(s) >/70 table=name

56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


W*,/, column=name LI<, pattern

LI<, 7perator ,!ample


)he 8-ersons8 table3 P_Id 9 6 ; LastName *ansen S#endson -ettersen FirstName 7la )o#e <ari Address )imotei#n 9: 'org#n 6; Storgt 6: City Sandnes Sandnes Sta#anger

57 57 57 57 57 57 57 57 57 57 57 57 57 57 57 57 57 57 57 57 57 57 57 57 57 57 57 57 57 57 57 57 57 57 57 57 57 57 57

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


No$ $e $ant to select the persons li#ing in a city that starts $ith 8s8 from the table abo#e. We use the follo$ing S,L, ) statement3 S,L, ) ? >/70 -ersons W*,/, ity LI<, CsOC )he 8O8 sign can be used to define $ildcards (missing letters in the pattern) both before and after the pattern. )he result&set $ill loo4 li4e this3 P_Id 9 LastName *ansen FirstName 7la Address )imotei#n 9: City Sandnes

58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


6 ; S#endson -ettersen )o#e <ari 'org#n 6; Storgt 6: Sandnes Sta#anger

Ne!t% $e $ant to select the persons li#ing in a city that ends $ith an 8s8 from the 8-ersons8 table. We use the follo$ing S,L, ) statement3 S,L, ) ? >/70 -ersons W*,/, ity LI<, COsC )he result&set $ill loo4 li4e this3 P_Id 9 LastName *ansen FirstName 7la Address )imotei#n 9: City Sandnes

59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59 59

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


6 S#endson )o#e 'org#n 6; Sandnes Ne!t% $e $ant to select the persons li#ing in a city that contains the pattern 8ta#8 from the 8-ersons8 table. We use the follo$ing S,L, ) statement3 S,L, ) ? >/70 -ersons W*,/, ity LI<, COta#OC )he result&set $ill loo4 li4e this3 P_Id ; LastName -ettersen FirstName <ari Address Storgt 6: City Sta#anger

60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


It is also possible to select the persons li#ing in a city that N7) contains the pattern 8ta#8 from the 8-ersons8 table% by using the N7) 4ey$ord. We use the follo$ing S,L, ) statement3 S,L, ) ? >/70 -ersons W*,/, ity N7) LI<, COta#OC )he result&set $ill loo4 li4e this3 P_Id 9 6 LastName *ansen S#endson FirstName 7la )o#e Address )imotei#n 9: 'org#n 6; City Sandnes Sandnes

61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL SQL $ildcards can be used $hen searching for data in a database.

SQL Wildcards

SQL $ildcards can substitute for one or more characters $hen searching for data in a database. SQL $ildcards must be used $ith the SQL LI<, operator. With SQL% the follo$ing $ildcards can be used3 #i$dcard Descriptio O A substitute for Pero or more characters = A substitute for e!actly one character QcharlistR Any single character in charlist QScharlistR Any single character not in charlist or

62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62 62

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


Q1charlistR

SQL Wildcard ,!amples


We ha#e the follo$ing 8-ersons8 P_Id LastName 9 *ansen 6 S#endson ; -ettersen

table3 FirstName 7la )o#e <ari

Address )imotei#n 9: 'org#n 6; Storgt 6:

City Sandnes Sandnes Sta#anger

(sing the O Wildcard


63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


No$ $e $ant to select the persons li#ing in a city that starts $ith 8sa8 from the 8-ersons8 table. We use the follo$ing S,L, ) statement3 S,L, ) ? >/70 -ersons W*,/, ity LI<, CsaOC )he result&set $ill loo4 li4e this3 P_Id LastName FirstName Address City 9 *ansen 7la )imotei#n 9: Sandnes 6 S#endson )o#e 'org#n 6; Sandnes Ne!t% $e $ant to select the persons li#ing in a city that contains the pattern 8nes8 from the 8-ersons8 table. We use the follo$ing S,L, ) statement3

64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


S,L, ) ? >/70 -ersons W*,/, ity LI<, COnesOC )he result&set $ill loo4 li4e this3 P_Id LastName 9 *ansen 6 S#endson FirstName 7la )o#e Address )imotei#n 9: 'org#n 6; City Sandnes Sandnes

(sing the = Wildcard


No$ $e $ant to select the persons $ith a first name that starts $ith any character% follo$ed by 8la8 from the 8-ersons8 table.

65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


We use the follo$ing S,L, ) statement3 S,L, ) ? >/70 -ersons W*,/, >irstName LI<, C=laC )he result&set $ill loo4 li4e this3 P_Id LastName FirstName Address City 9 *ansen 7la )imotei#n 9: Sandnes Ne!t% $e $ant to select the persons $ith a last name that starts $ith 8S8% follo$ed by any character% follo$ed by 8end8% follo$ed by any character% follo$ed by 8on8 from the 8-ersons8 table. We use the follo$ing S,L, ) statement3 S,L, ) ? >/70 -ersons W*,/, LastName LI<, CS=end=onC

66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


)he result&set $ill loo4 li4e this3 P_Id LastName 6 S#endson FirstName )o#e Address 'org#n 6; City Sandnes

(sing the QcharlistR Wildcard


No$ $e $ant to select the persons $ith a last name that starts $ith 8b8 or 8s8 or 8p8 from the 8-ersons8 table. We use the follo$ing S,L, ) statement3 S,L, ) ? >/70 -ersons W*,/, LastName LI<, CQbspROC )he result&set $ill loo4 li4e this3

67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


P_Id LastName FirstName 6 S#endson )o#e ; -ettersen <ari Ne!t% $e $ant to select the persons $ith a last name that 8-ersons8 table. We use the follo$ing S,L, ) statement3 S,L, ) ? >/70 -ersons W*,/, LastName LI<, CQ1bspROC )he result&set $ill loo4 li4e this3 P_Id LastName 9 *ansen FirstName 7la Address )imotei#n 9: City Sandnes Address City 'org#n 6; Sandnes Storgt 6: Sta#anger do not start $ith 8b8 or 8s8 or 8p8 from the

68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

)he IN 7perator
)he IN operator allo$s you to specify multiple #alues in a W*,/, clause.

SQL IN Syntax
S,L, ) column=name(s) >/70 table=name W*,/, column=name IN (#alue9%#alue6%...)

69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

IN 7perator ,!ample
)he 8-ersons8 table3 P_Id 9 6 ; LastName *ansen S#endson -ettersen FirstName 7la )o#e <ari Address )imotei#n 9: 'org#n 6; Storgt 6: City Sandnes Sandnes Sta#anger

No$ $e $ant to select the persons $ith a last name e"ual to 8*ansen8 or 8-ettersen8 from the table abo#e. We use the follo$ing S,L, ) statement3

70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


S,L, ) ? >/70 -ersons W*,/, LastName IN (C*ansenC%C-ettersenC) )he result&set $ill loo4 li4e this3 P_Id 9 ; LastName *ansen -ettersen FirstName 7la <ari Address )imotei#n 9: Storgt 6: City Sandnes Sta#anger

)he ',)W,,N operator is used in a W*,/, clause to select a range of data bet$een t$o #alues. 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

)he ',)W,,N 7perator


)he ',)W,,N operator selects a range of data bet$een t$o #alues. )he #alues can be numbers% te!t% or dates.

SQL BETWEEN Syntax


S,L, ) column=name(s) >/70 table=name W*,/, column=name

72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


',)W,,N #alue9 AN. #alue6

',)W,,N 7perator ,!ample


)he 8-ersons8 table3 P_Id 9 6 ; LastName *ansen S#endson -ettersen FirstName 7la )o#e <ari Address )imotei#n 9: 'org#n 6; Storgt 6: City Sandnes Sandnes Sta#anger

73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


No$ $e $ant to select the persons $ith a last name alphabetically bet$een 8*ansen8 and 8-ettersen8 from the table abo#e. We use the follo$ing S,L, ) statement3 S,L, ) ? >/70 -ersons W*,/, LastName ',)W,,N C*ansenC AN. C-ettersenC )he result&set $ill loo4 li4e this3 P_Id 9 LastName *ansen FirstName 7la Address )imotei#n 9: City Sandnes

74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


Note: )he ',)W,,N operator is treated differently in different databases. In some databases% persons $ith the LastName of 8*ansen8 or 8-ettersen8 $ill not be listed% because the ',)W,,N operator only selects fields that are bet$een and e!cluding the test #alues). In other databases% persons $ith the LastName of 8*ansen8 or 8-ettersen8 $ill be listed% because the ',)W,,N operator selects fields that are bet$een and including the test #alues). And in other databases% persons $ith the LastName of 8*ansen8 $ill be listed% but 8-ettersen8 $ill not be listed (li4e the e!ample abo#e)% because the ',)W,,N operator selects fields bet$een the test #alues% including the first test #alue and e!cluding the last test #alue. )herefore3 hec4 ho$ your database treats the ',)W,,N operator.

75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

,!ample 6
)o display the persons outside the range in the pre#ious e!ample% use N7) ',)W,,N3 S,L, ) ? >/70 -ersons W*,/, LastName N7) ',)W,,N C*ansenC AN. C-ettersenC )he result&set $ill loo4 li4e this3 P_Id 6 ; LastName S#endson -ettersen FirstName )o#e <ari Address 'org#n 6; Storgt 6: City Sandnes Sta#anger

76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL With SQL% an alias name can be gi#en to a table or to a column.

SQL Alias
2ou can gi#e a table or a column another name by using an alias. )his can be a good thing to do if you ha#e #ery long or comple! table names or column names. An alias name could be anything% but usually it is short.

SQL Al a! Syntax "#r Ta$le!


S,L, ) column=name(s)

77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


>/70 table=name AS alias=name

SQL Al a! Syntax "#r C#l%m&!


S,L, ) column=name AS alias=name >/70 table=name

78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

Alias ,!ample
Assume $e ha#e a table called 8-ersons8 and another table called 8-roduct=7rders8. We $ill gi#e the table aliases of 8p8 and 8po8 respecti#ely. No$ $e $ant to list all the orders that 87la *ansen8 is responsible for. We use the follo$ing S,L, ) statement3 S,L, ) po.7rderI.% p.LastName% p.>irstName >/70 -ersons AS p% -roduct=7rders AS po W*,/, p.LastNameBC*ansenC AN. p.>irstNameBC7laC

79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


)he same S,L, ) statement $ithout aliases3 S,L, ) -roduct=7rders.7rderI.% -ersons.LastName% -ersons.>irstName >/70 -ersons% -roduct=7rders W*,/, -ersons.LastNameBC*ansenC AN. -ersons.>irstNameBC7laC As youCll see from the t$o S,L, ) statements abo#eT aliases can ma4e "ueries easier to both $rite and to read. )he M7IN 4ey$ord is used in an SQL statement to "uery data from t$o or more tables% based on a relationship bet$een certain columns in these tables. )ables in a database are often related to each other $ith 4eys.

80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


A primary 4ey is a column (or a combination of columns) $ith a uni"ue #alue for each ro$. ,ach primary 4ey #alue must be uni"ue $ithin the table. )he purpose is to bind data together% across tables% $ithout repeating all of the data in e#ery table. Loo4 at the 8-ersons8 table3 P_Id LastName FirstName Address City 9 *ansen 7la )imotei#n 9: Sandnes 6 S#endson )o#e 'org#n 6; Sandnes ; -ettersen <ari Storgt 6: Sta#anger Note that the 8-=Id8 column is the primary 4ey in the 8-ersons8 table. )his means that o t$o ro$s can ha#e the same -=Id. )he -=Id distinguishes t$o persons e#en if they ha#e the same name. Ne!t% $e ha#e the 87rders8 table3 O_Id OrderNo P_Id

81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


9 NNUDF ; 6 KKENU ; ; 66KFE 9 K 6KFE6 9 F ;KNEK 9F Note that the 87=Id8 column is the primary 4ey in the 87rders8 table and that the 8-=Id8 column refers to the persons in the 8-ersons8 table $ithout using their names. Notice that the relationship bet$een the t$o tables abo#e is the 8-=Id8 column.

.ifferent SQL M7INs


'efore $e continue $ith e!amples% $e $ill list the types of M7IN you can use% and the differences bet$een them.

82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

%OIN3 /eturn ro$s $hen there is at least one match in both tables LEFT %OIN3 /eturn all ro$s from the left table% e#en if there are no matches in the right table RI&'T %OIN3 /eturn all ro$s from the right table% e#en if there are no matches in the left table FULL %OIN3 /eturn ro$s $hen there is a match in one of the tables

SQL INN,/ M7IN <ey$ord


)he INN,/ M7IN 4ey$ord return ro$s $hen there is at least one match in both tables.

83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL SQL INNER 'OIN Syntax
S,L, ) column=name(s) >/70 table=name9 INN,/ M7IN table=name6 7N table=name9.column=nameBtable=name6.column=name PS: INN,/ M7IN is the same as M7IN.

84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

SQL INN,/ M7IN ,!ample


)he 8-ersons8 table3 P_Id 9 6 ; O_Id 9 LastName *ansen S#endson -ettersen OrderNo NNUDF FirstName 7la )o#e <ari P_Id ; Address )imotei#n 9: 'org#n 6; Storgt 6: City Sandnes Sandnes Sta#anger

)he 87rders8 table3

85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


6 ; K F KKENU 66KFE 6KFE6 ;KNEK ; 9 9 9F

No$ $e $ant to list all the persons $ith any orders. We use the follo$ing S,L, ) statement3 S,L, ) -ersons.LastName% -ersons.>irstName% 7rders.7rderNo >/70 -ersons INN,/ M7IN 7rders 7N -ersons.-=IdB7rders.-=Id

86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


7/.,/ '2 -ersons.LastName )he result&set $ill loo4 li4e this3 LastName *ansen *ansen -ettersen -ettersen FirstName 7la 7la <ari <ari OrderNo 66KFE 6KFE6 NNUDF KKENU

)he INN,/ M7IN 4ey$ord return ro$s $hen there is at least one match in both tables. If there are ro$s in 8-ersons8 that do not ha#e matches in 87rders8% those ro$s $ill N7) be listed.

87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

SQL L,>) M7IN <ey$ord


)he L,>) M7IN 4ey$ord returns all ro$s from the left table (table=name9)% e#en if there are no matches in the right table (table=name6).

SQL LE(T 'OIN Syntax


S,L, ) column=name(s) >/70 table=name9 L,>) M7IN table=name6 7N table=name9.column=nameBtable=name6.column=name

88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


PS: In some databases L,>) M7IN is called L,>) 7(),/ M7IN.

SQL L,>) M7IN ,!ample


)he 8-ersons8 table3 P_Id 9 6 ; LastName *ansen S#endson -ettersen FirstName 7la )o#e <ari Address )imotei#n 9: 'org#n 6; Storgt 6: City Sandnes Sandnes Sta#anger

)he 87rders8 table3

89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


O_Id 9 6 ; K F OrderNo NNUDF KKENU 66KFE 6KFE6 ;KNEK P_Id ; ; 9 9 9F

No$ $e $ant to list all the persons and their orders & if any% from the tables abo#e. We use the follo$ing S,L, ) statement3 S,L, ) -ersons.LastName% -ersons.>irstName% 7rders.7rderNo >/70 -ersons

90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


L,>) M7IN 7rders 7N -ersons.-=IdB7rders.-=Id 7/.,/ '2 -ersons.LastName )he result&set $ill loo4 li4e this3 LastName *ansen *ansen -ettersen -ettersen S#endson FirstName 7la 7la <ari <ari )o#e OrderNo 66KFE 6KFE6 NNUDF KKENU

91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


)he L,>) M7IN 4ey$ord returns all the ro$s from the left table (-ersons)% e#en if there are no matches in the right table (7rders).

SQL /IA*) M7IN <ey$ord


)he /IA*) M7IN 4ey$ord /eturn all ro$s from the right table (table=name6)% e#en if there are no matches in the left table (table=name9).

SQL RI)HT 'OIN Syntax


S,L, ) column=name(s) >/70 table=name9

92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


/IA*) M7IN table=name6 7N table=name9.column=nameBtable=name6.column=name PS: In some databases /IA*) M7IN is called /IA*) 7(),/ M7IN.

SQL /IA*) M7IN ,!ample


)he 8-ersons8 table3 P_Id 9 6 LastName *ansen S#endson FirstName 7la )o#e Address )imotei#n 9: 'org#n 6; City Sandnes Sandnes

93 93 93 93 93 93 93 93 93 93 93 93 93 93 93 93 93 93 93 93 93 93 93 93 93 93 93 93 93 93 93 93 93 93 93 93 93 93 93

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


; O_Id 9 6 ; K F -ettersen OrderNo NNUDF KKENU 66KFE 6KFE6 ;KNEK <ari P_Id ; ; 9 9 9F Storgt 6: Sta#anger )he 87rders8 table3

No$ $e $ant to list all the orders $ith containing persons & if any% from the tables abo#e. We use the follo$ing S,L, ) statement3

94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94 94

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


S,L, ) -ersons.LastName% -ersons.>irstName% 7rders.7rderNo >/70 -ersons /IA*) M7IN 7rders 7N -ersons.-=IdB7rders.-=Id 7/.,/ '2 -ersons.LastName )he result&set $ill loo4 li4e this3 LastName *ansen *ansen -ettersen FirstName 7la 7la <ari OrderNo 66KFE 6KFE6 NNUDF

95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


-ettersen <ari KKENU ;KNEK

)he /IA*) M7IN 4ey$ord returns all the ro$s from the right table (7rders)% e#en if there are no matches in the left table (-ersons).

SQL >(LL M7IN <ey$ord


)he >(LL M7IN 4ey$ord return ro$s $hen there is a match in one of the tables.

96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL SQL (ULL 'OIN Syntax
S,L, ) column=name(s) >/70 table=name9 >(LL M7IN table=name6 7N table=name9.column=nameBtable=name6.column=name

SQL >(LL M7IN ,!ample


)he 8-ersons8 table3

97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


P_Id 9 6 ; O_Id 9 6 ; K F LastName *ansen S#endson -ettersen OrderNo NNUDF KKENU 66KFE 6KFE6 ;KNEK FirstName 7la )o#e <ari P_Id ; ; 9 9 9F Address )imotei#n 9: 'org#n 6; Storgt 6: City Sandnes Sandnes Sta#anger

)he 87rders8 table3

98 98 98 98 98 98 98 98 98 98 98 98 98 98 98 98 98 98 98 98 98 98 98 98 98 98 98 98 98 98 98 98 98 98 98 98 98 98 98

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


No$ $e $ant to list all the persons and their orders% and all the orders $ith their persons. We use the follo$ing S,L, ) statement3 S,L, ) -ersons.LastName% -ersons.>irstName% 7rders.7rderNo >/70 -ersons >(LL M7IN 7rders 7N -ersons.-=IdB7rders.-=Id 7/.,/ '2 -ersons.LastName )he result&set $ill loo4 li4e this3 LastName FirstName OrderNo

99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


*ansen *ansen -ettersen -ettersen S#endson 7la 7la <ari <ari )o#e 66KFE 6KFE6 NNUDF KKENU ;KNEK )he >(LL M7IN 4ey$ord returns all the ro$s from the left table (-ersons)% and all the ro$s from the right table (7rders). If there are ro$s in 8-ersons8 that do not ha#e matches in 87rders8% or if there are ro$s in 87rders8 that do not ha#e matches in 8-ersons8% those ro$s $ill be listed as $ell.

)he SQL (NI7N operator combines t$o or more S,L, ) statements. 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

)he SQL (NI7N 7perator


)he (NI7N operator is used to combine the result&set of t$o or more S,L, ) statements. Notice that each S,L, ) statement $ithin the (NI7N must ha#e the same number of columns. )he columns must also ha#e similar data types. Also% the columns in each S,L, ) statement must be in the same order.

SQL UNION Syntax


S,L, ) column=name(s) >/70 table=name9 (NI7N

101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


S,L, ) column=name(s) >/70 table=name6 Note: )he (NI7N operator selects only distinct #alues by default. )o allo$ duplicate #alues% use (NI7N ALL.

SQL UNION ALL Syntax


S,L, ) column=name(s) >/70 table=name9 (NI7N ALL S,L, ) column=name(s) >/70 table=name6

102 102 102 102 102 102 102 102 102 102 102 102 102 102 102 102 102 102 102 102 102 102 102 102 102 102 102 102 102 102 102 102 102 102 102 102 102 102 102

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


PS: )he column names in the result&set of a (NI7N are al$ays e"ual to the column names in the first S,L, ) statement in the (NI7N.

SQL (NI7N ,!ample


Loo4 at the follo$ing tables3 (Emp$oyees_Nor)ay(3 E_ID :9 :6 :; E_Name *ansen% 7la S#endson% )o#e S#endson% Stephen

103 103 103 103 103 103 103 103 103 103 103 103 103 103 103 103 103 103 103 103 103 103 103 103 103 103 103 103 103 103 103 103 103 103 103 103 103 103 103

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


:K (Emp$oyees_USA(3 E_ID :9 :6 :; :K E_Name )urner% Sally <ent% lar4 S#endson% Stephen Scott% Stephen -ettersen% <ari

No$ $e $ant to list a$$ t*e di++ere t employees in Nor$ay and (SA. We use the follo$ing S,L, ) statement3

104 104 104 104 104 104 104 104 104 104 104 104 104 104 104 104 104 104 104 104 104 104 104 104 104 104 104 104 104 104 104 104 104 104 104 104 104 104 104

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


S,L, ) ,=Name >/70 ,mployees=Nor$ay (NI7N S,L, ) ,=Name >/70 ,mployees=(SA )he result&set $ill loo4 li4e this3 E_Name *ansen% 7la S#endson% )o#e S#endson% Stephen -ettersen% <ari )urner% Sally

105 105 105 105 105 105 105 105 105 105 105 105 105 105 105 105 105 105 105 105 105 105 105 105 105 105 105 105 105 105 105 105 105 105 105 105 105 105 105

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


<ent% lar4 Scott% Stephen Note: )his command cannot be used to list all employees in Nor$ay and (SA. In the e!ample abo#e $e ha#e t$o employees $ith e"ual names% and only one of them $ill be listed. )he (NI7N command selects only distinct #alues.

SQL (NI7N ALL ,!ample


No$ $e $ant to list a$$ employees in Nor$ay and (SA3 S,L, ) ,=Name >/70 ,mployees=Nor$ay

106 106 106 106 106 106 106 106 106 106 106 106 106 106 106 106 106 106 106 106 106 106 106 106 106 106 106 106 106 106 106 106 106 106 106 106 106 106 106

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


(NI7N ALL S,L, ) ,=Name >/70 ,mployees=(SA Res,$t E_Name *ansen% 7la S#endson% )o#e S#endson% Stephen -ettersen% <ari )urner% Sally <ent% lar4

107 107 107 107 107 107 107 107 107 107 107 107 107 107 107 107 107 107 107 107 107 107 107 107 107 107 107 107 107 107 107 107 107 107 107 107 107 107 107

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


S#endson% Stephen Scott% Stephen

)he SQL S,L, ) IN)7 statement can be used to create bac4up copies of tables.

)he SQL S,L, ) IN)7 Statement


)he S,L, ) IN)7 statement selects data from one table and inserts it into a different table. )he S,L, ) IN)7 statement is most often used to create bac4up copies of tables.

108 108 108 108 108 108 108 108 108 108 108 108 108 108 108 108 108 108 108 108 108 108 108 108 108 108 108 108 108 108 108 108 108 108 108 108 108 108 108

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL SQL SELECT INTO Syntax
We can select all columns into the ne$ table3 S,L, ) ? IN)7 ne$=table=name QIN e!ternaldatabaseR >/70 old=tablename 7r $e can select only the columns $e $ant into the ne$ table3 S,L, ) column=name(s) IN)7 ne$=table=name QIN e!ternaldatabaseR

109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109 109

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


>/70 old=tablename

SQL S,L, ) IN)7 ,!ample


-a.e a Bac.,p Copy & No$ $e $ant to ma4e an e!act copy of the data in our 8-ersons8 table. We use the follo$ing SQL statement3 S,L, ) ? IN)7 -ersons='ac4up

110 110 110 110 110 110 110 110 110 110 110 110 110 110 110 110 110 110 110 110 110 110 110 110 110 110 110 110 110 110 110 110 110 110 110 110 110 110 110

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


>/70 -ersons We can also use the IN clause to copy the table into another database3 S,L, ) ? IN)7 -ersons='ac4up IN C'ac4up.mdbC >/70 -ersons We can also copy only a fe$ fields into the ne$ table3 S,L, ) LastName%>irstName IN)7 -ersons='ac4up

111 111 111 111 111 111 111 111 111 111 111 111 111 111 111 111 111 111 111 111 111 111 111 111 111 111 111 111 111 111 111 111 111 111 111 111 111 111 111

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


>/70 -ersons

SQL S,L, ) IN)7 & With a W*,/,


We can also add a W*,/, clause.

lause

)he follo$ing SQL statement creates a 8-ersons='ac4up8 table $ith only the persons $ho li#es in the city 8Sandnes83 S,L, ) LastName%>irstname

112 112 112 112 112 112 112 112 112 112 112 112 112 112 112 112 112 112 112 112 112 112 112 112 112 112 112 112 112 112 112 112 112 112 112 112 112 112 112

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


IN)7 -ersons='ac4up >/70 -ersons W*,/, ityBCSandnesC

SQL S,L, ) IN)7 & Moined )ables


Selecting data from more than one table is also possible. )he follo$ing e!ample creates a 8-ersons=7rder='ac4up8 table contains data from the t$o tables 8-ersons8 and 87rders83

113 113 113 113 113 113 113 113 113 113 113 113 113 113 113 113 113 113 113 113 113 113 113 113 113 113 113 113 113 113 113 113 113 113 113 113 113 113 113

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


S,L, ) -ersons.LastName%7rders.7rderNo IN)7 -ersons=7rder='ac4up >/70 -ersons INN,/ M7IN 7rders 7N -ersons.-=IdB7rders.-=Id

)he
)he

/,A), .A)A'AS, Statement

/,A), .A)A'AS, statement is used to create a database.

114 114 114 114 114 114 114 114 114 114 114 114 114 114 114 114 114 114 114 114 114 114 114 114 114 114 114 114 114 114 114 114 114 114 114 114 114 114 114

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL SQL CREATE DATABASE Syntax
/,A), .A)A'AS, database=name

/,A), .A)A'AS, ,!ample


No$ $e $ant to create a database called 8my=db8. We use the follo$ing /,A), .A)A'AS, statement3

115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115 115

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


/,A), .A)A'AS, my=db .atabase tables can be added $ith the /,A), )A'L, statement.

)he
)he

/,A), )A'L, Statement

/,A), )A'L, statement is used to create a table in a database.

SQL CREATE TABLE Syntax


/,A), )A'L, table=name (

116 116 116 116 116 116 116 116 116 116 116 116 116 116 116 116 116 116 116 116 116 116 116 116 116 116 116 116 116 116 116 116 116 116 116 116 116 116 116

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


column=name9 data=type% column=name6 data=type% column=name; data=type% .... ) )he data type specifies $hat type of data the column can hold. >or a complete reference of all the data types a#ailable in 0S Access% 0ySQL% and SQL Ser#er% go to our complete .ata )ypes reference.

117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

/,A), )A'L, ,!ample


No$ $e $ant to create a table called 8-ersons8 that contains fi#e columns3 -=Id% LastName% >irstName% Address% and ity. We use the follo$ing /,A), )A'L, statement3

/,A), )A'L, -ersons ( -=Id int% LastName #archar(6FF)% >irstName #archar(6FF)%

118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


Address #archar(6FF)% ity #archar(6FF) ) )he -=Id column is of type int and $ill hold a number. )he LastName% >irstName% Address% and columns are of type #archar $ith a ma!imum length of 6FF characters. )he empty 8-ersons8 table $ill no$ loo4 li4e this3 P_Id LastName FirstName Address City ity

)he empty table can be filled $ith data $ith the INS,/) IN)7 statement.

119 119 119 119 119 119 119 119 119 119 119 119 119 119 119 119 119 119 119 119 119 119 119 119 119 119 119 119 119 119 119 119 119 119 119 119 119 119 119

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

SQL

onstraints are used to limit the type of data that can go into a table. onstraints can be specified $hen a table is created ($ith the /,A), )A'L, statement) or after the table is created ($ith the AL),/ )A'L, statement). We $ill focus on the follo$ing constraints3 N7) N(LL (NIQ(, -/I0A/2 <,2 >7/,IAN <,2 *, <

onstraints

120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

.,>A(L) )he ne!t chapters $ill describe each constraint in details.

'y default% a table column can hold N(LL #alues.

SQL N7) N(LL

onstraint

)he N7) N(LL constraint enforces a column to N7) accept N(LL #alues. )he N7) N(LL constraint enforces a field to al$ays contain a #alue. )his means that you cannot insert a ne$ record% or update a record $ithout adding a #alue to this field. )he follo$ing SQL enforces the 8-=Id8 column and the 8LastName8 column to not accept N(LL #alues3 /,A), )A'L, -ersons ( -=Id int N7) N(LL%

121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


LastName #archar(6FF) N7) N(LL% >irstName #archar(6FF)% Address #archar(6FF)% ity #archar(6FF) )

SQL (NIQ(,

onstraint

)he (NIQ(, constraint uni"uely identifies each record in a database table. )he (NIQ(, and -/I0A/2 <,2 constraints both pro#ide a guarantee for uni"ueness for a column or set of columns. A -/I0A/2 <,2 constraint automatically has a (NIQ(, constraint defined on it.

122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


Note that you can ha#e many (NIQ(, constraints per table% but only one -/I0A/2 <,2 constraint per table.

SQL (NIQ(,

onstraint on

/,A), )A'L,

)he follo$ing SQL creates a (NIQ(, constraint on the 8-=Id8 column $hen the 8-ersons8 table is created3 -yS!L: /,A), )A'L, -ersons ( -=Id int N7) N(LL% LastName #archar(6FF) N7) N(LL% >irstName #archar(6FF)%

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


Address #archar(6FF)% ity #archar(6FF)% (NIQ(, (-=Id) ) S!L Ser"er / Orac$e / -S Access: /,A), )A'L, -ersons ( -=Id int N7) N(LL (NIQ(,% LastName #archar(6FF) N7) N(LL% >irstName #archar(6FF)% Address #archar(6FF)%

124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


ity #archar(6FF) ) )o allo$ naming of a (NIQ(, constraint% and for defining a (NIQ(, constraint on multiple columns% use the follo$ing SQL Syntax3 -yS!L / S!L Ser"er / Orac$e / -S Access: /,A), )A'L, -ersons ( -=Id int N7) N(LL% LastName #archar(6FF) N7) N(LL% >irstName #archar(6FF)% Address #archar(6FF)%

125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


) ity #archar(6FF)% 7NS)/AIN) uc=-ersonI. (NIQ(, (-=Id%LastName)

SQL (NIQ(,

)o create a (NIQ(, constraint on the 8-=Id8 column $hen the table is already created% use the follo$ing SQL3 -yS!L / S!L Ser"er / Orac$e / -S Access: AL),/ )A'L, -ersons A.. (NIQ(, (-=Id)

onstraint on AL),/ )A'L,

126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


)o allo$ naming of a (NIQ(, constraint% and for defining a (NIQ(, constraint on multiple columns% use the follo$ing SQL Syntax3 -yS!L / S!L Ser"er / Orac$e / -S Access: AL),/ )A'L, -ersons A.. 7NS)/AIN) uc=-ersonI. (NIQ(, (-=Id%LastName)

)o ./7- a (NIQ(,
AL),/ )A'L, -ersons

)o drop a (NIQ(, constraint% use the follo$ing SQL3 -yS!L:

onstraint

127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


./7- IN.,V uc=-ersonI. S!L Ser"er / Orac$e / -S Access: AL),/ )A'L, -ersons ./7- 7NS)/AIN) uc=-ersonI.

SQL -/I0A/2 <,2

)he -/I0A/2 <,2 constraint uni"uely identifies each record in a database table. -rimary 4eys must contain uni"ue #alues. A primary 4ey column cannot contain N(LL #alues. ,ach table should ha#e a primary 4ey% and each table can ha#e only 7N, primary 4ey.

onstraint

SQL -/I0A/2 <,2

onstraint on

/,A), )A'L,
128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


)he follo$ing SQL creates a -/I0A/2 <,2 on the 8-=Id8 column $hen the 8-ersons8 table is created3 -yS!L: /,A), )A'L, -ersons ( -=Id int N7) N(LL% LastName #archar(6FF) N7) N(LL% >irstName #archar(6FF)% Address #archar(6FF)% ity #archar(6FF)% -/I0A/2 <,2 (-=Id) ) S!L Ser"er / Orac$e / -S Access:

129 129 129 129 129 129 129 129 129 129 129 129 129 129 129 129 129 129 129 129 129 129 129 129 129 129 129 129 129 129 129 129 129 129 129 129 129 129 129

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


/,A), )A'L, -ersons ( -=Id int N7) N(LL -/I0A/2 <,2% LastName #archar(6FF) N7) N(LL% >irstName #archar(6FF)% Address #archar(6FF)% ity #archar(6FF) ) )o allo$ naming of a -/I0A/2 <,2 constraint% and for defining a -/I0A/2 <,2 constraint on multiple columns% use the follo$ing SQL Syntax3 -yS!L / S!L Ser"er / Orac$e / -S Access:

130 130 130 130 130 130 130 130 130 130 130 130 130 130 130 130 130 130 130 130 130 130 130 130 130 130 130 130 130 130 130 130 130 130 130 130 130 130 130

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


/,A), )A'L, -ersons ( -=Id int N7) N(LL% LastName #archar(6FF) N7) N(LL% >irstName #archar(6FF)% Address #archar(6FF)% ity #archar(6FF)% 7NS)/AIN) p4=-ersonI. -/I0A/2 <,2 (-=Id%LastName) )

SQL -/I0A/2 <,2

onstraint on AL),/ )A'L,


131 131 131 131 131 131 131 131 131 131 131 131 131 131 131 131 131 131 131 131 131 131 131 131 131 131 131 131 131 131 131 131 131 131 131 131 131 131 131

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


)o create a -/I0A/2 <,2 constraint on the 8-=Id8 column $hen the table is already created% use the follo$ing SQL3 -yS!L / S!L Ser"er / Orac$e / -S Access: AL),/ )A'L, -ersons A.. -/I0A/2 <,2 (-=Id) )o allo$ naming of a -/I0A/2 <,2 constraint% and for defining a -/I0A/2 <,2 constraint on multiple columns% use the follo$ing SQL Syntax3 -yS!L / S!L Ser"er / Orac$e / -S Access: AL),/ )A'L, -ersons A.. 7NS)/AIN) p4=-ersonI. -/I0A/2 <,2 (-=Id%LastName)

132 132 132 132 132 132 132 132 132 132 132 132 132 132 132 132 132 132 132 132 132 132 132 132 132 132 132 132 132 132 132 132 132 132 132 132 132 132 132

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


Note: If you use the AL),/ )A'L, statement to add a primary 4ey% the primary 4ey column(s) must already ha#e been declared to not contain N(LL #alues ($hen the table $as first created).

)o ./7- a -/I0A/2 <,2


AL),/ )A'L, -ersons ./7- -/I0A/2 <,2 S!L Ser"er / Orac$e / -S Access: AL),/ )A'L, -ersons ./7- 7NS)/AIN) p4=-ersonI.

onstraint

)o drop a -/I0A/2 <,2 constraint% use the follo$ing SQL3 -yS!L:

133 133 133 133 133 133 133 133 133 133 133 133 133 133 133 133 133 133 133 133 133 133 133 133 133 133 133 133 133 133 133 133 133 133 133 133 133 133 133

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

SQL >7/,IAN <,2

A >7/,IAN <,2 in one table points to a -/I0A/2 <,2 in another table. LetCs illustrate the foreign 4ey $ith an e!ample. Loo4 at the follo$ing t$o tables3 )he 8-ersons8 table3 P_Id LastName FirstName Address City 9 *ansen 7la )imotei#n 9: Sandnes 6 S#endson )o#e 'org#n 6; Sandnes ; -ettersen <ari Storgt 6: Sta#anger )he 87rders8 table3 O_Id OrderNo P_Id 9 NNUDF ;

onstraint

134 134 134 134 134 134 134 134 134 134 134 134 134 134 134 134 134 134 134 134 134 134 134 134 134 134 134 134 134 134 134 134 134 134 134 134 134 134 134

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


6 KKENU ; ; 66KFE 6 K 6KFE6 9 Note that the 8-=Id8 column in the 87rders8 table points to the 8-=Id8 column in the 8-ersons8 table. )he 8-=Id8 column in the 8-ersons8 table is the -/I0A/2 <,2 in the 8-ersons8 table. )he 8-=Id8 column in the 87rders8 table is a >7/,IAN <,2 in the 87rders8 table. )he >7/,IAN <,2 constraint is used to pre#ent actions that $ould destroy lin4s bet$een tables. )he >7/,IAN <,2 constraint also pre#ents that in#alid data form being inserted into the foreign 4ey column% because it has to be one of the #alues contained in the table it points to.

SQL >7/,IAN <,2

)he follo$ing SQL creates a >7/,IAN <,2 on the 8-=Id8 column $hen the 87rders8 table is created3 -yS!L:

onstraint on

/,A), )A'L,

135 135 135 135 135 135 135 135 135 135 135 135 135 135 135 135 135 135 135 135 135 135 135 135 135 135 135 135 135 135 135 135 135 135 135 135 135 135 135

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


/,A), )A'L, 7rders ( 7=Id int N7) N(LL% 7rderNo int N7) N(LL% -=Id int% -/I0A/2 <,2 (7=Id)% >7/,IAN <,2 (-=Id) /,>,/,N ,S -ersons(-=Id) ) S!L Ser"er / Orac$e / -S Access: ( /,A), )A'L, 7rders

136 136 136 136 136 136 136 136 136 136 136 136 136 136 136 136 136 136 136 136 136 136 136 136 136 136 136 136 136 136 136 136 136 136 136 136 136 136 136

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


7=Id int N7) N(LL -/I0A/2 <,2% 7rderNo int N7) N(LL% -=Id int >7/,IAN <,2 /,>,/,N ,S -ersons(-=Id) ) )o allo$ naming of a >7/,IAN <,2 constraint% and for defining a >7/,IAN <,2 constraint on multiple columns% use the follo$ing SQL Syntax3 -yS!L / S!L Ser"er / Orac$e / -S Access: /,A), )A'L, 7rders ( 7=Id int N7) N(LL% 7rderNo int N7) N(LL%

137 137 137 137 137 137 137 137 137 137 137 137 137 137 137 137 137 137 137 137 137 137 137 137 137 137 137 137 137 137 137 137 137 137 137 137 137 137 137

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


-=Id int% -/I0A/2 <,2 (7=Id)% 7NS)/AIN) f4=-er7rders >7/,IAN <,2 (-=Id) /,>,/,N ,S -ersons(-=Id) )

SQL >7/,IAN <,2

)o create a >7/,IAN <,2 constraint on the 8-=Id8 column $hen the 87rders8 table is already created% use the follo$ing SQL3 -yS!L / S!L Ser"er / Orac$e / -S Access:

onstraint on AL),/ )A'L,

138 138 138 138 138 138 138 138 138 138 138 138 138 138 138 138 138 138 138 138 138 138 138 138 138 138 138 138 138 138 138 138 138 138 138 138 138 138 138

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


AL),/ )A'L, 7rders A.. >7/,IAN <,2 (-=Id) /,>,/,N ,S -ersons(-=Id) )o allo$ naming of a >7/,IAN <,2 constraint% and for defining a >7/,IAN <,2 constraint on multiple columns% use the follo$ing SQL Syntax3 -yS!L / S!L Ser"er / Orac$e / -S Access: AL),/ )A'L, 7rders A.. 7NS)/AIN) f4=-er7rders >7/,IAN <,2 (-=Id) /,>,/,N ,S -ersons(-=Id)

139 139 139 139 139 139 139 139 139 139 139 139 139 139 139 139 139 139 139 139 139 139 139 139 139 139 139 139 139 139 139 139 139 139 139 139 139 139 139

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

)o ./7- a >7/,IAN <,2


AL),/ )A'L, 7rders ./7- >7/,IAN <,2 f4=-er7rders S!L Ser"er / Orac$e / -S Access: AL),/ )A'L, 7rders ./7- 7NS)/AIN) f4=-er7rders

)o drop a >7/,IAN <,2 constraint% use the follo$ing SQL3 -yS!L:

onstraint

SQL
)he

*, <

onstraint
140 140 140 140 140 140 140 140 140 140 140 140 140 140 140 140 140 140 140 140 140 140 140 140 140 140 140 140 140 140 140 140 140 140 140 140 140 140 140

*, < constraint is used to limit the #alue range that can be placed in a column.

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


If you define a *, < constraint on a single column it allo$s only certain #alues for this column. If you define a *, < constraint on a table it can limit the #alues in certain columns based on #alues in other columns in the ro$.

SQL

)he follo$ing SQL creates a *, < constraint on the 8-=Id8 column $hen the 8-ersons8 table is created. )he *, < constraint specifies that the column 8-=Id8 must only include integers greater than :. -y S!L: /,A), )A'L, -ersons ( -=Id int N7) N(LL%

*, <

onstraint on

/,A), )A'L,

141 141 141 141 141 141 141 141 141 141 141 141 141 141 141 141 141 141 141 141 141 141 141 141 141 141 141 141 141 141 141 141 141 141 141 141 141 141 141

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


LastName #archar(6FF) N7) N(LL% >irstName #archar(6FF)% Address #archar(6FF)% ity #archar(6FF)% *, < (-=IdH:) ) S!L Ser"er / Orac$e / -S Access: /,A), )A'L, -ersons ( -=Id int N7) N(LL *, < (-=IdH:)% LastName #archar(6FF) N7) N(LL%

142 142 142 142 142 142 142 142 142 142 142 142 142 142 142 142 142 142 142 142 142 142 142 142 142 142 142 142 142 142 142 142 142 142 142 142 142 142 142

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


>irstName #archar(6FF)% Address #archar(6FF)% ity #archar(6FF) ) )o allo$ naming of a *, < constraint% and for defining a the follo$ing SQL Syntax3 -yS!L / S!L Ser"er / Orac$e / -S Access: /,A), )A'L, -ersons ( -=Id int N7) N(LL% LastName #archar(6FF) N7) N(LL% *, < constraint on multiple columns% use

143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


>irstName #archar(6FF)% Address #archar(6FF)% ity #archar(6FF)% 7NS)/AIN) ch4=-erson )

*, < (-=IdH: AN.

ityBCSandnesC)

SQL

)o create a *, < constraint on the 8-=Id8 column $hen the table is already created% use the follo$ing SQL3 -yS!L / S!L Ser"er / Orac$e / -S Access:

*, <

onstraint on AL),/ )A'L,

144 144 144 144 144 144 144 144 144 144 144 144 144 144 144 144 144 144 144 144 144 144 144 144 144 144 144 144 144 144 144 144 144 144 144 144 144 144 144

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


AL),/ )A'L, -ersons A.. *, < (-=IdH:) )o allo$ naming of a *, < constraint% and for defining a the follo$ing SQL Syntax3 -yS!L / S!L Ser"er / Orac$e / -S Access: AL),/ )A'L, -ersons A.. 7NS)/AIN) ch4=-erson *, < (-=IdH: AN. *, < constraint on multiple columns% use

ityBCSandnesC)

)o ./7- a
)o drop a

*, < constraint% use the follo$ing SQL3

*, <

onstraint

145 145 145 145 145 145 145 145 145 145 145 145 145 145 145 145 145 145 145 145 145 145 145 145 145 145 145 145 145 145 145 145 145 145 145 145 145 145 145

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


S!L Ser"er / Orac$e / -S Access: AL),/ )A'L, -ersons ./7- 7NS)/AIN) ch4=-erson

SQL .,>A(L) SQL .,>A(L)

onstraint onstraint on /,A), )A'L,

)he .,>A(L) constraint is used to insert a default #alue into a column. )he default #alue $ill be added to all ne$ records% if no other #alue is specified. )he follo$ing SQL creates a .,>A(L) constraint on the 8 ity8 column $hen the 8-ersons8 table is created3 -y S!L / S!L Ser"er / Orac$e / -S Access:

146 146 146 146 146 146 146 146 146 146 146 146 146 146 146 146 146 146 146 146 146 146 146 146 146 146 146 146 146 146 146 146 146 146 146 146 146 146 146

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


/,A), )A'L, -ersons ( -=Id int N7) N(LL% LastName #archar(6FF) N7) N(LL% >irstName #archar(6FF)% Address #archar(6FF)% ity #archar(6FF) .,>A(L) CSandnesC ) )he .,>A(L) constraint can also be used to insert system #alues% by using functions li4e A,).A),()3 ( /,A), )A'L, 7rders

147 147 147 147 147 147 147 147 147 147 147 147 147 147 147 147 147 147 147 147 147 147 147 147 147 147 147 147 147 147 147 147 147 147 147 147 147 147 147

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


7=Id int N7) N(LL% 7rderNo int N7) N(LL% -=Id int% 7rder.ate date .,>A(L) A,).A),() )

SQL .,>A(L)

)o create a .,>A(L) constraint on the 8 ity8 column $hen the table is already created% use the follo$ing SQL3 -yS!L:

onstraint on AL),/ )A'L,

148 148 148 148 148 148 148 148 148 148 148 148 148 148 148 148 148 148 148 148 148 148 148 148 148 148 148 148 148 148 148 148 148 148 148 148 148 148 148

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


AL),/ )A'L, -ersons AL),/ ity S,) .,>A(L) CSAN.N,SC S!L Ser"er / Orac$e / -S Access: AL),/ )A'L, -ersons AL),/ 7L(0N ity S,) .,>A(L) CSAN.N,SC

)o ./7- a .,>A(L)

)o drop a .,>A(L) constraint% use the follo$ing SQL3 -yS!L:

onstraint

149 149 149 149 149 149 149 149 149 149 149 149 149 149 149 149 149 149 149 149 149 149 149 149 149 149 149 149 149 149 149 149 149 149 149 149 149 149 149

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


AL),/ )A'L, -ersons AL),/ ity ./7- .,>A(L) S!L Ser"er / Orac$e / -S Access: AL),/ )A'L, -ersons AL),/ 7L(0N ity ./7- .,>A(L)

)he

/,A), IN.,V statement is used to create inde!es in tables.

Inde!es allo$ the database application to find data fastT $ithout reading the $hole table. 150 150 150 150 150 150 150 150 150 150 150 150 150 150 150 150 150 150 150 150 150 150 150 150 150 150 150 150 150 150 150 150 150 150 150 150 150 150 150

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

Inde!es
An inde! can be created in a table to find data more "uic4ly and efficiently. )he users cannot see the inde!es% they are +ust used to speed up searches5"ueries. Note: (pdating a table $ith inde!es ta4es more time than updating a table $ithout (because the inde!es also need an update). So you should only create inde!es on columns (and tables) that $ill be fre"uently searched against.

SQL CREATE INDE* Syntax


reates an inde! on a table. .uplicate #alues are allo$ed3

151 151 151 151 151 151 151 151 151 151 151 151 151 151 151 151 151 151 151 151 151 151 151 151 151 151 151 151 151 151 151 151 151 151 151 151 151 151 151

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


/,A), IN.,V inde!=name 7N table=name (column=name)

SQL CREATE UNIQUE INDE* Syntax


reates a uni"ue inde! on a table. .uplicate #alues are not allo$ed3 /,A), (NIQ(, IN.,V inde!=name 7N table=name (column=name) Note: )he Syntax for creating inde!es #aries amongst different databases. )herefore3 Syntax for creating inde!es in your database. hec4 the

152 152 152 152 152 152 152 152 152 152 152 152 152 152 152 152 152 152 152 152 152 152 152 152 152 152 152 152 152 152 152 152 152 152 152 152 152 152 152

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

/,A), IN.,V ,!ample


)he SQL statement belo$ creates an inde! named 8-Inde!8 on the 8LastName8 column in the 8-ersons8 table3 /,A), IN.,V -Inde! 7N -ersons (LastName) If you $ant to create an inde! on a combination of columns% you can list the column names $ithin the parentheses% separated by commas3

153 153 153 153 153 153 153 153 153 153 153 153 153 153 153 153 153 153 153 153 153 153 153 153 153 153 153 153 153 153 153 153 153 153 153 153 153 153 153

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


/,A), IN.,V -Inde! 7N -ersons (LastName% >irstName)

Inde!es% tables% and databases can easily be deleted5remo#ed $ith the ./7statement.

)he ./7- IN.,V Statement


)he ./7- IN.,V statement is used to delete an inde! in a table.

154 154 154 154 154 154 154 154 154 154 154 154 154 154 154 154 154 154 154 154 154 154 154 154 154 154 154 154 154 154 154 154 154 154 154 154 154 154 154

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL DROP INDE* Syntax "#r MS Acce!!+
./7- IN.,V inde!=name 7N table=name

DROP INDE* Syntax "#r MS SQL Server+


./7- IN.,V table=name.inde!=name

DROP INDE* Syntax "#r DB,-Oracle+


./7- IN.,V inde!=name

155 155 155 155 155 155 155 155 155 155 155 155 155 155 155 155 155 155 155 155 155 155 155 155 155 155 155 155 155 155 155 155 155 155 155 155 155 155 155

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL DROP INDE* Syntax "#r MySQL+
AL),/ )A'L, table=name ./7- IN.,V inde!=name

)he ./7- )A'L, Statement


)he ./7- )A'L, statement is used to delete a table. ./7- )A'L, table=name

156 156 156 156 156 156 156 156 156 156 156 156 156 156 156 156 156 156 156 156 156 156 156 156 156 156 156 156 156 156 156 156 156 156 156 156 156 156 156

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

)he ./7- .A)A'AS, Statement


)he ./7- .A)A'AS, statement is used to delete a database. ./7- .A)A'AS, database=name

)he )/(N A), )A'L, Statement


What if $e only $ant to delete the data inside the table% and not the table itself?

157 157 157 157 157 157 157 157 157 157 157 157 157 157 157 157 157 157 157 157 157 157 157 157 157 157 157 157 157 157 157 157 157 157 157 157 157 157 157

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


)hen% use the )/(N A), )A'L, statement3 )/(N A), )A'L, table=name

)he AL),/ )A'L, Statement


)he AL),/ )A'L, statement is used to add% delete% or modify columns in an e!isting table.

SQL ALTER TABLE Syntax


)o add a column in a table% use the follo$ing Syntax3

158 158 158 158 158 158 158 158 158 158 158 158 158 158 158 158 158 158 158 158 158 158 158 158 158 158 158 158 158 158 158 158 158 158 158 158 158 158 158

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


AL),/ )A'L, table=name A.. column=name datatype )o delete a column in a table% use the follo$ing Syntax (notice that some database systems donCt allo$ deleting a column)3 AL),/ )A'L, table=name ./7- 7L(0N column=name )o change the data type of a column in a table% use the follo$ing Syntax3 AL),/ )A'L, table=name

159 159 159 159 159 159 159 159 159 159 159 159 159 159 159 159 159 159 159 159 159 159 159 159 159 159 159 159 159 159 159 159 159 159 159 159 159 159 159

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


AL),/ 7L(0N column=name datatype

SQL AL),/ )A'L, ,!ample


Loo4 at the 8-ersons8 table3 P_Id 9 6 ; LastName *ansen S#endson -ettersen FirstName 7la )o#e <ari Address )imotei#n 9: 'org#n 6; Storgt 6: City Sandnes Sandnes Sta#anger

160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


No$ $e $ant to add a column named 8.ate7f'irth8 in the 8-ersons8 table. We use the follo$ing SQL statement3 AL),/ )A'L, -ersons A.. .ate7f'irth date Notice that the ne$ column% 8.ate7f'irth8% is of type date and is going to hold a date. )he data type specifies $hat type of data the column can hold. >or a complete reference of all the data types a#ailable in 0S Access% 0ySQL% and SQL Ser#er% go to our complete .ata )ypes reference. )he 8-ersons8 table $ill no$ li4e this3 P_Id LastName FirstName Address City DateO+Birt*

161 161 161 161 161 161 161 161 161 161 161 161 161 161 161 161 161 161 161 161 161 161 161 161 161 161 161 161 161 161 161 161 161 161 161 161 161 161 161

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


9 6 ; *ansen S#endson -ettersen 7la )o#e <ari )imotei#n 9: 'org#n 6; Storgt 6: Sandnes Sandnes Sta#anger

hange .ata )ype ,!ample


No$ $e $ant to change the data type of the column named 8.ate7f'irth8 in the 8-ersons8 table. We use the follo$ing SQL statement3 AL),/ )A'L, -ersons

162 162 162 162 162 162 162 162 162 162 162 162 162 162 162 162 162 162 162 162 162 162 162 162 162 162 162 162 162 162 162 162 162 162 162 162 162 162 162

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


AL),/ 7L(0N .ate7f'irth year Notice that the 8.ate7f'irth8 column is no$ of type year and is going to hold a year in a t$o&digit or four&digit format.

./7-

7L(0N ,!ample

Ne!t% $e $ant to delete the column named 8.ate7f'irth8 in the 8-ersons8 table. We use the follo$ing SQL statement3 AL),/ )A'L, -ersons

163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


./77L(0N .ate7f'irth )he 8-ersons8 table $ill no$ li4e this3 P_Id 9 6 ; LastName *ansen S#endson -ettersen FirstName 7la )o#e <ari Address )imotei#n 9: 'org#n 6; Storgt 6: City Sandnes Sandnes Sta#anger

Auto&increment allo$s a uni"ue number to be generated $hen a ne$ record is inserted into a table.

A()7 IN /,0,N) a >ield


164 164 164 164 164 164 164 164 164 164 164 164 164 164 164 164 164 164 164 164 164 164 164 164 164 164 164 164 164 164 164 164 164 164 164 164 164 164 164

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


Lery often $e $ould li4e the #alue of the primary 4ey field to be created automatically e#ery time a ne$ record is inserted. We $ould li4e to create an auto&increment field in a table.

Syntax for 0ySQL

)he follo$ing SQL statement defines the 8-=Id8 column to be an auto&increment primary 4ey field in the 8-ersons8 table3 /,A), )A'L, -ersons ( -=Id int N7) N(LL A()7=IN /,0,N)% LastName #archar(6FF) N7) N(LL% >irstName #archar(6FF)%

165 165 165 165 165 165 165 165 165 165 165 165 165 165 165 165 165 165 165 165 165 165 165 165 165 165 165 165 165 165 165 165 165 165 165 165 165 165 165

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


Address #archar(6FF)% ity #archar(6FF)% -/I0A/2 <,2 (-=Id) ) 0ySQL uses the A()7=IN /,0,N) 4ey$ord to perform an auto&increment feature. 'y default% the starting #alue for A()7=IN /,0,N) is 9% and it $ill increment by 9 for each ne$ record. )o let the A()7=IN /,0,N) se"uence start $ith another #alue% use the follo$ing SQL statement3 AL),/ )A'L, -ersons A()7=IN /,0,N)B9:: )o insert a ne$ record into the 8-ersons8 table% $e $ill not ha#e to specify a #alue for the 8-=Id8 column (a uni"ue #alue $ill be added automatically)3

166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166 166

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


INS,/) IN)7 -ersons (>irstName%LastName) LAL(,S (CLarsC%C0onsenC) )he SQL statement abo#e $ould insert a ne$ record into the 8-ersons8 table. )he 8-=Id8 column $ould be assigned a uni"ue #alue. )he 8>irstName8 column $ould be set to 8Lars8 and the 8LastName8 column $ould be set to 80onsen8.

Syntax for SQL Ser#er


/,A), )A'L, -ersons (

)he follo$ing SQL statement defines the 8-=Id8 column to be an auto&increment primary 4ey field in the 8-ersons8 table3

167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


-=Id int -/I0A/2 <,2 I.,N)I)2% LastName #archar(6FF) N7) N(LL% >irstName #archar(6FF)% Address #archar(6FF)% ity #archar(6FF) ) )he 0S SQL Ser#er uses the I.,N)I)2 4ey$ord to perform an auto&increment feature. 'y default% the starting #alue for I.,N)I)2 is 9% and it $ill increment by 9 for each ne$ record. )o specify that the 8-=Id8 column should start at #alue 9: and increment by F% change the identity to I.,N)I)2(9:%F). )o insert a ne$ record into the 8-ersons8 table% $e $ill not ha#e to specify a #alue for the 8-=Id8 column (a uni"ue #alue $ill be added automatically)3

168 168 168 168 168 168 168 168 168 168 168 168 168 168 168 168 168 168 168 168 168 168 168 168 168 168 168 168 168 168 168 168 168 168 168 168 168 168 168

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


INS,/) IN)7 -ersons (>irstName%LastName) LAL(,S (CLarsC%C0onsenC) )he SQL statement abo#e $ould insert a ne$ record into the 8-ersons8 table. )he 8-=Id8 column $ould be assigned a uni"ue #alue. )he 8>irstName8 column $ould be set to 8Lars8 and the 8LastName8 column $ould be set to 80onsen8.

Syntax for Access


/,A), )A'L, -ersons (

)he follo$ing SQL statement defines the 8-=Id8 column to be an auto&increment primary 4ey field in the 8-ersons8 table3

169 169 169 169 169 169 169 169 169 169 169 169 169 169 169 169 169 169 169 169 169 169 169 169 169 169 169 169 169 169 169 169 169 169 169 169 169 169 169

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


-=Id -/I0A/2 <,2 A()7IN /,0,N)% LastName #archar(6FF) N7) N(LL% >irstName #archar(6FF)% Address #archar(6FF)% ity #archar(6FF) ) )he 0S Access uses the A()7IN /,0,N) 4ey$ord to perform an auto&increment feature. 'y default% the starting #alue for A()7IN /,0,N) is 9% and it $ill increment by 9 for each ne$ record. )o specify that the 8-=Id8 column should start at #alue 9: and increment by F% change the autoincrement to A()7IN /,0,N)(9:%F).

170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


)o insert a ne$ record into the 8-ersons8 table% $e $ill not ha#e to specify a #alue for the 8-=Id8 column (a uni"ue #alue $ill be added automatically)3 INS,/) IN)7 -ersons (>irstName%LastName) LAL(,S (CLarsC%C0onsenC) )he SQL statement abo#e $ould insert a ne$ record into the 8-ersons8 table. )he 8-=Id8 column $ould be assigned a uni"ue #alue. )he 8>irstName8 column $ould be set to 8Lars8 and the 8LastName8 column $ould be set to 80onsen8.

Syntax for 7racle

In 7racle the code is a little bit more tric4y. 2ou $ill ha#e to create an auto&increment field $ith the se"uence ob+ect (this ob+ect generates a number se"uence).

171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


(se the follo$ing /,A), S,Q(,N , Syntax3 /,A), S,Q(,N , se"=person 0INLAL(, 9 S)A/) WI)* 9 IN /,0,N) '2 9 A *, 9: )he code abo#e creates a se"uence ob+ect called se"=person% that starts $ith 9 and $ill increment by 9. It $ill also cache up to 9: #alues for performance. )he cache option specifies ho$ many se"uence #alues $ill be stored in memory for faster access. )o insert a ne$ record into the 8-ersons8 table% $e $ill ha#e to use the ne!t#al function (this function retrie#es the ne!t #alue from se"=person se"uence)3

172 172 172 172 172 172 172 172 172 172 172 172 172 172 172 172 172 172 172 172 172 172 172 172 172 172 172 172 172 172 172 172 172 172 172 172 172 172 172

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


INS,/) IN)7 -ersons (-=Id%>irstName%LastName) LAL(,S (se"=person.ne!t#al%CLarsC%C0onsenC) )he SQL statement abo#e $ould insert a ne$ record into the 8-ersons8 table. )he 8-=Id8 column $ould be assigned the ne!t number from the se"=person se"uence. )he 8>irstName8 column $ould be set to 8Lars8 and the 8LastName8 column $ould be set to 80onsen8.

A #ie$ is a #irtual table. )his chapter sho$s ho$ to create% update% and delete a #ie$.

173 173 173 173 173 173 173 173 173 173 173 173 173 173 173 173 173 173 173 173 173 173 173 173 173 173 173 173 173 173 173 173 173 173 173 173 173 173 173

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

SQL

/,A), LI,W Statement

In SQL% a #ie$ is a #irtual table based on the result&set of an SQL statement. A #ie$ contains ro$s and columns% +ust li4e a real table. )he fields in a #ie$ are fields from one or more real tables in the database. 2ou can add SQL functions% W*,/,% and M7IN statements to a #ie$ and present the data as if the data $ere coming from one single table.

SQL CREATE .IEW Syntax


/,A), LI,W #ie$=name AS

174 174 174 174 174 174 174 174 174 174 174 174 174 174 174 174 174 174 174 174 174 174 174 174 174 174 174 174 174 174 174 174 174 174 174 174 174 174 174

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


S,L, ) column=name(s) >/70 table=name W*,/, condition Note: A #ie$ al$ays sho$s up&to&date data1 )he database engine recreates the data% using the #ie$Cs SQL statement% e#ery time a user "ueries a #ie$.

SQL

/,A), LI,W ,!amples

If you ha#e the North$ind database you can see that it has se#eral #ie$s installed by default.

175 175 175 175 175 175 175 175 175 175 175 175 175 175 175 175 175 175 175 175 175 175 175 175 175 175 175 175 175 175 175 175 175 175 175 175 175 175 175

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


)he #ie$ 8 urrent -roduct List8 lists all acti#e products (products that are not discontinued) from the 8-roducts8 table. )he #ie$ is created $ith the follo$ing SQL3 /,A), LI,W Q urrent -roduct ListR AS S,L, ) -roductI.%-roductName >/70 -roducts W*,/, .iscontinuedBNo We can "uery the #ie$ abo#e as follo$s3 S,L, ) ? >/70 Q urrent -roduct ListR

176 176 176 176 176 176 176 176 176 176 176 176 176 176 176 176 176 176 176 176 176 176 176 176 176 176 176 176 176 176 176 176 176 176 176 176 176 176 176

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


Another #ie$ in the North$ind sample database selects e#ery product in the 8-roducts8 table $ith a unit price higher than the a#erage unit price3 /,A), LI,W Q-roducts Abo#e A#erage -riceR AS S,L, ) -roductName%(nit-rice >/70 -roducts W*,/, (nit-riceH(S,L, ) ALA((nit-rice) >/70 -roducts) We can "uery the #ie$ abo#e as follo$s3 S,L, ) ? >/70 Q-roducts Abo#e A#erage -riceR

177 177 177 177 177 177 177 177 177 177 177 177 177 177 177 177 177 177 177 177 177 177 177 177 177 177 177 177 177 177 177 177 177 177 177 177 177 177 177

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


Another #ie$ in the North$ind database calculates the total sale for each category in 9DDN. Note that this #ie$ selects its data from another #ie$ called 8-roduct Sales for 9DDN83 /,A), LI,W Q ategory Sales >or 9DDNR AS S,L, ) .IS)IN ) ategoryName%Sum(-roductSales) AS >/70 Q-roduct Sales for 9DDNR A/7(- '2 ategoryName We can "uery the #ie$ abo#e as follo$s3 S,L, ) ? >/70 Q ategory Sales >or 9DDNR ategorySales

178 178 178 178 178 178 178 178 178 178 178 178 178 178 178 178 178 178 178 178 178 178 178 178 178 178 178 178 178 178 178 178 178 178 178 178 178 178 178

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


We can also add a condition to the "uery. No$ $e $ant to see the total sale only for the category 8'e#erages83 S,L, ) ? >/70 Q ategory Sales >or 9DDNR W*,/, ategoryNameBC'e#eragesC

SQL (pdating a Lie$


2ou can update a #ie$ by using the follo$ing Syntax3

179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL SQL CREATE OR REPLACE .IEW Syntax
/,A), 7/ /,-LA , LI,W #ie$=name AS S,L, ) column=name(s) >/70 table=name W*,/, condition No$ $e $ant to add the 8 ategory8 column to the 8 urrent -roduct List8 #ie$. We $ill update the #ie$ $ith the follo$ing SQL3 /,A), LI,W Q urrent -roduct ListR AS S,L, ) -roductI.%-roductName% ategory

180 180 180 180 180 180 180 180 180 180 180 180 180 180 180 180 180 180 180 180 180 180 180 180 180 180 180 180 180 180 180 180 180 180 180 180 180 180 180

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


>/70 -roducts W*,/, .iscontinuedBNo

SQL .ropping a Lie$


2ou can delete a #ie$ $ith the ./7- LI,W command.

181 181 181 181 181 181 181 181 181 181 181 181 181 181 181 181 181 181 181 181 181 181 181 181 181 181 181 181 181 181 181 181 181 181 181 181 181 181 181

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL SQL DROP .IEW Syntax
./7- LI,W #ie$=name

SQL .ates
)he most difficult part $hen $or4ing $ith dates is to be sure that the format of the date you are trying to insert% matches the format of the date column in the database. As long as your data contains only the date portion% your "ueries $ill $or4 as e!pected. *o$e#er% if a time portion is in#ol#ed% it gets complicated. 'efore tal4ing about the complications of "uerying for dates% $e $ill loo4 at the most important built& in functions for $or4ing $ith dates.

182 182 182 182 182 182 182 182 182 182 182 182 182 182 182 182 182 182 182 182 182 182 182 182 182 182 182 182 182 182 182 182 182 182 182 182 182 182 182

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

0ySQL .ate >unctions

)he follo$ing table lists the most important built&in date functions in 0ySQL3 F, ctio Descriptio NOW() /eturns the current date and time CURDATE() /eturns the current date CURTIME() /eturns the current time DATE() ,!tracts the date part of a date or date5time e!pression EXTRACT() /eturns a single part of a date5time DATE_ADD() Adds a specified time inter#al to a date DATE_SUB() Subtracts a specified time inter#al from a date DATEDIFF() /eturns the number of days bet$een t$o dates

183 183 183 183 183 183 183 183 183 183 183 183 183 183 183 183 183 183 183 183 183 183 183 183 183 183 183 183 183 183 183 183 183 183 183 183 183 183 183

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


DATE_FORMAT() .isplays date5time data in different formats

SQL Ser#er .ate >unctions

)he follo$ing table lists the most important built&in date functions in SQL Ser#er3 F, ctio Descriptio GETDATE() /eturns the current date and time DATEPART() /eturns a single part of a date5time DATEADD() Adds or subtracts a specified time inter#al from a date DATEDIFF() /eturns the time bet$een t$o dates CONVERT() .isplays date5time data in different formats

184 184 184 184 184 184 184 184 184 184 184 184 184 184 184 184 184 184 184 184 184 184 184 184 184 184 184 184 184 184 184 184 184 184 184 184 184 184 184

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

SQL .ate .ata )ypes


-yS!L comes $ith the follo$ing data types for storing a date or a date5time #alue in the database3 .A), & format 2222&00&.. .A),)I0, & format3 2222&00&.. **3003SS )I0,S)A0- & format3 2222&00&.. **3003SS 2,A/ & format 2222 or 22 S!L Ser"er comes $ith the follo$ing data types for storing a date or a date5time #alue in the database3 .A), & format 2222&00&.. .A),)I0, & format3 2222&00&.. **3003SS

185 185 185 185 185 185 185 185 185 185 185 185 185 185 185 185 185 185 185 185 185 185 185 185 185 185 185 185 185 185 185 185 185 185 185 185 185 185 185

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

S0ALL.A),)I0, & format3 2222&00&.. **3003SS )I0,S)A0- & format3 a uni"ue number Note: )he date types are chosen for a column $hen you create a ne$ table in your database1 >or an o#er#ie$ of all data types a#ailable% go to our complete .ata )ypes reference.

SQL Wor4ing $ith .ates


2ou can compare t$o dates easily if there is no time component in#ol#ed1 Assume $e ha#e the follo$ing 87rders8 table3 OrderId Prod,ctName OrderDate 9 Aeitost 6::U&99&99 6 amembert -ierrot 6::U&99&:D ; 0oPParella di Aio#anni 6::U&99&99

186 186 186 186 186 186 186 186 186 186 186 186 186 186 186 186 186 186 186 186 186 186 186 186 186 186 186 186 186 186 186 186 186 186 186 186 186 186 186

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


K 0ascarpone >abioli 6::U&9:&6D No$ $e $ant to select the records $ith an 7rder.ate of 86::U&99&998 from the table abo#e. We use the follo$ing S,L, ) statement3 S,L, ) ? >/70 7rders W*,/, 7rder.ateBC6::U&99&99C )he result&set $ill loo4 li4e this3 OrderId Prod,ctName OrderDate 9 Aeitost 6::U&99&99 ; 0oPParella di Aio#anni 6::U&99&99 No$% assume that the 87rders8 table loo4s li4e this (notice the time component in the 87rder.ate8 column)3 OrderId Prod,ctName OrderDate

187 187 187 187 187 187 187 187 187 187 187 187 187 187 187 187 187 187 187 187 187 187 187 187 187 187 187 187 187 187 187 187 187 187 187 187 187 187 187

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


9 6 ; K If $e use the same Aeitost amembert -ierrot 0oPParella di Aio#anni 0ascarpone >abioli S,L, ) statement as abo#e3 6::U&99&99 6::U&99&:D 6::U&99&99 6::U&9:&6D 9;36;3KK 9F3KF369 993963:9 9K3FE3FD

S,L, ) ? >/70 7rders W*,/, 7rder.ateBC6::U&99&99C $e $ill get no result1 )his is because the "uery is loo4ing only for dates $ith no time portion. Tip: If you $ant to 4eep your "ueries simple and easy to maintain% do not allo$ time components in your dates1

N(LL #alues represent missing un4no$n data. 'y default% a table column can hold N(LL #alues.

188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL )his chapter $ill e!plain the IS N(LL and IS N7) N(LL operators.

SQL N(LL Lalues

If a column in a table is optional% $e can insert a ne$ record or update an e!isting record $ithout adding a #alue to this column. )his means that the field $ill be sa#ed $ith a N(LL #alue. N(LL #alues are treated differently from other #alues. N(LL is used as a placeholder for un4no$n or inapplicable #alues. Note: It is not possible to compare N(LL and :T they are not e"ui#alent.

SQL Wor4ing $ith N(LL Lalues


Loo4 at the follo$ing 8-ersons8 table3 P_Id LastName FirstName Address City

189 189 189 189 189 189 189 189 189 189 189 189 189 189 189 189 189 189 189 189 189 189 189 189 189 189 189 189 189 189 189 189 189 189 189 189 189 189 189

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


9 *ansen 7la Sandnes 6 S#endson )o#e 'org#n 6; Sandnes ; -ettersen <ari Sta#anger Suppose that the 8Address8 column in the 8-ersons8 table is optional. )his means that if $e insert a record $ith no #alue for the 8Address8 column% the 8Address8 column $ill be sa#ed $ith a N(LL #alue. *o$ can $e test for N(LL #alues? It is not possible to test for N(LL #alues $ith comparison operators% such as B% G% or GH. We $ill ha#e to use the IS N(LL and IS N7) N(LL operators instead.

SQL IS N(LL
*o$ do $e select only the records $ith N(LL #alues in the 8Address8 column? We $ill ha#e to use the IS N(LL operator3

190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


S,L, ) LastName%>irstName%Address >/70 -ersons W*,/, Address IS N(LL )he result&set $ill loo4 li4e this3 LastName *ansen -ettersen FirstName 7la <ari Address

Tip: Al$ays use IS N(LL to loo4 for N(LL #alues.

SQL IS N7) N(LL

*o$ do $e select only the records $ith no N(LL #alues in the 8Address8 column? We $ill ha#e to use the IS N7) N(LL operator3

191 191 191 191 191 191 191 191 191 191 191 191 191 191 191 191 191 191 191 191 191 191 191 191 191 191 191 191 191 191 191 191 191 191 191 191 191 191 191

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


S,L, ) LastName%>irstName%Address >/70 -ersons W*,/, Address IS N7) N(LL )he result&set $ill loo4 li4e this3 LastName FirstName Address S#endson )o#e 'org#n 6; In the ne!t chapter $e $ill loo4 at the ISN(LL()% NLL()% I>N(LL() and 7AL,S ,() functions.

SQL ISN(LL()% NLL()% I>N(LL() and


Loo4 at the follo$ing 8-roducts8 table3 P_Id Prod,ctName U itPrice 9 Marlsberg 9:.KF 6 0ascarpone ;6.FE

7AL,S ,() >unctions


U itsO Order 9F

U itsI Stoc. 9E 6;

192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192 192

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


; AorgonPola 9F.EN D 6: Suppose that the 8(nits7n7rder8 column is optional% and may contain N(LL #alues. We ha#e the follo$ing S,L, ) statement3 S,L, ) -roductName%(nit-rice?((nitsInStoc4W(nits7n7rder) >/70 -roducts In the e!ample abo#e% if any of the 8(nits7n7rder8 #alues are N(LL% the result is N(LL. 0icrosoftCs ISN(LL() function is used to specify ho$ $e $ant to treat N(LL #alues. )he NLL()% I>N(LL()% and 7AL,S ,() functions can also be used to achie#e the same result. In this case $e $ant N(LL #alues to be Pero. 'elo$% if 8(nits7n7rder8 is N(LL it $ill not harm the calculation% because ISN(LL() returns a Pero if the #alue is N(LL3 S!L Ser"er / -S Access

193 193 193 193 193 193 193 193 193 193 193 193 193 193 193 193 193 193 193 193 193 193 193 193 193 193 193 193 193 193 193 193 193 193 193 193 193 193 193

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


S,L, ) -roductName%(nit-rice?((nitsInStoc4WISN(LL((nits7n7rder%:)) >/70 -roducts Orac$e 7racle does not ha#e an ISN(LL() function. *o$e#er% $e can use the NLL() function to achie#e the same result3 S,L, ) -roductName%(nit-rice?((nitsInStoc4WNLL((nits7n7rder%:)) >/70 -roducts -yS!L 0ySQL does ha#e an ISN(LL() function. *o$e#er% it $or4s a little bit different from 0icrosoftCs ISN(LL() function. In 0ySQL $e can use the I>N(LL() function% li4e this3

194 194 194 194 194 194 194 194 194 194 194 194 194 194 194 194 194 194 194 194 194 194 194 194 194 194 194 194 194 194 194 194 194 194 194 194 194 194 194

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


S,L, ) -roductName%(nit-rice?((nitsInStoc4WI>N(LL((nits7n7rder%:)) >/70 -roducts or $e can use the 7AL,S ,() function% li4e this3 S,L, ) -roductName%(nit-rice?((nitsInStoc4W 7AL,S ,((nits7n7rder%:)) >/70 -roducts

.ata types and ranges for 0icrosoft Access% 0ySQL and SQL Ser#er.

0icrosoft Access .ata )ypes


Data type )e!t Descriptio (se for te!t or combinations of te!t and numbers. 6FF characters Stora0 e

195 195 195 195 195 195 195 195 195 195 195 195 195 195 195 195 195 195 195 195 195 195 195 195 195 195 195 195 195 195 195 195 195 195 195 195 195 195 195

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


0emo ma!imum 0emo is used for larger amounts of te!t. Stores up to EF%F;E characters. Note: 2ou cannot sort a memo field. *o$e#er% they are searchable Allo$s $hole numbers from : to 6FF Allo$s $hole numbers bet$een &;6%NEU and ;6%NEN Allo$s $hole numbers bet$een &6%9KN%KU;%EKU and 6%9KN%KU;%EKN Single precision floating&point. Will handle most decimals .ouble precision floating&point. Will handle most decimals (se for currency. *olds up to 9F digits of $hole dollars% plus K decimal places. Tip: 2ou can choose $hich countryCs currency to use AutoNumber fields automatically gi#e each record its o$n number%

'yte Integer Long Single .ouble urrency AutoNumber

9 6 K K U U

byte bytes bytes bytes bytes bytes

K bytes

196 196 196 196 196 196 196 196 196 196 196 196 196 196 196 196 196 196 196 196 196 196 196 196 196 196 196 196 196 196 196 196 196 196 196 196 196 196 196

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


.ate5)ime 2es5No usually starting at 9 (se for dates and times A logical field can be displayed as 2es5No% )rue5>alse% or 7n57ff. In code% use the constants )rue and >alse (e"ui#alent to &9 and :). Note: Null #alues are not allo$ed in 2es5No fields an store pictures% audio% #ideo% or other 'L7's ('inary Large 7'+ects) ontain lin4s to other files% including $eb pages Let you type a list of options% $hich can then be chosen from a drop& do$n list U bytes 9 bit

7le 7b+ect *yperlin4 Loo4up WiPard

up to 9A' K bytes

197 197 197 197 197 197 197 197 197 197 197 197 197 197 197 197 197 197 197 197 197 197 197 197 197 197 197 197 197 197 197 197 197 197 197 197 197 197 197

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

0ySQL .ata )ypes

In 0ySQL there are three main types 3 te!t% number% and .ate5)ime types. Te1t types: Data type Descriptio *A/(siPe) *olds a fi!ed length string (can contain letters% numbers% and special characters). )he fi!ed siPe is specified in parenthesis. an store up to 6FF characters LA/ *A/(siPe) *olds a #ariable length string (can contain letters% numbers% and special characters). )he ma!imum siPe is specified in parenthesis. an store up to 6FF characters. Note: If you put a greater #alue than 6FF it $ill be con#erted to a ),V) type )IN2),V) *olds a string $ith a ma!imum length of 6FF characters

198 198 198 198 198 198 198 198 198 198 198 198 198 198 198 198 198 198 198 198 198 198 198 198 198 198 198 198 198 198 198 198 198 198 198 198 198 198 198

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


),V) 'L7' 0,.I(0),V) 0,.I(0'L7' L7NA),V) L7NA'L7' ,N(0(!%y%P%etc.) *olds a string $ith a ma!imum length of EF%F;F characters >or 'L7's ('inary Large 7'+ects). *olds up to EF%F;F bytes of data *olds a string $ith a ma!imum length of 9E%NNN%69F characters >or 'L7's ('inary Large 7'+ects). *olds up to 9E%NNN%69F bytes of data *olds a string $ith a ma!imum length of K%6DK%DEN%6DF characters >or 'L7's ('inary Large 7'+ects). *olds up to K%6DK%DEN%6DF bytes of data Let you enter a list of possible #alues. 2ou can list up to EFF;F #alues in an ,N(0 list. If a #alue is inserted that is not in the list% a blan4 #alue $ill be inserted. Note: )he #alues are sorted in the order you enter them. 2ou enter the possible #alues in this format3 ,N(0(CVC%C2C%CXC) Similar to ,N(0 e!cept that S,) may contain up to EK list items and can store

S,)

199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199 199

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


more than one choice N,m2er types: Data type )IN2IN)(siPe) S0ALLIN)(siPe) 0,.I(0IN)(siPe) IN)(siPe) 'IAIN)(siPe) Descriptio &96U to 96N normal. : to 6FF (NSIAN,.?. )he ma!imum number of digits may be specified in parenthesis &;6NEU to ;6NEN normal. : to EFF;F (NSIAN,.?. )he ma!imum number of digits may be specified in parenthesis &U;UUE:U to U;UUE:N normal. : to 9ENNN69F (NSIAN,.?. )he ma!imum number of digits may be specified in parenthesis &69KNKU;EKU to 69KNKU;EKN normal. : to K6DKDEN6DF (NSIAN,.?. )he ma!imum number of digits may be specified in parenthesis &D66;;N6:;EUFKNNFU:U to D66;;N6:;EUFKNNFU:N normal. : to

200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


>L7A)(siPe%d) 9UKKENKK:N;N:DFF9E9F (NSIAN,.?. )he ma!imum number of digits may be specified in parenthesis A small number $ith a floating decimal point. )he ma!imum number of digits may be specified in the siPe parameter. )he ma!imum number of digits to the right of the decimal point is specified in the d parameter A large number $ith a floating decimal point. )he ma!imum number of digits may be specified in the siPe parameter. )he ma!imum number of digits to the right of the decimal point is specified in the d parameter A .7('L, stored as a string % allo$ing for a fi!ed decimal point. )he ma!imum number of digits may be specified in the siPe parameter. )he ma!imum number of digits to the right of the decimal point is specified in the d parameter

.7('L,(siPe%d)

., I0AL(siPe%d)

201 201 201 201 201 201 201 201 201 201 201 201 201 201 201 201 201 201 201 201 201 201 201 201 201 201 201 201 201 201 201 201 201 201 201 201 201 201 201

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


?)he integer types ha#e an e!tra option called (NSIAN,.. Normally% the integer goes from an negati#e to positi#e #alue. Adding the (NSIAN,. attribute $ill mo#e that range up so it starts at Pero instead of a negati#e number. Date types: Data type Descriptio .A),() A date. >ormat3 2222&00&.. Note: )he supported range is from C9:::&:9&:9C to CDDDD&96&;9C .A),)I0,() ?A date and time combination. >ormat3 2222&00&.. **3003SS Note: )he supported range is from C9:::&:9&:9 ::3::3::C to CDDDD&96&;9 6;3FD3FDC )I0,S)A0-() ?A timestamp. )I0,S)A0- #alues are stored as the number of seconds since the (ni! epoch (C9DN:&:9&:9 ::3::3::C () ). >ormat3 2222&00&.. **3003SS

202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202 202

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


Note: )he supported range is from C9DN:&:9&:9 ::3::3:9C () to C6:;U&:9&:D :;39K3:NC () )I0,() A time. >ormat3 **3003SS Note: )he supported range is from C&U;U3FD3FDC to CU;U3FD3FDC 2,A/() A year in t$o&digit or four&digit format. Note: Lalues allo$ed in four&digit format3 9D:9 to 69FF. Lalues allo$ed in t$o& digit format3 N: to ED% representing years from 9DN: to 6:ED ?,#en if .A),)I0, and )I0,S)A0- return the same format% they $or4 #ery differently. In an INS,/) or (-.A), "uery% the )I0,S)A0- automatically set itself to the current date and time. )I0,S)A0also accepts #arious formats% li4e 222200..**00SS% 2200..**00SS% 222200..% or 2200...

SQL Ser#er .ata )ypes


C*aracter stri 0s:

203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


Data type char(n) #archar(n) #archar(ma!) te!t U icode stri 0s: Data type nchar(n) n#archar(n) n#archar(ma!) Descriptio >i!ed&length character string. 0a!imum U%::: characters Lariable&length character string. 0a!imum U%::: characters Lariable&length character string. 0a!imum 9%:N;%NK9%U6K characters Lariable&length character string. 0a!imum 6A' of te!t data Descriptio >i!ed&length (nicode data. 0a!imum K%::: characters Lariable&length (nicode data. 0a!imum K%::: characters Lariable&length (nicode data. 0a!imum F;E%UN:%D96 characters Stora0 e n

Stora0 e

204 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


nte!t Bi ary types: Data type bit binary(n) #arbinary(n) #arbinary(ma!) image N,m2er types: Data type Lariable&length (nicode data. 0a!imum 6A' of te!t data Descriptio Allo$s :% 9% or N(LL >i!ed&length binary data. 0a!imum U%::: bytes Lariable&length binary data. 0a!imum U%::: bytes Lariable&length binary data. 0a!imum 6A' Lariable&length binary data. 0a!imum 6A' Descriptio Stora0 e Stora0 e

205 205 205 205 205 205 205 205 205 205 205 205 205 205 205 205 205 205 205 205 205 205 205 205 205 205 205 205 205 205 205 205 205 205 205 205 205 205 205

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


tinyint smallint int bigint decimal(p%s) Allo$s $hole numbers from : to 6FF Allo$s $hole numbers bet$een &;6%NEU and ;6%NEN Allo$s $hole numbers bet$een &6%9KN%KU;%EKU and 6%9KN%KU;%EKN Allo$s $hole numbers bet$een &D%66;%;N6%:;E%UFK%NNF%U:U and D%66;%;N6%:;E%UFK%NNF%U:N >i!ed precision and scale numbers. Allo$s numbers from &9:S;U W9 to 9:S;U Y9. )he p parameter indicates the ma!imum total number of digits that can be stored (both to the left and to the right of the decimal point). p must be a #alue from 9 to ;U. .efault is 9U. )he s parameter indicates the ma!imum number of digits stored to the right of the decimal point. s must be a #alue from : to p. .efault 9 6 K U byte bytes bytes bytes

F&9N bytes

206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


numeric(p%s) #alue is : >i!ed precision and scale numbers. Allo$s numbers from &9:S;U W9 to 9:S;U Y9. )he p parameter indicates the ma!imum total number of digits that can be stored (both to the left and to the right of the decimal point). p must be a #alue from 9 to ;U. .efault is 9U. )he s parameter indicates the ma!imum number of digits stored to the right of the decimal point. s must be a #alue from : to p. .efault #alue is : 0onetary data from &69K%NKU.;EKU to 69K%NKU.;EKN 0onetary data from &D66%;;N%6:;%EUF%KNN.FU:U to D66%;;N%6:;%EUF%KNN.FU:N F&9N bytes

smallmoney money

K bytes U bytes

207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


float(n) >loating precision number data from &9.ND, W ;:U to 9.ND, W ;:U. )he n parameter indicates $hether the field should hold K or U bytes. float(6K) holds a K&byte field and float(F;) holds an U&byte field. .efault #alue of n is F;. >loating precision number data from &;.K:, W ;U to ;.K:, W ;U Descriptio >rom Manuary 9% 9NF; to .ecember ;9% DDDD $ith an accuracy of ;.;; milliseconds >rom Manuary 9% :::9 to .ecember ;9% DDDD $ith an accuracy of 9:: nanoseconds K or U bytes

real Date types: Data type datetime datetime6

K bytes Stora0 e U bytes E&U bytes

208 208 208 208 208 208 208 208 208 208 208 208 208 208 208 208 208 208 208 208 208 208 208 208 208 208 208 208 208 208 208 208 208 208 208 208 208 208 208

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


smalldatetime date time datetimeoffset timestamp >rom Manuary 9% 9D:: to Mune E% 6:ND $ith an accuracy of 9 minute Store a date only. >rom Manuary 9% :::9 to .ecember ;9% DDDD Store a time only to an accuracy of 9:: nanoseconds )he same as datetime6 $ith the addition of a time Pone offset Stores a uni"ue number that gets updated e#ery time a ro$ gets created or modified. )he timestamp #alue is based upon an internal cloc4 and does not correspond to real time. ,ach table may ha#e only one timestamp #ariable K bytes ; bytes ;&F bytes U&9: bytes

Ot*er data types: Data type Descriptio

209 209 209 209 209 209 209 209 209 209 209 209 209 209 209 209 209 209 209 209 209 209 209 209 209 209 209 209 209 209 209 209 209 209 209 209 209 209 209

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


s"l=#ariant uni"ueidentifier !ml cursor table Stores up to U%::: bytes of data of #arious data types% e!cept te!t% nte!t% and timestamp Stores a globally uni"ue identifier (A(I.) Stores V0L formatted data. 0a!imum 6A' Stores a reference to a cursor used for database operations Stores a result&set for later processing

SQL has many built&in functions for performing calculations on data.

SQL Aggregate >unctions

SQL aggregate functions return a single #alue% calculated from #alues in a column. (seful aggregate functions3 ALA() & /eturns the a#erage #alue

210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

7(N)() & /eturns the number of ro$s >I/S)() & /eturns the first #alue LAS)() & /eturns the last #alue 0AV() & /eturns the largest #alue 0IN() & /eturns the smallest #alue S(0() & /eturns the sum

SQL Scalar functions

SQL scalar functions return a single #alue% based on the input #alue. (seful scalar functions3 ( AS,() & on#erts a field to upper case

211 211 211 211 211 211 211 211 211 211 211 211 211 211 211 211 211 211 211 211 211 211 211 211 211 211 211 211 211 211 211 211 211 211 211 211 211 211 211

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

L AS,() &

on#erts a field to lo$er case

0I.() & ,!tract characters from a te!t field L,N() & /eturns the length of a te!t field /7(N.() & /ounds a numeric field to the number of decimals specified N7W() & /eturns the current system date and time >7/0A)() & >ormats ho$ a field is to be displayed Tip: )he aggregate functions and the scalar functions $ill be e!plained in details in the ne!t chapters.

)he ALA() >unction


)he ALA() function returns the a#erage #alue of a numeric column.

212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL SQL A.)/0 Syntax
S,L, ) ALA(column=name) >/70 table=name

SQL ALA() ,!ample


We ha#e the follo$ing 87rders8 table3 O_Id 9 OrderDate 6::U599596 OrderPrice 9::: C,stomer *ansen

213 213 213 213 213 213 213 213 213 213 213 213 213 213 213 213 213 213 213 213 213 213 213 213 213 213 213 213 213 213 213 213 213 213 213 213 213 213 213

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


6 ; K F E 6::U59:56; 6::U5:D5:6 6::U5:D5:; 6::U5:U5;: 6::U59:5:K 9E:: N:: ;:: 6::: 9:: Nilsen *ansen *ansen Mensen Nilsen

No$ $e $ant to find the a#erage #alue of the 87rder-rice8 fields. We use the follo$ing SQL statement3 S,L, ) ALA(7rder-rice) AS 7rderA#erage >/70 7rders )he result&set $ill loo4 li4e this3

214 214 214 214 214 214 214 214 214 214 214 214 214 214 214 214 214 214 214 214 214 214 214 214 214 214 214 214 214 214 214 214 214 214 214 214 214 214 214

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


OrderA"era0e DF: No$ $e $ant to find the customers that ha#e an 7rder-rice #alue higher than the a#erage 7rder-rice #alue. We use the follo$ing SQL statement3 S,L, ) ustomer >/70 7rders W*,/, 7rder-riceH(S,L, ) ALA(7rder-rice) >/70 7rders) )he result&set $ill loo4 li4e this3 C,stomer

215 215 215 215 215 215 215 215 215 215 215 215 215 215 215 215 215 215 215 215 215 215 215 215 215 215 215 215 215 215 215 215 215 215 215 215 215 215 215

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


*ansen Nilsen Mensen

)he

7(N)() function returns the number of ro$s that matches a specified criteria.

SQL COUNT/c#l%m&1&ame0 Syntax


)he 7(N)(column=name) function returns the number of #alues (N(LL #alues $ill not be counted) of the specified column3 S,L, ) 7(N)(column=name) >/70 table=name

216 216 216 216 216 216 216 216 216 216 216 216 216 216 216 216 216 216 216 216 216 216 216 216 216 216 216 216 216 216 216 216 216 216 216 216 216 216 216

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL SQL COUNT/20 Syntax
)he 7(N)(?) function returns the number of records in a table3 7(N)(?) >/70 table=name

S,L, )

SQL COUNT/DISTINCT c#l%m&1&ame0 Syntax


)he 7(N)(.IS)IN ) column=name) function returns the number of distinct #alues of the specified column3 S,L, ) 7(N)(.IS)IN ) column=name) >/70 table=name

217 217 217 217 217 217 217 217 217 217 217 217 217 217 217 217 217 217 217 217 217 217 217 217 217 217 217 217 217 217 217 217 217 217 217 217 217 217 217

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


Note: 7(N)(.IS)IN )) $or4s $ith 7/A L, and 0icrosoft SQL Ser#er% but not $ith 0icrosoft Access.

SQL
O_Id 9 6 ; K F

7(N)(column=name) ,!ample
OrderDate 6::U599596 6::U59:56; 6::U5:D5:6 6::U5:D5:; 6::U5:U5;: OrderPrice 9::: 9E:: N:: ;:: 6::: C,stomer *ansen Nilsen *ansen *ansen Mensen

We ha#e the follo$ing 87rders8 table3

218 218 218 218 218 218 218 218 218 218 218 218 218 218 218 218 218 218 218 218 218 218 218 218 218 218 218 218 218 218 218 218 218 218 218 218 218 218 218

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


E 6::U59:5:K 9:: Nilsen No$ $e $ant to count the number of orders from 8 ustomer Nilsen8. We use the follo$ing SQL statement3 S,L, ) 7(N)( ustomer) AS W*,/, ustomerBCNilsenC ustomerNilsen >/70 7rders

)he result of the SQL statement abo#e $ill be 6% because the customer Nilsen has made 6 orders in total3 C,stomerNi$se 6

219 219 219 219 219 219 219 219 219 219 219 219 219 219 219 219 219 219 219 219 219 219 219 219 219 219 219 219 219 219 219 219 219 219 219 219 219 219 219

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

SQL
S,L, )

7(N)(?) ,!ample
7(N)(?) AS Number7f7rders >/70 7rders

If $e omit the W*,/, clause% li4e this3

)he result&set $ill loo4 li4e this3 N,m2erO+Orders E

220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220 220

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


$hich is the total number of ro$s in the table.

SQL

7(N)(.IS)IN ) column=name) ,!ample

No$ $e $ant to count the number of uni"ue customers in the 87rders8 table. We use the follo$ing SQL statement3 S,L, ) 7(N)(.IS)IN ) ustomer) AS Number7f ustomers >/70 7rders

)he result&set $ill loo4 li4e this3 N,m2erO+C,stomers

221 221 221 221 221 221 221 221 221 221 221 221 221 221 221 221 221 221 221 221 221 221 221 221 221 221 221 221 221 221 221 221 221 221 221 221 221 221 221

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


; $hich is the number of uni"ue customers (*ansen% Nilsen% and Mensen) in the 87rders8 table.

)he >I/S)() >unction


)he >I/S)() function returns the first #alue of the selected column.

SQL (IRST/0 Syntax


S,L, ) >I/S)(column=name) >/70 table=name

222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

SQL >I/S)() ,!ample


We ha#e the follo$ing 87rders8 table3 O_Id 9 6 ; K F E OrderDate 6::U599596 6::U59:56; 6::U5:D5:6 6::U5:D5:; 6::U5:U5;: 6::U59:5:K OrderPrice 9::: 9E:: N:: ;:: 6::: 9:: C,stomer *ansen Nilsen *ansen *ansen Mensen Nilsen

No$ $e $ant to find the first #alue of the 87rder-rice8 column.

223 223 223 223 223 223 223 223 223 223 223 223 223 223 223 223 223 223 223 223 223 223 223 223 223 223 223 223 223 223 223 223 223 223 223 223 223 223 223

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


We use the follo$ing SQL statement3 S,L, ) >I/S)(7rder-rice) AS >irst7rder-rice >/70 7rders Tip: Wor4around if >I/S)() function is not supported3 S,L, ) 7rder-rice >/70 7rders 7/.,/ '2 7=Id LI0I) 9 )he result&set $ill loo4 li4e this3 FirstOrderPrice 9:::

224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

)he LAS)() >unction


)he LAS)() function returns the last #alue of the selected column.

SQL LAST/0 Syntax


S,L, ) LAS)(column=name) >/70 table=name

225 225 225 225 225 225 225 225 225 225 225 225 225 225 225 225 225 225 225 225 225 225 225 225 225 225 225 225 225 225 225 225 225 225 225 225 225 225 225

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

SQL LAS)() ,!ample


We ha#e the follo$ing 87rders8 table3 O_Id 9 6 ; K F E OrderDate 6::U599596 6::U59:56; 6::U5:D5:6 6::U5:D5:; 6::U5:U5;: 6::U59:5:K OrderPrice 9::: 9E:: N:: ;:: 6::: 9:: C,stomer *ansen Nilsen *ansen *ansen Mensen Nilsen

No$ $e $ant to find the last #alue of the 87rder-rice8 column.

226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


We use the follo$ing SQL statement3 S,L, ) LAS)(7rder-rice) AS Last7rder-rice >/70 7rders Tip: Wor4around if LAS)() function is not supported3 S,L, ) 7rder-rice >/70 7rders 7/.,/ '2 7=Id .,S )he result&set $ill loo4 li4e this3 LastOrderPrice 9:: LI0I) 9

227 227 227 227 227 227 227 227 227 227 227 227 227 227 227 227 227 227 227 227 227 227 227 227 227 227 227 227 227 227 227 227 227 227 227 227 227 227 227

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

)he 0AV() >unction


)he 0AV() function returns the largest #alue of the selected column.

SQL MA*/0 Syntax


S,L, ) 0AV(column=name) >/70 table=name

228 228 228 228 228 228 228 228 228 228 228 228 228 228 228 228 228 228 228 228 228 228 228 228 228 228 228 228 228 228 228 228 228 228 228 228 228 228 228

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

SQL 0AV() ,!ample


We ha#e the follo$ing 87rders8 table3 O_Id 9 6 ; K F E OrderDate 6::U599596 6::U59:56; 6::U5:D5:6 6::U5:D5:; 6::U5:U5;: 6::U59:5:K OrderPrice 9::: 9E:: N:: ;:: 6::: 9:: C,stomer *ansen Nilsen *ansen *ansen Mensen Nilsen

No$ $e $ant to find the largest #alue of the 87rder-rice8 column.

229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


We use the follo$ing SQL statement3 S,L, ) 0AV(7rder-rice) AS Largest7rder-rice >/70 7rders )he result&set $ill loo4 li4e this3 Lar0estOrderPrice 6:::

)he 0IN() >unction


)he 0IN() function returns the smallest #alue of the selected column.

230 230 230 230 230 230 230 230 230 230 230 230 230 230 230 230 230 230 230 230 230 230 230 230 230 230 230 230 230 230 230 230 230 230 230 230 230 230 230

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL SQL MIN/0 Syntax
S,L, ) 0IN(column=name) >/70 table=name

SQL 0IN() ,!ample


We ha#e the follo$ing 87rders8 table3 O_Id 9 OrderDate 6::U599596 OrderPrice 9::: C,stomer *ansen

231 231 231 231 231 231 231 231 231 231 231 231 231 231 231 231 231 231 231 231 231 231 231 231 231 231 231 231 231 231 231 231 231 231 231 231 231 231 231

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


6 ; K F E 6::U59:56; 6::U5:D5:6 6::U5:D5:; 6::U5:U5;: 6::U59:5:K 9E:: N:: ;:: 6::: 9:: Nilsen *ansen *ansen Mensen Nilsen

No$ $e $ant to find the smallest #alue of the 87rder-rice8 column. We use the follo$ing SQL statement3 S,L, ) 0IN(7rder-rice) AS Smallest7rder-rice >/70 7rders )he result&set $ill loo4 li4e this3

232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


Sma$$estOrderPrice 9::

)he S(0() >unction


)he S(0() function returns the total sum of a numeric column.

SQL SUM/0 Syntax


S,L, ) S(0(column=name) >/70 table=name

233 233 233 233 233 233 233 233 233 233 233 233 233 233 233 233 233 233 233 233 233 233 233 233 233 233 233 233 233 233 233 233 233 233 233 233 233 233 233

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

SQL S(0() ,!ample


We ha#e the follo$ing 87rders8 table3 O_Id 9 6 ; K F E OrderDate 6::U599596 6::U59:56; 6::U5:D5:6 6::U5:D5:; 6::U5:U5;: 6::U59:5:K OrderPrice 9::: 9E:: N:: ;:: 6::: 9:: C,stomer *ansen Nilsen *ansen *ansen Mensen Nilsen

No$ $e $ant to find the sum of all 87rder-rice8 fields8.

234 234 234 234 234 234 234 234 234 234 234 234 234 234 234 234 234 234 234 234 234 234 234 234 234 234 234 234 234 234 234 234 234 234 234 234 234 234 234

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


We use the follo$ing SQL statement3 S,L, ) S(0(7rder-rice) AS 7rder)otal >/70 7rders )he result&set $ill loo4 li4e this3 OrderTota$ FN::

Aggregate functions often need an added A/7(- '2 statement.

235 235 235 235 235 235 235 235 235 235 235 235 235 235 235 235 235 235 235 235 235 235 235 235 235 235 235 235 235 235 235 235 235 235 235 235 235 235 235

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

)he A/7(- '2 Statement


)he A/7(- '2 statement is used in con+unction $ith the aggregate functions to group the result&set by one or more columns.

SQL )ROUP BY Syntax


S,L, ) column=name% aggregate=function(column=name) >/70 table=name W*,/, column=name operator #alue A/7(- '2 column=name

236 236 236 236 236 236 236 236 236 236 236 236 236 236 236 236 236 236 236 236 236 236 236 236 236 236 236 236 236 236 236 236 236 236 236 236 236 236 236

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

SQL A/7(- '2 ,!ample


We ha#e the follo$ing 87rders8 table3 O_Id 9 6 ; K F OrderDate 6::U599596 6::U59:56; 6::U5:D5:6 6::U5:D5:; 6::U5:U5;: OrderPrice 9::: 9E:: N:: ;:: 6::: C,stomer *ansen Nilsen *ansen *ansen Mensen

237 237 237 237 237 237 237 237 237 237 237 237 237 237 237 237 237 237 237 237 237 237 237 237 237 237 237 237 237 237 237 237 237 237 237 237 237 237 237

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


E 6::U59:5:K 9:: Nilsen No$ $e $ant to find the total sum (total order) of each customer. We $ill ha#e to use the A/7(- '2 statement to group the customers. We use the follo$ing SQL statement3 S,L, ) ustomer%S(0(7rder-rice) >/70 7rders A/7(- '2 ustomer )he result&set $ill loo4 li4e this3 C,stomer *ansen SU-3OrderPrice4 6:::

238 238 238 238 238 238 238 238 238 238 238 238 238 238 238 238 238 238 238 238 238 238 238 238 238 238 238 238 238 238 238 238 238 238 238 238 238 238 238

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


Nilsen Mensen Nice1 IsnCt it? 3) LetCs see $hat happens if $e omit the A/7(- '2 statement3 S,L, ) ustomer%S(0(7rder-rice) >/70 7rders 9N:: 6:::

)he result&set $ill loo4 li4e this3 C,stomer *ansen Nilsen SU-3OrderPrice4 FN:: FN::

239 239 239 239 239 239 239 239 239 239 239 239 239 239 239 239 239 239 239 239 239 239 239 239 239 239 239 239 239 239 239 239 239 239 239 239 239 239 239

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


*ansen *ansen Mensen Nilsen FN:: FN:: FN:: FN::

)he result&set abo#e is not $hat $e $anted. E1p$a atio o+ )*y t*e a2o"e SELECT stateme t ca ot 2e ,sed: )he S,L, ) statement abo#e has t$o columns specified ( ustomer and S(0(7rder-rice). )he 8S(0(7rder-rice)8 returns a single #alue (that is the total sum of the 87rder-rice8 column)% $hile 8 ustomer8 returns E #alues (one #alue for each ro$ in the 87rders8 table). )his $ill therefore not gi#e us the correct result. *o$e#er% you ha#e seen that the A/7(- '2 statement sol#es this problem.

240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

A/7(- '2 0ore )han 7ne

olumn

We can also use the A/7(- '2 statement on more than one column% li4e this3 S,L, ) ustomer%7rder.ate%S(0(7rder-rice) >/70 7rders A/7(- '2 ustomer%7rder.ate

)he *ALINA

lause

)he *ALINA clause $as added to SQL because the W*,/, 4ey$ord could not be used $ith aggregate functions.

241 241 241 241 241 241 241 241 241 241 241 241 241 241 241 241 241 241 241 241 241 241 241 241 241 241 241 241 241 241 241 241 241 241 241 241 241 241 241

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL SQL HA.IN) Syntax
S,L, ) column=name% aggregate=function(column=name) >/70 table=name W*,/, column=name operator #alue A/7(- '2 column=name *ALINA aggregate=function(column=name) operator #alue

242 242 242 242 242 242 242 242 242 242 242 242 242 242 242 242 242 242 242 242 242 242 242 242 242 242 242 242 242 242 242 242 242 242 242 242 242 242 242

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

SQL *ALINA ,!ample


We ha#e the follo$ing 87rders8 table3 O_Id 9 6 ; K F E OrderDate 6::U599596 6::U59:56; 6::U5:D5:6 6::U5:D5:; 6::U5:U5;: 6::U59:5:K OrderPrice 9::: 9E:: N:: ;:: 6::: 9:: C,stomer *ansen Nilsen *ansen *ansen Mensen Nilsen

No$ $e $ant to find if any of the customers ha#e a total order of less than 6:::.

243 243 243 243 243 243 243 243 243 243 243 243 243 243 243 243 243 243 243 243 243 243 243 243 243 243 243 243 243 243 243 243 243 243 243 243 243 243 243

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


We use the follo$ing SQL statement3 S,L, ) ustomer%S(0(7rder-rice) >/70 7rders A/7(- '2 ustomer *ALINA S(0(7rder-rice)G6::: )he result&set $ill loo4 li4e this3 C,stomer Nilsen SU-3OrderPrice4 9N::

No$ $e $ant to find if the customers 8*ansen8 or 8Mensen8 ha#e a total order of more than 9F::. We add an ordinary W*,/, clause to the SQL statement3

244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244 244

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


S,L, ) ustomer%S(0(7rder-rice) >/70 7rders W*,/, ustomerBC*ansenC 7/ ustomerBCMensenC A/7(- '2 ustomer *ALINA S(0(7rder-rice)H9F:: )he result&set $ill loo4 li4e this3 C,stomer *ansen Mensen SU-3OrderPrice4 6::: 6:::

245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245 245

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

)he ( AS,() >unction


)he ( AS,() function con#erts the #alue of a field to uppercase.

SQL UCASE/0 Syntax


S,L, ) ( AS,(column=name) >/70 table=name

Syntax "#r SQL Server


S,L, ) (--,/(column=name) >/70 table=name

246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246 246

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

SQL ( AS,() ,!ample


We ha#e the follo$ing 8-ersons8 table3 P_Id 9 6 ; LastName *ansen S#endson -ettersen FirstName 7la )o#e <ari Address )imotei#n 9: 'org#n 6; Storgt 6: City Sandnes Sandnes Sta#anger

No$ $e $ant to select the content of the 8LastName8 and 8>irstName8 columns abo#e% and con#ert the 8LastName8 column to uppercase.

247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247 247

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


We use the follo$ing S,L, ) statement3 S,L, ) ( AS,(LastName) as LastName%>irstName >/70 -ersons )he result&set $ill loo4 li4e this3 LastName *ANS,N SL,N.S7N -,)),/S,N FirstName 7la )o#e <ari

248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248 248

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

)he L AS,() >unction


)he L AS,() function con#erts the #alue of a field to lo$ercase.

SQL LCASE/0 Syntax


S,L, ) L AS,(column=name) >/70 table=name

Syntax "#r SQL Server


S,L, ) L7W,/(column=name) >/70 table=name

249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249 249

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

SQL L AS,() ,!ample


We ha#e the follo$ing 8-ersons8 table3 P_Id 9 6 ; LastName *ansen S#endson -ettersen FirstName 7la )o#e <ari Address )imotei#n 9: 'org#n 6; Storgt 6: City Sandnes Sandnes Sta#anger

No$ $e $ant to select the content of the 8LastName8 and 8>irstName8 columns abo#e% and con#ert the 8LastName8 column to lo$ercase.

250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


We use the follo$ing S,L, ) statement3 S,L, ) L AS,(LastName) as LastName%>irstName >/70 -ersons )he result&set $ill loo4 li4e this3 LastName hansen s#endson pettersen FirstName 7la )o#e <ari

251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251 251

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

)he 0I.() >unction


)he 0I.() function is used to e!tract characters from a te!t field.

SQL MID/0 Syntax


S,L, ) 0I.(column=name%startQ%lengthR) >/70 table=name Parameter column=name start Descriptio /e"uired. )he field to e!tract characters from /e"uired. Specifies the starting position (starts at 9)

252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


length 7ptional. )he number of characters to return. If omitted% the 0I.() function returns the rest of the te!t

SQL 0I.() ,!ample


We ha#e the follo$ing 8-ersons8 table3 P_Id 9 6 ; LastName *ansen S#endson -ettersen FirstName 7la )o#e <ari Address )imotei#n 9: 'org#n 6; Storgt 6: City Sandnes Sandnes Sta#anger

253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


No$ $e $ant to e!tract the first four characters of the 8 ity8 column abo#e. We use the follo$ing S,L, ) statement3 S,L, ) 0I.( ity%9%K) as Small ity >/70 -ersons )he result&set $ill loo4 li4e this3 Sma$$City Sand Sand Sta#

254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

)he L,N() >unction


)he L,N() function returns the length of the #alue in a te!t field.

SQL LEN/0 Syntax


S,L, ) L,N(column=name) >/70 table=name

255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

SQL L,N() ,!ample


We ha#e the follo$ing 8-ersons8 table3 P_Id 9 6 ; LastName *ansen S#endson -ettersen FirstName 7la )o#e <ari Address )imotei#n 9: 'org#n 6; Storgt 6: City Sandnes Sandnes Sta#anger

No$ $e $ant to select the length of the #alues in the 8Address8 column abo#e. We use the follo$ing S,L, ) statement3

256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


S,L, ) L,N(Address) as Length7fAddress >/70 -ersons )he result&set $ill loo4 li4e this3 Le 0t*O+Address 96 D D

)he /7(N.() >unction


)he /7(N.() function is used to round a numeric field to the number of decimals specified.

257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257 257

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL SQL ROUND/0 Syntax
S,L, ) /7(N.(column=name%decimals) >/70 table=name Parameter column=name decimals Descriptio /e"uired. )he field to round. /e"uired. Specifies the number of decimals to be returned.

258 258 258 258 258 258 258 258 258 258 258 258 258 258 258 258 258 258 258 258 258 258 258 258 258 258 258 258 258 258 258 258 258 258 258 258 258 258 258

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

SQL /7(N.() ,!ample


We ha#e the follo$ing 8-roducts8 table3 Prod_Id 9 6 ; Prod,ctName Marlsberg 0ascarpone AorgonPola U it 9::: g 9::: g 9::: g U itPrice 9:.KF ;6.FE 9F.EN

No$ $e $ant to display the product name and the price rounded to the nearest integer. We use the follo$ing S,L, ) statement3

259 259 259 259 259 259 259 259 259 259 259 259 259 259 259 259 259 259 259 259 259 259 259 259 259 259 259 259 259 259 259 259 259 259 259 259 259 259 259

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


S,L, ) -roductName% /7(N.((nit-rice%:) as (nit-rice >/70 -roducts )he result&set $ill loo4 li4e this3 Prod,ctName Marlsberg 0ascarpone AorgonPola U itPrice 9: ;; 9E

)he N7W() >unction


)he N7W() function returns the current system date and time.

260 260 260 260 260 260 260 260 260 260 260 260 260 260 260 260 260 260 260 260 260 260 260 260 260 260 260 260 260 260 260 260 260 260 260 260 260 260 260

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL SQL NOW/0 Syntax
S,L, ) N7W() >/70 table=name

SQL N7W() ,!ample


We ha#e the follo$ing 8-roducts8 table3 Prod_Id 9 Prod,ctName Marlsberg U it 9::: g U itPrice 9:.KF

261 261 261 261 261 261 261 261 261 261 261 261 261 261 261 261 261 261 261 261 261 261 261 261 261 261 261 261 261 261 261 261 261 261 261 261 261 261 261

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


6 ; 0ascarpone AorgonPola 9::: g 9::: g ;6.FE 9F.EN

No$ $e $ant to display the products and prices per todayCs date. We use the follo$ing S,L, ) statement3 S,L, ) -roductName% (nit-rice% No$() as -er.ate >/70 -roducts )he result&set $ill loo4 li4e this3 Prod,ctName Marlsberg 0ascarpone U itPrice 9:.KF ;6.FE PerDate 9:5N56::U 9936F3:6 A0 9:5N56::U 9936F3:6 A0

262 262 262 262 262 262 262 262 262 262 262 262 262 262 262 262 262 262 262 262 262 262 262 262 262 262 262 262 262 262 262 262 262 262 262 262 262 262 262

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


AorgonPola 9F.EN 9:5N56::U 9936F3:6 A0

)he >7/0A)() >unction


)he >7/0A)() function is used to format ho$ a field is to be displayed.

SQL (ORMAT/0 Syntax


S,L, ) >7/0A)(column=name%format) >/70 table=name Parameter Descriptio

263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


column=name format /e"uired. )he field to be formatted. /e"uired. Specifies the format.

SQL >7/0A)() ,!ample


We ha#e the follo$ing 8-roducts8 table3 Prod_Id 9 6 ; Prod,ctName Marlsberg 0ascarpone AorgonPola U it 9::: g 9::: g 9::: g U itPrice 9:.KF ;6.FE 9F.EN

264 264 264 264 264 264 264 264 264 264 264 264 264 264 264 264 264 264 264 264 264 264 264 264 264 264 264 264 264 264 264 264 264 264 264 264 264 264 264

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


No$ $e $ant to display the products and prices per todayCs date ($ith todayCs date displayed in the follo$ing format 82222&00&..8). We use the follo$ing S,L, ) statement3 S,L, ) -roductName% (nit-rice% >7/0A)(No$()%C2222&00&..C) as -er.ate >/70 -roducts )he result&set $ill loo4 li4e this3 Prod,ctName Marlsberg 0ascarpone AorgonPola U itPrice 9:.KF ;6.FE 9F.EN PerDate 6::U&9:&:N 6::U&9:&:N 6::U&9:&:N

265 265 265 265 265 265 265 265 265 265 265 265 265 265 265 265 265 265 265 265 265 265 265 265 265 265 265 265 265 265 265 265 265 265 265 265 265 265 265

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL Quick Ref:


S!L Stateme t AN. 5 7/ Syntax S,L, ) column=name(s) >/70 table=name W*,/, condition AN.J7/ condition AL),/ )A'L, table=name A.. column=name datatype or AL),/ )A'L, table=name ./7- 7L(0N column=name S,L, ) column=name AS column=alias

AL),/ )A'L,

AS (alias)

266 266 266 266 266 266 266 266 266 266 266 266 266 266 266 266 266 266 266 266 266 266 266 266 266 266 266 266 266 266 266 266 266 266 266 266 266 266 266

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


>/70 table=name or S,L, ) column=name >/70 table=name AS table=alias S,L, ) column=name(s) >/70 table=name W*,/, column=name ',)W,,N #alue9 AN. #alue6 /,A), .A)A'AS, database=name /,A), )A'L, table=name ( column=name9 data=type%

',)W,,N

/,A), .A)A'AS, /,A), )A'L,

267 267 267 267 267 267 267 267 267 267 267 267 267 267 267 267 267 267 267 267 267 267 267 267 267 267 267 267 267 267 267 267 267 267 267 267 267 267 267

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


column=name6 data=type% column=name6 data=type% ... ) /,A), IN.,V inde!=name 7N table=name (column=name) or /,A), (NIQ(, IN.,V inde!=name 7N table=name (column=name) /,A), LI,W #ie$=name AS S,L, ) column=name(s) >/70 table=name

/,A), IN.,V

/,A), LI,W

268 268 268 268 268 268 268 268 268 268 268 268 268 268 268 268 268 268 268 268 268 268 268 268 268 268 268 268 268 268 268 268 268 268 268 268 268 268 268

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


.,L,), W*,/, condition .,L,), >/70 table=name W*,/, some=columnBsome=#alue or .,L,), >/70 table=name (Note: .eletes the entire table11) .,L,), ? >/70 table=name (Note: .eletes the entire table11) ./7- .A)A'AS, database=name ./7- IN.,V table=name.inde!=name (SQL Ser#er) ./7- IN.,V inde!=name 7N table=name (0S Access) ./7- IN.,V inde!=name (.'657racle)

./7- .A)A'AS, ./7- IN.,V

269 269 269 269 269 269 269 269 269 269 269 269 269 269 269 269 269 269 269 269 269 269 269 269 269 269 269 269 269 269 269 269 269 269 269 269 269 269 269

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


./7- )A'L, A/7(- '2 AL),/ )A'L, table=name ./7- IN.,V inde!=name (0ySQL) ./7- )A'L, table=name S,L, ) column=name% aggregate=function(column=name) >/70 table=name W*,/, column=name operator #alue A/7(- '2 column=name S,L, ) column=name% aggregate=function(column=name) >/70 table=name W*,/, column=name operator #alue A/7(- '2 column=name *ALINA aggregate=function(column=name) operator #alue

*ALINA

270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


IN S,L, ) column=name(s) >/70 table=name W*,/, column=name IN (#alue9%#alue6%..) INS,/) IN)7 table=name LAL(,S (#alue9% #alue6% #alue;%....) or INS,/) IN)7 table=name (column9% column6% column;%...) LAL(,S (#alue9% #alue6% #alue;%....) S,L, ) column=name(s) >/70 table=name9

INS,/) IN)7

INN,/ M7IN

271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


L,>) M7IN INN,/ M7IN table=name6 7N table=name9.column=nameBtable=name6.column=name S,L, ) column=name(s) >/70 table=name9 L,>) M7IN table=name6 7N table=name9.column=nameBtable=name6.column=name S,L, ) column=name(s) >/70 table=name9 /IA*) M7IN table=name6 7N table=name9.column=nameBtable=name6.column=name S,L, ) column=name(s) >/70 table=name9

/IA*) M7IN

>(LL M7IN

272 272 272 272 272 272 272 272 272 272 272 272 272 272 272 272 272 272 272 272 272 272 272 272 272 272 272 272 272 272 272 272 272 272 272 272 272 272 272

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


LI<, >(LL M7IN table=name6 7N table=name9.column=nameBtable=name6.column=name S,L, ) column=name(s) >/70 table=name W*,/, column=name LI<, pattern S,L, ) column=name(s) >/70 table=name 7/.,/ '2 column=name QAS J.,S R S,L, ) column=name(s) >/70 table=name S,L, ) ? >/70 table=name

7/.,/ '2

S,L, ) S,L, ) ?

273 273 273 273 273 273 273 273 273 273 273 273 273 273 273 273 273 273 273 273 273 273 273 273 273 273 273 273 273 273 273 273 273 273 273 273 273 273 273

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


S,L, ) .IS)IN ) S,L, ) IN)7 S,L, ) .IS)IN ) column=name(s) >/70 table=name S,L, ) ? IN)7 ne$=table=name QIN e!ternaldatabaseR >/70 old=table=name or S,L, ) column=name(s) IN)7 ne$=table=name QIN e!ternaldatabaseR >/70 old=table=name S,L, ) )7- numberJpercent column=name(s) >/70 table=name )/(N A), )A'L, table=name

S,L, ) )7)/(N A), )A'L,

274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL


(NI7N S,L, ) column=name(s) >/70 table=name9 (NI7N S,L, ) column=name(s) >/70 table=name6 S,L, ) column=name(s) >/70 table=name9 (NI7N ALL S,L, ) column=name(s) >/70 table=name6 (-.A), table=name S,) column9B#alue% column6B#alue%... W*,/, some=columnBsome=#alue S,L, ) column=name(s) >/70 table=name W*,/, column=name operator #alue

(NI7N ALL

(-.A),

W*,/,

275 275 275 275 275 275 275 275 275 275 275 275 275 275 275 275 275 275 275 275 275 275 275 275 275 275 275 275 275 275 275 275 275 275 275 275 275 275 275

SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLS QLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQLSQL SQLSQLSQLSQLSQLSQLSQLSQLSQL

276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276

You might also like