Verwirrung SQL Syntax
Verwirrung SQL Syntax
Hallo,
ich geh gerade noch mal die Übungen und Tutorien durch. Dabei ist mir aufgefallen, dass in der Musterlösung der 6. Übung folgende Notation für CREATE TABLE verwendet wurde:
CREATE TABLE Autor (
ID INT,
Vorname VARCHAR(30),
Nachname VARCHAR(30),
PRIMARY KEY (ID)
);
und in der Musterlösung des 6. Tutoriums
CREATE TABLE Hersteller (
Name varchar(20) NOT NULL,
Land varchar(20) NOT NULL,
Stadt varchar(20) NOT NULL,
PRIMARY KEY (Name)
);
welche sollen wir denn nun verwenden?
Viele Grüße
Anna
ich geh gerade noch mal die Übungen und Tutorien durch. Dabei ist mir aufgefallen, dass in der Musterlösung der 6. Übung folgende Notation für CREATE TABLE verwendet wurde:
CREATE TABLE Autor (
ID INT,
Vorname VARCHAR(30),
Nachname VARCHAR(30),
PRIMARY KEY (ID)
);
und in der Musterlösung des 6. Tutoriums
CREATE TABLE Hersteller (
Name varchar(20) NOT NULL,
Land varchar(20) NOT NULL,
Stadt varchar(20) NOT NULL,
PRIMARY KEY (Name)
);
welche sollen wir denn nun verwenden?
Viele Grüße
Anna
-
- Neuling
- Beiträge: 2
- Registriert: 12. Okt 2011 11:51
Re: Verwirrung SQL Syntax
Hallo,
wo ist denn der Unterschied?
Gruß
wo ist denn der Unterschied?
Gruß
Re: Verwirrung SQL Syntax
Ich frage mich ob das "NOT NULL" notwendig ist.
Re: Verwirrung SQL Syntax
Not Null verhindert, dass du beim Insert die Werte vergisst; du musst also jeweils einen Wert für Name, Land und Stadt spezifizieren, der nicht NULL ist. Sprich: Wenn du NOT NULL nicht angibst, ist die Column quasi optional.
Ophasentutor SoSe 2014, WiSe 2015/16
Alle Angaben wie immer ohne Gewähr
Alle Angaben wie immer ohne Gewähr
Re: Verwirrung SQL Syntax
Alles klar. Dann reicht das, wenn man die Tabellen in SQL übertragen soll
Danke jetzt ist die Verwirrung geklärt 


Re: Verwirrung SQL Syntax
Zitat Vorlesungsfolien (01 - Datenbanken, Seite 185):
Daher sollte das Feld ID im ersten Beispiel falsch sein, oder nicht?Felder, die als PRIMARY KEY dienen müssen NOT NULL sein
-
- Mausschubser
- Beiträge: 55
- Registriert: 17. Okt 2010 23:39
- Wohnort: Ursprünglich Offenburg (BW), momentan Darmstadt
- Kontaktdaten:
Re: Verwirrung SQL Syntax
Ist nicht sowieso überflüssig? Oder seit wann dürfen PKs NULL sein?
Code: Alles auswählen
Name varchar(20) NOT NULL,
Re: Verwirrung SQL Syntax
Dürfen sie nicht (nach meinem Verständnis). Sollte also überflüssig sein
Re: Verwirrung SQL Syntax
Soweit ich weiß, sind PKs implizit NOT NULL, selbst wenn man es nicht explizit angibt.
Ophasentutor SoSe 2014, WiSe 2015/16
Alle Angaben wie immer ohne Gewähr
Alle Angaben wie immer ohne Gewähr
-
- Mausschubser
- Beiträge: 55
- Registriert: 17. Okt 2010 23:39
- Wohnort: Ursprünglich Offenburg (BW), momentan Darmstadt
- Kontaktdaten:
Re: Verwirrung SQL Syntax
Ich hab grade mal nachgeschaut, MySQL-Workbench (ich weiß, MySQl ist nicht SQL) macht beim erstellen einer Tabelle:
Allerdings akzeptiert MySQL den Befehl auch wenn ich das "NOT NULL" oder nur das "NOT" entferne (was ich jetzt als definitiv falsch angesehen hätte) und nimmt das implizit an.
Code: Alles auswählen
CREATE TABLE `new_table` (
`idnew_table` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`idnew_table`)
...
Re: Verwirrung SQL Syntax
Nach meinem Verständnis nimmt SQL NOT NULL bei nem PK explizit an, bei FKs allerdings nicht unbedingt.
In jedem Fall schadet es aber auch nicht, wenn man es hin schreibt.
In jedem Fall schadet es aber auch nicht, wenn man es hin schreibt.
