72
IT (Fach) / Mysql (Lektion)
Befehle
Diese Lektion wurde von coleen erstellt.
Diese Lektion ist leider nicht zum lernen freigegeben.
Anzeige
- Constraint mit Name Einzelwerte müssen nicht UNIQUE sein, aber dafür Kombinationen create table person (name varchar(20), vorname varchar(20), ausweisnr int, CONSTRAINT mc (name, vorname)); verbotene Kombi Name (my constraint)
- create table person (name varchar(20), vorname varchar(20), ausweisnr int, CONSTRAINT mc (name, vorname)); 1) insert into person values ('Bauer', 'Hans', 1); 2) insert into person values ('Bauer', 'Sepp', 1); 3) insert into person values ('Maier 1) funktioniert 2) funktioniert 3) funktioniert 4) funktioniert nicht -> !!!Duplicate entry!!!
- PRIMARY KEY zb für Ausweisnr NOT NULL+UNIQUE -> wäre kein primary key vorhanden, könnte man nicht eine einzelne Zeile genau Adressieren -> in den seltensten Fällen macht Tabelle ohne PRIMARY KEY Sinn (Kfz tabelle: Nummernschild) create table person (name varchar(20), ausweisnr int PRIMARY KEY);
- PRIMARY KEY NOT NULL+UNIQUE -> künstliche Primärschlüssel um Dokument zu individualisieren -> wäre kein primary key vorhanden, könnte man nicht eine einzelne Zeile genau Adressieren -> in den seltensten Fällen macht Tabelle ohne PRIMARY KEY Sinn (Kfz tabelle: Nummernschild) create table person (name varchar(20), ausweisnr int PRIMARY KEY); kann man mehr als auf eine Spalte setzen
- Index Zusatzinfo um: - Zeilen schnell zu finden
- INTEGRER TYPE - ganze Zahlen -> Dual-& Gleitkommadarstellung - 6 Arten (Speicherplatz sparen) - int immer wenn keine Zusatzinfo, sondern natürliche Zahl
- INTEGRER TYPE + BSP - ganze Zahlen -> Dual-& Gleitkommadarstellung - 6 Arten (Speicherplatz sparen, zb statt 4 nur 1 Byte) - int immer wenn keine Zusatzinfo, sondern natürliche Zahl 1) create table Zahlenint (js int, ju int unsigned, jt tinyint); 2) insert into Zahlenint (js int, ju int unsigned, jt tinyint); 3) insert into Zahlenint (ju) values (-3000); -> ERROR out of Range
- INTEGRER TYPE + BSP - exakte Datentypen ohne Rechnungs-& Rundungsfehler - ganze Zahlen -> Dual-& Gleitkommadarstellung - 6 Arten (Speicherplatz sparen, zb statt 4 nur 1 Byte) - int immer wenn keine Zusatzinfo, sondern natürliche Zahl 1) create table Zahlenint (js int, ju int unsigned, jt tinyint); 2) insert into Zahlenint (js int, ju int unsigned, jt tinyint); 3) insert into Zahlenint (ju) values (-3000); -> ERROR out of Range
- Kommazahlen IEEE Darstellung 2 Typen: 1) exakt Dargestellt 2) gerundet angezeigt -> wichtig, wenn man mit Währungen rechnet
- Dezimalzahlen - kein Gleichtkommatyp, sondern Festkommatyp - addieren und multiplizieren ohne Fehler
- Anzeige
- Gleitkomma = Float Double - approximative Darstellung einer reellen Zahl - Menge Gleitkommazahlen ist Teilmenge rationaler Zahlen - es wird gerundet -> Rundungsfehler vorhanden
- String Types 1) char max length: 255 storage: potential fill up -> verschwendet Speicherplatz 2) varchar max length: 65.535 storage: actual length 3) enum - aufzählen (zb m, f) -> man weiß von vornerein dass es nur 2 Optionen gibt -> Wert, der aus Liste zulässiger Werte ausgewählt wird, die beim Erstellen der Tabelle explizit in Spaltendefinition aufgelistet werden.
- Datentyp Date Time Format: JJJJ-MM-TT HH:MM:SS ungültige werden so gespeichert: '0000-00-00 00:00:00' Zeitfenster erlaubt von: 1000-01-01 00:00:00 bis: '9999-12-31 23:59:59' create table (datumzeit datetime);
- aktuelle Zeit eingeben insert into table ... values (current_timestamp ());
- Datatype Time Format: HHH:MM:SS Zeitfenster: '-838:59:59' bis '838:59:59' create table zeit (uhrzeit time); select timediff ('20:00:00', ti) from zeit;
- Datatype Date insert time 900-10-06 funktioniert, wird von mysql aber nicht mehr garantiert funktioniert, gibt aber Warnung und wird nicht in Tabelle angezeigt
- Additional column AUTO_INCREMENT - Attribut zur Kennung für neue Datensätze - fängt an mit 1 und geht dann immer eins weiter nach oben - immer nur ein mal pro Tabelle - kein DEFAULT Wert - muss eine Schlüsselspalte sein (UNIQUE oder PRIMARY KEY) create table person (name varchar(100), vorname varchar (100), ausweis int UNIQUE AUTO_INCREMENT);
- nur 2 Spalten anzeigen lassen select Spaltenname1, Spaltenname2 from Tabellenname;
- Anzahl der Tabellenzeilen anzeigen count(*) man benötigt geordnete Menge (bei Avg& Sum zusätzlich numerische Datentypen)
- mittelwert, maximum, minimum, select avg(Spalte), max(Spalte), min(Spalte) from Tabelle
- Tabellen ordnen select SPALTENNAME from TABELLE ORDER BY SPALTENNAME;
- Alter nach ältestem und jüngsten ordnen älteste zuerst: max(alter) ESC; jüngste zuerst max(alter) DESC;