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

SQL Refrence-W3schools

This document is a comprehensive guide to SQL commands covering major relational database systems like MS SQL Server, MS Access, and MySQL. It provides SQL commands and examples for each system. The examples included are related to SQL Server 2008 and were tested using the NorthWind sample database in Management Studio. It discusses topics like SELECT statements, WHERE clauses, JOINs, functions, data types, views, stored procedures and more over multiple chapters.

Uploaded by

Nathaniel Lee
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
83 views

SQL Refrence-W3schools

This document is a comprehensive guide to SQL commands covering major relational database systems like MS SQL Server, MS Access, and MySQL. It provides SQL commands and examples for each system. The examples included are related to SQL Server 2008 and were tested using the NorthWind sample database in Management Studio. It discusses topics like SELECT statements, WHERE clauses, JOINs, functions, data types, views, stored procedures and more over multiple chapters.

Uploaded by

Nathaniel Lee
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 102

SQL

SQL Server
MS SQL Server MS Access
MySQL .
SQL Server 2008 Management Studio
NorthWind .



1 ...................................................... SQL
............................................................ SQL
SELECT 4 ............................................ SQL
6 .................................................... SELECT DISTINC
WHERE 7 .............................................. SQL
AND 9 ................................................. OR
ORDER BY 11 .......................................... SQL
INSERT INTO 13 ............................................. SQL
14 ................................................. UPDATE
16 ................................................ DELETE

TOP 18 ................................................................................................................... SQL
LIKE 20 .................................................................................................................... SQL
22 ...................................................................................................... SQL
IN 24 ....................................................................................................................... SQL
BETWEEN 25 ........................................................................................................... SQL
Alias 27 ........................................................................................................................... SQL
JOIN 28 ........................................................................................................................ SQL
INNER JOIN 29 ................................................................................................. SQL
LEFT JOIN 31 .................................................................................................... SQL
RIGHT JOIN 32 ................................................................................................. SQL
FULL JOIN 33 ................................................................................................... SQL

35 ............................................................................................................... SQL UNION


37 ...................................................................................................... SQL SELECT INTO
39 .......................................................................................... SQL CREATE DATABASE
39 ................................................................................................... SQL CREATE TABLE
40 ..............................................................................................................................
40 ................................................................................................................ NOT NULL
41 ................................................................................................................... UNIQUE
43 ................................................................................................. SQL PRIMARY KEY
45 ........................................................................................................... FOREIGN KEY
47 ...................................................................................................................... CHECK
49 ....................................................................................................... SQL DEFAULT
50 .............................................................................................. SQL CREATE INDEX
51 ............................................................... SQL DROP DATABASE DROP TABLE DROP INEX
52 ................................................................................................................ ALTER TABLE
54 ............................................................................................... SQL AUTO INCREMENT
58 ....................................................................................................................... SQL View
60 ...................................................................................................................... SQL
63 ............................................................................................................................. NULL
65 .................................................................................................................... SQL NULL
66 ...................................................................................................................... SQL

74 ...................................................................................................................................... SQL
74 .................................................................................................................................... AVG()
76 ..................................................................................................................... SQL COUNT()

)(78 ................................................................................................................................... FIRST


)(79 .................................................................................................................................... LAST
)(80 .................................................................................................................................... MAX
)(81 .................................................................................................................................... MIN
)(82 .................................................................................................................................... SUM
Group By 83 ................................................................................................................. SQL
85 ................................................................................................................................ Having
)(86 ................................................................................................................................. UCASE
)(87 .................................................................................................................................. LCASE
)(88 ..................................................................................................................................... MID
)(89 ...................................................................................................................................... LEN
)(90 ................................................................................................................................ ROUDN
)(90 .................................................................................................................................. NOW
)(91 ............................................................................................................................ FORMAT

93 .................................................................................................................. SQL
96 ............................................................................................................................. SQL
SQL 97 ....................................................................................


70 SQL
.
) SQL (
. SQL -
SQL . ) (
. SQL .
MySQL MS SQL Server MS Access
. SQL Server
2008 Management Studio NorthWind .
NorthWind .
SQL W3Schools .

.

[email protected]

[email protected]

[email protected]

[email protected]

91

SQL

91

SQL
SQL .

SQL

SQL Structured Query Language


SQL
SQL ) ANSI (

SQL

SQL
SQL
SQL
SQL
SQL
SQL
SQL
SQL
SQL
SQL

SQL ...
SQL ANSI SQL .
ANSI )
(WHERE .
1

INSERT DELETE UPDATE SELECT

SQL

91

: SQL SQL!
SQL
:

) RDBMS (MySQL SQL Server MS Access

php ASP

SQL
HTML / CSS

RDBMS
RDBMS Relational Database Management System .
RDBMS SQL Oracle IBM DB2 MS SQL Server
MySQL Microsoft Access.
RDBMS .
.

SQL

. ) " "Orders "("Customers
. )( .
Persons :
City

Address

FirstName

LastName

P_Id

Sandnes

Timoteivn 10

Ola

Hansen

Sandnes

Borgvn 23

Tove

Svendson

Stavanger

Storgt 20

Kari

Pettersen

SQL

91

) ( ) Address FirstName LastName P_Id (City.


SQL
SQL .
SQL :
SELECT * FROM Persons

SQL .
...

SQL .

SQL
SQL .
SQL
SQL .
MS Access SQL Server 2000 SQL
.

DML DDL SQL


SQL : ) (DML ).(DDL
:SQL

- SELECT
- UPDATE
- DELETE
- INSERT INTO
3

SQL

91

DDL SQL .
. DDL SLQ :

- CREATE DATABASE
- ALTER DATABASE
- CREATE TABLE
- ALTER TABLE
- DROP TABLE
- CREATE INDEX ) (
- DROP INDEX

SELECT SQL
SELECT * SELECT .

SELECT SQL
SELECT .
- .

SQL SELECT
)SELECT column_name(s
FROM table_name

SELECT * FROM table_name

SQL : SELECT . select.


SELECT SQL
4

91

SQL
:"Persons"

P_Id

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Svendson

Tove

Borgvn 23

Sandnes

Pettersen

Kari

Storgt 20

Stavanger

." FirstName" " LastName"


: SELECT
SELECT LastName, FirstName FROM Persons

:
LastName

FirstName

Hansen

Ola

Svendson

Tove

Pettersen

Kari

SELECT *
." Persons"
: SELECT
SELECT * FROM Persons

! )*( :
:
P_Id

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Svendson

Tove

Borgvn 23

Sandnes

Pettersen

Kari

Storgt 20

Stavanger

SQL

91

-
Move-To-
Move-To-Next-Record Get-Record-Content First-Record
.
ADO PHP .

SQL SELECT DISTINCT


SELECT DISTINCT .

SELECT DISTINCT SQL


.
)( .
DISTINCT )( .

SELECT DISTINCT SQL


)SELECT DISTINCT column_name(s
FROM table_name

SELECT DISTINCT
":"Persons
City

Address

FirstName

LastName

P_Id

Sandnes

Timoteivn 10

Ola

Hansen

Sandnes

Borgvn 23

Tove

Svendson

Stavanger

Storgt 20

Kari

Pettersen

SQL

91

" "City .
SELECT :
SELECT DISTINCT City FROM Persons

:
City
Sandnes
Stavanger

WHERE SQL
WHERE .
WHERE .
WHERE SQL
)SELECT column_name(s
FROM table_name
WHERE column_name operator value

WHERE
":"Persons
City

Address

FirstName

LastName

P_Id

Sandnes

Timoteivn 10

Ola

Hansen

Sandnes

Borgvn 23

Tove

Svendson

Stavanger

Storgt 20

Kari

Pettersen

Sandnes .
SELECT :
SELECT * FROM Persons
'WHERE City='Sandnes

SQL

91

:
City

Address

FirstName

LastName

P_Id

Sandnes

Timoteivn 10

Ola

Hansen

Sandnes

Borgvn 23

Tove

Svendson


SQL ) (.
.
:
This is correct:
'SELECT * FROM Persons WHERE FirstName='Tove
This is wrong:
SELECT * FROM Persons WHERE FirstName=Tove

:
This is correct:
SELECT * FROM Persons WHERE Year=1965
This is wrong:
'SELECT * FROM Persons WHERE Year='1965

WHERE
WHERE :

=
><
>

SQL
<

=>

=<

BETWEEN
LIKE
IN

91

: SQL >< =! .

AND OR
AND OR .

AND OR
AND .
OR .

AND
":"Persons
City

Address

FirstName

LastName

P_Id

Sandnes

Timoteivn 10

Ola

Hansen

Sandnes

Borgvn 23

Tove

Svendson

Stavanger

Storgt 20

Kari

Pettersen

Tove Svendson .
SELECT :
9

91

SQL

SELECT * FROM Persons


WHERE FirstName='Tove'
AND LastName='Svendson'

:
P_Id

LastName

FirstName

Address

City

Svendson

Tove

Borgvn 23

Sandnes

OR
. Ola Tove
: SELECT
SELECT * FROM Persons
WHERE FirstName='Tove'
OR FirstName='Ola'

:
P_Id

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Svendson

Tove

Borgvn 23

Sandnes

OR AND
.( ) OR AND
. Ola Tove Svendson
: SELECT
SELECT * FROM Persons WHERE
LastName='Svendson'
AND (FirstName='Tove' OR FirstName='Ola')

:
10

SQL

91

City

Address

FirstName

LastName

P_Id

Sandnes

Borgvn 23

Tove

Svendson

ORDER BY SQL
ORDER BY .

ORDER BY
ORDER BY .
ORDER BY .
DESC .
ORDER BY SQL
)SELECT column_name(s
FROM table_name
ORDER BY column_name(s) ASC|DESC

ORDER BY
":"Persons
City

Address

FirstName

LastName

P_Id

Sandnes

Timoteivn 10

Ola

Hansen

Sandnes

Borgvn 23

Tove

Svendson

Stavanger

Storgt 20

Kari

Pettersen

Stavanger

Vingvn 23

Tom

Nilsen

.
11

91

SQL
: SELECT

SELECT * FROM Persons


ORDER BY LastName

:
P_Id

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Nilsen

Tom

Vingvn 23

Stavanger

Pettersen

Kari

Storgt 20

Stavanger

Svendson

Tove

Borgvn 23

Sandnes

ORDER BY DESC

.
: SELECT
SELECT * FROM Persons
ORDER BY LastName DESC

:
P_Id

LastName

FirstName

Address

City

Svendson

Tove

Borgvn 23

Sandnes

Pettersen

Kari

Storgt 20

Stavanger

Nilsen

Tom

Vingvn 23

Stavanger

Hansen

Ola

Timoteivn 10

Sandnes

12

91

SQL
SQL INSERT INTO
. INSERT INTO
SQL INSERT INT
. INSERT INTO
SQL INSERT INTO
. INSERT INTO
:

INSERT INTO table_name


VALUES (value1, value2, value3,)

.
INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)

