Nein. Die Datenbank weiß ja nicht, ob "Sherlock Holmes" das gleiche ist wie "Sherlok Homes" (mal so als Beispiel).... Ich würde aber bereits eingegebene Filme als Vorschlag () zur Verfügung stellen. Damit kannst du diese Vielfalt evtl. eindämmen.
Sql - neue und gute Antworten
-
0SQL-Syntax ist falsch, aber wo ist der Fehler?Antwort von
OttoLorenzOttoLorenz
from & to sind reservierte Wörter von mySQL. Du kannst sie aber trotzdem verwenden, indem du Backticks in deinen Querys verwendest.
INSERT INTO messages(`from`,`to`,`message`) VALUES (...)Backticks sind keine ' sondern ` - zwei Tasten höher auf deiner Tastatur inkl Umschalt-Taste.
-
0SQL Wildcard Aliase automatischAntwort von
Andre81HH Hallo,
ich glaube ich verstehe die Frage leider nicht so ganz...
Vielleicht hilft Dir dieser Ansatz weiter
A) select table1.*, table2.name from Tabelle1 as table1 join Tabelle2 as table2 where (table1.table1id = table2.table1id)
B) (statt "exists" geht auch "not exists") select * from Tabelle1 as table1 where ... and exists (select * Tabelle2 as table2 where (table1.table1id = table2.table1id) and ...)
Variante B) ist sehr performancelastig, von daher sollte man bedacht damit umgehen. Würde ich die Fragestellung verstehen könnte ich evtl. auch konkretere Antworten geben.
MfG André
-
-
0SQL-Syntax ist falsch, aber wo ist der Fehler?Antwort von
ScandleScandle
Sind die Felder from to nicht vom Typ Int? Wenn doch Versuchs mit VALUES(1, 2, 'test')
Kommentar von
dermetfandermetfan Doch, es sind int-Felder. Diese Möglichkeit hab ich aber schon probiert (macht keinen Unterschied)... Und falls du es nicht gesehen hast, 14 Stunden vor dir kam schon die Lösung, aber danke trotzdem ^^
Kommentar von
ScandleScandle Hab von meinem Smartphone aus gepostet und nicht gesehen, dass es schon ne Lösung gibt ^^
Aber FYI: Wenn du INT Values hast, dann gewöhn dir an die Anführungszeichen wegzulassen. Ist sauberer ;)
Lg
-
3SQL-Syntax ist falsch, aber wo ist der Fehler?Antwort von
gkyFFMgkyFFM
Schau nach, ob die Spaltennamen reservierte Wörter sind. "from" könnte so ein Kandidat sein.
Kommentar von
dermetfandermetfan Tatsache! "from" und "id" sind beide reserviert. Einfach in "id _from" und "id _to" umbenannt und es klappt! Danke ^^
Kommentar von
dermetfandermetfan sorry ich meinte "from" und "to" sind beide reserviert.
Kommentar von
ShitzOvranShitzOvran was für einBblödsinn xD da mus man erst einmal drauf kommen :/
haben wir wieder was gelernt :)
-
0SQL-Syntax ist falsch, aber wo ist der Fehler?Antwort von
ShitzOvranShitzOvran
hast es mal mit anführungszeichen oder ner leerstelle oder beidem versucht...
INSERT INTO 'messages' ('from', 'to', 'message') VALUES ('2', '1', 'test2')
Alternativ auch doppelte Anführungszeichen
Kommentar von
dermetfandermetfan naja, ich hab schon tausende Möglichkeiten versucht... Aber danke. Dein Vorschlag liefert folgendes:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''messages' ('from', 'to', 'message') VALUES ('2', '1', 'test2')' at line 1
Kommentar von
ShitzOvranShitzOvran vllt fehlt ja auch das Semikolon am ende
Kommentar von
dermetfandermetfan Nein, das ist ja SQL, da braucht man kein Semikolon am Ende. Hat jedenfalls bei anderen Befehlen schon ohne geklappt... Ich habs trotzdem mal ausprobiert... wie gesagt das wars nich ^^ aber danke
Kommentar von
ScandleScandle Das ist so auch nicht richtig. Wenn du den Query über PHP absetzt, dann brauchst du kein Semikolon. Anders siehts aus wenn du mit der mysql console arbeitest ;)
-
1SQL-Syntax ist falsch, aber wo ist der Fehler?Antwort von
auto350910auto350910
Fehlermeldungen werden sowieso überbewertet.
Kommentar von
dermetfandermetfan Tut mir leid, hab ich vergessen..
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from, to, message) VALUES('2', '1', 'test2')' at line 1
-
-
0SQL Wildcard Aliase automatischAntwort von
kobs12073 Hi, meines Wissens gibt es dafür in SQL nichts, aber ich mach das immer über ein Excel, und baue mir so (quick and dirty) die Scripts auf;
lg m
-
0SQL Tabelle erstellenAntwort von
OptPintlnOptPintln
wenn es nur eine tabelle sein soll ...... reicht das voll und ganz aus ....... es sei den du willst sie noch normalisieren um redundante datensätze zu vermeiden ........ dann benötigst du mehr als nur eine tabelle und die nötigen foreign keys zu den einzelnen tabellen
..........................
würde dir raten erst einmal(wenn es auch überflüssig klingt) eine mindmap deiner datenbank anzufertigen bevor du sie erzeugst. (die richtige planung vereinfacht dir später die erzeugung)
.........................
als kleinen tipp:
http://www.w3schools.com/sql/default.asp
oder
mysql.de
-
0SQL Tabelle erstellenAntwort von
fabi777bb91fabi777bb91
ich empfehle dir "phpmyadmin" dort siehst du immer gute beschreibungen und so
-
0My SQL, Einen Sachverhalt bejahen und einen verneinenAntwort von
wotan38wotan38
Es darf nicht not subject heißen sondern <> subject . Im SQL wird statt eines Ungleichzeichens die Kombination aus < und > verwendet, also sowohl kleiner als auch größer, was gleichbedeutend ist mit ungleich.
-
0C# Programmierer sucht ProjektAntwort von
stevieray1191 Hast du Skype?
Kommentar von
omega90 ja habe ich
-
1SQL Hilfe Gruppierte Abfrage / AbiturübungAntwort von
Sascha211Sascha211
SELECT Ort, Sum(Mietkosten) FROM Mieter GROUP BY Ort ORDER BY Ort ASCEs wird für jeden Ort eine Gruppe gebildet und innerhalb der Gruppe werden die Mieten zusammengezählt.
-
0kann ein attribut gleichzeigtig primär- und fremdschlüssel sein?Antwort von
wotan38wotan38
Das macht geht nicht, macht auch prinzipiell keinen Sinn, denn da müssten Daten mit sich selbst verglichen werden. Ein Fremdschlüssel legt fest, dass bestimmte Daten in einer Tabelle in einer anderen Tabelle vorkommen müssen.
Kommentar von
wotan38wotan38 Ich habe hier möglicherweise die Aufgabenstellung nicht in Deinem Sinn interpretiert, deshalb die anderslautenden Antworten an anderer Stelle.
-
0Fremdschlüssel!!!!!!!!!!1111Antwort von
wotan38wotan38
Den Fremdschlüssel muss man nicht benutzen, man kann. Man kann damit eine zusätzliche Integritätsüberprüfung einbauen, die von der Datenbank dann überwacht wird. Beispiel: Ich habe eine Mitgliedertabelle mit dem Primärschlüssel Mitglieds-Nr. Desweiteren eine Beitragstabelle mit den Zahlungen der Mitglieder. Die Verbindung zu den Mitgliedern erfolgt über die Mitglieds-Nr. Nun darf in der Beitragstabelle keine Mitglieds-Nr vorkommen, die es in der Mitgliedertabelle nicht gibt. Definiert man nun in der Beitragstabelle den Primärschlüssel der Mitgliedstabelle als Fremdschlüssel, so wird die Integrität von der Datenbank überwacht. Dabei gibt es drei Arten von Definitionsmöglichkeiten, die letztlich nur festlegen, was im Falle eines Verstoßes passieren soll. Die Klausel delete restrict weist jeden Auftrag mit einem SQL-Fehler ab, der gegen diese Regel verstösst. Die Klausel delete cascade löscht alle Beiträge mit, wenn das Mitglied gelöscht wird (sehr praktisch in der Anwendung). Die dritte Möglichkeit delete set null setzt in der Beitragstabelle die Mitglieds-Nr auf null, wenn das Mitglied gelöscht wird. Die Einträge bleiben bestehen, man weiß dann aber nicht mehr, wem die mal zugeordnet waren. Als Fremdschlüssel sind auch Verbundschlüssel verwendbar. Das ist ein Primärschlüssel, der aus mehreren Feldern zusammengesetzt ist.
Beim Laden der Tabellen mit Daten muss man die Reihenfolge der Abhängigkeiten berücksichtigen. Hier also zuerst die Mitglieder und dann die Beiträge laden. Wird eine Tabelle komplett ausgetauscht, so gehen alle diesbezüglichen Abhängigkeiten verloren. Man muss nach dem Tausch diese erneut definieren. Abhängigkeiten können auch gegenseitig oder im Kreis herum bestehen. Da gibt es durchaus sinnvolle Anwendungen dafür, auch wenn das beim Schreiben in die Datenbank kompliziert werden kann.
-
0SQL, Wert auf Zahlen abfragenAntwort von
CanifexCanifex
Du müsstest angeben, welches SQL du verwendest ;). Bei manchen gibt es extra Funktionen dafür:
http://msdn.microsoft.com/en-us/library/ms186272.aspx
Wenn du jedoch MySQL benutzt, musst du einen Umweg einschlagen. Ich würde dir empfehlen, mit RegularExpressions zu arbeiten. Je nach Nummerart, die du abfragen willst, musst du folgenden RegExp anpassen:
SELECT * FROM myTable WHERE myField REGEXP ('[0-9]')
Kommentar von
warkel Oracle SQL. Das mit dem REGEXP habe ich nicht genau verstanden, es kommt dann
SQL Error: ORA-00920: invalid relational operator 00920. 00000 - "invalid relational operator"
-
0Fremdschlüssel!!!!!!!!!!1111Antwort von
Joenator Man benutzt immer dann einen Fremdschlüssel wenn zwischen zwei Tabellen der Datenbank eine 1:n Kardinalität besteht.
Der Primärschlüssel des einen Datensatzes der "1"-Tabelle wird in eine Fremdschlüsselspalte der "n"-Tabelle eingetragen und dient somit in der "n"-Tabelle als "Zeiger" auf den verbundenen Datensatz in der "1"-Tabelle.
-
0Datenbank erstellen (mit klassen und beziehungen)Antwort von
maxbreakmaxbreak
Wenn Du die bisherigen Antworten hernimmst erhältst Du eine dritte Tabelle:
SmartphonesTarife
- SmartphonesTarife_ID (PK)
- Phone_ID (FK)
- Tarif_ID (FK)
- ...
In dieser Tabelle ist hinterlegt welche Tarife für das jeweilige Handy möglich sind: Für ein Handy kann es kein/ein oder mehrere Tarife geben. Wenn du noch spezielle Infos für diese Beziehungen brauchst, kannst Du das noch in dieser Tabelle in weiteren Feldern ablegen.
Damit ist Euer Datenmodell schön in der Normalform und Ihr habt nur 1 : n - Beziehungen und keine n : m - Beziehungen.
Kommentar von
maxbreakmaxbreak In der Tabelle Smartphones darf es dann natürlich kein Feld Tarif_ID mehr geben!
Smartphones
- Phone_ID (PK)
- Name
- ...
PK : Primary Key FK : Foreign Key
Kommentar von
maxbreakmaxbreak Bei der Lösung von Termi93 wäre für ein Smartphone nur ein Tarif möglich und das wollt Ihr vermutlich nicht?
Kommentar von
Termi93Termi93 Du hast recht, hab das falsch geschrieben, es müsste bei der Tarif tabelle die Phone_ID, brainfail.. Zu viel gerabeitet^^
-
0PHPMyAdmin bei bplaced.netAntwort von
SinaneSinane
Einloggen und als SQL-Befehl alles ab "CREATE TABLE" einfügen und ausführen.
-
1Datenbank erstellen (mit klassen und beziehungen)Antwort von
Lio70Lio70
Du "darfst" das nicht direkt verbinden, weil Du stattdessen eine Kreuztabelle verwenden sollst, also eine Tabelle, welche die Verbindungen zwischen Handy und Tarifen enthält (also je einen Eintrag mit der ID für das Handy und der ID für einen Tarif).
Wäre es aber nicht möglich wenn Sherlock Holmes und Sherlock Holmes eingegeben wurde zu erkennen , dass zwei mal Sherlock Holmes eingegeben wurde ?
ja klar, das geht natürlich: