Você está na página 1de 64

1

dpap@unipi.gr

SQL

SQL
SQL (Structured Query Language)

.
.
SQL .
SQL
(queries) .
.
.
.
.
.

SQL (1/2)
: CREATE TABLE < > (< >
< >,, < > < >)
[ ]
.. CREATE TABLE ITEM (ITEM_CODE CHAR(8) NOT NULL, ITEM_NAME
VARCHAR(25), PRIMARY KEY (ITEM_CODE));
:
, NOT NULL,

.

SQL (2/2)
: DROP TABLE < > CASCADE|RESTRICT
CASCADE
, ,
RESTRICT
.
.. DROP TABLE ITEM CASCADE;
DROP TABLE ITEM RESTRICT;
:
(),
. ALTER TABLE < > <
>
.. ALTER TABLE ITEM ADD ITEM_QUANTITY INT;
ALTER TABLE ITEM DROP ITEM_QUANTITY INT;
ALTER TABLE ITEM ALTER ITEM_SERIALNUMBER CHAR(15);



(
).

, .
(
).

query optimizers
,
.
.

SQL

Student

Grade

ID

First

Last

ID

Code

Mark

S103
S104
S105
S106
S107

John
Mary
Jane
Mark
John

Smith
Jones
Brown
Jones
Brown

S103
S103
S104
S104
S106
S107
S107
S107

DBS
IAI
PR1
IAI
PR2
PR1
PR2
IAI

72
58
68
65
43
76
60
35

Course
Code

Title

DBS
PR1
PR2
IAI

Database Systems
Programming 1
Programming 2
Intro to AI

DISTINCT ALL

DISTINCT

ALL (default)
Last

SELECT ALL Last


FROM Student;

Smith
Jones
Brown
Jones
Brown

SELECT DISTINCT Last


FROM Student;

Last
Smith
Jones
Brown

WHERE

WHERE ,

(conditions):

Mark < 40
First = John
First <> John
First = Last
(First = John) AND (Last = Smith)
(Mark < 40) OR (Mark > 70)

WHERE
SELECT * FROM Grade WHERE Mark >= 60;
ID

Code

Mark

S103
S104
S104
S107
S107

DBS
PR1
IAI
PR1
PR2

72
68
65
76
60

SELECT DISTINCT ID FROM Grade WHERE Mark >= 60;


ID
S103
S104
S107

WHERE


Grade
ID

Code

Mark

S103
S103
S104
S104
S106
S107
S107
S107

DBS
IAI
PR1
IAI
PR2
PR1
PR2
IAI

72
58
68
65
43
76
60
35

SQL
ID Mark IAI,
40.
ID
Mark
S103
S104

58
65


ID Mark, Code

string

SELECT ID, Mark FROM Grade


WHERE (Code = IAI) AND
(Mark >= 40)
IAI
,
Mark 40

SELECT

.

SELECT * FROM Table1, Table2...


() .
, .
TableName.Column

SELECT
SELECT First, Last, Mark
FROM Student, Grade
WHERE (Student.ID = Grade.ID) AND (Mark >= 40);
Student
ID

First

Last

S103
S104
S105
S106
S107

John
Smith
Mary
Jones
Jane Grade
Brown
Mark ID JonesCode
John
Brown
S103
DBS
S103
IAI
S104
PR1
S104
IAI
S106
PR2
S107
PR1
S107
PR2
S107
IAI

Mark
72
58
68
65
43
76
60
35

SELECT
SELECT ... FROM Student, Grade
WHERE (Student.ID = Grade.ID) AND ... ;
ID

First

Last

ID

Code

Mark

S103
S103
S104
S104
S106
S107
S107
S107

John
John
Mary
Mary
Mark
John
John
John

Smith
Smith
Jones
Jones
Jones
Brown
Brown
Brown

S103
S103
S104
S104
S106
S107
S107
S107

DBS
IAI
PR1
IAI
PR2
PR1
PR2
IAI

72
58
68
65
43
76
60
35

Student.ID

Grade.ID

SELECT
SELECT ... FROM Student, Grade
WHERE (Student.ID = Grade.ID) AND (Mark >= 40);
ID

First

Last

ID

Code

Mark

S103
S103
S104
S104
S106
S107
S107

John
John
Mary
Mary
Mark
John
John

Smith
Smith
Jones
Jones
Jones
Brown
Brown

S103
S103
S104
S104
S106
S107
S107

DBS
IAI
PR1
IAI
PR2
PR1
PR2

72
58
68
65
43
76
60