SQL INSERT INTO


: Persons
P_Id

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Svendson

Tove

Borgvn 23

Sandnes

Pettersen

Kari

Storgt 20

Stavanger

. Persons
: SQL
INSERT INTO Persons
VALUES (4,'Nilsen', 'Johan', 'Bakken 2', 'Stavanger')

13

91

SQL
: Persons

P_Id

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Svendson

Tove

Borgvn 23

Sandnes

Pettersen

Kari

Storgt 20

Stavanger

Nilsen

Johan

Bakken 2

Stavanger


.
"FirstName" " LastName" "P_Id" SQL
.
INSERT INTO Persons (P_Id, LastName, FirstName)
VALUES (5, 'Tjessem', 'Jakob')

: Persons
P_Id

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Svendson

Tove

Borgvn 23

Sandnes

Pettersen

Kari

Storgt 20

Stavanger

Nilsen

Johan

Bakken 2

Stavanger

Tjessem

Jakob

UPDATE
. UPDATE
UPDATE
. UPDATE

14

91

SQL

SQL UPDATE
UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value

WHERE . UPDATE WHERE :


! WHERE .

SQL UPDATE
:"Persons"
P_Id

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Svendson

Tove

Borgvn 23

Sandnes

Pettersen

Kari

Storgt 20

Stavanger

Nilsen

Johan

Bakken 2

Stavanger

Tjessem

Jakob

. Persons " Tjessem, Jakob"


: SQL
UPDATE Persons
SET Address='Nissestien 67', City='Sandnes'
WHERE LastName='Tjessem' AND FirstName='Jakob'

: Persons
P_Id

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Svendson

Tove

Borgvn 23

Sandnes

Pettersen

Kari

Storgt 20

Stavanger

Nilsen

Johan

Bakken 2

Stavanger

Tjessem

Jakob

Nissestien 67

Sandnes

15

91

SQL

SQL UPDATE
: WHERE .
UPDATE Persons
SET Address='Nissestien 67', City='Sandnes'

: Persons
P_Id

LastName

FirstName

Address

City

Hansen

Ola

Nissestien 67

Sandnes

Svendson

Tove

Nissestien 67

Sandnes

Pettersen

Kari

Nissestien 67

Sandnes

Nilsen

Johan

Nissestien 67

Sandnes

Tjessem

Jakob

Nissestien 67

Sandnes

DELETE
. DELETE
DELETE
. DELETE
SQL DELETE
DELETE FROM table_name
WHERE some_column=some_value

WHERE . DELETE WHERE :


. WHERE .
SQL DELETE
:"Persons"
16

91

SQL

P_Id

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Svendson

Tove

Borgvn 23

Sandnes

Pettersen

Kari

Storgt 20

Stavanger

Nilsen

Johan

Bakken 2

Stavanger

Tjessem

Jakob

Nissestien 67

Sandnes

." Persons" " Tjessem, Jakob"


: SQL
DELETE FROM Persons
WHERE LastName='Tjessem' AND FirstName='Jakob'

: Persons
P_Id

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Svendson

Tove

Borgvn 23

Sandnes

Pettersen

Kari

Storgt 20

Stavanger

Nilsen

Johan

Bakken 2

Stavanger


.
.
DELETE FROM table_name
or
DELETE * FROM table_name

! . :

17

SQL

91

TOP SQL
TOP SQL .
TOP .
.
: TOP .
SQL Server
)SELECT TOP number|percent column_name(s
FROM table_name

SELECT TOP Oracle MySQL


MySQL
)SELECT column_name(s
FROM table_name
LIMIT number

:
* SELECT
FROM Persons
LIMIT 5

Oracle
)SELECT column_name(s
FROM table_name
WHERE ROWNUM <= number

:
18

91

SQL

SELECT *
FROM Persons
WHERE ROWNUM <=5

SQL TOP
:"Persons"
P_Id

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Svendson

Tove

Borgvn 23

Sandnes

Pettersen

Kari

Storgt 20

Stavanger

Nilsen

Tom

Vingvn 23

Stavanger

.
: SELECT
SELECT TOP 2 * FROM Persons

:
P_Id

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Svendson

Tove

Borgvn 23

Sandnes

SQL TOP PERCENT


:Persons
P_Id

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Svendson

Tove

Borgvn 23

Sandnes

Pettersen

Kari

Storgt 20

Stavanger

Nilsen

Tom

Vingvn 23

Stavanger

. 50%
: SELECT
SELECT TOP 50 PERCENT * FROM Persons

19

SQL

91

:
City

Address

FirstName

LastName

P_Id

Sandnes

Timoteivn 10

Ola

Hansen

Sandnes

Borgvn 23

Tove

Svendson

LIKE SQL
LIKE WHERE
.
LIKE
LIKE .
LIKE SQL
)SELECT column_name(s
FROM table_name
WHERE column_name LIKE pattern

LIKE
:Persons
City

Address

FirstName

LastName

P_Id

Sandnes

Timoteivn 10

Ola

Hansen

Sandnes

Borgvn 23

Tove

Svendson

Stavanger

Storgt 20

Kari

Pettersen

" "s .
SELECT :
SELECT * FROM Persons
'WHERE City LIKE 's%

" "% ) ( .
:
20

91

SQL

P_Id

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Svendson

Tove

Borgvn 23

Sandnes

Pettersen

Kari

Storgt 20

Stavanger

." s" " persons"


: SELECT
SELECT * FROM Persons
WHERE City LIKE '%s'

:
P_Id

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Svendson

Tove

Borgvn 23

Sandnes

." tav" " persons"


: SELECT
SELECT * FROM Persons
WHERE City LIKE '%tav%'

:
P_Id

LastName

FirstName

Address

City

Pettersen

Kari

Storgt 20

Stavanger

Persons NOT
. tav
: SELECT
SELECT * FROM Persons
WHERE City NOT LIKE '%tav%'

:
P_Id

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Svendson

Tove

Borgvn 23

Sandnes

21

SQL

91

SQL
SQL .
SQL
SQL .
SQL LIKE .
SQL :

][charlist

) Charlist (

][^charlist

Charlist

][!charlist
SQL
Persons :
City

Address

FirstName

LastName

P_Id

Sandnes

Timoteivn 10

Ola

Hansen

Sandnes

Borgvn 23

Tove

Svendson

Stavanger

Storgt 20

Kari

Pettersen

%
" "persons " "sa .
SELECT :
SELECT * FROM Persons
'WHERE City LIKE 'sa%

22

SQL

91

:
City

Address

FirstName

LastName

P_Id

Sandnes

Timoteivn 10

Ola

Hansen

Sandnes

Borgvn 23

Tove

Svendson

" "persons " "nes .


SELECT :
SELECT * FROM Persons
'WHERE City LIKE '%nes%

:
City

Address

FirstName

LastName

P_Id

Sandnes

Timoteivn 10

Ola

Hansen

Sandnes

Borgvn 23

Tove

Svendson

_
" "Persons " "la
.
SELECT :
SELECT * FROM Persons
'WHERE FirstName LIKE '_la

:
City

Address

FirstName

LastName

P_Id

Sandnes

Timoteivn 10

Ola

Hansen

" "persons " "s


"end" " "on .
SELECT :
SELECT * FROM Persons
'WHERE LastName LIKE 'S_end_on

23

SQL

91

:
City

Address

FirstName

LastName

P_Id

Sandnes

Borgvn 23

Tove

Svendson

][charlist
" "persons ""s " "b " "p
.
SELECT :
SELECT * FROM Persons
'WHERE LastName LIKE '[bsp]%

:
City

Address

FirstName

LastName

P_Id

Sandnes

Borgvn 23

Tove

Svendson

Stavanger

Storgt 20

Kari

Pettersen

" "persons " "s " "b " "p


.
SELECT :
SELECT * FROM Persons
'WHERE LastName LIKE '[!bsp]%

:
City

Address

FirstName

LastName

P_Id

Sandnes

Timoteivn 10

Ola

Hansen

IN SQL
IN WHERE .
IN SQL
24

91

SQL

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...)

IN
:"Persons"
P_Id

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Svendson

Tove

Borgvn 23

Sandnes

Pettersen

Kari

Storgt 20

Stavanger

" pettersen" " Hansen"


.
: SELECT
SELECT * FROM Persons
WHERE LastName IN ('Hansen','Pettersen')

:
P_Id

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Pettersen

Kari

Storgt 20

Stavanger

SQL BETWEEN
. WHERE BETWEEN
BETWEEN
. . BETWEEN
SQL BETWEEN
25

SQL

91

)SELECT column_name(s
FROM table_name
WHERE column_name
BETWEEN value1 AND value2

BETWEEN
":"Persons
City

Address

FirstName

LastName

P_Id

Sandnes

Timoteivn 10

Ola

Hansen

Sandnes

Borgvn 23

Tove

Svendson

Stavanger

Storgt 20

Kari

Pettersen

" "Hansen ""pettersen


.
SELECT :
SELECT * FROM Persons
WHERE LastName
'BETWEEN 'Hansen' AND 'Pettersen

:
City

Address

FirstName

LastName

P_Id

Sandnes

Timoteivn 10

Ola

Hansen

: BETWEEN .
" "Hansen " "Pettersen
BETWEEN ) ( .
" "Hansen " "pettersen BETWEEN
.
" "Hansen " "pattersen )
( BETWEEN ) (.
: BETWEEN .
2
26

SQL

91

NOT BETWEEN :
SELECT * FROM Persons
WHERE LastName
'NOT BETWEEN 'Hansen' AND 'Pettersen

:
City

Address

FirstName

LastName

P_Id

Sandnes

Borgvn 23

Tove

Svendson

Stavanger

Storgt 20

Kari

Pettersen

Alias SQL
SQL .
Alias SQL
) Alias ( .
.
Alias .
Alias SQL
)SELECT column_name(s
FROM table_name
AS alias_name

Alias SQL
SELECT column_name AS alias_name
FROM table_name

Alias
" "persons " "Product_Orders Alias . ""p
" "po .
" "Ola Hansen .
27

SQL

91

SELECT:
SELECT po.OrderID, p.LastName, p.FirstName
FROM Persons AS p,
Product_Orders AS po
'WHERE p.LastName='Hansen' AND p.FirstName='Ola

SELECT :
SELECT Product_Orders.OrderID, Persons.LastName, Persons.FirstName
FROM Persons,
Product_Orders
'WHERE Persons.LastName='Hansen' AND Persons.FirstName='Ola

SELECT
.

JOIN SQL
JOIN SQL
.
JOIN SQL
JOIN SQL
.
.
) (Primary Key ) ( .
.
.
""Persons :
City

Address

FirstName

LastName

P_Id

Sandnes

Timoteivn 10

Ola

Hansen

Sandnes

Borgvn 23

Tove

Svendson

Stavanger

Storgt 20

Kari

Pettersen

28

SQL

91

" "P_Id " "persons . " "P_Id


P_Id . .
""Order :
P_Id

OrderNo

O_Id

77895

44678

22456

24562

15

34764

""O-Id " "Orders " "p-Id " "Persons


.
" "P-Id.
JOIN SQL
JOIN .
:JOIN .
:LEFT JOIN .
:RIGHT JOIN .
:FULL JOIN .

INNER JOIN SQL


INNER JOIN SQL
INNER JOIN .
INNER JOIN SQL
)SELECT column_name(s
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name

29

91

SQL
. JOIN INNER JOIN :
SQL INNER JOIN
:"Persons"

P_Id

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Svendson

Tove

Borgvn 23

Sandnes

Pettersen

Kari

Storgt 20

Stavanger

:"Orders"
O_Id

OrderNo

P_Id

77895

44678

22456

24562

34764

15

.
: SELECT
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName

:
LastName

FirstName

OrderNo

Hansen

Ola

22456

Hansen

Ola

24562

Pettersen

Kari

77895

Pettersen

Kari

44678

. INNER JOIN
. " Orders" " Persons"
30

91

SQL

SQL LEFT JOIN


SQL LEFT JOIN
( table_name1) LEFT JOIN
.( table_name2)
SQL LEFT JOIN
SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name

. LEFT OUTER JOIN LEFT JOIN :


SQL LEFT JOIN
:"Persons"
P_Id

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Svendson

Tove

Borgvn 23

Sandnes

Pettersen

Kari

Storgt 20

Stavanger

:"Orders"
O_Id

OrderNo

P_Id

77895

44678

22456

24562

34764

15

. ) (
: SELECT
31

91

SQL

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo


FROM Persons
LEFT JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName

:
LastName

FirstName

OrderNo

Hansen

Ola

22456

Hansen

Ola

24562

Pettersen

Kari

77895

Pettersen

Kari

44678

Svendson

Tove

( persons) LEFT JOIN


.( orders)

SQL RIGHT JOIN


SQL RIGHT JOIN
( table_name2) RIGHT JOIN
.( table_name1)
SQL RIGHT JOIN
SELECT column_name(s)
FROM table_name1
RIGHT JOIN table_name2
ON table_name1.column_name=table_name2.column_name

. RIGHT OUTER JOIN RIGHT JOIN :


SQL RIGHT JOIN
:"Persons"
32

91

SQL

P_Id

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Svendson

Tove

Borgvn 23

Sandnes

Pettersen

Kari

Storgt 20

Stavanger

: "Orders"
O_Id

OrderNo

P_Id

77895

44678

22456

24562

34764

15

. ) (
: SELECT
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
RIGHT JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName

:
LastName

FirstName

OrderNo

Hansen

Ola

22456

Hansen

Ola

24562

Pettersen

Kari

77895

Pettersen

Kari

44678
34764

( Orders) RIGHT JOIN


.( Persons)

SQL FULL JOIN


SQL FULL JOIN
. FULL JOIN
33

91

SQL
SQL FULL JOIN

SELECT column_name(s)
FROM table_name1
FULL JOIN table_name2
ON table_name1.column_name=table_name2.column_name

SQL FULL JOIN


:"Persons"
P_Id

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Svendson

Tove

Borgvn 23

Sandnes

Pettersen

Kari

Storgt 20

Stavanger

:"Orders"
O_Id

OrderNo

P_Id

77895

44678

22456

24562

34764

15

.
: SELECT
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
FULL JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName

:
LastName

FirstName

OrderNo

Hansen

Ola

22456

Hansen

Ola

24562

Pettersen

Kari

77895

34

SQL
44678

91

Kari

Pettersen

Tove

Svendson

34764

FULL JOIN ) (persons ) (orders .


" "Persons " "Orders " "Orders
" "Persons .

UNION SQL
UNION SQL SELECT .
UNION SQL
UNION SELECT .
SELECT UNION .
. .
UNION SQL
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

: UNION . UNION ALL


.
UNION ALL SQL
SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2

: UNION SELECT UNION.


UNION SQL
:
"Employees_Norway":
35

91

SQL
E_ID

E_Name

01

Hansen, Ola

02

Svendson, Tove

03

Svendson, Stephen

04

Pettersen, Kari

"Employees_USA":
E_ID

E_Name

01

Turner, Sally

02

Kent, Clark

03

Svendson, Stephen

04

Scott, Stephen

. USA Norway
: SELECT
SELECT E_Name FROM Employees_Norway
UNION
SELECT E_Name FROM Employees_USA

:
E_Name
Hansen, Ola
Svendson, Tove
Svendson, Stephen
Pettersen, Kari
Turner, Sally
Kent, Clark
Scott, Stephen

. USA Norway :
. UNION .
SQL UNION ALL
. USA Norway
36

91

SQL

SELECT E_Name FROM Employees_Norway


UNION ALL
SELECT E_Name FROM Employees_USA

:
E_Name
Hansen, Ola
Svendson, Tove
Svendson, Stephen
Pettersen, Kari
Turner, Sally
Kent, Clark
Svendson, Stephen
Scott, Stephen

SQL SELECT INTO


. SQL SELECT INTO

SQL SELECT INTO


. SELECT INTO
. SELECT INTO
SQL SELECT INTO
:
SELECT *
INTO new_table_name [IN externaldatabase]
FROM old_tablename

:
SELECT column_name(s)
INTO new_table_name [IN externaldatabase]
FROM old_tablename

37

91

SQL
SQL SELECT INTO
." persons" -
: SQL

SELECT *
INTO Persons_Backup
FROM Persons

. IN
SELECT *
INTO Persons_Backup IN 'Backup.mdb'
FROM Persons

:
SELECT LastName,FirstName
INTO Persons_Backup
FROM Persons

WHERE SQL SELECT INTO


. WHERE
" sandnes" " persons-backup" SQL
.
SELECT LastName,Firstname
INTO Persons_Backup
FROM Persons
WHERE City='Sandnes'

JOIN SQL SELECT INTO


.
." orders" " persons" " Persons_Order_Backup"
SELECT Persons.LastName,Orders.OrderNo
INTO Persons_Order_Backup
FROM Persons
INNER JOIN Orders
ON Persons.P_Id=Orders.P_Id

38

SQL

91

CREATE DATABASE SQL


CREATE DATABASE
CREATE DATABASE .
CREATE DATABASE SQL
CREATE DATABASE database_name

CREATE DATABASE
" "MY-db .
CREAT DATABASE :
CREATE DATABASE my_db

CREATE TABLE .

CREATE TABLE SQL


CREATE TABLE
CREATE TABLE .
SQL CREATE TABLE
table_name
data_type,
data_type,
data_type,

CREATE TABLE
(
column_name1
column_name2
column_name3
....
)

.
SQL Server MS Access MySQL .
CREATE TABLE
" "persons P_Id : LastName FirstName
Address City.
39

SQL

91

CREATE TABLE :
CREATE TABLE Persons
(
P_Id int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
)City varchar(255
)

P_I d int .
Address FirstName lastName City varchar 255 .
" "Persons :
Address

City

FirstName

LastName

P_Id


Constraint .
) (ALTER TABLE ) ALTER
.(TABLE
:

NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK
DEFAULT

:NOT NULL
.
40

SQL

91

:NOT NULL
NOT NULL .
.
SQL " "P_Id " "LastName :
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
)City varchar(255
)

:UNIQUE
UNIQUE .
UNIQUE PRIMARY KEY
.
PRIMARY KEY UNIQUE .
UNIQUE
PRIMARY KEY .
UNIQUE :SQL
SQL UNIQUE " "Persons " "P_Id :
MySQL:

CREATE TABLE Persons


(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
)UNIQUE (P_Id
)

41

91

SQL

SQL Server / Oracle / MS Access:

CREATE TABLE Persons


(
P_Id int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

UNIQUE UNIQUE
:
MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons


(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
)

: UNIQUE
: "P_Id"
MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons


ADD UNIQUE (P_Id)

UNIQUE
: SQL
MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons


ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

UNIQUE
: SQL UNIQUE
42

91

SQL

MySQL:

ALTER TABLE Persons


DROP INDEX uc_PersonID
SQL Server / Oracle / MS Access:

ALTER TABLE Persons


DROP CONSTRAINT uc_PersonID

:SQL PRIMARY KEY


:SQL PRIMARY KEY
.
.
. NULL
.
:SQL CREATE TABLE PRIMARY KEY
:" Persons" " P_Id" PRIMARY KEY
MySQL:

CREATE TABLE Persons


(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (P_Id)
)
SQL Server / Oracle / MS Access:

CREATE TABLE Persons


(
P_Id int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

43

SQL

91


:
MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons


(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
)CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName
)

: ) (pk_PersonID . pk_PersonID
) P_Id (LastName .

PRIMARY KEY ALTER TABLE


" "P_Id SQL
:
MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons


)ADD PRIMARY KEY (P_Id

:
MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons


)ADD CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName

:
NOT NULL ) (.
PRIMARY KEY
:
44

SQL

91
MySQL:

ALTER TABLE Persons


DROP PRIMARY KEY
SQL Server / Oracle / MS Access:

ALTER TABLE Persons


DROP CONSTRAINT pk_PersonID

:FOREIGN KEY
.
. :
":" Persons
City
Sandnes
Sandnes
Stavanger

Address
Timoteivn 10
Borgvn 23
Storgt 20

LastName
Hansen
Svendson
Pettersen

FirstName
Ola
Tove
Kari

P_Id
1
2
3

" :" Orders


P_Id
3
3
2
1

OrderNo
77895
44678
22456
24562

O_Id
1
2
3
4

" "P_Id "" " "P_Id "" .


" "P_Id "" "" . " "P_Id ""
"" .
) (FOREIGN KEY
.
: CREATE TABLE
" "P_Id "" :
45

91

SQL

MySQL:

CREATE TABLE Orders


(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
)
SQL Server / Oracle / MS Access:

CREATE TABLE Orders


(
O_Id int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
P_Id int FOREIGN KEY REFERENCES Persons(P_Id)
)

:
MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Orders


(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
)

:ALTER TABLE FOREIGN KEY


: SQL " P_Id"
MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Orders


ADD FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)

:
MySQL / SQL Server / Oracle / MS Access:

46

SQL

91

ALTER TABLE Orders


ADD CONSTRAINT fk_PerOrders
)FOREIGN KEY (P_Id
)REFERENCES Persons(P_Id

FOREIGN KEY
:
MySQL:

ALTER TABLE Orders


DROP FOREIGN KEY fk_PerOrders
SQL Server / Oracle / MS Access:

ALTER TABLE Orders


DROP CONSTRAINT fk_PerOrders

CHECK
CHECK
CHECK .
CHECK .
CHECK
.
CHECK CREATE TABLE
CHECK " "P_Id " "Persons .
" "P_Id .
MySQL:

CREATE TABLE Persons


(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
)CHECK (P_Id>0
)

47

91

SQL

SQL Server / Oracle / MS Access:

CREATE TABLE Persons


(
P_Id int NOT NULL CHECK (P_Id>0),
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

:
MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons


(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')
)

ALTER TABLE CHECK


: " P_Id" CHECK
MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons


ADD CHECK (P_Id>0)

:
MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons


ADD CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')

CHECK
:
SQL Server / Oracle / MS Access:

ALTER TABLE Persons


DROP CONSTRAINT chk_Person

48

91

SQL

MySQL:

ALTER TABLE Persons


DROP CHECK chk_Person

SQL DEFAULT
SQL DEFAULT
. DEFAULT
. DEFAULT

CREATE TABLE DEFAULT


:" Persons" " City" DEFAULT
My SQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons


(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255) DEFAULT 'Sandnes'
)

GETDATE() DEFAULT
:
CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
OrderDate date DEFAULT GETDATE()
)

49

SQL

91

DEFAULT ALTER TABLE


DEFAULT " "City :
MySQL:

ALTER TABLE Persons


'ALTER City SET DEFAULT 'SANDNES
SQL Server / Oracle / MS Access:

ALTER TABLE Persons


'ALTER COLUMN City SET DEFAULT 'SANDNES

DEFAULT
:
MySQL:

ALTER TABLE Persons


ALTER City DROP DEFAULT
SQL Server / Oracle / MS Access:

ALTER TABLE Persons


ALTER COLUMN City DROP DEFAULT

CREATE INDEX SQL


CREATE INDEX .

.
INDEX
.
.

50

SQL

91

: )
( . ) ( .
CREATE INDEX SQL
. :
CREATE INDEX index_name
)ON table_name (column_name

CREATE UNIQUE INDEX SQL


. :
CREATE UNIQUE INDEX index_name
)ON table_name (column_name

: .
.
CREATE INDEX
" "PIndex " "LastName " "Persons :
CREATE INDEX PIndex
)ON Persons (LastName


:
CREATE INDEX PIndex
)ON Persons (LastName, FirstName

DROP TABLE DROP INEX DROP DATABASE SQL


DROP .
DROP INEX
51

91

SQL
. DROP INDEX

MS Access:

DROP INDEX index_name ON table_name

MS SQL Server:

DROP INDEX table_name.index_name

DB2/Oracle:

DROP INDEX index_name


MySQL:

ALTER TABLE table_name DROP INDEX index_name

DROP TABLE
. DROP TABLE
DROP TABLE table_name

DROP DATABASE
. DROP DATABASE
DROP DATABASE database_name

TRUNCATE TABLE

: TRUNCATE TABLE
TRUNCATE TABLE table_name

ALTER TABLE
ALTER TABLE
52

SQL

91

ALTER TABLE .
ALTER TABLE SQL
:
ALTER TABLE table_name
ADD column_name datatype

)
(:
ALTER TABLE table_name
DROP COLUMN column_name

:
ALTER TABLE table_name
ALTER COLUMN column_name datatype

ALTER TABLE SQL


" "Persons :
City
Sandnes
Sandnes
Stavanger

Address
Timoteivn 10
Borgvn 23
Storgt 20

LastName
Hansen
Svendson
Pettersen

FirstName
Ola
Tove
Kari

P_Id
1
2
3

" "DateOfBirth " "Persons .


SQL :
ALTER TABLE Persons
ADD DateOfBirth date

" "DateOfBirth
. .
53

91

SQL
:" Persons"

P_Id
1
2
3

LastName
Hansen
Svendson
Pettersen

FirstName
Ola
Tove
Kari

Address
Timoteivn 10
Borgvn 23
Storgt 20

City
Sandnes
Sandnes
Stavanger

DateOfBirth


. " Persons " " DateOfBirth"
: SQL
ALTER TABLE Persons
ALTER COLUMN DateOfBirth year

." DateOfBirth"
DROP COLUMN
. " Persons" " DateOfBirth"
: SQL
ALTER TABLE Persons
DROP COLUMN DateOfBirth

:" Persons"
P_Id
1
2
3

LastName
Hansen
Svendson
Pettersen

FirstName
Ola
Tove
Kari

Address
Timoteivn 10
Borgvn 23
Storgt 20

City
Sandnes
Sandnes
Stavanger

SQL AUTO INCREMENT


Auto-increment
.
SQL AUTO INCREMENT
54

SQL

91

primary key
.
Auto-increment .
MySQL
" "P_Id " "Persons Auto-increment
:
CREATE TABLE Persons
(
P_Id int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
)PRIMARY KEY (P_Id
)

MySQL AUTO_INCREMENT auto-increment .


AUTO_INCREMENT
.
AUTO_INCREMENT :
ALTER TABLE Persons AUTO_INCREMENT=100

" "Persons " "P_Id )


( :
)INSERT INTO Persons (FirstName,LastName
)'VALUES ('Lars','Monsen

SQL " "Persons . " "P_Id


. " "FirstName " "Lars " "LastName""Monsen
.
SQL Server
55

SQL

91

SQL " "P_Id " "Persons AUTO_INCREMENT


:
CREATE TABLE Persons
(
P_Id int PRIMARY KEY IDENTITY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
)City varchar(255
)

MS SQL Server IDENTITY auto-increment .


IDENTITY
.
" "P_Id 10 5 identity ) IDENTITY(10,5
.
" "Persons " "P_Id )
(:
)INSERT INTO Persons (FirstName,LastName
)'VALUES ('Lars','Monsen

SQL " "Persons . " "P_Id


. " "FirstName " "Lars " "LastName""Monsen
.
Access
SQL " "P_Id " "Persons AUTO_INCREMENT
:
CREATE TABLE Persons
(
P_Id PRIMARY KEY AUTOINCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
)City varchar(255
)

56

SQL

91

Access AUTOINCREMENT auto-increment .


AUTO_INCREMENT
.
" "P_Id 10 5 AUTOINCREMENT
) AUTOINCREMENT(10,5 .
" "Persons " "P_Id )
(:
)INSERT INTO Persons (FirstName,LastName
)'VALUES ('Lars','Monsen

SQL " "Persons . " "P_Id


. " "FirstName " "Lars " "LastName""Monsen
.
Oracle
.
auto-increment ) ( .
CREATE SEQUENCE :
CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10

seq_person 1 1 .
10 ) (Cache . Cache
.
" "Persons nextval )
seq_person (:
)INSERT INTO Persons (P_Id,FirstName,LastName

57

SQL

91

)'VALUES (seq_person.nextval,'Lars','Monsen

SQL " "Persons . " "P_Id


. " "FirstName " "Lars " "LastName""Monsen
.

View SQL
View .
View .
CREATE VIEW SQL
SQL view SQL .
view . view
.
WHERE SQL JOIN view
.
CREATE VIEW SQL
CREATE VIEW view_name AS
)SELECT column_name(s
FROM table_name
WHERE condition

: view !
view's SQL view.
CREATE VIEW SQL
Northwind view .
) (view " "Current Product List ) (
" "Products . view SQL :
58

91

SQL

CREATE VIEW [Current Product List] AS


SELECT ProductID,ProductName
FROM Products
WHERE Discontinued='No'

: view
SELECT * FROM [Current Product List]

" Products" Northwind view


:
CREATE VIEW [Products Above Average Price] AS
SELECT ProductName,UnitPrice
FROM Products
WHERE UnitPrice>(SELECT AVG(UnitPrice) FROM Products)

: view
SELECT * FROM [Products Above Average Price]

. 1997 Northwind view


:" Product Sales for 1997" view view
CREATE VIEW [Category Sales For 1997] AS
SELECT DISTINCT CategoryName,Sum(ProductSales) AS CategorySales
FROM [Product Sales for 1997]
GROUP BY CategoryName

: view
SELECT * FROM [Category Sales For 1997]

:" Beverages" .
SELECT * FROM [Category Sales For 1997]
WHERE CategoryName='Beverages'

VIEW
: view
59

SQL

91

CREATE OR REPLACE VIEW SQL


CREATE OR REPLACE VIEW view_name AS
)SELECT column_name(s
FROM table_name
WHERE condition

" "Category " "Current Product List .


SQL :
CREATE VIEW [Current Product List] AS
SELECT ProductID,ProductName,Category
FROM Products
'WHERE Discontinued='No

View SQL
DROP VIEW .
DROP VIEW SQL
DROP VIEW view_name

SQL
SQL

.
.
.

.
MySQL
MySQL:
60

SQL

)(NOW

)(CURDATE

)(CURTIME

)(DATE
)(EXTRACT

/ .
/ .

)(DATE_ADD

)(DATE_SUB

)(DATEDIFF

)(DATE_FORMAT

/ .

SQL Server
SQL Server:

)(GETDATE

)(DATEPART

/ .

)(DATEADD

)(DATEDIFF

)(CONVERT

/ .

SQL
MySQL / :

YYYY-MM-DD :DATE

YYYY-MM-DD HH:MM:SS :DATETIME


YYYY-MM-DD HH:MM:SS :TIMESTAMP

YYYY :YEAR YY
SQL Server / :
61

91

SQL

YYYY-MM-DD :DATE

YYYY-MM-DD HH:MM:SS :DATETIME


YYYY-MM-DD HH:MM:SS :SMALLDATETIME

:TIMESTAMP

91

: !
.
SQL
!
" "Orders :
OrderDate

ProductName

OrderId

2008-11-11

Geitost

2008-11-09

Camembert Pierrot

2008-11-11

Mozzarella di Giovanni

2008-10-29

Mascarpone Fabioli

OrderDate " "2008-11-11 .


SELECT :
'SELECT * FROM Orders WHERE OrderDate='2008-11-11

:
OrderDate

ProductName

OrderId

2008-11-11

Geitost

2008-11-11

Mozzarella di Giovanni

" "Orders ) " "OrderDate (:


OrderDate

ProductName

OrderId

2008-11-11 13:23:44

Geitost

2008-11-09 15:45:21

Camembert Pierrot

2008-11-11 11:12:01

Mozzarella di Giovanni

2008-10-29 14:56:59

Mascarpone Fabioli

62

SQL

91

SELECT :
'SELECT * FROM Orders WHERE OrderDate='2008-11-11

.
: !

NULL
NULL .
NULL .
IS NULL NOT NULL .
NULL SQL

. NULL .
NULL .
NULL .
: NULL 0 . .

NULL
":"Persons
City

Address

Sandnes
Sandnes

Borgvn 23

Stavanger

63

FirstName

LastName

P_Id

Ola

Hansen

Tove

Svendson

Kari

Pettersen

SQL

91

" "Address " "Persons .


NULL .
NULL
= > > < .
IS NULL IS NOT NULL .

IS NULL
NULL " "Address
NULL :
SELECT LastName,FirstName,Address FROM Persons
WHERE Address IS NULL

:
Address

FirstName

LastName

Ola

Hansen

Kari

Pettersen

: IS NULL NULL .

IS NOT NULL
NOT NULL " "Address
IS NOT NULL :
SELECT LastName,FirstName,Address FROM Persons
WHERE Address IS NOT NULL

:
64

91

SQL

LastName

FirstName

Address

Svendson

Tove

Borgvn 23

. COALESCE() IFNULL() NVL() ISNULL()

SQL NULL
COALESCE() ISNULL(), NVL(), IFNULL()
:" Products"
P_Id

ProductName

UnitPrice

UnitsInStock

UnitsOnOrder

Jarlsberg

10.45

16

15

Mascarpone

32.56

23

Gorgonzola

15.67

20

. NULL " UnitsOnOrder"


: SELECT
SELECT ProductName,UnitPrice*(UnitsInStock+UnitsOnOrder)
FROM Products

. NULL NULL " UnitsOnOrder"


NULL Access ISNULL()
.
. COALESCE() NVL() ,IFNULL()
. NULL
NULL " UnitsOnOrder"
: ISNULL()
SQL Server / MS Access

SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitsOnOrder,0))
FROM Products

65

SQL

