Verwirrung SQL Syntax

AnnaW
Mausschubser
Mausschubser
Beiträge: 77
Registriert: 29. Jul 2012 23:05

Verwirrung SQL Syntax

Beitrag von AnnaW »

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

toastbroat
Neuling
Neuling
Beiträge: 2
Registriert: 12. Okt 2011 11:51

Re: Verwirrung SQL Syntax

Beitrag von toastbroat »

Hallo,

wo ist denn der Unterschied?

Gruß

AnnaW
Mausschubser
Mausschubser
Beiträge: 77
Registriert: 29. Jul 2012 23:05

Re: Verwirrung SQL Syntax

Beitrag von AnnaW »

Ich frage mich ob das "NOT NULL" notwendig ist.

Benutzeravatar
mmi1991
Computerversteher
Computerversteher
Beiträge: 349
Registriert: 20. Okt 2011 18:46
Wohnort: Hattersheim

Re: Verwirrung SQL Syntax

Beitrag von mmi1991 »

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

AnnaW
Mausschubser
Mausschubser
Beiträge: 77
Registriert: 29. Jul 2012 23:05

Re: Verwirrung SQL Syntax

Beitrag von AnnaW »

Alles klar. Dann reicht das, wenn man die Tabellen in SQL übertragen soll :-) Danke jetzt ist die Verwirrung geklärt :-)

tbjoe
Erstie
Erstie
Beiträge: 17
Registriert: 17. Okt 2013 10:27

Re: Verwirrung SQL Syntax

Beitrag von tbjoe »

Zitat Vorlesungsfolien (01 - Datenbanken, Seite 185):
Felder, die als PRIMARY KEY dienen müssen NOT NULL sein
Daher sollte das Feld ID im ersten Beispiel falsch sein, oder nicht?

manu311
Mausschubser
Mausschubser
Beiträge: 55
Registriert: 17. Okt 2010 23:39
Wohnort: Ursprünglich Offenburg (BW), momentan Darmstadt
Kontaktdaten:

Re: Verwirrung SQL Syntax

Beitrag von manu311 »

Ist nicht

Code: Alles auswählen

Name varchar(20) NOT NULL,
sowieso überflüssig? Oder seit wann dürfen PKs NULL sein?

AnnaW
Mausschubser
Mausschubser
Beiträge: 77
Registriert: 29. Jul 2012 23:05

Re: Verwirrung SQL Syntax

Beitrag von AnnaW »

Dürfen sie nicht (nach meinem Verständnis). Sollte also überflüssig sein

Benutzeravatar
mmi1991
Computerversteher
Computerversteher
Beiträge: 349
Registriert: 20. Okt 2011 18:46
Wohnort: Hattersheim

Re: Verwirrung SQL Syntax

Beitrag von mmi1991 »

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

manu311
Mausschubser
Mausschubser
Beiträge: 55
Registriert: 17. Okt 2010 23:39
Wohnort: Ursprünglich Offenburg (BW), momentan Darmstadt
Kontaktdaten:

Re: Verwirrung SQL Syntax

Beitrag von manu311 »

Ich hab grade mal nachgeschaut, MySQL-Workbench (ich weiß, MySQl ist nicht SQL) macht beim erstellen einer Tabelle:

Code: Alles auswählen

CREATE TABLE `new_table` (
  `idnew_table` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`idnew_table`)
...
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.

waza-ari
Windoof-User
Windoof-User
Beiträge: 32
Registriert: 3. Nov 2010 20:26

Re: Verwirrung SQL Syntax

Beitrag von waza-ari »

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. :)

Antworten

Zurück zu „Archiv“