SELECT
SELECT First, Last, Mark FROM Student, Grade
WHERE (Student.ID = Grade.ID) AND (Mark >= 40);
First

Last

Mark

John
John
Mary
Mary
Mark
John
John

Smith
Smith
Jones
Jones
Jones
Brown
Brown

72
58
68
65
43
76
60

SQL
SQL
.
:
INSERT
UPDATE
DELETE
SELECT .

INSERT


INSERT INTO CUSTOMER VALUES (001, Contemporary Casuals,
1355 S. Himes Blvd., Gainesville, FL, 32601);


INSERT INTO PRODUCT (PRODUCT_ID, PRODUCT_DESCRIPTION,
PRODUCT_FINISH,
STANDARD_PRICE,
PRODUCT_ON_HAND)
VALUES (1, End Table, Cherry, 175, 8);

DELETE


DELETE FROM CUSTOMER WHERE STATE = HI;


DELETE FROM CUSTOMER;

UPDATE

UPDATE PRODUCT SET UNIT_PRICE = 775 WHERE PRODUCT_ID
= 7;

SELECT

.
:
SELECT
( - columns)

FROM
/ / (table(s))

WHERE
(conditions)

GROUP BY
(columns)

HAVING
(conditions),

ORDER BY
(columns).

SQL

23

SELECT
275
SELECT PRODUCT_NAME
FROM PRODUCT
WHERE PRODUCT_STANDARDPRICE < 275;

SQL

SELECT

: SUM(), MIN(), MAX(), AVG(), COUNT()


COUNT

SELECT COUNT(*) FROM ORDER


WHERE ORDER_ID = 1004;
COUNT(*) .
COUNT(column_name)
( NULL ).
COUNT(DISTINCT column_name)
.

SELECT BOOLEAN
AND, OR, NOT
WHERE
SELECT PRODUCT_DESCRIPTION, PRODUCT_FINISH,
PRODUCT_STANDARDPRICE
FROM PRODUCT
WHERE (PRODUCT_DESCRIPTION LIKE %Desk
OR PRODUCT_DESCRIPTION LIKE %Table)
AND PRODUCT_STANDARDPRICE > 300;
: LIKE strings
. , % %Desk
strings
Desk.

SELECT
ORDER BY
STATE,
STATE CUSTOMER_NAME
SELECT CUSTOMER_NAME, CUSTOMER_CITY, CUSTOMER_STATE
FROM CUSTOMER
WHERE CUSTOMER_STATE IN (FL, TX, CA, HI)
ORDER BY CUSTOMER_STATE, CUSTOMER_NAME;

: IN
CUSTOMER_STATE FL, TX, CA, HI.
OR.

SELECT

GROUP BY

SELECT CUSTOMER_STATE, COUNT(CUSTOMER_STATE)
FROM CUSTOMER
GROUP BY CUSTOMER _STATE;

SELECT
HAVING
GROUP BY
SELECT CUSTOMER_STATE, COUNT(CUSTOMER_STATE)
FROM CUSTOMER
GROUP BY CUSTOMER_STATE
HAVING COUNT(CUSTOMER_STATE) > 1;
: HAVING WHERE,
groups (categories), .
, groups
1 .



Reserves

Sailors

Boats

sid
22
95

bid
101
103

sid
22
31
95

sname rating age


Dustin
7
45.0
Lubber
8
55.5
Bob
3
63.5

bid
101
102
103
104

day
10/10/96
11/12/96

bname
Interlake
Interlake
Clipper
Marine

color
blue
red
green
red

sids sailors
- UNION
UNION:
union-compatible (
SQL ).
SELECT UNION
,
.

Vs.
:
UNION

(
UNION
ALL)

SELECT DISTINCT R.sid


FROM Boats B,Reserves R
WHERE R.bid=B.bid AND
(B.color=redOR B.color=green)

SELECT R.sid
FROM Boats B, Reserves R
WHERE R.bid=B.bid AND B.color=red
UNION
SELECT R.sid
FROM Boats B, Reserves R
WHERE R.bid=B.bid AND B.color=green

sids sailors
- INTERSECT
INTERSECT:
(intersect) union-compatible
SELECT R.sid
FROM Boats B,Reserves R
WHERE R.bid=B.bid AND
(B.color=red AND B.color=green)

SELECT R1.sid
FROM Boats B1, Reserves R1,
Boats B2, Reserves R2
WHERE R1.sid=R2.sid
AND R1.bid=B1.bid
AND R2.bid=B2.bid
AND (B1.color=red AND B2.color=green)

