![]() |
Datenbank: mySQL • Version: 4.0.23 • Zugriff über: Mit dem Programm "MySQL-Front"
SQL - Eine Tabelle erstellen
Gut. Ich sollte eine Tabelle in meiner Datenbank erstellen. Da werden Produkte gespeichert, die man Online kaufen kann. Einen Tabellen Eintrag besteht aus:
1 - ID 2 - Art.Nr. 3 - ProduktEn 4 - ProduktDe 5 - ProduktBa 6 - Preiss 1 - ID sollte automatisch zugewiesen werden. Erster Beitrag hat ID = 1, zeiter ID = 2 etc.. 2 - Art.Nr. ist eine Zeichenkette, maximal 30 Zeichen. 3, 4, 5 sind Produktbeschreibungen in jeweiligen Sprachen, maximal 256 Zeichen. 6 - Der Preiss in Euro mit 2 Dezimalstellen. Z.B. 3.45 Beispiel: 1 "20-00C1" "Organic Black Seed Citrus Facial Cleanser" "Schwarzkümmel Zitrus Gesichtsreiniger " " " 10.00 Die Frage : Wie erstelle ich eine Solche Tabelle und wie kann ich einen Beitrag hinzufügen? Wie sehen die entsprechende SQL befehle aus ? An sich ist die Tabelle kein Problemm, sonder wie ich die Felder definiere ? Welche Typ passt zum welchen Feld am besten ? |
Re: SQL - Eine Tabelle erstellen
Die Tabelle erstellen könntest du mit
SQL-Code:
Den Preis müsstest du entsprechend Runden (es sei denn, MySQL unterstützt Currency, woran ich mich nicht erinnern kann...)
CREATE TABLE `MeineTabelle` (`ID` INT NOT NULL AUTO_INCREMENT UNIQUE, `Art.Nr.` VARCHAR(30) NOT NULL, `ProduktEn` VARCHAR(256) NOT NULL, `ProduktDe` VARCHAR(256) NOT NULL, `ProduktBa` VARCHAR(256) NOT NULL, `Preis` DOUBLE NOT NULL, PRIMARY KEY(`ID`))
Einfügen wäre entsprechend so:
SQL-Code:
ab dort musst du deine Werte in Hochkommas eingeschlossen, der Reihenfolge nach angeben und wieder mit
INSERT INTO `MeineTabelle` (`ID`, `Art.Nr.`, `ProduktEn`, `ProduktDe`, `ProduktBa`, `Preis`) VALUES ('',
SQL-Code:
abschließen. Zum einfügen mehrere Werte einfach ein Komma hinter die letzte Klammer und einen neuen Werteblock (diesmal ohne VALUES vornedran) anfügen.
)
Zu den Feldtypen: Für Zahlen mit Kommastellen ist DOUBLE gut geeignet, die begrenzten Strings (in delphi ja string[Länge]) gibts in SQL als VARCHAR(Länge). Felder, die sich hochzählen sollen, werden mit AUTO_INCREMENT bestückt (nur ein Feld kann so bestückt sein, und es muss ein Schlüssel sein, in dem Fall der Primary Key). UNIQUE gibt nur an, das jeder Artikel in der Datenbank einzigartig ist, also zwei IDs können nie gleich sein. Hab ich was vergessen? |
Re: SQL - Eine Tabelle erstellen
VARCHAR(256) bei MySQL wird nicht gehen da varchar-Felder bei MySQL maximal
![]() Alternativ wäre der text-Typ möglich damit gehen bis zu 64 kByte (siehe ![]() |
Re: SQL - Eine Tabelle erstellen
Zitat:
![]() Grüße vom marabu |
Re: SQL - Eine Tabelle erstellen
Ich bedanke mit herzlich. Das hat weiter geholfen.
|
Re: SQL - Eine Tabelle erstellen
SQL-Code:
Was stimmt hier nicht ?
CREATE TABLE `TableName` (`ID` INT (3) UNSIGNED DEFAULT '0' NOT NULL AUTO_INCREMENT, `ArtNr` VARCHAR (30) DEFAULT '0' NOT NULL, `ProduktEn` VARCHAR (250) DEFAULT '0' NOT NULL, `ProduktDe` VARCHAR (250) DEFAULT '0' NOT NULL, `ProduktBa` VARCHAR (250) DEFAULT '0' NOT NULL, `Preis` DOUBLE (3) DEFAULT '0' NOT NULL, PRIMARY KEY(`ID`), UNIQUE(`ID`)) TYPE = MyISAM
Error: 1064 - You have an error in your SQL syntax near ') DEFAULT '0' NOT NULL, PRIMARY KEY(`ID`), UNIQUE(`ID`)) TYPE = MyISAM' at line 1 CREATE TABLE `SkpNahrung` (`ID` INT (3) UNSIGNED DEFAULT '0' NOT NULL AUTO_INCREMENT, `ArtNr` VARCHAR (30) DEFAULT '0' NOT NULL, `ProduktEn` VARCHAR (250) DEFAULT '0', `ProduktDe` VARCHAR (250) DEFAULT '0', `ProduktBa` VARCHAR (250) DEFAULT '0', `Preis` DOUBLE (3) DEFAULT '0' NOT NULL, PRIMARY KEY(`ID`), UNIQUE(`ID`)) TYPE = MyISAM Error: 1064 - You have an error in your SQL syntax near ') DEFAULT '0' NOT NULL, PRIMARY KEY(`ID`), UNIQUE(`ID`)) TYPE = MyISAM' at line 1 CREATE TABLE `SkpNahrung` (`ID` INT (3) UNSIGNED DEFAULT '0' NOT NULL AUTO_INCREMENT, `ArtNr` VARCHAR (30) DEFAULT '0' NOT NULL, `ProduktEn` VARCHAR (250) DEFAULT '0', `ProduktDe` VARCHAR (250) DEFAULT '0', `ProduktBa` VARCHAR (250) DEFAULT '0', `Preis` DOUBLE (3) DEFAULT '0' NOT NULL, PRIMARY KEY(`ID`), UNIQUE(`ID`)) Error: 1064 - You have an error in your SQL syntax near ') DEFAULT '0' NOT NULL, PRIMARY KEY(`ID`), UNIQUE(`ID`)) ' at line 1 |
Re: SQL - Eine Tabelle erstellen
DEFAULT oder NOT NULL - nicht beides gleichzeitig.
Wenn DEFAULT, dann den Wert passend zum Spaltentyp. DOUBLE erwartet auch die Angabe der Dezimalstellen. DECIMAL scheint mir der angemessenere Datentyp für Preis. DDL für die erste Tabelle habe ich angepasst:
SQL-Code:
Hast du dir schon Gedanken darüber gemacht, welche Schwierigkeiten dich erwarten können, wenn du Zeichenketten in verschiedenen Sprachen in der gleichen Datenbank speicherst? Lies dazu das Kapitel "4.6 MySQL Localisation and International Usage" im Handbuch zu MySQL.
CREATE TABLE `TableName` (
`ID` INT (3) UNSIGNED NOT NULL AUTO_INCREMENT, `ArtNr` VARCHAR (30) NOT NULL, `ProduktEn` VARCHAR (250) NOT NULL, `ProduktDe` VARCHAR (250) NOT NULL, `ProduktBa` VARCHAR (250) NOT NULL, `Preis` DECIMAL(18,2) NOT NULL, PRIMARY KEY(`ID`), UNIQUE(`ID`) ) TYPE = MyISAM Grüße vom marabu |
Re: SQL - Eine Tabelle erstellen
Zitat:
ö = ö etc... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz