Datentypen und MySql

  • Themenstarter Themenstarter MySQL
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
M

MySQL

Gast
Hallo
ich möchte in einer Datenbnk folgendes abspeichern

INT(1);
BOOL;

Jetzt wie ich gesehen habe gibt es kein Bool oder. Welchen Dadentyp nimmt man denn nun am besten für die beiden
in einer MySql Datenbank und vor allem auch in Java? Gibt es Probleme beim schreiben von int Java 4 Byte zu INT(1) in der SQL Datenbank. Was passiert wenn der zu groß ist. Was ist zu beachten. Momentan habe ich für BOOl einen INTT(1) was ja nicht so toll is. Aber gibt es wirklich einen Wert der weniger Speicher braucht als ein Byte?

Wie konvertiere ich bool zu int;

Vielen Dank

Schöne Grüße
 
MySQL hat gesagt.:
... weniger Speicher braucht als ein Byte? ...
Ein Bool verbraucht immer und überall mindestens 1 Byte


MySQL hat gesagt.:
... Wie konvertiere ich bool zu int; ...
Konvertieren ist nicht nötig, da ein bool eine Ganzzahl ist, bei der das letzte Bit gesetzt ist oder auch nicht, was letztendlich einem Wert von 1 oder 0 entspricht.
 
Hi aber wie konvertiere ich denn in java. Ist vielleicht eine komische Frage

public class test
{
public int inttest = 1;
public boolean booltest = false;

public test()
{
inttest = booltest; // Hab hier gibt es Fehler typemismatch
booltest=inttest;
inttest = (int)booltest;// kann die Typen nicht casten
booltest=(boolean)inttest;
}
}


Schöne Grüße
 
Hi

und wie verhindere ich zum Beispiel einen Datenverlust von int nach INT(1)?

Vielen Dank schonmal
 
Another extension is supported by MySQL for optionally specifying the display width of an integer value in parentheses following the base keyword for the type (for example, INT(4)). This optional display width specification is used to left-pad the display of values having a width less than the width specified for the column.

INT(1) = INT( 8 ) = INT für deine Belange
 
Ja ich weiß haufen doofer Fragen. Aber wie machen das jetzt mit dem Bool,

public class test
{
public int inttest = 1;
public boolean booltest = false;

public test()
{
inttest = booltest; // Hab hier gibt es Fehler typemismatch
booltest=inttest;
inttest = (int)booltest;// kann die Typen nicht casten
booltest=(boolean)inttest;
}
}

Schöne Grüße
 
in java ist eine Umwandlung unmöglich und unnötig

schau mal java.sql.ResultSet und java.sql.PreparedStatement an, dann siehst du wie man mit der DB kommuniziert

WENN du aber aus irgendwelchen Gründen boolsche Variablen in INTEGER Spalten abgelegt hast, dann gehts eben so

boolean spalteSoUndso = (0 < rs.getInt("datenbankspaltenname")); // je nachdem wie...
 
Ok

kann ich denn einen boolschen Wert in einer Datenbank erzeugen mit mysql habe ich es nicht geschaft

Vielen Dank für Deine Hilfe
 
CREATE TABLE test ( spalte BOOL )

BOOL ist eben nur ein Synonym tür TINYINT, und TRUE und FALSE werden von mysql automatisch in 1 und 0 übersetzt
 
Hi

ich verstehs immer noch nicht. Wenn ich in der Datanbank ein INT(10) habe hat das eine länge von 10 Byte. Wenn ich dann in Java dafür ein Wert int nehme 4 Bate groß kann es doch zum Datenverlust kommen oder?

Schöne Grüße

MySQL
 
nein, RTFM

kannst du lesen, dann siehe oben
Another extension is supported by MySQL for optionally specifying the display width of an integer value in parentheses following the base keyword for the type (for example, INT(4)). This optional display width specification is used to left-pad the display of values having a width less than the width specified for the column.

RTFM!

mysql> create table foobar ( zahl int(1), zahl2 int(10))
mysql> insert into foobar values (12345,12345);
mysql> select * from foobar;
+-------+-------+
| zahl | zahl2 |
+-------+-------+
| 12345 | 12345 |
+-------+-------+
 
AAAhh
tut mir leid das habe ich wirklich überlesen. Viele Dank für Deine Geduld

Schöne Güße
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben