> SQL
  
 

SQL steht für "Structured Query Language" und ist eine Sprache der vierten Generation für den strukturierten Zugriff auf relationale Datenbanken. Unten sehen Sie einige Beispiel-SQL-Befehle. Ihre Bedeutung ist eigentlich direkt lesbar. Alle nennenswerten Datenbanksysteme arbeiten heute mit SQL-Befehlen.

Bei größeren Systemen sollte der Zugriff auf die Datenbank nicht vom Anwenderprogramm aus erfolgen, sondern eher von Server-Komponenten mittels gespeicherter Prozeduren (engl. "stored procedure") direkt im Datenbankserver (s. auch n-tier-Modell). Dies erleichtert die Wartung sowie die Administration und erhöht darüber hinaus sowohl die Sicherheit als auch die Robustheit. Der Microsoft SQL-Server verfügt für die gespeicherten Prozeduren über die Sprache Transact-SQL, der Oracle SQL-Server über PL/SQL. Dabei handelt es sich quasi um Erweiterungen von SQL um Elemente strukturierter Sprachen (Variablen, Bedingungen, etc.)

SELECT [ALL | DISTINCT] column1[,column2]
FROM table1[,table2]
[WHERE "conditions"]
[GROUP BY "column-list"]
[HAVING "conditions"]
[ORDER BY "column-list" [ASC | DESC] ]
MIN, MAX, SUM, AVG, COUNT

e.g. SELECT AVG(salary) FROM employee
e.g. SELECT dept, avg(salary) FROM employee GROUP BY dept HAVING avg(salary) > 20000
e.g. SELECT COUNT(*) FROM employee
e.g. SELECT TOP 1 id FROM employee (in Oracle: SELECT id FROM employee WHERE ROWNUM=1 ORDER BY id)

... WHERE "condition1" AND "condition2"
... WHERE "condition1" OR "condition2"
... WHERE "column" IN ("list-of-values")
... WHERE "column" NOT IN ("list-of-values")
... WHERE "column" BETWEEN "value1" AND "value2"

SELECT idcontract, idsalegroup FROM contract WHERE idsalegroup IN (SELECT idsalegroup FROM salegroups WHERE idsalegroup > 3)

Dubletten finden: SELECT COUNT(id), "dubfield" FROM "table" GROUP BY "dubfield" HAVING COUNT(id)>1;

UPDATE "tablename" SET "column1" = "value1"[,"column2" = "value2"...] WHERE "column" OPERATOR "value"
INSERT INTO "tablename" ("column1", ... "columnN") VALUES ("value1", ... "valueN")
DELETE FROM "tablename" WHERE "columnname" OPERATOR "value" [AND|OR "column" OPERATOR "value"]

CREATE TABLE "tablename" ("column1" "data type", "column2" "data type"...)
DROP TABLE "tablename"
Oracle: CREATE SEQUENCE "tablespace"."seqname" INCREMENT BY 1 START WITH 1 MAXVALUE 1.0E28 MINVALUE 1 NOCYCLE CACHE 20 NOORDER
ALTER TABLE "tablename" ADD CONSTRAINT "name" UNIQUE ("field")
ALTER TABLE "tablename" DROP COLUMN "column"
ALTER TABLE "tablename" ADD "column" "type"
z.B. ALTER TABLE tblServiceType ADD Description varchar2(20)
ALTER TABLE tblContract ADD (FOREIGN KEY (idEmployee) REFERENCES tblEmployee)
Beschreibung einer Tabelle in Oracle: DESC "tablename"

Weitere Beispiele:
  Beispiel 1: sp mit Prüfung, Bedingung, Log und Returnstatus
  Beispiel 2: sp mit String-Konstruktion
  Beispiel 3: sp mit Datums-Konvertierung
  Beispiel 4: sp liefert recordset (mit Aufruf aus VB)
  Beispiel 5: Umstellung in VB auf sp
  Beispiel 6: Trigger, der beim Löschen angezogen wird

Mehr: SQL.ORG - SQL Course