Escolar Documentos
Profissional Documentos
Cultura Documentos
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
Smith
Jones
Brown
Jones
Brown
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
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
.
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
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
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 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
Enterprise
Standard
Business Intelligence
Developer
Web
Express
http://www.microsoft.com/express/Database/InstallOptions.aspx
SQL Server Express with Advanced Services
Mixed Windows Authentication Mode
password sa.
A
Database
New Database
wizard New Database
T-SQL CREATE DATABASE
CREATE DATABASE customer;
T-SQL CREATE TABLE
T-SQL CREATE TABLE.
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