91
Oracle

)( ISNULL . )( NVL :
))SELECT ProductName,UnitPrice*(UnitsInStock+NVL(UnitsOnOrder,0
FROM Products

MySQL

MySQL )( ISNULL . )( ISNULL .


MySQL )( IFNULL :
))SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitsOnOrder,0
FROM Products

)( COALESCE :
))SELECT ProductName,UnitPrice*(UnitsInStock+COALESCE(UnitsOnOrder,0
FROM Products

SQL
Microsoft Access ,MySQL SQL Server
Microsoft Access

Text
Memo
Byte
Integer
Long
Single

.
. 65536 .
: Memo . .


1 byte
2 bytes

0 255 .

4 bytes

-32768 32767 .

4 bytes

-2147483648 2147483647 .

8 bytes

. .

8 bytes

66

SQL

. .

Double

4 bytes

. 15 4 .

Currency

: .
AutoNumber

AutoNumber

.
.

Date/Time

91

8 bytes

1 bit
up to 1GB

/ / /
. )Yes/No -1 .(0 :

Yes/No

NULL Yes/No .
Ole Object

) BLOBs ( .

Hyperlink

Lookup Wizard

4 byte

MySQL
MySQL : /.

:

)CHAR(size

) ( .
. 255 .
) ( .

)VARCHAR(size

. 255 .
: 255 .

TINYTEXT

255 .

TEXT

65535 .

BLOB

)BLOBs ( . 65535 .

MEDIUMTEXT

16777215 .
67

SQL

91

)BLOBs ( . 16777215 .

MEDIUMBLOB
LONGTEXT

16777215 .

LONGBLOB

)BLOBs ( . 4294967295 .
. 53565 .
.

)ENUM(x, y, z, etc.

: .
ENUM('X','Y','Z') :

SET

ENUM 64
.


)TINYINT(size

-128 127 . 0 255 *. .


-32768 32767 0 . 65535 *.

)SMALLINT(size

.
-8388608 8388607 0 . 16777215 *.

)MEDIUMINT(size

.
-2147483648 2147483647 0 . 4294967295 *.

)INT(size

.
- 9223372036854775808 9223372036854775807 0 . 18446744073709551615

)BIGINT(size

*. .

68

SQL

91

. size
)FLOAT(size,d

. d .
. size

)DOUBLE(size,d

. d .
DOUBLE .

)DECIMAL(size,d

size . d
.

* ) UNSIGNED ( .
. ) (
.
:


. YYYY-MM-DD :
)(DATE

: ' '1000-01-01 ' '9999-12-31 .

* . YYYY-MM-DD HH:MM:SS :
)(DATETIME

: ' '1000-01-01 00:00:00 ' '9999-12-31 23:59:59 .

* . ) ('1970-01-01 00:00:00' UTC


. YYYY-MM-DD HH:MM:SS :
)(TIMESTAMP

: '1970-01-01 00:00:01' UTC '2038-01-09 03:14:07' UTC


.

69

91

SQL

. HH:MM:SS :
)(TIME

: ' '-838:59:59 ' '838:59:59 .

.
: 1901 : .2155 : 70 69
)(YEAR

1970 .2069

* )( DATETIME )( TIMESTAMP .
INSERT UPDATE TIMESTAMP .
YYYYMMDD YYMMDDHHMMSS YYYYMMDDHHMMSS .YYMMDD

SQL Server
:


)char(n

. 8000 .

)varchar(n

. 8000 .

)varchar(max

. 1073741824.

text

. GB2 .

)nchar(n

. 4000 .

)nvarchar(n

. 4000 .
70

SQL
)nvarchar(max
ntext

91

. 912870536 .
. GB2 .

:

bit

0 1 Null

)binary(n

. 8000 .

)varbinary(n

. 8000 .

)varbinary(max

. GB2

image

. GB2


tinyint
smallint
int

bigint

0 255

1 byte

-32768 32767

2 bytes

-2147483648 2147483647

4 bytes

-9.223.372.036.854.775.808

9.223.372.036.854.775.807

8 bytes

.
-1+ 38 ^ 10 .1- 38 ^ 10
P )
)decimal(p,s

( P . 1 38 .
18 . S
S . 0 P .
0 .

71

5-17 bytes

SQL

91

. -1+ 38 ^ 10 .1- 38 ^ 10
P )
)numeric(p,s

( P . 1 38 .
18 . S

5-17 bytes

S . 0 P .
0 .
smallmoney
money

-214748.3648 214748.3647
-922337203685477.5808 922337203685477.5807

4 bytes
8 bytes

-1.79E + 308 1.79E + 308


)float(n

N 4 8 oat(24) .
4 ) oat(53 8 .

4 or 8 bytes

n 53.
real

-3.40E + 38 3.40E + 38

4 bytes

datetime

1 1753 31 9999 3.33 .

8 bytes

datetime2

1 0001 31 9999 100 .

6-8 bytes

1 1900 6 2079 1 .

4 bytes

smalldatetime
date

. 1 0001 31.9999

3 bytes

time

100 .

datetimeoffset

date me2 .

timestamp

. timestamp
.
.

:
72

3-5 bytes
8-10 bytes

SQL

sql_variant
uniqueidentifier
xml
cursor
table

8000 ntext .
).(GUID
XML . .GB2
.
.

73

91

SQL

- SQL
SQL
SQL .
SQL
SQL .
:

)( - AVG
)( - COUNT
)( - FIRST
)( - LAST
)( - MAX
)( - MIN
)( - SUM

SQL
SQL .
:

)( - UCASE
)( - LCASE
)( - MID
)( - LEN
)( - ROUND
)( - NOW
)( - FORMAT

)(AVG
74

91

91

SQL
. AVG()
SQL AVG()

SELECT AVG(column_name) FROM table_name

SQL AVG()
: Orders
O_Id

OrderDate

OrderPrice

Customer

2008/11/12

1000

Hansen

2008/10/23

1600

Nilsen

2008/09/02

700

Hansen

2008/09/03

300

Hansen

2008/08/30

2000

Jensen

2008/10/04

100

Nilsen

. OrderPrice
: SQL
SELECT AVG(OrderPrice) AS OrderAverage FROM Orders

:
OrderAverage
950

. OrderPrice OrderPrice )(

: SQL
SELECT Customer FROM Orders
WHERE OrderPrice>(SELECT AVG(OrderPrice) FROM Orders)

:
75

91

SQL
Customer
Hansen
Nilsen
Jensen

SQL COUNT()
. SQL COUNT()
SQL COUNT(column_name)
: ( NULL )COUNT(column_name)
SELECT COUNT(column_name) FROM table_name

SQL COUNT(*)
: SQL COUNT(*)
SELECT COUNT(*) FROM table_name

SQL COUNT(DISTINCT column_name)


: COUNT(DISTINCT column_name)
SELECT COUNT(DISTINCT column_name) FROM table_name

Microsoft Access Microsoft SQL Server ORACLE COUNT(DISTINCT) :


.
SQL COUNT(DISTINCT column_name)
: Orders
76

91

SQL

O_Id

OrderDate

OrderPrice

Customer

2008/11/12

1000

Hansen

2008/10/23

1600

Nilsen

2008/09/02

700

Hansen

2008/09/03

300

Hansen

2008/08/30

2000

Jensen

2008/10/04

100

Nilsen

: Nilsen
: SQL
SELECT COUNT(Customer) AS CustomerNilsen FROM Orders
WHERE Customer='Nilsen'

: 2 Nilsen 2 SQL
CustomerNilsen
2

SQL COUNT(*)
: WHERE
SELECT COUNT(*) AS NumberOfOrders FROM Orders

:
NumberOfOrders
6

SQL COUNT(DISTINCT column_name)


77

SQL

91

Orders .
SQL :
SELECT COUNT(DISTINCT Customer) AS NumberOfCustomers FROM Orders

:
NumberOfCustomers
3

) Hansen, Nilsen (Jansen .

)(FIRST
)( FIRST .

)( FIRST SQL
SELECT FIRST(column_name) FROM table_name

)( FIRST SQL
Orders :
Customer

OrderPrice

OrderDate

O_Id

Hansen

1000

2008/11/12

Nilsen

1600

2008/10/23

Hansen

700

2008/09/02

Hansen

300

2008/09/03

Jensen

2000

2008/08/30

Nilsen

100

2008/10/04

OrderPrice .
78

91

SQL
: SQL

SELECT FIRST(OrderPrice) AS FirstOrderPrice FROM Orders

. FIRST() :
SELECT OrderPrice FROM Orders ORDER BY O_Id LIMIT 1

:
FirstOrderPrice
1000

LAST()
. LAST()

SQL LAST()
SELECT LAST(column_name) FROM table_name

SQL LAST()
: Orders
O_Id

OrderDate

OrderPrice

Customer

2008/11/12

1000

Hansen

2008/10/23

1600

Nilsen

2008/09/02

700

Hansen

2008/09/03

300

Hansen

2008/08/30

2000

Jensen

2008/10/04

100

Nilsen

79

91

SQL
. OrderPrice
: SQL

SELECT LAST(OrderPrice) AS LastOrderPrice FROM Orders

. LAST() :
SELECT OrderPrice FROM Orders ORDER BY O_Id DESC LIMIT 1

:
LastOrderPrice
100

MAX()
. MAX()
SQL MAX()
SELECT MAX(column_name) FROM table_name

SQL MAX()
: Orders
O_Id

OrderDate

OrderPrice

Customer

2008/11/12

1000

Hansen

2008/10/23

1600

Nilsen

2008/09/02

700

Hansen

2008/09/03

300

Hansen

2008/08/30

2000

Jensen

2008/10/04

100

Nilsen

80

91

SQL
. OrderPrice
: SQL

SELECT MAX(OrderPrice) AS LargestOrderPrice FROM Orders

:
LargestOrderPrice
2000

MIN()
. MIN()
SQL MIN()
SELECT MIN(column_name) FROM table_name

SQL MIN()
: Orders
O_Id

OrderDate

OrderPrice

Customer

2008/11/12

1000

Hansen

2008/10/23

1600

Nilsen

2008/09/02

700

Hansen

2008/09/03

300

Hansen

2008/08/30

2000

Jensen

2008/10/04

100

Nilsen

. OrderPrice
: SQL
SELECT MIN(OrderPrice) AS SmallestOrderPrice FROM Orders

81

91

SQL
:
SmallestOrderPrice
100

SUM()
. SUM()

SQL SUM()
SELECT SUM(column_name) FROM table_name

SQL SUM()
: Orders
O_Id

OrderDate

OrderPrice

Customer

2008/11/12

1000

Hansen

2008/10/23

1600

Nilsen

2008/09/02

700

Hansen

2008/09/03

300

Hansen

2008/08/30

2000

Jensen

2008/10/04

100

Nilsen

. OrderPrice
: SQL
SELECT SUM(OrderPrice) AS OrderTotal FROM Orders

:
82

SQL

91

OrderTotal
5700

Group By SQL
Group By .
Group By
Group By .
Group By SQL
)SELECT column_name, aggregate_function(column_name
FROM table_name
WHERE column_name operator value
GROUP BY column_name

Group By SQL
" "Orders :
Customer

OrderPrice

OrderDate

O_Id

Hansen

1000

2008/11/12

Nilsen

1600

2008/10/23

Hansen

700

2008/09/02

Hansen

300

2008/09/03

Jensen

2000

2008/08/30

Nilsen

100

2008/10/04

.
Group By .
83

SQL

91

SQL :
SELECT Customer,SUM(OrderPrice) FROM Orders
GROUP BY Customer

:
)SUM(OrderPrice

Customer

2000

Hansen

1700

Nilsen

2000

Jensen

J
Group By :
SELECT Customer,SUM(OrderPrice) FROM Orders

:
)SUM(OrderPrice

Customer

5700

Hansen

5700

Nilsen

5700

Hansen

5700

Hansen

5700

Jensen

5700

Nilsen

.
SELECT : SELECT
) Customer ) .(SUM(OrderPrice " 6 "Customer )
" "SUM(OrderPrice)" ("Orders ) " "OrderPrice( .
. Group By .
Group By
Group By :
84

91

SQL

SELECT Customer,OrderDate,SUM(OrderPrice) FROM Orders


GROUP BY Customer,OrderDate

Having
. WHERE SQL Having
Having
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name) operator value

SQL Having
:" Orders"
O_Id

OrderDate

OrderPrice

Customer

2008/11/12

1000

Hansen

2008/10/23

1600

Nilsen

2008/09/02

700

Hansen

2008/09/03

300

Hansen

2008/08/30

2000

Jensen

2008/10/04

100

Nilsen

. 2000
: SQL
SELECT Customer,SUM(OrderPrice) FROM Orders
GROUP BY Customer
HAVING SUM(OrderPrice)<2000

:
Customer

SUM(OrderPrice)

Nilsen

1700

85

91

SQL
. 1500 " Jensen" " Hansen"
: SQL WHERE

SELECT Customer,SUM(OrderPrice) FROM Orders


