Datenbanken sql unterschiedliche Schreibweise?
die Schreibweise die ich kenne ist
create database abc;
create table abc1. (
id int primary Key,
abc1 varchar(45),
abc2 varchar(100),
abc3 datetime Not null
);
aund dann gibt es noch die andere Variante die irgendwie z.B. einen Schlüssel erst ans Ende der Tabelle schreibt. Oder die Datentypen allgemein seperat auflistet statt direkt dahinter. Ich hab leider kein Beispiel dafür, da ich nicht weiß wie diese Schreibweise bedeutet aber das sind Codes um eine Datenbank zu erstellen.
4 Antworten
Jede Datenbank hat ihre eigene Besonderheiten. Lediglich einige Befehle funktionieren überall.
und dann gibt es noch die andere Variante
Ja, es gibt diverse Schreibweisen. Und wenn du das DBMS wechselst findest du sogar noch heraus, dass die Syntax abhängig vom verwendeten Datenbanksystem in unterschiedlichen Dialekten anders aussieht und teilweise unterschiedliche Befehle kennt.
Du kannst PRIMARY KEY durchaus hinter eine Column schreiben. Das ist auch korrekt.
Es gibt aber Fälle in denen du möchtest, dass der Primärschlüssel aus mehreren Columns besteht. Ist etwas seltener, aber durchaus nicht unüblich. In diesem Fall müsstest du PRIMARY KEY (column1, column2) dann unten hinschreiben.
Beide Schreibweisen funktionieren aber auch für nur eine Spalte.
Ja, es gibt unterschiedliche Schreibweisen.
Referenzen und Indizes werden mit ALTER TABLE hinzuegefügt.
Wenn man sich beispielsweise die DDL in IB Expert für eine Firebird Datenbank anzeigen lässt, hat das folgende Syntax:
CREATE TABLE LAGER (
ID IDENT_NOTNULL /* IDENT_NOTNULL = INTEGER NOT NULL */,
BEZ BEZ_8 /* BEZ_8 = CHAR(8) */,
...
);
/******************************************************************************/
/**** Primary keys ****/
/******************************************************************************/
ALTER TABLE LAGER ADD CONSTRAINT PK_LAGER PRIMARY KEY (ID);
/******************************************************************************/
/**** Fields descriptions ****/
/******************************************************************************/
COMMENT ON COLUMN LAGER.ID IS
'ID | Satzkennung';
COMMENT ON COLUMN LAGER.BEZ IS
'Bez | Bezeichner der Tabelle';
...
/******************************************************************************/
/**** Privileges ****/
/******************************************************************************/
/* Privileges of users */
GRANT SELECT, INSERT, UPDATE, DELETE ON LAGER TO PUBLIC;
Wie die Syntax heißt, weiß ich nicht.