os4_programmierung_sql_ansi-sql92
ansi-sql92
BACK ..
ein paar ANSI-SQL/92-Befehle
============================
###############################################################################
### ANSI-SQL/92
###############################################################################
#
### erstellt eine Tabelle:
> CREATE TABLE [Tabelle] ([Spalte1] INTEGER, [Spalte2] VARCHAR(30));
### erstellt eine Tabelle mit automatischer Nummerierung (Sequenz):
> CREATE SEQUENCE spalten-seqenz;
> CREATE TABLE [Tabelle] ([Spalte1] INTEGER PRIMARY KEY DEFAULT nextval('spalten-seqenz'), [Spalte2] VARCHAR(30));
### traegt einen Datensatz in eine Tabelle ein:
> INSERT INTO [Tabelle] ([Spalte1], [Spalte2]) VALUES (1, 2);
### aendert einen Datensatz in einer Tabelle:
> UPDATE [Tabelle] SET [Spalte]=[neuer-Wert],[Spalte]=[neuer-Wert] WHERE [Kontroll-Spalte]=[Wert] AND [Kontroll-Spalte]=[Wert] OR [Kontroll-Spalte]=[Wert];
### zeigt den Inhalt einer Tabelle:
> SELECT * FROM [Tabelle1];
### zeigt den Inhalt einer Tabelle ohne Duplikate:
> SELECT DISTINCT * FROM [Tabelle1];
### zeigt die Anzahl der Zeilen einer Tabelle:
> SELECT COUNT(*) FROM [Tabelle1];
### zeigt die Summe aller Eintraege in der Spalte "alter":
> SELECT SUM(alter) FROM [Tabelle1];
### zeigt den groessten Wert aller Eintraege in der Spalte "alter":
> SELECT MAX(alter) FROM [Tabelle1];
### zeigt den kleinsten Wert aller Eintraege in der Spalte "alter":
> SELECT MIN(alter) FROM [Tabelle1];
### zeigt den Durchschnittswert aller Eintraege in der Spalte "alter":
> SELECT AVG(alter) FROM [Tabelle1];
### zeigt nur die Spalten einer Tabelle, die die "WHERE"-Bedingung erfuellen:
> SELECT [Spalte], [Spalte], [Spalte] FROM [Tabelle1], [Tabelle2], [Tabelle3] WHERE [Tabelle1].[Spalte1]=[Tabelle2].[Spalte1] AND [Tabelle1].[Spalte2]=[Tabelle2].[Spalte2];
### eine Spalte hinzufuehgen:
> ALTER TABLE [Tabelle] ADD COLUMN [Spalte] INTEGER;
### loescht eine Tabelle:
> DELETE FROM [Tabelle];
### loescht nur die Spalten einer Tabelle, die die "WHERE"-Bedingung erfuellen:
> DELETE FROM [Tabelle] WHERE [...];
### OUTER JOIN
> SELECT * FROM [Tabelle1] LEFT OUTER JOIN [Tabelle2] ON ([Tabelle1].[Spalte] = [Tabelle2].[Spalte]);
> SELECT * FROM [Tabelle1] LEFT OUTER JOIN [Tabelle2] USING ([Spalte]);
###############################################################################
### Nicht ANSI-SQL/92
###############################################################################
#
### leeren einer Tabelle:
> TRUNCATE TABLE [Tabelle];
### Namen einer Spalte in einer Tabelle aendern:
> ALTER TABLE [Tabelle] RENAME COLUMN [Spalte-alt] TO [Spalte-neu];
### hinzufuegen einer Spalte in einer Tabelle:
> ALTER TABLE [Tabelle] ADD COLUMN [Spalte];
### loeschen einer Spalte aus einer Tabelle:
> ALTER TABLE [Tabelle] DROP COLUMN [Spalte];
#------------------------------------------------------------------------------
### loeschen einer Tabelle:
> DROP TABLE [Tabelle];
#------------------------------------------------------------------------------
Damit auch andere User auf die Datenbank zugreifen duerfen,
kann man ihnen die Rechte mit "GRANT" einraeumen:
(Mit "REVOKE" koennen diese Rechte wieder Entzogen werden.)
Auch der [User] kann einen [Befehl] ausfuehren:
> GRANT [SELECT|INSERT|UPDATE|DELETE|RULE|ALL|objekt|PUBLIC|GROUP gruppe|benutzername] ON [Tabelle] TO [User];
objekt:
tabelle
sicht
sequenz
gruppe:
Name einer "gruppe", der Rechte gewaehrt werden.
ALLE User koennen ALLE Befehle ausfuehren:
> GRANT ALL ON [Datenbank] TO PUBLIC;
Nur Fritz darf ALLE Befehle ausfuehren:
> GRANT ALL ON [Datenbank] TO fritz;
#------------------------------------------------------------------------------
Beispiele als gepackte SQL-Dateien fuer PostgreSQL.
#------------------------------------------------------------------------------
[IMG]
/home/http/wiki/data/pages/os4_programmierung_sql_ansi-sql92.txt · Zuletzt geändert: von 127.0.0.1