WHERE Customer='Hansen' OR Customer='Jensen'
GROUP BY Customer
HAVING SUM(OrderPrice)>1500

:
Customer

SUM(OrderPrice)

Hansen

2000

Jensen

2000

UCASE()
. UCASE()
UCASE()
SELECT UCASE(column_name) FROM table_name

SQL Server
SELECT UPPER(column_name) FROM table_name

SQL UCASE()
: Persons
P_Id

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Svendson

Tove

Borgvn 23

Sandnes

Pettersen

Kari

Storgt 20

Stavanger

LastName FirstName LastName


.
86

91

SQL
: SQL

SELECT UCASE(LastName) as LastName,FirstName FROM Persons

:
LastName

FirstName

HANSEN

Ola

SVENDSON

Tove

PETTERSEN

Kari

LCASE()
. LCASE()
LCASE()
SELECT LCASE(column_name) FROM table_name

SQL Server
SELECT LOWER(column_name) FROM table_name

SQL LCASE()
:" Persons"
P_Id

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Svendson

Tove

Borgvn 23

Sandnes

Pettersen

Kari

Storgt 20

Stavanger

" LastName" " FirstName" " LastName"


. .
: SQL
SELECT LCASE(LastName) as LastName,FirstName FROM Persons

87

SQL

91

:
FirstName

LastName

Ola

hansen

Tove

svendson

Kari

pettersen

)(MID
)( MID .
)(MID
SELECT MID(column_name,start[,length]) FROM table_name

column_name

start

. ) (1

length

. . )( MID .

)( MID SQL
" "Persons :
City

Address

FirstName

LastName

P_Id

Sandnes

Timoteivn 10

Ola

Hansen

Sandnes

Borgvn 23

Tove

Svendson

Stavanger

Storgt 20

Kari

Pettersen

" "City .
SQL :
88

91

SQL

SELECT MID(City,1,4) as SmallCity FROM Persons

:
SmallCity
Sand
Sand
Stav

LEN()
. LEN()
LEN()
SELECT LEN(column_name) FROM table_name

SQL LEN()
:" Persons"
P_Id

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Svendson

Tove

Borgvn 23

Sandnes

Pettersen

Kari

Storgt 20

Stavanger

." Address"
: SQL
SELECT LEN(Address) as LengthOfAddress FROM Persons

:
LengthOfAddress
12
9
9

89

SQL

91

)(ROUDN
)( ROUDN .
)( ROUDN SQL
SELECT ROUND(column_name,decimals) FROM table_name

column_name . .
. .

decimals

)( ROUDN SQL
" "Products :
UnitPrice

Unit

ProductName

Prod_Id

10.45

1000 g

Jarlsberg

32.56

1000 g

Mascarpone

15.67

1000 g

Gorgonzola

.
SQL :
SELECT ProductName, ROUND(UnitPrice,0) as UnitPrice FROM Products

:
UnitPrice

ProductName

10

Jarlsberg

33

Mascarpone

16

Gorgonzola

)(NOW
90

91

SQL
. NOW()

SQL NOW()
SELECT NOW() FROM table_name

NOW()
:" Products"
Prod_Id

ProductName

Unit

UnitPrice

Jarlsberg

1000 g

10.45

Mascarpone

1000 g

32.56

Gorgonzola

1000 g

15.67

.
: SQL
SELECT ProductName, UnitPrice, Now() as PerDate FROM Products

:
ProductName

UnitPrice

PerDate

Jarlsberg

10.45

10/7/2008 11:25:02 AM

Mascarpone

32.56

10/7/2008 11:25:02 AM

Gorgonzola

15.67

10/7/2008 11:25:02 AM

FORMAT()
. FORMAT()
SQL FORMAT()
91

91

SQL

SELECT FORMAT(column_name,format) FROM table_name

. .

column_name

. .

format

SQL FORMAT()
:" Products"
Prod_Id

ProductName

Unit

UnitPrice

Jarlsberg

1000 g

10.45

Mascarpone

1000 g

32.56

Gorgonzola

1000 g

15.67

."( YYYY-MM-DD" )
: SQL
SELECT ProductName, UnitPrice, FORMAT(Now(),'YYYY-MM-DD') as PerDate FROM
Products

:
ProductName

UnitPrice

PerDate

Jarlsberg

10.45

2008-10-07

Mascarpone

32.56

2008-10-07

Gorgonzola

15.67

2008-10-07

92

91

SQL

SQL
SQL
AND / OR

SELECT column_name(s)
FROM table_name
WHERE condition
AND|OR condition
ALTER TABLE table_name
ADD column_name datatype

ALTER TABLE

ALTER TABLE table_name


DROP COLUMN column_name
SELECT column_name AS column_alias
FROM table_name

AS (alias)

SELECT column_name
FROM table_name AS table_alias

BETWEEN
CREATE DATABASE

CREATE TABLE

SELECT column_name(s)
FROM table_name
WHERE column_name
BETWEEN value1 AND value2
CREATE DATABASE database_name
CREATE TABLE table_name
(
column_name1 data_type,
column_name2 data_type,
column_name2 data_type,
...
)
CREATE INDEX index_name
ON table_name (column_name)

CREATE INDEX

91

SQL
CREATE UNIQUE INDEX index_name
ON table_name (column_name)

CREATE VIEW

CREATE VIEW view_name AS


SELECT column_name(s)
FROM table_name
WHERE condition
DELETE FROM table_name
WHERE some_column=some_value

DELETE

DELETE FROM table_name


(! :)
DELETE * FROM table_name
(! :)

DROP DATABASE

DROP DATABASE database_name

DROP INDEX

DROP INDEX table_name.index_name (SQL Server)


DROP INDEX index_name ON table_name (MS Access)
DROP INDEX index_name (DB2/Oracle)
ALTER TABLE table_name
DROP INDEX index_name (MySQL)

DROP TABLE

DROP TABLE table_name

GROUP BY

SELECT column_name, aggregate_function(column_name)


FROM table_name
WHERE column_name operator value
GROUP BY column_name

HAVING

SELECT column_name, aggregate_function(column_name)


FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name) operator value

IN

INSERT INTO

SELECT column_name(s)
FROM table_name
WHERE column_name
IN (value1,value2,..)
INSERT INTO table_name
VALUES (value1, value2, value3,....)

91

SQL

INSERT INTO table_name


(column1, column2, column3,...)
VALUES (value1, value2, value3,....)
INNER JOIN

SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name

LEFT JOIN

SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name

RIGHT JOIN

SELECT column_name(s)
FROM table_name1
RIGHT JOIN table_name2
ON table_name1.column_name=table_name2.column_name

FULL JOIN

SELECT column_name(s)
FROM table_name1
FULL JOIN table_name2
ON table_name1.column_name=table_name2.column_name

LIKE

ORDER BY
SELECT
SELECT *
SELECT DISTINCT

SELECT INTO

SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern
SELECT column_name(s)
FROM table_name
ORDER BY column_name [ASC|DESC]
SELECT column_name(s)
FROM table_name
SELECT *
FROM table_name
SELECT DISTINCT column_name(s)
FROM table_name
SELECT *
INTO new_table_name [IN externaldatabase]
FROM old_table_name

91

SQL
SELECT column_name(s)
INTO new_table_name [IN externaldatabase]
FROM old_table_name
SELECT TOP number|percent column_name(s)
FROM table_name

SELECT TOP
TRUNCATE TABLE

TRUNCATE TABLE table_name

UNION

SELECT column_name(s) FROM table_name1


UNION
SELECT column_name(s) FROM table_name2

UNION ALL

SELECT column_name(s) FROM table_name1


UNION ALL
SELECT column_name(s) FROM table_name2

UPDATE

UPDATE table_name
SET column1=value, column2=value,...
WHERE some_column=some_value

WHERE

SELECT column_name(s)
FROM table_name
WHERE column_name operator value

SQL

. SQL
SQL ( ISP)
.
. MS Access MS SQL Server MySQL
. / SQL
:

My SQL Server
.

SQL

91

MySQL
/ .
MS Access
.
.

SQL
SQL
SQL SQL .
SQL
.
SQL .
SQL.
SQL IBM DB2 MS SQL Server
MySQL Oracle MS Access .

SQL
ADO PHP MySQL.
ADO ADO .
MySQL PHP .

You might also like