Adattípusok Típus Méret Megjegyzés Konstans BIT 1 bit TRUE/FALSE TINIINT 1 byte 12 SMALLINT 2 byte -123 INTEGER 4 byte -123 COUNTER 4 byte Automatikus 123 REAL 4 byte -12.34E-2 FLOAT 8 byte -12.34E-2 CURRENCY / MONEY 8 byte 20.4 valós DATETIME 8 byte #3/15/2008# BINARY (n) n byte (default max n=510) B 01001 CHAR (n) / TEXT (n) n byte (default max n=255) karaktersorozat MEMO IMAGE Max. 2GByte Max. 2GByte OLE 1
Precedencia szabály Műveletek zárójelek, belülről kifelé Függvényhívások (Visual Basic) matematikai, sztring, dátum műveletek előjelváltás hatványozás (^) multiplikatív műveletek (*, /, \, MOD) összevonási műveletek (+, -) összehasonlító műveletek logikai műveletek NOT AND OR (EQV. IMP, XOR) Az azonos szinteken lévő műveletek eredménye balról jobbra. 2
CREATE TABLE <táblanév> (<oszlopnév> <típus> [NOT NULL] [ CONSTRAINT egyoszlopos *] [, CONSTRAINT többoszlopos **] [, ]); Tábla létrehozása CREATE TABLE CREATE TABLE Lajos0 (alma char(255) NOT NULL, körte integer); * CONSTRAINT <név> {PRIMARY KEY NOT NULL UNIQUE REFERENCES <tábln> [(<oszln1>, <oszln2> )]} CREATE TABLE Lajos1 (alma integer CONSTRAINT x UNIQUE, körte integer); CREATE TABLE Lajos2 (alma integer CONSTRAINT x PRIMARY KEY, körte integer CONSTRAINT y UNIQUE); CREATE TABLE Geza0 (elso integer CONSTRAINT y PRIMARY KEY, masodik integer); CREATE TABLE Lajos3 (alma integer CONSTRAINT x PRIMARY KEY, körte integer CONSTRAINT y UNIQUE, narancs integer REFERENCES Geza0); CREATE TABLE Lajos4(alma integer CONSTRAINT x PRIMARY KEY, körte integer CONSTRAINT y UNIQUE, narancs integer REFERENCES Geza0(elso)); ** CONSTRAINT <név> {PRIMARY KEY (<oszlopn1>[, <oszlopn2> ]) NOT NULL (<oszlopn1>[, <oszlopn2> ]) UNIQUE (<oszlopn1>[, <oszlopn2> ]) FOREIGN KEY (<oszln1>[, <oszln2> ]) REFERENCES <táblanév> (<(oszln1>[, <oszln2> ])} CREATE TABLE Geza1(elso integer, masodik integer, CONSTRAINT y PRIMARY KEY (elso, masodik)); CREATE TABLE Lajos5 (alma integer CONSTRAINT x PRIMARY KEY, körte integer, narancs integer, CONSTRAINT sok FOREIGN KEY (körte, narancs) REFERENCES Geza1(elso,masodik)); 3
CREATE [ UNIQUE] INDEX <indexnév> ON <táblanév> (<oszlopnév> [ASC DESC] [, <oszlopnév> [ASC DESC], ]) [ WITH { PRIMARY DISALLOW NULL IGNORE NULL}]; CREATE UNIQUE INDEX prim on Lajos0(alma ASC ) WITH IGNORE NULL; CREATE UNIQUE INDEX elso ON Geza1(elso) WITH DISALLOW NULL; Index létrehozása CREATE INDEX Tábla módosítása ALTER TABLE ALTER TABLE <táblanév> { ADD { COLUMN <oszlopnév> <típus> [NOT NULL] [ CONSTRAINT egyoszlopos *] CONSTRAINT többoszlopos ** } DROP { COLUMN <oszlopnév> CONSTRAINT <oszlopnév> } }; ALTER TABLE Lajos5 ADD COLUMN banan integer CONSTRAINT uj REFERENCES Geza1(elso) ; ALTER TABLE Lajos5 DROP CONSTRAINT uj; ALTER TABLE Lajos5 DROP COLUMN banan; DROP INDEX <indexnév> ON <táblanév> DROP INDEX prim ON Lajos0; DROP TABLE <név>; DROP TABLE Lajos; Index törlése DROP INDEX Tábla törlése DROP TABLE 4
(DML) Lekérdezés SELECT SELECT [ ALL DISTINCT TOP n [PERCENT] ] { <kifejezés lista> * } FROM { <táblázat név> > } [másodnév] [, ] [ WHERE <kiválasztási feltétel> ] [ GROUP BY <oszlopnév lista> ] [ HAVING <kiválasztási feltétel> ] [ ORDER BY {<oszl.név> <egész áll>} [ASC DESC] [, ] ] ; Táblanév.oszlopnév vagy Táblanév!oszlopnév vagy [Tábla név]![oszlop név] vagy [Tábla név]![oszlop név] A záradékok sorrendje kötött A záradékok kiértékelési sorrendje: FROM, WHERE, GROUP BY, HAVING, SELECT, ORDER BY. 5
SELECT * FROM Tabla1; SELECT TOP 3 * FROM Tabla1; SELECT TOP 25 PERCENT * FROM Tabla1; SELECT Nev AS Név, Eletkor AS Életkor FROM Tabla1; SELECT Eletkor FROM Tabla1; (DML) SELECT <kifejezéslista> FROM <tábla>; SELECT DISTINCT eletkor FROM Tabla1; (DML) SELECT aggregátor(<kifejezés>) FROM <tábla>; AVG (< kifejezés> <oszlopnév>) COUNT ( * <oszlopnév>) MAX (< kifejezés> <oszlopnév>) MIN (< kifejezés> <oszlopnév>) SUM (< kifejezés> <oszlopnév>) STDEV (< kifejezés> <oszlopnév>), STDEVP (< kifejezés> <oszlopnév>) VAR ( < kifejezés>), VARP ( < kifejezés>) FIRST ( < kifejezés>), LAST ( < kifejezés>) SELECT AVG(eletkor) AS atlag FROM Tabla1; SELECT COUNT(*) AS db FROM Tabla1; SELECT MAX(eletkor+testmagassag) AS ektm FROM Tabla1; SELECT STDEV(eletkor) AS szoras FROM Tabla1; (DML) SELECT <kif.lista> FROM <tábla> WHERE <feltétel>; SELECT * FROM Tabla1 WHERE Eletkor>20; LIKE, IS, IN, BETWEEN, ANY, SOME, ALL, EXISTS, UNIQUE, LIKE *? # [ae] [!ae] [a-c] SELECT * FROM Tabla1 WHERE Nev Like "*Kiss*"; BETWEEN SELECT Nev FROM Tabla1 WHERE (Eletkor Between 15 And 36); 6
(DML) SELECT <kif.lista> FROM <tábla> GROUP BY <kif>; Kell aggregátor SELECT ffi, Count(*) FROM Tabla1 GROUP BY FFi; SELECT Eletkor, AVG(Testmagassag) AS [atlag testmagassag] FROM Tabla1 GROUP BY Eletkor; (DML) SELECT <kif.lista> FROM <tábla> GROUP BY <kif> HAVING <feltétel>; Kell aggregátor SELECT ffi, Count(*) AS darab FROM Tabla1 GROUP BY FFi; SELECT ffi, count(*) AS db, AVG(Testmagassag) AS [atlag ltestmag], AVG(Eletkor) AS [atlag eletkor] FROM Tabla1 GROUP BY FFi; SELECT Eletkor, AVG(Testmagassag) AS [atlag testmagassag] FROM Tabla1 GROUP BY Eletkor; (DML) összetett SELECT SELECT Tabla1.* FROM Tabla1 WHERE (Eletkor>(SELECT AVG(eletkor) FROM Tabla1)) and (Testmagassag>(SELECT AVG(Testmagassag) FROM Tabla1)); SELECT Tabla1.* FROM Tabla1, 7_atlag_eletk WHERE (Tabla1.Eletkor>[7_atlag_eletk].atlag); (DML) SELECT <kif.lista> FROM <tábla> ORDER BY <kif> [ASC DESC]; SELECT Nev FROM TABLA1 ORDER BY Nev DESC; 7
(DML) Paraméterek SELECT * FROM Tabla1 WHERE Eletkor>parameter; (DML) SELECT <kif.lista> FROM <tábla> {INNER LEFT RIGHT} <tábla> JOIN ON <feltétel>; SELECT Auto.Rendszam, Auto.Tipus, Tabla1.Nev AS tulajdonos FROM Tabla1 INNER JOIN Auto ON Tabla1.Azonosító=Auto.Tulaj; SELECT Auto.Rendszam, Auto.Tipus, Tabla1.Nev AS tulajdonos FROM Tabla1 LEFT JOIN Auto ON Tabla1.Azonosító=Auto.Tulaj; (DML) TRANSFORM <aggregátor> <SELECT utasítás> PIVOT <oszlopnév> [IN (<érték1>, [<érték2> [, ]])]; TRANSFORM Avg(Tabla1.Testmagassag) AS AvgOfTestmagassag SELECT Tabla1.Eletkor FROM Tabla1 GROUP BY Tabla1.Eletkor PIVOT Tabla1.Nev; UNION, INTERSECT, MINUS SELECT * FROM Tabla1 WHERE Eletkor>30 UNION SELECT * FROM Tabla1 WHERE Eletkor<20; Halmaz 8
INSERT, DELETE CREATE TABLE Tabla (Azonosító COUNTER Primary Key, Nev CHAR(50), FFi BIT, Eletkor Integer, Testmagassag Integer) ; INSERT INTO Tabla VALUES (1, "Nagy Lajos", TRUE, 12, 165); INSERT INTO Tabla SELECT * FROM tabla1; DELETE * FROM Tabla; UPDATE SET UPDATE Tabla1 SET Eletkor = Eletkor * 2 WHERE FFI; 9