sids sailors
-
SELECT S.sid
FROM Sailors S, Boats B, Reserves R
WHERE S.sid=R.sid
AND R.bid=B.bid
AND B.color=red
INTERSECT
SELECT S.sid
FROM Sailors S, Boats B, Reserves R
WHERE S.sid=R.sid
AND R.bid=B.bid
AND B.color=green


INTERSECT IN
sids sailors

SELECT R.sid
FROM Boats B, Reserves R
WHERE R.bid=B.bid
AND B.color=red
AND R.sid IN (SELECT R2.sid
FROM Boats B2, Reserves R2
WHERE R2.bid=B2.bid
AND B2.color=green);

sids sailors
- EXCEPT
SELECT S.sid
FROM Sailors S, Boats B, Reserves R
WHERE S.sid=R.sid
AND R.bid=B.bid
AND B.color=red
EXCEPT
SELECT S.sid
FROM Sailors S, Boats B, Reserves R
WHERE S.sid=R.sid
AND R.bid=B.bid
AND B.color=green

EXCEPT
NOT IN
sids sailors

SELECT R.sid
FROM Boats B, Reserves R
WHERE R.bid=B.bid
AND B.color=red
AND R.sid IN (SELECT R2.sid
FROM Boats B2, Reserves R2
WHERE R2.bid=B2.bid
AND B2.color=green);

JOIN

(JOIN):


FROM SELECT.
JOIN
,
.
JOIN
.

emp(empID, name, address, universityID, )
university (universityID, uName, uAddress, )
,
,
.
, join
employee.universityID = university.universityID
JOINs ,

where.

JOIN (1/2)
joins
SQL :
INNER JOIN ( JOIN):
.

LEFT JOIN:

.

JOIN (2/2)
RIGHT JOIN:

.

FULL JOIN:
, ,

.

JOIN (1/5)
:

JOIN (2/5)
INNER JOIN

INNER JOIN
:

JOIN (3/5)
LEFT JOIN

JOIN (4/5)
RIGHT JOIN

JOIN (5/5)
FULL JOIN

SQL SERVER 2012

SQL SERVER 2012

Enterprise
Standard
Business Intelligence
Developer
Web
Express

SQL SERVER 2012


?
SQL Server 2012 Developer Edition

SQL Server 2012 Express


Edition 32/64 bit.
?

http://www.microsoft.com/express/Database/InstallOptions.aspx
SQL Server Express with Advanced Services
Mixed Windows Authentication Mode
password sa.

SQL SERVER (1/3)


SQL Server Management Studio
Database Engine
Server Name, (.. DESPINAPC\SQLEXPRESS, SQLEXPRESS
instance Instance Configuration
)
(authentication):
SQL Server
Windows domain Windows Authentication:
username password
SQL Server SQL Server Authentication:
username password sa password
( , ).

SQL SERVER (2/3)

SQL SERVER (3/3)

SQL SERVER (1/25)


A
Database
New Database
wizard New Database


T-SQL CREATE DATABASE
CREATE DATABASE customer;

SQL SERVER (2/25)

SQL SERVER (3/25)

SQL SERVER (4/25)

SQL SERVER (5/25)



A :

Table
New Table
(
, Set Primary Key
.


T-SQL CREATE TABLE

SQL SERVER (6/25)

SQL SERVER (7/25)



A :

Table
New Table
(
, Set Primary Key
.


T-SQL CREATE TABLE.

SQL SERVER (8/25)

SQL SERVER (9/25)

60


SQL SQL SERVER (1/2)
SQL SERVER
LOCATION
Location_ID

Regional_Group

122

NEW YORK

123

DALLAS

124

CHICAGO

167

BOSTON

DEPARTMENT
Department_ID

Name

Location_ID

10

ACCOUNTING

122

20

RESEARCH

124

30

SALES

123

40

OPERATIONS

167


SQL SQL SERVER (2/2)
JOB
Job_ID

Function

667

CLERK

668

STAFF

669

ANALYST

670

SALESPERSON

671

MANAGER

672

PRESIDENT


SQL SQL SERVER (3/3)
EMPLOYEE
Employe
e_ID

Lastname

Firstna
me

Job_ID

Manager
_ID

Hiredate

Salary

Departim
ent_ID

7369

SMITH

JOHN

667

7902

22-012010

8900

20

7499

ALLEN

KEVIN

670

7698

18-102002

2100

40

7505

DOYLE

JEAN

671

7839

31-012008

870

30

7506

DENNIS

LYNN

671

7839

17-72012

3600

30

7507

BAKER

LESLIE

671

7839

17-82005

1160

40

7521

WARK

CYNTH
IA

670

7698

3-042001

1575

30

Você também pode gostar