%Teilweise Erzeugt mit dem LaTeX-Generator: http://latex.sehnot.de

%Schriftgröße, Layout, Papierformat, Art des Dokumentes
\documentclass[10pt,oneside,a4paper]{scrartcl}

%Einstellungen der Seitenränder
\usepackage[left=2cm,right=2cm,top=1.5cm,bottom=1.5cm,includeheadfoot]{geometry}

%neue Rechtschreibung
\usepackage[ngerman]{babel}

%Umlaute ermöglichen
\usepackage[utf8]{inputenc}

%Gesamtseitenzahl
\usepackage{lastpage}

% Kopf- und Fußzeile
\usepackage[automark]{scrpage2}

%Quellcode-Listings
\usepackage{listings}

%Hyperlinks
\usepackage{hyperref}

%Kopfzeile
\ihead{MySQL}
\chead{}
\ohead{http://kohnlehome.de/datenbanken/mysql.pdf}
\setheadsepline{0.5pt}

%Fußzeile
\setfootsepline{0.5pt}
\ifoot{Franz Kohnle}
\cfoot{Seite \thepage\ von  \pageref{LastPage}}
\ofoot{\today}

\pagestyle{scrheadings}

\begin{document}

% Überschrift 
\begin{center}
\LARGE % Schriftgröße
\bfseries % Fettdruck
\sffamily % Serifenlose Schrift
MySQL
\end{center}

\section{An- und Abmelden}
\subsection*{anmelden}
\begin{lstlisting}[language=bash,frame=tlRB]
mysql -u root -p
Enter password: *****
\end{lstlisting}

\subsection*{abmelden}
\begin{lstlisting}[language=SQL,frame=tlRB]
mysql> QUIT
\end{lstlisting}




\section{Datenbanken verwalten}
\subsection*{alle Datenbanken anzeigen}
\begin{lstlisting}[language=SQL,frame=tlRB]
SHOW DATABASES;
\end{lstlisting}

\subsection*{neue Datenbank erstellen}
\begin{lstlisting}[language=SQL,frame=tlRB]
CREATE DATABASE name_der_datenbank;
\end{lstlisting}

\subsection*{Datenbank löschen}
\begin{lstlisting}[language=SQL,frame=tlRB]
DROP DATABASE name_der_datenbank;
\end{lstlisting}

\subsection*{Datenbank auswählen}
\begin{lstlisting}[language=SQL,frame=tlRB]
USE name_der_datenbank
\end{lstlisting}


\newpage


\section{DDL (Data Definition Language): Tabellen verwalten (Schema)}

\subsection*{alle Tabellen anzeigen}
\begin{lstlisting}[language=SQL,frame=tlRB]
SHOW TABLES;
\end{lstlisting}

\subsection*{Tabellenstruktur anzeigen}
\begin{lstlisting}[language=SQL,frame=tlRB]
DESCRIBE name_der_tabelle;
\end{lstlisting}

\subsection*{neue Tabelle erstellen}
\begin{lstlisting}[language=SQL,frame=tlRB]
CREATE TABLE name_der_tabelle (
    id INT PRIMARY KEY AUTO_INCREMENT,
    vorname CHAR(20),
    geburtsdatum DATE
);
\end{lstlisting}

\subsubsection*{Datentypen}
\begin{itemize}
\item
INT
\item
FLOAT, DOUBLE
\item
BOOL
\item
CHAR(M), VARCHAR(M), TEXT
\item
DATE, TIME, DATETIME, TIMESTAMP
\item
...
\end{itemize}

\subsubsection*{Attribute und Constraints direkt hinter der Spaltendefinition}
\begin{itemize}
\item
AUTO\_INCREMENT
\item
NOT NULL
\item
UNIQUE
\item
PRIMARY KEY
\end{itemize}

\subsubsection*{Constraints am Ende der Tabellendefinition}
\begin{itemize}
\item
PRIMARY KEY (tabelle1\_id, tabelle2\_id)
\item
FOREIGN KEY (tabelle\_id) REFERENCES tabelle(id)
\end{itemize}


\subsection*{Tabelle löschen}
\begin{lstlisting}[language=SQL,frame=tlRB]
DROP TABLE name_der_tabelle;
\end{lstlisting}

\newpage

\section{DML (Data Manipulation Language): Datensätze verwalten (CRUD)}

\subsection*{alle Datensätze anzeigen}
\begin{lstlisting}[language=SQL,frame=tlRB]
SELECT * FROM name_der_tabelle;
\end{lstlisting}

\subsection*{neuen Datensatz erstellen}
\begin{lstlisting}[language=SQL,frame=tlRB]
INSERT INTO name_der_tabelle
SET
    vorname = 'Christkind',
    geburtsdatum = '2020-12-24';
\end{lstlisting}

\subsection*{Datensätze ändern}
\begin{lstlisting}[language=SQL,frame=tlRB]
UPDATE name_der_tabelle
SET geburtsdatum = '2021-12-24'
WHERE vorname = 'Christkind';
\end{lstlisting}

\subsection*{Datensätze löschen}
\begin{lstlisting}[language=SQL,frame=tlRB]
DELETE FROM name_der_tabelle
WHERE vorname = 'Christkind';
\end{lstlisting}



\section{DCL (Data Control Language): Rechte verwalten}
\subsection*{Benutzer erstellen}
\begin{lstlisting}[language=SQL,frame=tlRB]                 
CREATE USER 'Benutzername'@'localhost';
ALTER USER 'Benutzername'@'localhost' IDENTIFIED BY 'Passwort';
\end{lstlisting}

\subsection*{Rechte auf eine Datenbank vergeben}
\begin{lstlisting}[language=SQL,frame=tlRB] 
GRANT ALL PRIVILEGES ON name_der_datenbank.*
TO 'Benutzername'@'localhost'; 
\end{lstlisting}




\end{document}
