72

IT (Subject) / Mysql (Lesson)

Befehle

This lesson was created by coleen.

Learn lesson

This lesson is not released for learning.

Advertisement
  • 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
  • Advertisement
  • 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;