SQL. . , , SQL .
, SQL. .
. 3
. 3
Structured Query Language. 5
SQL .. 5
SQL-. 5
. 6
. 7
. 7
SQL. 7
SELECT. 12
. 13
WHERE. 14
(NULL-) 16
. 17
GROUP BY. 18
ORDER BY. 19
. 20
. 21
. 22
UNION.. 24
. 25
SQL- 5NT. 25
, (), 1982 ., . , :
() , , , , - , .
() , .
() , , .
, , . . , , , , , , . , , , , , , , .
|
|
, . relation (). .
IBM 1970 . . , . , , , , . :
, ;
;
, , .
, , , . , ;
, .
- .
SQL.
407028108657 | ||
407028103325 | 1 | |
407028404546 | 2 | |
407028104424 | ||
. 1.
(. 1). : . . , , , . , , . , , . .
, . () . , . . , 1. , .
5NT(e) . , ID, , InstitutionID tInstitution ( ).
|
|
, , , . . 1 . , , . , .
, , . ( ), . , .
, , . , . Oracle, Microsoft, Sybase, Informix, IBM, Borland.
Structured Query Language
SQL
SQL (Structured Query Language) . SQL , 70- IBM Research. IBM System R. - .
SQL 1989 . ( SQL/89 SQL1). SQL1 ANSI/ISO, . , , SQL.
1992 . SQL, SQL/92 SQL2. , , SQL/89. , SQL2.
1999 , SQL3. SQL1 SQL2 , SQL3 . SQL3 "- SQL" - . , . .
SQL , , , , , . SQL , C++, PL, COBOL . . , SQL .
SQL-
SQL- SQL, . , , , . . (. 2). SQL , , . ANSI SQL92.
|
|
SQL , SQL-. , , (, Query Analyzer MS SQL Server), , (, Toad, DBArtisan .).
. 2. SQL-
, , , . SQL , . 3.
. 3. SQL
. () SQL , . SQL92 128 . -. DB2, , 8 , . , (, , , ), , . , . .
, , , , , diasoft. , , - , , dbo.tResource dbo dbo.
, . , , . , , .
, , . , , , . , , { ), . , BRIEF ( ) tRESOURCE ( ) : tRESOURCE.BRIEF.
, , . , BIRTH_DATE BIRTHDAYS, SAM, : SAM.BIRTHDAYS.BIRTH_DATE
SQL
, :
|
|
. , , , , . . , , .
. , , , . , .
. , , . , , .
. , , , . .
. , .
. MONEY CURRENCY, . .
. / , . , . SQL2 DATE, TIME, TIMESTAMP INTERVAL, (, ).
. , Informix Universal Server, (TRUE FALSE), SQL (, / .) .
. , ( 32000 65000 , ). . , .
. . , , , . , IMAGE MS SQL Server 2 .
. , . ( UNICODE), .
SQL92 :
CHARACTER(n) CHAR(n) n . n , n , .
NUMERIC[(n,m)], DECIMAL[(n,m)] DEC[(n,m)] , n , m .
INTEGER INT .
SMALLINT .
, SQL1 , INT SMALLINT ( ), , . INTEGER , , a SMALLINT , . .
FLOAT[(n)] , . n , . .
REAL , , , FLOAT.
DOUBLE PRECISION , REAL.
|
|
VARCHAR(n) .
NCHAR(n) .
NCHAR VARYING(n) . I
I(n) .
BIT VARYING(n) .
DATE .
TIMESTAMP() .
INTERVAL .
, . , , . MEMO . -, ORACLE LONG, DB2 - LONG VARCHAR, SYBASE MS SQL Server TEXT.
, . DATE TIMESTAMP -, .
. .
. :
314 -612.716 + 551.702
, SQL , .
, , , , :
2.9-4 -134.2357 0.5426718
, 2,9 -4, 0,00029.
:
' ..' '-'
, . , :
'I can''t' I can't.
, MS SQL Server Informix, :
"" "New York"
, , . SQL2 (, ) . .
, . . , :
mm/dd/yyyy 5/19/2006 hh:mm am/pm 2:18 PM
dd.mm.yyyy 19.5.2006 hh.mm.ss 14.18.08
yyyy-mm-dd 2006-5-19 hh:mm:ss 14:18:08
ISO yyyy-mm-dd 2006-5-19 hh.mm.ss 14.18.08
TIMESTAMP yyyy-mm-dd-hhmm.ss.nnnnnn
TIMESTAMP 2006-05-19-14.18.08.048632
SQL2 , ISO, , , . . , , , ORACLE. MS SQL Server:
March 15, 2006 15 2006 3/15/2006 3-15-06 2006 MAR 15
:
15:30:25 3:30:25 3:30:25 3
ORACLE 15-MAR-06
SQL , (+), (-), (*) (/). (/) , , .
, SQL , , . , CURRENT_DATE, , . SQL, . SQL2 , CURRENT_DATE, CURREN_TIME, CURREN_TIMESTAMP, USER, SESSION_USER SYSTEM_USER.
5NT() :
DSIDENTIFIER numeric(15,0) 0. ;
DSCOMMENT varchar(255);
DSACC_SWIFT char(35);
DSVARFULLNAME40 varchar(40) ..
SELECT
. 4 SELECT. . SELECT FROM . . .
SELECT , SELECT. , , , .
FROM , , .
WHERE , . , , .
GROUP BY . . , , , .
HAVING , , GROUP BY. , WHERE, .
ORDER BY () . , . , ( SELECT ). .
. 4. SELECT
SELECT .
select ( , ):
Select < >
From < >
:
1. (tInstitution).
Select *
From tInstitution
* , .
2. , (tInstitution).
Select Name
From tInstitution
3. , (tInstitution), .
SELECT DISTINCT ( ) ALL ( ). , . , , SELECT. ALL . , .
Select DISTINCT Name
From tInstitution
3. , (tInstitution). .
Select Name, Address3, Phone1
From tInstitution
4. , , , (tInstitution). , . as .
Select Name as Klient, Address3 as Address, Phone1 as Phone
From tInstitution
WHERE
. . . select :
Select < >
From < >
Where < >
:
= (),
<> ( ),
< (),
<= ( ),
> (),
>= ( )
, .
tOperPart . . 5.
tOperPart
OperationID | DSIDENTIFIER | ||
ResorceID | DSIDENTIFIER | (tResource) | |
OperSetID | DSIDENTIFIER | (tOperSet) | |
OperTypeID | DSIDENTIFIER | (tPropertyUsr) | |
BalanceID | DSIDENTIFIER | (tResource) | |
OperDate | DSOPERDAY | ||
QtyBs | DSBIGMONEY | , |
:
1. 06.06.2006.
Select *
From tOperPart
Where OperDate = '20060606'
2. , 5000 .
Select *
From tOperPart
Where QtyBs <= 5000
3. "".
Select *
From tInstitution
Where Name = ' ""'
. - . / / . SQL : AND, OR, NOT:
AND ( A AND B) , . , .
4. 06.06.2006 1000 .
Select *
From tOperPart
Where OperDate = '20060606'
and QtyBs <= 1000
OR ( A OR B) , . , .
5. 06.06.2006 1000 .
Select *
From tOperPart
Where OperDate = '20060606'
or QtyBs <= 1000
NOT ( NOT A) . , .
6. , 5000 .
Select *
From tOperPart
Where NOT QtyBs <= 5000
:
. IN (), , .
<> in (<>)
7. 06.06.2006, 08.06.2006, 09.06.2006.
Select *
From tOperPart
Where OperDate IN ('20060606', '20060608', '20060609')
Where OperDate = '20060606' or OperDate = '20060608' or OperDate = '20060609'
NOT IN ( ).
BETWEEN () ... AND... ( ... ...) .
<> between <> and <>
8. , 5000 . 10000 .
Select *
From tOperPart
Where QtyBs BETWEEN 5000 AND 10000
- Where QtyBs >= 5000 and QtyBs <= 10000
NOT BETWEEN ( ).
, , LIKE ( ).
<> LIKE < > , , < >. :
- _ () ;
- % () ;
- .
9. , .
Select *
From tInstitution
Where Name like ' "%'
(NULL-)
- , NULL-. , . , , NULL-, 0, 0. . (, , NULL- ). NULL
<> IS NULL <> IS NOT NULL
, ,
<> = NULL <> <> NULL
, SQL92, , . SQL92 - NULL- - NULL-, ( , , , , SELECT DISTINCT NULL-.) , NULL.