Schrift
[thread]3517[/thread]

mySQL - Datentypen - phpMyAdmin: Kurze Erklärung?



<< >> 6 Einträge, 1 Seite
Alex
 2005-01-07 01:12
#32834 #32834
User since
2003-12-04
285 Artikel
BenutzerIn
[default_avatar]
Hi,

also irgenwie schnall' ich das noch nicht mit den ganzen Sachen die man da den Feldern mitgeben kann. Kann mir das mal bitte Jemand in der Kurzversion erklären? Was muss ich, was brauch' ich?

Meine lokale DB funzt mit Fremdscripten, aber wenn ich selbst eine Tabelle anlege kommen immer Fehler, wie z. B. Can't create table '.\test\test.frm' (errno: 140). Liegt aber vermutlich daran, dass ich nicht wirklich weiß was ich da tue...

Was bedeuten denn die ganzen "Felder"?:
- Feld = ist klar, der (Spalten-)Name eben
- Typ = fast klar, beschreibt, was für Daten drin stehen sollen/dürfen, was benutzt man denn da so üblicherweise?
- Länge/Set = da kann man wohl die Zeichenanzahl auf ein Maximum einstellen -> sonst Fehler?
- Attribute = keine Ahnung
- Null = bei "NOT NULL" darf die "Zelle" wohl keinen undef-Wert haben?
- Standard = keine Ahnung
- Extra = keine Ahnung, wobei ich galube das "auto_increment" benutzen zu wollen
- Primärschlüssel = keine Ahnung
- Index = keine Ahnung
- Unique = keine Ahnung
- --- = keine Ahnung, das verschwindet halt, wenn eines der oberen drei angeklickt wird
- Volltext = keine Ahnung

Und was bedeutet am Anfang der Tabellentyp (Standart, MyISAM, Heap, Merge, usw.)? Was gibt man da an?

Seltsam: Ich habe das O'Reilly Perl DBI Buch - und selbst darin ist das nur minipauschal abgehandelt...

Habe versucht folgende Tabelle namens "news" zum üben und ausprobieren anzulegen (z. B. um für ein einfaches Newsscript) (verschidenes herumgeklicke und eingestelle), aber immer erfolglos:
id = Soll eine positive Zahl sein (fast) ohne Größenbeschränkung. Da wollte ich das "auto_increment" benutzen.
name = Soll ein (Text-)String sein
date = das Datum eben, da wollte ich "DATE" benutzen
time = wie oben, mit der Uhrzeit und "TIME"
headline = Soll ein (Text-)String sein
text = Soll ein (Text-)String sein, (fast) ohne Größenbeschränkung

Aber ich kriegs irgendwie nicht hin diese Tabelle mittels phpMyAdmin anzulegen...
Könnt Ihr mir mal bitte ein Beispiel posten?
<center>Schönen Gruß, Alex
Mit dem Computer geht alles viel schneller - es dauert nur ein bißchen länger!
</center>
Strat
 2005-01-07 01:21
#32835 #32835
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
typ:

fuer buchstaben: VARCHAR oder CHAR (VARCHAR wird i.d.R. speicherschonender abgelegt, aber mysql aendert zwischen den beiden datentypen eh nach belieben). laengenangabe noetig; Maximallaenge: meistens 255 zeichen, wenn man's laenger braucht: TEXT

Zahlen: INT, BIGINT, ... UNSIGNED bedeutet, von 0 bis n, SIGNED von -n/2 bis +n/2 (hier ist keine laengenangabe noetig)

Standard: wenn da kein wert eingefuegt wird, was soll da stattdessen eingefuegt werden?

primaerschluessel: das ist ein eindeutiger schluessel (so wie der hashschluessel); besteht in der regel aus einem Feld, kann aber auch aus mehreren feldern zusammengesetzt werden

unique: die werte in diesem feld muessen eindeutig sein

index: ein index ist ein meist schnellerer zugriff auf die werte eines feldes; lass das mal vorerst weg

volltextindex: wenn du ein Feld vom format TEXT hast, dann kann man einen volltextindex ueber dieses feld legen, und so teile daraus schneller finden. lass das auch mal vorerst weg

id: das klingt nach: BIGINT UNSIGNED auto_increment primaerschluessel
name: VARCHAR 64?
date: DATE
time: TIME
(oder date und time gleich durch DATETIME in einem feld abbilden)
headline: VARCHAR 255 ? oder TEXT?
text: TEXT

Tabellentyp: da einfach standard lassen
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Alex
 2005-01-07 01:47
#32836 #32836
User since
2003-12-04
285 Artikel
BenutzerIn
[default_avatar]
Vielen Dank Strat - schon gehts! :D
(Und mein HTML output mit Abfrage und Schleife funzte auch gleich aufs erste Mal! *stolz*)
[quote=Strat,07.01.2005, 00:21]typ:
unique: die werte in diesem feld muessen eindeutig sein
[/quote]Das versteh' ich noch nicht. was bedeutet "eindeutig"?
Aber jetzt gute Nacht - das war ein erfolgreicher Tag! Muss um 06:00 wieder raus...
Edit: Zu viel gequotet - bin müde...\n\n

<!--EDIT|Alex|1105055367-->
<center>Schönen Gruß, Alex
Mit dem Computer geht alles viel schneller - es dauert nur ein bißchen länger!
</center>
Ronnie
 2005-01-07 01:59
#32837 #32837
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Probier es mal so, geht bei mir:
Code: (dl )
1
2
3
4
5
6
7
8
9
CREATE TABLE `news` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(80),
`date` DATE,
`time` TIME,
`headline` VARCHAR(255),
`text` TEXT,
PRIMARY KEY (`id`)
);
\n\n

<!--EDIT|Ronnie|1105056037-->
Gast Gast
 2005-01-07 04:22
#32838 #32838
Zum besseres Verständnis hilft vielleicht die Datei manual.de-split.zip aus dem
MySQL Manual Download-Verzeichnis

Das ist das deutsche MySQL-Referenzhandbuch (HTML) für Version 5.0.3-alpha.
Strat
 2005-01-07 21:22
#32839 #32839
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=Alex,07.01.2005, 00:47]Das versteh' ich noch nicht. was bedeutet "eindeutig"?[/quote]
eindeutig bedeutet, ein wert kann in dieser kompletten spalte der datenbank nur einmal vorkommen... das ist in etwa so, wenn eine zeile (=ein datensatz) fuer ein Zimmer in einem hotel steht; der primaerschluessel ist da vermutlich die zimmernummer, und eine zimmernummer darf in einem hotel nur einmal vorkommen (d.h. sie muss eindeutig sein). Oder wie der Schluessel in einem Hash: der kann auch nur einmal vorkommen:
Code: (dl )
1
2
3
4
my %hash = ();
$hash{a} = 20;
$hash{a} = 30; # ueberschreibt 20
print $hash{$a}
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< >> 6 Einträge, 1 Seite



View all threads created 2005-01-07 01:12.