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