From 9f85e62ef759fc128df23ca728fe5765704707ab Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Tue, 9 May 2017 19:32:39 +0200 Subject: [PATCH 01/35] add files for exercise 6 --- web/2_sem/aufgabe6.xml | 8 ++++++++ web/2_sem/aufgabe6.xsd | 13 +++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 web/2_sem/aufgabe6.xml create mode 100644 web/2_sem/aufgabe6.xsd diff --git a/web/2_sem/aufgabe6.xml b/web/2_sem/aufgabe6.xml new file mode 100644 index 0000000..9e562bc --- /dev/null +++ b/web/2_sem/aufgabe6.xml @@ -0,0 +1,8 @@ + + + Me + You + Reminder + Don't forget to solve this + diff --git a/web/2_sem/aufgabe6.xsd b/web/2_sem/aufgabe6.xsd new file mode 100644 index 0000000..38e2391 --- /dev/null +++ b/web/2_sem/aufgabe6.xsd @@ -0,0 +1,13 @@ + + + + + + + + + + + + + From 56330b36917429ea2d52307d9f443e4c3f0f4975 Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Tue, 9 May 2017 19:47:38 +0200 Subject: [PATCH 02/35] add files for exercise 6b --- web/2_sem/aufgabe6b.xml | 10 ++++++++++ web/2_sem/aufgabe6b.xsd | 14 ++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 web/2_sem/aufgabe6b.xml create mode 100644 web/2_sem/aufgabe6b.xsd diff --git a/web/2_sem/aufgabe6b.xml b/web/2_sem/aufgabe6b.xml new file mode 100644 index 0000000..7622205 --- /dev/null +++ b/web/2_sem/aufgabe6b.xml @@ -0,0 +1,10 @@ + + + 1234 + Max + Muster + 30.08.1010 + Marketing + 50000 + diff --git a/web/2_sem/aufgabe6b.xsd b/web/2_sem/aufgabe6b.xsd new file mode 100644 index 0000000..d4011c1 --- /dev/null +++ b/web/2_sem/aufgabe6b.xsd @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + From b6c6608ebc6bdeff859944fb1fdc200086bab943 Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Tue, 9 May 2017 20:01:10 +0200 Subject: [PATCH 03/35] fix the xml files --- web/2_sem/aufgabe6.xml | 4 ++-- web/2_sem/aufgabe6b.xml | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/web/2_sem/aufgabe6.xml b/web/2_sem/aufgabe6.xml index 9e562bc..a69ee95 100644 --- a/web/2_sem/aufgabe6.xml +++ b/web/2_sem/aufgabe6.xml @@ -1,6 +1,6 @@ - + Me You Reminder diff --git a/web/2_sem/aufgabe6b.xml b/web/2_sem/aufgabe6b.xml index 7622205..b3df2e2 100644 --- a/web/2_sem/aufgabe6b.xml +++ b/web/2_sem/aufgabe6b.xml @@ -1,10 +1,10 @@ - + 1234 - Max - Muster - 30.08.1010 + Max + Muster + 1010-08-30 Marketing 50000 From 3a08e11bccd26c5eee5c3d5b4a06ee622697d0f8 Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Sat, 13 May 2017 09:44:58 +0200 Subject: [PATCH 04/35] move the xml excercise into a separate folder --- web/2_sem/aufgabe6.xml | 8 ------- web/2_sem/aufgabe6.xsd | 13 ---------- web/2_sem/aufgabe6b.xml | 10 -------- web/2_sem/aufgabe6b.xsd | 14 ----------- web/2_sem/recipes.dtd | 25 -------------------- web/2_sem/recipes.xml | 17 ------------- web/2_sem/xml/recipes.dtd | 50 +++++++++++++++++++-------------------- 7 files changed, 25 insertions(+), 112 deletions(-) delete mode 100644 web/2_sem/aufgabe6.xml delete mode 100644 web/2_sem/aufgabe6.xsd delete mode 100644 web/2_sem/aufgabe6b.xml delete mode 100644 web/2_sem/aufgabe6b.xsd delete mode 100644 web/2_sem/recipes.dtd delete mode 100644 web/2_sem/recipes.xml diff --git a/web/2_sem/aufgabe6.xml b/web/2_sem/aufgabe6.xml deleted file mode 100644 index a69ee95..0000000 --- a/web/2_sem/aufgabe6.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - Me - You - Reminder - Don't forget to solve this - diff --git a/web/2_sem/aufgabe6.xsd b/web/2_sem/aufgabe6.xsd deleted file mode 100644 index 38e2391..0000000 --- a/web/2_sem/aufgabe6.xsd +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/web/2_sem/aufgabe6b.xml b/web/2_sem/aufgabe6b.xml deleted file mode 100644 index b3df2e2..0000000 --- a/web/2_sem/aufgabe6b.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - 1234 - Max - Muster - 1010-08-30 - Marketing - 50000 - diff --git a/web/2_sem/aufgabe6b.xsd b/web/2_sem/aufgabe6b.xsd deleted file mode 100644 index d4011c1..0000000 --- a/web/2_sem/aufgabe6b.xsd +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/web/2_sem/recipes.dtd b/web/2_sem/recipes.dtd deleted file mode 100644 index 6fa7954..0000000 --- a/web/2_sem/recipes.dtd +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/web/2_sem/recipes.xml b/web/2_sem/recipes.xml deleted file mode 100644 index 191a8aa..0000000 --- a/web/2_sem/recipes.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - Dies ist ein Rezept für etwas zu bauen. - - Brot - - - - rühren - knetten - backen - - Dies ist ein Kommentar - - - diff --git a/web/2_sem/xml/recipes.dtd b/web/2_sem/xml/recipes.dtd index 0d7587f..6fa7954 100644 --- a/web/2_sem/xml/recipes.dtd +++ b/web/2_sem/xml/recipes.dtd @@ -1,25 +1,25 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + \ No newline at end of file From ac9967ccb51d118b24a9c576db27d4daaf314dc6 Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Sat, 13 May 2017 09:46:02 +0200 Subject: [PATCH 05/35] add files for xpath excercises --- web/2_sem/xml/aufgabe6.xml | 8 +++ web/2_sem/xml/aufgabe6.xsd | 13 +++++ web/2_sem/xml/aufgabe6b.xml | 10 ++++ web/2_sem/xml/aufgabe6b.xsd | 14 +++++ web/2_sem/xpath/xpath.org | 93 ++++++++++++++++++++++++++++++ web/2_sem/xpath/xpath.pdf | Bin 0 -> 79654 bytes web/2_sem/xpath/xpath.tex | 75 ++++++++++++++++++++++++ web/2_sem/xpath/xpath_vorlage.xml | 41 +++++++++++++ 8 files changed, 254 insertions(+) create mode 100644 web/2_sem/xml/aufgabe6.xml create mode 100644 web/2_sem/xml/aufgabe6.xsd create mode 100644 web/2_sem/xml/aufgabe6b.xml create mode 100644 web/2_sem/xml/aufgabe6b.xsd create mode 100644 web/2_sem/xpath/xpath.org create mode 100644 web/2_sem/xpath/xpath.pdf create mode 100644 web/2_sem/xpath/xpath.tex create mode 100644 web/2_sem/xpath/xpath_vorlage.xml diff --git a/web/2_sem/xml/aufgabe6.xml b/web/2_sem/xml/aufgabe6.xml new file mode 100644 index 0000000..a69ee95 --- /dev/null +++ b/web/2_sem/xml/aufgabe6.xml @@ -0,0 +1,8 @@ + + + Me + You + Reminder + Don't forget to solve this + diff --git a/web/2_sem/xml/aufgabe6.xsd b/web/2_sem/xml/aufgabe6.xsd new file mode 100644 index 0000000..38e2391 --- /dev/null +++ b/web/2_sem/xml/aufgabe6.xsd @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/web/2_sem/xml/aufgabe6b.xml b/web/2_sem/xml/aufgabe6b.xml new file mode 100644 index 0000000..b3df2e2 --- /dev/null +++ b/web/2_sem/xml/aufgabe6b.xml @@ -0,0 +1,10 @@ + + + 1234 + Max + Muster + 1010-08-30 + Marketing + 50000 + diff --git a/web/2_sem/xml/aufgabe6b.xsd b/web/2_sem/xml/aufgabe6b.xsd new file mode 100644 index 0000000..d4011c1 --- /dev/null +++ b/web/2_sem/xml/aufgabe6b.xsd @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/web/2_sem/xpath/xpath.org b/web/2_sem/xpath/xpath.org new file mode 100644 index 0000000..f45f38c --- /dev/null +++ b/web/2_sem/xpath/xpath.org @@ -0,0 +1,93 @@ +* Aufgabe 1 +** a) /library/book/isbn +#+BEGIN_SRC xml + + +0836217462 + +045654656 + + +#+END_SRC +** b) /library/book/title +#+BEGIN_SRC xml + + +Being a Dog Is a Full-Time Job + +Das fliegende Klassenzimmer + + +#+END_SRC +** c) /library/book/author/name +#+BEGIN_SRC xml + + +Charles M Schulz + +Erich Kästner + + +#+END_SRC +* Aufgabe 2 +** a) /library/book/character/name +#+BEGIN_SRC xml + + +Peppermint Patty + +Snoopy + +Schroeder + +Lucy + + +#+END_SRC + +** b) +* Vorgabe File +#+BEGIN_SRC xml + + + + 0836217462 + Being a Dog Is a Full-Time Job + + Charles M Schulz + 1922-11-26 + 2000-02-12 + + + Peppermint Patty + 1966-08-22 + bold, brash and tomboyish + + + Snoopy + 1950-10-04 + extroverted beagle + + + Schroeder + 1951-05-30 + brought classical music to the Peanuts strip + + + Lucy + 1952-03-03 + bossy, crabby and selfish + + + + 045654656 + Das fliegende Klassenzimmer + + Erich Kästner + 1899-02-23 + 1974-07-29 + + + +#+END_SRC + diff --git a/web/2_sem/xpath/xpath.pdf b/web/2_sem/xpath/xpath.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3b76b03ba1e78e8c5c014073c9fd37f3c74aff0c GIT binary patch literal 79654 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 literal 0 HcmV?d00001 diff --git a/web/2_sem/xpath/xpath.tex b/web/2_sem/xpath/xpath.tex new file mode 100644 index 0000000..60656ab --- /dev/null +++ b/web/2_sem/xpath/xpath.tex @@ -0,0 +1,75 @@ +% Created 2017-05-13 Sat 09:41 +% Intended LaTeX compiler: pdflatex +\documentclass{az_article} +\author{Andreas Zweili} +\date{\today} +\title{} +\hypersetup{ + pdfauthor={Andreas Zweili}, + pdftitle={}, + pdfkeywords={}, + pdfsubject={}, + pdfcreator={Emacs 25.1.1 (Org mode 9.0.6)}, + pdflang={English}} +\begin{document} + +\tableofcontents + \newpage + \section{Aufgabe 1} +\label{sec:org19289e8} +\subsection{a) /library/book/isbn} +\label{sec:orgd8d994d} +\begin{verbatim} + + +0836217462 + +045654656 + + +\end{verbatim} +\subsection{b) /library/book/title} +\label{sec:orgc884de6} +\begin{verbatim} + + +Being a Dog Is a Full-Time Job + +Das fliegende Klassenzimmer + + +\end{verbatim} +\subsection{c) /library/book/author/name} +\label{sec:org498de01} +\begin{verbatim} + + +Charles M Schulz + +Erich Kästner + + +\end{verbatim} +\section{Aufgabe 2} +\label{sec:org9eccf58} +\subsection{a) /library/book/character/name} +\label{sec:org6495209} +\begin{verbatim} + + +Peppermint Patty + +Snoopy + +Schroeder + +Lucy + + +\end{verbatim} + +\subsection{b)} +\label{sec:org7b2348a} +\section{\href{xpath\_vorlage.xml}{Vorgabe File}} +\label{sec:orge9a4a1a} +\end{document} \ No newline at end of file diff --git a/web/2_sem/xpath/xpath_vorlage.xml b/web/2_sem/xpath/xpath_vorlage.xml new file mode 100644 index 0000000..a4ce41b --- /dev/null +++ b/web/2_sem/xpath/xpath_vorlage.xml @@ -0,0 +1,41 @@ + + + + 0836217462 + Being a Dog Is a Full-Time Job + + Charles M Schulz + 1922-11-26 + 2000-02-12 + + + Peppermint Patty + 1966-08-22 + bold, brash and tomboyish + + + Snoopy + 1950-10-04 + extroverted beagle + + + Schroeder + 1951-05-30 + brought classical music to the Peanuts strip + + + Lucy + 1952-03-03 + bossy, crabby and selfish + + + + 045654656 + Das fliegende Klassenzimmer + + Erich Kästner + 1899-02-23 + 1974-07-29 + + + From b1f21e5002744429c8ecabf20e7d98dbfb1a7476 Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Sat, 13 May 2017 09:49:18 +0200 Subject: [PATCH 06/35] add the org-mode auto folders to the gitignore file --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 02d5dcb..0b79339 100644 --- a/.gitignore +++ b/.gitignore @@ -588,3 +588,6 @@ docs/_build/ # PyBuilder target/ + +# org-mode compile files +**/auto \ No newline at end of file From 833b07d1ec9312f2aa77578d8899b23f9e2f378c Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Sat, 13 May 2017 09:53:23 +0200 Subject: [PATCH 07/35] refactor the code blocks --- web/2_sem/xpath/xpath.org | 44 +++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/web/2_sem/xpath/xpath.org b/web/2_sem/xpath/xpath.org index f45f38c..a0be884 100644 --- a/web/2_sem/xpath/xpath.org +++ b/web/2_sem/xpath/xpath.org @@ -1,48 +1,48 @@ * Aufgabe 1 ** a) /library/book/isbn #+BEGIN_SRC xml - - -0836217462 + + + 0836217462 -045654656 + 045654656 - + #+END_SRC ** b) /library/book/title #+BEGIN_SRC xml - - -Being a Dog Is a Full-Time Job + + + Being a Dog Is a Full-Time Job -Das fliegende Klassenzimmer + Das fliegende Klassenzimmer - + #+END_SRC ** c) /library/book/author/name #+BEGIN_SRC xml - - -Charles M Schulz + + + Charles M Schulz -Erich Kästner + Erich Kästner - + #+END_SRC * Aufgabe 2 ** a) /library/book/character/name #+BEGIN_SRC xml - - -Peppermint Patty + + + Peppermint Patty -Snoopy + Snoopy -Schroeder + Schroeder -Lucy + Lucy - + #+END_SRC ** b) From 7d0a19c83cd17a647718b464a1c451c366167634 Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Sat, 13 May 2017 09:54:47 +0200 Subject: [PATCH 08/35] add latex files to the ignore list --- .gitignore | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 0b79339..d47b641 100644 --- a/.gitignore +++ b/.gitignore @@ -590,4 +590,19 @@ target/ # org-mode compile files -**/auto \ No newline at end of file +**/auto + +#latex compile files +*.aux +*.acn +*.bbl +*.blg +*.glo +*.ist +*.lof +*.log +*.lot +*.out +*.pdf +*.toc +*.gz \ No newline at end of file From 9c260d8f3d4fc360bf2861bbc86381ac411ae044 Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Sat, 13 May 2017 10:06:08 +0200 Subject: [PATCH 09/35] add .tex file --- web/2_sem/xpath/xpath.pdf | Bin 79654 -> 0 bytes web/2_sem/xpath/xpath.tex | 83 +++++++++++++++++++++++++++++--------- 2 files changed, 63 insertions(+), 20 deletions(-) delete mode 100644 web/2_sem/xpath/xpath.pdf diff --git a/web/2_sem/xpath/xpath.pdf b/web/2_sem/xpath/xpath.pdf deleted file mode 100644 index 3b76b03ba1e78e8c5c014073c9fd37f3c74aff0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 79654 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 diff --git a/web/2_sem/xpath/xpath.tex b/web/2_sem/xpath/xpath.tex index 60656ab..96106b5 100644 --- a/web/2_sem/xpath/xpath.tex +++ b/web/2_sem/xpath/xpath.tex @@ -1,4 +1,4 @@ -% Created 2017-05-13 Sat 09:41 +% Created 2017-05-13 Sat 10:02 % Intended LaTeX compiler: pdflatex \documentclass{az_article} \author{Andreas Zweili} @@ -16,60 +16,103 @@ \tableofcontents \newpage \section{Aufgabe 1} -\label{sec:org19289e8} +\label{sec:orgd6ee63f} \subsection{a) /library/book/isbn} -\label{sec:orgd8d994d} +\label{sec:org6e4aeb4} \begin{verbatim} -0836217462 + 0836217462 -045654656 + 045654656 \end{verbatim} \subsection{b) /library/book/title} -\label{sec:orgc884de6} +\label{sec:orgbe4ca90} \begin{verbatim} -Being a Dog Is a Full-Time Job + Being a Dog Is a Full-Time Job -Das fliegende Klassenzimmer + Das fliegende Klassenzimmer \end{verbatim} \subsection{c) /library/book/author/name} -\label{sec:org498de01} +\label{sec:orgef9b964} \begin{verbatim} -Charles M Schulz + Charles M Schulz -Erich Kästner + Erich Kästner \end{verbatim} \section{Aufgabe 2} -\label{sec:org9eccf58} +\label{sec:org6bc604a} \subsection{a) /library/book/character/name} -\label{sec:org6495209} +\label{sec:org01eaac0} \begin{verbatim} -Peppermint Patty + Peppermint Patty -Snoopy + Snoopy -Schroeder + Schroeder -Lucy + Lucy \end{verbatim} \subsection{b)} -\label{sec:org7b2348a} -\section{\href{xpath\_vorlage.xml}{Vorgabe File}} -\label{sec:orge9a4a1a} +\label{sec:org588e43e} +\section{Vorgabe File} +\label{sec:orgd5fdaf0} +\begin{verbatim} + + + + 0836217462 + Being a Dog Is a Full-Time Job + + Charles M Schulz + 1922-11-26 + 2000-02-12 + + + Peppermint Patty + 1966-08-22 + bold, brash and tomboyish + + + Snoopy + 1950-10-04 + extroverted beagle + + + Schroeder + 1951-05-30 + brought classical music to the Peanuts strip + + + Lucy + 1952-03-03 + bossy, crabby and selfish + + + + 045654656 + Das fliegende Klassenzimmer + + Erich Kästner + 1899-02-23 + 1974-07-29 + + + +\end{verbatim} \end{document} \ No newline at end of file From 1d40b7f4854da36a1005544b3920fbb74d5c9a22 Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Sat, 13 May 2017 11:08:31 +0200 Subject: [PATCH 10/35] create excercise for javascript --- web/2_sem/javascript/alertbox.html | 9 +++++++++ web/2_sem/javascript/helloworld.js | 3 +++ 2 files changed, 12 insertions(+) create mode 100644 web/2_sem/javascript/alertbox.html create mode 100644 web/2_sem/javascript/helloworld.js diff --git a/web/2_sem/javascript/alertbox.html b/web/2_sem/javascript/alertbox.html new file mode 100644 index 0000000..06c5904 --- /dev/null +++ b/web/2_sem/javascript/alertbox.html @@ -0,0 +1,9 @@ + + + + JavaScript + + +

JavaScript

+ + diff --git a/web/2_sem/javascript/helloworld.js b/web/2_sem/javascript/helloworld.js new file mode 100644 index 0000000..862fe1b --- /dev/null +++ b/web/2_sem/javascript/helloworld.js @@ -0,0 +1,3 @@ +function showHelloWorld() { + alert('Hello World.'); +} From 6efc8441a1d47c2e1ee3f2b780ce27d988cd5507 Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Sat, 13 May 2017 11:08:44 +0200 Subject: [PATCH 11/35] update the xpath excercise --- web/2_sem/xpath/xpath.org | 27 ++++++++++++++++++++++++++- web/2_sem/xpath/xpath.tex | 32 ++++++++++++++++++++++---------- 2 files changed, 48 insertions(+), 11 deletions(-) diff --git a/web/2_sem/xpath/xpath.org b/web/2_sem/xpath/xpath.org index a0be884..08f098b 100644 --- a/web/2_sem/xpath/xpath.org +++ b/web/2_sem/xpath/xpath.org @@ -1,3 +1,6 @@ +* Hilfsmittel ++ http://www.xpathtester.com/xpath ++ https://www.w3schools.com/xml/xpath_syntax.asp * Aufgabe 1 ** a) /library/book/isbn #+BEGIN_SRC xml @@ -45,7 +48,29 @@ #+END_SRC -** b) +** b) /library/book/author/born +#+BEGIN_SRC xml + + + 1922-11-26 + + 1899-02-23 + + +#+END_SRC + +** c) /library/book/author/dead +#+BEGIN_SRC xml + + + 2000-02-12 + + 1974-07-29 + + +#+END_SRC + +** d) * Vorgabe File #+BEGIN_SRC xml diff --git a/web/2_sem/xpath/xpath.tex b/web/2_sem/xpath/xpath.tex index 96106b5..1fcc4a1 100644 --- a/web/2_sem/xpath/xpath.tex +++ b/web/2_sem/xpath/xpath.tex @@ -1,4 +1,4 @@ -% Created 2017-05-13 Sat 10:02 +% Created 2017-05-13 Sat 10:15 % Intended LaTeX compiler: pdflatex \documentclass{az_article} \author{Andreas Zweili} @@ -16,9 +16,9 @@ \tableofcontents \newpage \section{Aufgabe 1} -\label{sec:orgd6ee63f} +\label{sec:org306d8a3} \subsection{a) /library/book/isbn} -\label{sec:org6e4aeb4} +\label{sec:org15353ce} \begin{verbatim} @@ -29,7 +29,7 @@ \end{verbatim} \subsection{b) /library/book/title} -\label{sec:orgbe4ca90} +\label{sec:org2dca311} \begin{verbatim} @@ -40,7 +40,7 @@ \end{verbatim} \subsection{c) /library/book/author/name} -\label{sec:orgef9b964} +\label{sec:org6f5e358} \begin{verbatim} @@ -51,9 +51,9 @@ \end{verbatim} \section{Aufgabe 2} -\label{sec:org6bc604a} +\label{sec:org4522724} \subsection{a) /library/book/character/name} -\label{sec:org01eaac0} +\label{sec:org34dda39} \begin{verbatim} @@ -68,10 +68,22 @@ \end{verbatim} -\subsection{b)} -\label{sec:org588e43e} +\subsection{b) /lib/book/author/born} +\label{sec:org414aad7} +\begin{verbatim} + + + 1922-11-26 + + 1899-02-23 + + +\end{verbatim} + +\subsection{c)} +\label{sec:org7021094} \section{Vorgabe File} -\label{sec:orgd5fdaf0} +\label{sec:orgc3d654c} \begin{verbatim} From 17da50c0001bb4e00e250ecb813104f840c1ec4f Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Sat, 13 May 2017 11:56:32 +0200 Subject: [PATCH 12/35] add solutions to the javascript excercise #4 --- web/2_sem/javascript/js_aufgabe4.html | 10 ++++++++++ web/2_sem/javascript/summ_of_numbers.js | 11 +++++++++++ 2 files changed, 21 insertions(+) create mode 100644 web/2_sem/javascript/js_aufgabe4.html create mode 100644 web/2_sem/javascript/summ_of_numbers.js diff --git a/web/2_sem/javascript/js_aufgabe4.html b/web/2_sem/javascript/js_aufgabe4.html new file mode 100644 index 0000000..be7f47f --- /dev/null +++ b/web/2_sem/javascript/js_aufgabe4.html @@ -0,0 +1,10 @@ + + + + + + + +

Aufgabe 4

+ + diff --git a/web/2_sem/javascript/summ_of_numbers.js b/web/2_sem/javascript/summ_of_numbers.js new file mode 100644 index 0000000..9504a69 --- /dev/null +++ b/web/2_sem/javascript/summ_of_numbers.js @@ -0,0 +1,11 @@ +function summ_of_numbers() { + var number = 0; + var summ = 0; + while (number < 10000) { + number = ++number + if (number % 2 == 0) { + summ = number + summ; + } + } + alert(summ); +} From aba6ed6ffe31a82f085483cecd5e5724adb888a1 Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Fri, 19 May 2017 19:34:04 +0200 Subject: [PATCH 13/35] add a script to install monodevelop --- software/install_monodevelop.sh | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 software/install_monodevelop.sh diff --git a/software/install_monodevelop.sh b/software/install_monodevelop.sh new file mode 100644 index 0000000..f530cae --- /dev/null +++ b/software/install_monodevelop.sh @@ -0,0 +1,9 @@ +sudo apt update && sudo apt install flatpak -t jessie-backports -y & +flatpak install --user --from https://download.mono-project.com/repo/monodevelop.flatpakref & +sudo apt install xterm & +cp -v /usr/bin/xterm ~/.local/share/flatpak/app/com.xamarin.MonoDevelop/current/active/files/bin/& +cp -v /usr/lib/x86_64-linux-gnu/libXaw* ~/.local/share/flatpak/app/com.xamarin.MonoDevelop/current/active/files/lib/& +cp -v /usr/lib/x86_64-linux-gnu/libXmu* ~/.local/share/flatpak/app/com.xamarin.MonoDevelop/current/active/files/lib/& +cp -v /usr/lib/x86_64-linux-gnu/libutempter* ~/.local/share/flatpak/app/com.xamarin.MonoDevelop/current/active/files/lib/& +cp -v /lib/x86_64-linux-gnu/libpng12* ~/.local/share/flatpak/app/com.xamarin.MonoDevelop/current/active/files/lib/& +cp -v /lib/x86_64-linux-gnu/libtinfo* ~/.local/share/flatpak/app/com.xamarin.MonoDevelop/current/active/files/lib/& From 7d8ac7beb6df7d49fbc4d3f3a5dcb1ac930502ec Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Fri, 19 May 2017 19:59:32 +0200 Subject: [PATCH 14/35] update the install script some commands are different on debian jessie --- software/install_monodevelop.sh | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) mode change 100644 => 100755 software/install_monodevelop.sh diff --git a/software/install_monodevelop.sh b/software/install_monodevelop.sh old mode 100644 new mode 100755 index f530cae..44b66cb --- a/software/install_monodevelop.sh +++ b/software/install_monodevelop.sh @@ -1,9 +1,10 @@ -sudo apt update && sudo apt install flatpak -t jessie-backports -y & -flatpak install --user --from https://download.mono-project.com/repo/monodevelop.flatpakref & -sudo apt install xterm & -cp -v /usr/bin/xterm ~/.local/share/flatpak/app/com.xamarin.MonoDevelop/current/active/files/bin/& -cp -v /usr/lib/x86_64-linux-gnu/libXaw* ~/.local/share/flatpak/app/com.xamarin.MonoDevelop/current/active/files/lib/& -cp -v /usr/lib/x86_64-linux-gnu/libXmu* ~/.local/share/flatpak/app/com.xamarin.MonoDevelop/current/active/files/lib/& -cp -v /usr/lib/x86_64-linux-gnu/libutempter* ~/.local/share/flatpak/app/com.xamarin.MonoDevelop/current/active/files/lib/& -cp -v /lib/x86_64-linux-gnu/libpng12* ~/.local/share/flatpak/app/com.xamarin.MonoDevelop/current/active/files/lib/& -cp -v /lib/x86_64-linux-gnu/libtinfo* ~/.local/share/flatpak/app/com.xamarin.MonoDevelop/current/active/files/lib/& +sudo apt update && sudo apt install flatpak -t jessie-backports -y +flatpak install --user --from https://download.mono-project.com/repo/monodevelop.flatpakref +sudo apt install xterm +cp -v /usr/bin/xterm ~/.local/share/flatpak/app/com.xamarin.MonoDevelop/current/active/files/bin/ +cp -v /usr/lib/x86_64-linux-gnu/libXaw* ~/.local/share/flatpak/app/com.xamarin.MonoDevelop/current/active/files/lib/ +cp -v /usr/lib/x86_64-linux-gnu/libXmu* ~/.local/share/flatpak/app/com.xamarin.MonoDevelop/current/active/files/lib/ +cp -v /usr/lib/x86_64-linux-gnu/libutempter.* ~/.local/share/flatpak/app/com.xamarin.MonoDevelop/current/active/files/lib/ +cp -v /usr/lib/libutempter.* ~/.local/share/flatpak/app/com.xamarin.MonoDevelop/current/active/files/lib/ +cp -v /lib/x86_64-linux-gnu/libpng12* ~/.local/share/flatpak/app/com.xamarin.MonoDevelop/current/active/files/lib/ +cp -v /lib/x86_64-linux-gnu/libtinfo* ~/.local/share/flatpak/app/com.xamarin.MonoDevelop/current/active/files/lib/ From 48caa8dc35e19f4ee41e595c4f3dec6f8fad29e4 Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Sun, 21 May 2017 12:38:03 +0200 Subject: [PATCH 15/35] remove a merge part --- .../SEP Prüfung/SEP Prüfung/SEP Prüfung.ssmssqlproj | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/db/2_sem/SEP Prüfung/SEP Prüfung/SEP Prüfung.ssmssqlproj b/db/2_sem/SEP Prüfung/SEP Prüfung/SEP Prüfung.ssmssqlproj index 4c08aa5..25cfc75 100644 --- a/db/2_sem/SEP Prüfung/SEP Prüfung/SEP Prüfung.ssmssqlproj +++ b/db/2_sem/SEP Prüfung/SEP Prüfung/SEP Prüfung.ssmssqlproj @@ -1,13 +1,3 @@ -<<<<<<< HEAD - - - - - - - - -======= @@ -16,5 +6,4 @@ ->>>>>>> 91c37e0a13ad9148d1d6356ee6197441ad0a42e5 \ No newline at end of file From d95665040dbc5092aa65b1a67dd9a28d7e46dcc6 Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Sun, 21 May 2017 12:38:27 +0200 Subject: [PATCH 16/35] make the monodevelop install script executable --- software/install_monodevelop.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 software/install_monodevelop.sh diff --git a/software/install_monodevelop.sh b/software/install_monodevelop.sh old mode 100644 new mode 100755 From 809974fabbb13233627fe27db3a63b09abdcaba3 Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Sun, 21 May 2017 12:42:39 +0200 Subject: [PATCH 17/35] remove windows line endings --- .../SEP Prüfung/zweili_andreas_A2.sql | 138 +++++++++--------- 1 file changed, 69 insertions(+), 69 deletions(-) diff --git a/db/2_sem/SEP Prüfung/SEP Prüfung/zweili_andreas_A2.sql b/db/2_sem/SEP Prüfung/SEP Prüfung/zweili_andreas_A2.sql index 6156a86..7412193 100644 --- a/db/2_sem/SEP Prüfung/SEP Prüfung/zweili_andreas_A2.sql +++ b/db/2_sem/SEP Prüfung/SEP Prüfung/zweili_andreas_A2.sql @@ -1,73 +1,73 @@ <<<<<<< HEAD --- Dateiname zweili_andreas_A2.sql --- --- Beschreibung: SEP Datenbank 2 --- --- Autor: Andreas Zweili --- Datum: 11.03.2017 - - --- A2.1 -use Abo -select m.mitglied_name, m.mitglied_vorname, m.eintrittsdatum from mitglied m - inner join anrede a - on a.anrede_id = m.anrede_id - order by m.mitglied_name ASC, m.mitglied_vorname ASC; - - - --- A2.2 -use Abo -select m.mitglied_name, m.mitglied_vorname, m.eintrittsdatum, abo.abo_gebuehr from mitglied m - inner join abo - on abo.abo_id = m.abo_id - where abo.abo_gebuehr > '1000'; - --- A2.3 -use Abo -select * from mitglied m - where m.mitglied_name like '%ll%' - order by m.mitglied_id DESC; - --- A2.4 -use Abo -select * from mitglied m - where m.eintrittsdatum is NULL; - --- A2.5 -use Abo -select m.mitglied_name, m.mitglied_vorname, m.eintrittsdatum, o.postleizahl, o.ortsname - from mitglied m - inner join ort o on m.ort_id = o.ort_id - where m.eintrittsdatum between convert(date, '01.01.1990', 104) and convert(date, '31.12.1995', 104) - order by o.postleizahl asc; - --- A2.6 -use Abo -select a.anrede, m.mitglied_name, m.mitglied_vorname, o.postleizahl, o.ortsname, abo_name from mitglied m - inner join anrede a - on a.anrede_id = m.anrede_id - inner join ort o - on o.ort_id = m.ort_id - inner join abo - on m.abo_id = abo.abo_id - where a.anrede = 'Herr' - and (o.ortsname = 'Basel' - or o.ortsname = 'Zürich'); - --- A2.7 - -update abo set - abo.abo_gebuehr = '550' - where abo.abo_name = 'Student'; -update abo set - abo.abo_gebuehr = '165' - where abo.abo_name = 'Monatsabo'; - --- A2.8 - -delete from mitglied - where mitglied_name = 'Keller' +-- Dateiname zweili_andreas_A2.sql +-- +-- Beschreibung: SEP Datenbank 2 +-- +-- Autor: Andreas Zweili +-- Datum: 11.03.2017 + + +-- A2.1 +use Abo +select m.mitglied_name, m.mitglied_vorname, m.eintrittsdatum from mitglied m + inner join anrede a + on a.anrede_id = m.anrede_id + order by m.mitglied_name ASC, m.mitglied_vorname ASC; + + + +-- A2.2 +use Abo +select m.mitglied_name, m.mitglied_vorname, m.eintrittsdatum, abo.abo_gebuehr from mitglied m + inner join abo + on abo.abo_id = m.abo_id + where abo.abo_gebuehr > '1000'; + +-- A2.3 +use Abo +select * from mitglied m + where m.mitglied_name like '%ll%' + order by m.mitglied_id DESC; + +-- A2.4 +use Abo +select * from mitglied m + where m.eintrittsdatum is NULL; + +-- A2.5 +use Abo +select m.mitglied_name, m.mitglied_vorname, m.eintrittsdatum, o.postleizahl, o.ortsname + from mitglied m + inner join ort o on m.ort_id = o.ort_id + where m.eintrittsdatum between convert(date, '01.01.1990', 104) and convert(date, '31.12.1995', 104) + order by o.postleizahl asc; + +-- A2.6 +use Abo +select a.anrede, m.mitglied_name, m.mitglied_vorname, o.postleizahl, o.ortsname, abo_name from mitglied m + inner join anrede a + on a.anrede_id = m.anrede_id + inner join ort o + on o.ort_id = m.ort_id + inner join abo + on m.abo_id = abo.abo_id + where a.anrede = 'Herr' + and (o.ortsname = 'Basel' + or o.ortsname = 'Zürich'); + +-- A2.7 + +update abo set + abo.abo_gebuehr = '550' + where abo.abo_name = 'Student'; +update abo set + abo.abo_gebuehr = '165' + where abo.abo_name = 'Monatsabo'; + +-- A2.8 + +delete from mitglied + where mitglied_name = 'Keller' ======= -- Dateiname zweili_andreas_A2.sql -- From 7c49ea9476bd8355dbcec65b795531d9ba6a5974 Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Sun, 21 May 2017 12:51:02 +0200 Subject: [PATCH 18/35] remove the merge parts --- .../SEP Prüfung/zweili_andreas_A1.sql | 121 +----------------- .../SEP Prüfung/zweili_andreas_A2.sql | 72 ----------- 2 files changed, 3 insertions(+), 190 deletions(-) diff --git a/db/2_sem/SEP Prüfung/SEP Prüfung/zweili_andreas_A1.sql b/db/2_sem/SEP Prüfung/SEP Prüfung/zweili_andreas_A1.sql index a474502..5a1af8b 100644 --- a/db/2_sem/SEP Prüfung/SEP Prüfung/zweili_andreas_A1.sql +++ b/db/2_sem/SEP Prüfung/SEP Prüfung/zweili_andreas_A1.sql @@ -1,4 +1,3 @@ -<<<<<<< HEAD -- Dateiname zweili_andreas_A1.sql -- -- Beschreibung: SEP Datenbank 2 Gartencenter @@ -8,6 +7,9 @@ -- Server Version: SQL Server 2016 -- Tabelle Lieferant erstellen +if not exists (select * from sys.databases where name='Gartencenter') + CREATE DATABASE Gartencenter; + use Gartencenter if not exists (select * from sysobjects where name='Lieferant') CREATE TABLE Lieferant ( @@ -113,121 +115,4 @@ go IF OBJECT_ID('dbo.[C_BES_LIEFERDATUM]', 'C') IS NULL ALTER TABLE Bestellung ADD CONSTRAINT C_BES_LIEFERDATUM CHECK (Bestellung.BES_LIEFERDATUM > CURRENT_TIMESTAMP) -go -======= --- Dateiname zweili_andreas_A1.sql --- --- Beschreibung: SEP Datenbank 2 Gartencenter --- --- Autor: Andreas Zweili --- Datum: 11.03.2017 --- Server Version: SQL Server 2016 - --- Tabelle Lieferant erstellen -use Gartencenter -if not exists (select * from sysobjects where name='Lieferant') - CREATE TABLE Lieferant ( - LFR_CODE int identity(1,1) not null, - LFR_NAME varchar(40) null, - LFR_ADRESSE varchar(40) null, - LFR_PLZ int null, - LFR_WOHNORT varchar(40) null - constraint PK_LFR_CODE primary key (LFR_CODE) -); go - --- Tabelle Bestellung erstellen -use Gartencenter -if not exists (select * from sysobjects where name='Bestellung') - CREATE TABLE Bestellung ( - BES_ID int identity(1,1) not null, - BES_BESTELLDATUM date not null, - BES_LIEFERDATUM date not null, - BES_BETRAG float not null, - LFR_CODE int not null - constraint PK_BES_ID primary key (BES_ID) -); -go - --- Tabelle Pflanze erstellen -use Gartencenter -if not exists (select * from sysobjects where name='Pflanze') - CREATE TABLE Pflanze ( - PFL_ID int identity(1,1) not null, - PFL_NAME varchar(40) null, - PFL_SORTE varchar(40) null, - PFL_FARBE varchar(40) null, - PFL_HOEHE float null, - PFL_BEGIN date null, - PFL_END date null, - PFL_PREIS float null - constraint PK_PFL_ID primary key (PFL_ID) -); -go - --- Tabelle Angebot erstellen -use Gartencenter -if not exists (select * from sysobjects where name='Angebot') - CREATE TABLE Angebot ( - ANG_ID int identity(1,1) not null, - PFL_ID int not null, - LFR_CODE int not null, - ANG_PREIS varchar(40) null, - ANG_LIEFERZEIT int null - constraint PK_ANG_ID primary key (ANG_ID) -); -go - --- Tabelle Bestelldaten erstellen -use Gartencenter -if not exists (select * from sysobjects where name='Bestelldaten') - CREATE TABLE Bestelldaten ( - ANG_ID int not null, - BES_ID int not null, - BED_ANZAHL int null, - BED_EINZELPREIS float null - constraint PK_BESTELLDATEN primary key (ANG_ID, BES_ID) -); -go - - --- Foreign Key Constraints hinzufügen -IF OBJECT_ID('dbo.[FK_LFR_CODE]', 'F') IS NULL - ALTER TABLE Bestellung ADD CONSTRAINT FK_LFR_CODE - FOREIGN KEY (LFR_CODE) REFERENCES Lieferant (LFR_CODE); -go - -IF OBJECT_ID('dbo.[FK_PFL_ID]', 'F') IS NULL - ALTER TABLE Angebot ADD CONSTRAINT FK_PFL_ID - FOREIGN KEY (PFL_ID) REFERENCES Pflanze (PFL_ID); -go - -IF OBJECT_ID('dbo.[FK_LFR_CODE_ANGEBOT]', 'F') IS NULL - ALTER TABLE Angebot ADD CONSTRAINT FK_LFR_CODE_ANGEBOT - FOREIGN KEY (LFR_CODE) REFERENCES Lieferant (LFR_CODE); -go - -IF OBJECT_ID('dbo.[FK_BESTELLUNG_ANGEBOT]', 'F') IS NULL - ALTER TABLE Bestelldaten ADD CONSTRAINT FK_BESTELLUNG_ANGEBOT - FOREIGN KEY (ANG_ID) REFERENCES Angebot(ANG_ID), - FOREIGN KEY (BES_ID) REFERENCES Bestellung(BES_ID); -go - --- Check Constraints on Pflanze -IF OBJECT_ID('dbo.[C_PFL_PREIS]', 'C') IS NULL - ALTER TABLE Pflanze ADD CONSTRAINT C_PFL_PREIS - CHECK (Pflanze.PFL_PREIS > 0.0); -go - -IF OBJECT_ID('dbo.[C_PFL_END]', 'C') IS NULL - ALTER TABLE Pflanze ADD CONSTRAINT C_PFL_END - CHECK (Pflanze.PFL_BEGIN < Pflanze.PFL_END); -go - --- Check Constraint on Bestellung - -IF OBJECT_ID('dbo.[C_BES_LIEFERDATUM]', 'C') IS NULL - ALTER TABLE Bestellung ADD CONSTRAINT C_BES_LIEFERDATUM - CHECK (Bestellung.BES_LIEFERDATUM > CURRENT_TIMESTAMP) -go ->>>>>>> 91c37e0a13ad9148d1d6356ee6197441ad0a42e5 diff --git a/db/2_sem/SEP Prüfung/SEP Prüfung/zweili_andreas_A2.sql b/db/2_sem/SEP Prüfung/SEP Prüfung/zweili_andreas_A2.sql index 7412193..defc2d7 100644 --- a/db/2_sem/SEP Prüfung/SEP Prüfung/zweili_andreas_A2.sql +++ b/db/2_sem/SEP Prüfung/SEP Prüfung/zweili_andreas_A2.sql @@ -1,4 +1,3 @@ -<<<<<<< HEAD -- Dateiname zweili_andreas_A2.sql -- -- Beschreibung: SEP Datenbank 2 @@ -68,75 +67,4 @@ update abo set delete from mitglied where mitglied_name = 'Keller' -======= --- Dateiname zweili_andreas_A2.sql --- --- Beschreibung: SEP Datenbank 2 --- --- Autor: Andreas Zweili --- Datum: 11.03.2017 - - --- A2.1 -use Abo -select m.mitglied_name, m.mitglied_vorname, m.eintrittsdatum from mitglied m - inner join anrede a - on a.anrede_id = m.anrede_id - order by m.mitglied_name ASC, m.mitglied_vorname ASC; - - - --- A2.2 -use Abo -select m.mitglied_name, m.mitglied_vorname, m.eintrittsdatum, abo.abo_gebuehr from mitglied m - inner join abo - on abo.abo_id = m.abo_id - where abo.abo_gebuehr > '1000'; - --- A2.3 -use Abo -select * from mitglied m - where m.mitglied_name like '%ll%' - order by m.mitglied_id DESC; - --- A2.4 -use Abo -select * from mitglied m - where m.eintrittsdatum is NULL; - --- A2.5 -use Abo -select m.mitglied_name, m.mitglied_vorname, m.eintrittsdatum, o.postleizahl, o.ortsname - from mitglied m - inner join ort o on m.ort_id = o.ort_id - where m.eintrittsdatum between convert(date, '01.01.1990', 104) and convert(date, '31.12.1995', 104) - order by o.postleizahl asc; - --- A2.6 -use Abo -select a.anrede, m.mitglied_name, m.mitglied_vorname, o.postleizahl, o.ortsname, abo_name from mitglied m - inner join anrede a - on a.anrede_id = m.anrede_id - inner join ort o - on o.ort_id = m.ort_id - inner join abo - on m.abo_id = abo.abo_id - where a.anrede = 'Herr' - and (o.ortsname = 'Basel' - or o.ortsname = 'Zürich'); - --- A2.7 - -update abo set - abo.abo_gebuehr = '550' - where abo.abo_name = 'Student'; -update abo set - abo.abo_gebuehr = '165' - where abo.abo_name = 'Monatsabo'; - --- A2.8 - -delete from mitglied - where mitglied_name = 'Keller' ->>>>>>> 91c37e0a13ad9148d1d6356ee6197441ad0a42e5 and mitglied_vorname = 'Georg'; \ No newline at end of file From 456129e2c804e6b9b78549fa3603995e1081ac1d Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Sat, 27 May 2017 18:12:24 +0200 Subject: [PATCH 19/35] add files for is-a excercise --- .../is_an_aircraft/is_an_aircraft.ssmssln | 18 ++++++ .../is_an_aircraft/create_database.sql | 10 ++++ .../is_an_aircraft/create_table.sql | 58 +++++++++++++++++++ .../is_an_aircraft/insert_data.sql | 21 +++++++ .../is_an_aircraft/is_an_aircraft.ssmssqlproj | 33 +++++++++++ .../is_an_aircraft/remove_database.sql | 23 ++++++++ 6 files changed, 163 insertions(+) create mode 100644 db/3_sem/is_an_aircraft/is_an_aircraft.ssmssln create mode 100644 db/3_sem/is_an_aircraft/is_an_aircraft/create_database.sql create mode 100644 db/3_sem/is_an_aircraft/is_an_aircraft/create_table.sql create mode 100644 db/3_sem/is_an_aircraft/is_an_aircraft/insert_data.sql create mode 100644 db/3_sem/is_an_aircraft/is_an_aircraft/is_an_aircraft.ssmssqlproj create mode 100644 db/3_sem/is_an_aircraft/is_an_aircraft/remove_database.sql diff --git a/db/3_sem/is_an_aircraft/is_an_aircraft.ssmssln b/db/3_sem/is_an_aircraft/is_an_aircraft.ssmssln new file mode 100644 index 0000000..0ee6f9f --- /dev/null +++ b/db/3_sem/is_an_aircraft/is_an_aircraft.ssmssln @@ -0,0 +1,18 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# SQL Server Management Studio Solution File, Format Version 13.00 +VisualStudioVersion = 14.0.23107.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{4F2E2C19-372F-40D8-9FA7-9D2138C6997A}") = "is_an_aircraft", "is_an_aircraft\is_an_aircraft.ssmssqlproj", "{F39278EA-3B78-45EE-90A4-FB370F21FF41}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Default|Default = Default|Default + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F39278EA-3B78-45EE-90A4-FB370F21FF41}.Default|Default.ActiveCfg = Default + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/db/3_sem/is_an_aircraft/is_an_aircraft/create_database.sql b/db/3_sem/is_an_aircraft/is_an_aircraft/create_database.sql new file mode 100644 index 0000000..158d03e --- /dev/null +++ b/db/3_sem/is_an_aircraft/is_an_aircraft/create_database.sql @@ -0,0 +1,10 @@ +-- Dateiname create_database.sql +-- +-- Beschreibung: Is an Airplane Ãœbung +-- +-- Autor: Andreas Zweili +-- Datum: 2017-05-27 +-- Server Version: SQL Server 2016 + +if not exists (select * from sys.databases where name='Luftfahrzeuge') + CREATE DATABASE Luftfahrzeuge; diff --git a/db/3_sem/is_an_aircraft/is_an_aircraft/create_table.sql b/db/3_sem/is_an_aircraft/is_an_aircraft/create_table.sql new file mode 100644 index 0000000..ce3bb4d --- /dev/null +++ b/db/3_sem/is_an_aircraft/is_an_aircraft/create_table.sql @@ -0,0 +1,58 @@ +-- Dateiname create_table.sql +-- +-- Beschreibung: Is an Airplane Ãœbung +-- +-- Autor: Andreas Zweili +-- Datum: 2017-05-27 +-- Server Version: SQL Server 2016 + +use Luftfahrzeuge +if not exists (select * from sysobjects where name='Luftfahrzeug') + CREATE TABLE Luftfahrzeug ( + LFZ_ID int not null, + LFZ_HERSTELLER varchar(40) not null, + LFZ_BAUJAHR integer not null, + constraint PK_LFZ_ID primary key (LFZ_ID) + ); + +use Luftfahrzeuge +if not exists (select * from sysobjects where name='Flugzeug') + CREATE TABLE Flugzeug ( + FLZ_ID int not null, + FLU_SPANNWEITE float, + constraint PK_FLZ_ID primary key (FLZ_ID) + ); + +use Luftfahrzeuge +if not exists (select * from sysobjects where name='Hubschrauber') + CREATE TABLE Hubschrauber ( + HUB_ID int not null, + HUB_ROTORDURCHMESSER float, + constraint PK_HUB_ID primary key (HUB_ID) + ); + +use Luftfahrzeuge +if not exists (select * from sysobjects where name='Zeppelin') + CREATE TABLE Zeppelin ( + ZEP_ID int not null, + ZEP_GASVOLUMEN float, + constraint PK_ZEP_ID primary key (ZEP_ID) + ); + +-- Foreign Key Constraints hinzufügen +IF OBJECT_ID('dbo.[FK_LFZ_ID]', 'F') IS NULL + ALTER TABLE Flugzeug ADD CONSTRAINT FK_LFZ_ID + FOREIGN KEY (FLZ_ID) REFERENCES Luftfahrzeug (LFZ_ID); +go + +-- Foreign Key Constraints hinzufügen +IF OBJECT_ID('dbo.[FK_LFZ_ID]', 'F') IS NULL + ALTER TABLE Hubschrauber ADD CONSTRAINT FK_HUB_ID + FOREIGN KEY (HUB_ID) REFERENCES Luftfahrzeug (LFZ_ID); +go + +-- Foreign Key Constraints hinzufügen +IF OBJECT_ID('dbo.[FK_LFZ_ID]', 'F') IS NULL + ALTER TABLE Zeppelin ADD CONSTRAINT FK_ZEP_ID + FOREIGN KEY (ZEP_ID) REFERENCES Luftfahrzeug (LFZ_ID); +go diff --git a/db/3_sem/is_an_aircraft/is_an_aircraft/insert_data.sql b/db/3_sem/is_an_aircraft/is_an_aircraft/insert_data.sql new file mode 100644 index 0000000..f82979c --- /dev/null +++ b/db/3_sem/is_an_aircraft/is_an_aircraft/insert_data.sql @@ -0,0 +1,21 @@ +-- Dateiname insert_data.sql +-- +-- Beschreibung: Is an Airplane Ãœbung +-- +-- Autor: Andreas Zweili +-- Datum: 2017-05-27 +-- Server Version: SQL Server 2016 + + +use Luftfahrzeuge + +insert into dbo.Luftfahrzeug (LFZ_ID, LFZ_HERSTELLER, LFZ_BAUJAHR) + values ('1000','Airbus','2012'), + ('2000','Alouette','1980'); + +insert into dbo.Flugzeug (FLZ_ID, FLU_SPANNWEITE) + values ('1000','40'); + + +insert into dbo.Hubschrauber (HUB_ID, HUB_ROTORDURCHMESSER) + values ('2000','8'); diff --git a/db/3_sem/is_an_aircraft/is_an_aircraft/is_an_aircraft.ssmssqlproj b/db/3_sem/is_an_aircraft/is_an_aircraft/is_an_aircraft.ssmssqlproj new file mode 100644 index 0000000..8f2791a --- /dev/null +++ b/db/3_sem/is_an_aircraft/is_an_aircraft/is_an_aircraft.ssmssqlproj @@ -0,0 +1,33 @@ + + + + + + + + + + + + + create_table.sql + + + + + + insert_data.sql + + + + + + remove_database.sql + + + + + + + + \ No newline at end of file diff --git a/db/3_sem/is_an_aircraft/is_an_aircraft/remove_database.sql b/db/3_sem/is_an_aircraft/is_an_aircraft/remove_database.sql new file mode 100644 index 0000000..49e9fca --- /dev/null +++ b/db/3_sem/is_an_aircraft/is_an_aircraft/remove_database.sql @@ -0,0 +1,23 @@ +-- Removes the tables for the Flugzeug DB +-- +-- Author: Andreas Zweili +-- Erstellt: 2017-05-27 +-- DB-Server SQL Server 2016 + +use Luftfahrzeuge; + +if exists (select * from sysobjects where name='Flugzeug') + drop table Flugzeug; + +if exists (select * from sysobjects where name='Hubschrauber') + drop table Hubschrauber; + +if exists (select * from sysobjects where name='Zeppelin') + drop table Zeppelin; + +if exists (select * from sysobjects where name='Luftfahrzeug') + drop table Luftfahrzeug; + +use master; +if exists (select * from sys.databases where name='Luftfahrzeuge') + drop DATABASE Luftfahrzeuge; From fee6e74cd6021579821d13b3fa90c64872ea125f Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Sat, 27 May 2017 18:15:19 +0200 Subject: [PATCH 20/35] fix a bug --- db/3_sem/is_an_aircraft/is_an_aircraft/create_table.sql | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/db/3_sem/is_an_aircraft/is_an_aircraft/create_table.sql b/db/3_sem/is_an_aircraft/is_an_aircraft/create_table.sql index ce3bb4d..5222a4a 100644 --- a/db/3_sem/is_an_aircraft/is_an_aircraft/create_table.sql +++ b/db/3_sem/is_an_aircraft/is_an_aircraft/create_table.sql @@ -40,19 +40,19 @@ if not exists (select * from sysobjects where name='Zeppelin') ); -- Foreign Key Constraints hinzufügen -IF OBJECT_ID('dbo.[FK_LFZ_ID]', 'F') IS NULL - ALTER TABLE Flugzeug ADD CONSTRAINT FK_LFZ_ID +IF OBJECT_ID('dbo.[FK_FLZ_ID]', 'F') IS NULL + ALTER TABLE Flugzeug ADD CONSTRAINT FK_FLZ_ID FOREIGN KEY (FLZ_ID) REFERENCES Luftfahrzeug (LFZ_ID); go -- Foreign Key Constraints hinzufügen -IF OBJECT_ID('dbo.[FK_LFZ_ID]', 'F') IS NULL +IF OBJECT_ID('dbo.[FK_HUB_ID]', 'F') IS NULL ALTER TABLE Hubschrauber ADD CONSTRAINT FK_HUB_ID FOREIGN KEY (HUB_ID) REFERENCES Luftfahrzeug (LFZ_ID); go -- Foreign Key Constraints hinzufügen -IF OBJECT_ID('dbo.[FK_LFZ_ID]', 'F') IS NULL +IF OBJECT_ID('dbo.[FK_ZEP_ID]', 'F') IS NULL ALTER TABLE Zeppelin ADD CONSTRAINT FK_ZEP_ID FOREIGN KEY (ZEP_ID) REFERENCES Luftfahrzeug (LFZ_ID); go From 7676a2a301279f663446ccc36a9d08e2baaa9e17 Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Sat, 27 May 2017 18:17:20 +0200 Subject: [PATCH 21/35] update after closing SQL Studio --- .../is_an_aircraft/is_an_aircraft.ssmssqlproj | 33 +++++++++++++++---- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/db/3_sem/is_an_aircraft/is_an_aircraft/is_an_aircraft.ssmssqlproj b/db/3_sem/is_an_aircraft/is_an_aircraft/is_an_aircraft.ssmssqlproj index 8f2791a..1e0c184 100644 --- a/db/3_sem/is_an_aircraft/is_an_aircraft/is_an_aircraft.ssmssqlproj +++ b/db/3_sem/is_an_aircraft/is_an_aircraft/is_an_aircraft.ssmssqlproj @@ -2,25 +2,44 @@ - + + + 2017-05-27T17:43:46.0617539+02:00 + SQL + WIN-10-SFR\SQL2016 + + Windows Authentication + + 15 + 0 + NotSpecified + Microsoft SQL Server Management Studio - Query + + + + 8c91a03d-f9b4-46c0-a305-b5dcc79ff907:WIN-10-SFR\SQL2016:True + WIN-10-SFR\SQL2016 + + create_database.sql + - - + 8c91a03d-f9b4-46c0-a305-b5dcc79ff907:WIN-10-SFR\SQL2016:True + WIN-10-SFR\SQL2016 create_table.sql - - + 8c91a03d-f9b4-46c0-a305-b5dcc79ff907:WIN-10-SFR\SQL2016:True + WIN-10-SFR\SQL2016 insert_data.sql - - + 8c91a03d-f9b4-46c0-a305-b5dcc79ff907:WIN-10-SFR\SQL2016:True + WIN-10-SFR\SQL2016 remove_database.sql From 3bc1430c17e053b34c9bda07fea8f06f41b3ab52 Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Sun, 28 May 2017 14:21:52 +0200 Subject: [PATCH 22/35] add a selections file --- .../is_an_aircraft/selections.sql | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 db/3_sem/is_an_aircraft/is_an_aircraft/selections.sql diff --git a/db/3_sem/is_an_aircraft/is_an_aircraft/selections.sql b/db/3_sem/is_an_aircraft/is_an_aircraft/selections.sql new file mode 100644 index 0000000..5281d3d --- /dev/null +++ b/db/3_sem/is_an_aircraft/is_an_aircraft/selections.sql @@ -0,0 +1,23 @@ +-- Dateiname selections.sql +-- +-- Beschreibung: Is an Airplane Ãœbung +-- +-- Autor: Andreas Zweili +-- Datum: 2017-05-27 +-- Server Version: SQL Server 2016 + +use Luftfahrzeuge +select l.LFZ_ID, l.LFZ_HERSTELLER, l.LFZ_BAUJAHR, + f.FLU_SPANNWEITE from Luftfahrzeug l + inner join Flugzeug f + on f.FLZ_ID = l.LFZ_ID; + +select l.LFZ_ID, l.LFZ_HERSTELLER, l.LFZ_BAUJAHR, + h.HUB_ROTORDURCHMESSER from Luftfahrzeug l + inner join Hubschrauber h + on h.HUB_ID = l.LFZ_ID; + +select l.LFZ_ID, l.LFZ_HERSTELLER, l.LFZ_BAUJAHR, + z.ZEP_GASVOLUMEN from Luftfahrzeug l + inner join Zeppelin z + on z.ZEP_ID = l.LFZ_ID; From 28e61b097e3634d8bc4dd6d593c48217ec67ea7c Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Sun, 28 May 2017 14:31:13 +0200 Subject: [PATCH 23/35] update the is-a project --- .../is_an_aircraft/is_an_aircraft.ssmssqlproj | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/db/3_sem/is_an_aircraft/is_an_aircraft/is_an_aircraft.ssmssqlproj b/db/3_sem/is_an_aircraft/is_an_aircraft/is_an_aircraft.ssmssqlproj index 1e0c184..776960f 100644 --- a/db/3_sem/is_an_aircraft/is_an_aircraft/is_an_aircraft.ssmssqlproj +++ b/db/3_sem/is_an_aircraft/is_an_aircraft/is_an_aircraft.ssmssqlproj @@ -43,6 +43,12 @@ remove_database.sql + + 8c91a03d-f9b4-46c0-a305-b5dcc79ff907:WIN-10-SFR\SQL2016:True + WIN-10-SFR\SQL2016 + + selections.sql + From c40bb08fc9b4ce9ba7809526b6957ecf7f58410d Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Sun, 28 May 2017 14:31:27 +0200 Subject: [PATCH 24/35] create new project for recursion excercise --- .../recursion_excercise.ssmssln | 19 +++++++++++++++++++ .../recursion_excercise.ssmssqlproj | 9 +++++++++ 2 files changed, 28 insertions(+) create mode 100644 db/3_sem/recursion_excercise/recursion_excercise.ssmssln create mode 100644 db/3_sem/recursion_excercise/recursion_excercise/recursion_excercise.ssmssqlproj diff --git a/db/3_sem/recursion_excercise/recursion_excercise.ssmssln b/db/3_sem/recursion_excercise/recursion_excercise.ssmssln new file mode 100644 index 0000000..a78bf28 --- /dev/null +++ b/db/3_sem/recursion_excercise/recursion_excercise.ssmssln @@ -0,0 +1,19 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# SQL Server Management Studio Solution File, Format Version 13.00 +VisualStudioVersion = 14.0.23107.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{4F2E2C19-372F-40D8-9FA7-9D2138C6997A}") = "recursion_excercise", "recursion_excercise\recursion_excercise.ssmssqlproj", "{DBD36523-4CE3-4DFD-B808-1390BF12E72C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Default|Default = Default|Default + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {DBD36523-4CE3-4DFD-B808-1390BF12E72C}.Default|Default.ActiveCfg = Default + {A6A62C4A-1940-4632-91E2-D99051C5F539}.Default|Default.ActiveCfg = Default + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/db/3_sem/recursion_excercise/recursion_excercise/recursion_excercise.ssmssqlproj b/db/3_sem/recursion_excercise/recursion_excercise/recursion_excercise.ssmssqlproj new file mode 100644 index 0000000..f5a929d --- /dev/null +++ b/db/3_sem/recursion_excercise/recursion_excercise/recursion_excercise.ssmssqlproj @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file From 020a1bbd019e59a86ef6815237b0d89342e1d692 Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Sun, 28 May 2017 15:16:44 +0200 Subject: [PATCH 25/35] add all required files for the recursion excercise --- .../recursion_excercise/TeileInsert.sql | 627 ++++++++++++++++++ .../recursion_excercise/create_database.sql | 10 + .../recursion_excercise/create_table.sql | 52 ++ .../recursion_excercise.ssmssqlproj | 55 +- .../recursion_excercise/remove_database.sql | 17 + .../recursion_excercise/selections.sql | 23 + 6 files changed, 778 insertions(+), 6 deletions(-) create mode 100644 db/3_sem/recursion_excercise/recursion_excercise/TeileInsert.sql create mode 100644 db/3_sem/recursion_excercise/recursion_excercise/create_database.sql create mode 100644 db/3_sem/recursion_excercise/recursion_excercise/create_table.sql create mode 100644 db/3_sem/recursion_excercise/recursion_excercise/remove_database.sql create mode 100644 db/3_sem/recursion_excercise/recursion_excercise/selections.sql diff --git a/db/3_sem/recursion_excercise/recursion_excercise/TeileInsert.sql b/db/3_sem/recursion_excercise/recursion_excercise/TeileInsert.sql new file mode 100644 index 0000000..76cbe2f --- /dev/null +++ b/db/3_sem/recursion_excercise/recursion_excercise/TeileInsert.sql @@ -0,0 +1,627 @@ +use bike_shop +delete from struktur +delete from teile +go + +INSERT INTO teile +VALUES +(1,'Stück','Rocky Mountain Element Race', 'Artikel', + 2600,0, 20, 10, 20, 20, 2, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(2,'Stück','Rahmen Element Race', 'Baugruppe', + 300,0, 20, 10, 10, 10, 1, 0, 0, getdate()) + +INSERT INTO teile +VALUES +(3,'kg','Silberfarbe', 'Material', + 0,2, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(4,'kg','Sintermetall', 'Material', + 0,5, 20, 10, 10, 10, 1, 0, 0, getdate()) + + + +INSERT INTO teile +VALUES +(5,'Stück','Gabel SID XC', 'Material', + 0,1230, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(24,'Stück','Tretlager Race Face', 'Material', + 0,18, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(7,'Stück','Kurbelsatz Race Face', 'Material', + 0,18, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(8,'Stück','Schaltwerk XTR', 'Material', + 0,150, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(9,'Stück','Pedale Shimano 747', 'Material', + 0,5, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(10,'Stück','Schalthebel Grip Shift', 'Material', + 0,79, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(11,'Stück','Rad xtr', 'Baugruppe', + 50,0, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(12,'Stück','Naben Mavic Crossmax', 'Material', +0, 0.50 , 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(13,'Stück','Felgen Mavic Crossmax', 'Material', +0, 0.60 , 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(14,'Stück','Speichen Mavic Crossmax', 'Material', + 0, 0.50 , 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(15,'Stück','Bereifung Richtey, Vo: Z-Max ', 'Material', + 0, 22, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(16,'Stück','Steuersatz Chris King', 'Material', +0, 28, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(17,'Stück','Vorbau Control Tech', 'Material', +0, 28, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(18,'Stück','Lenker Answer Hyperlite', 'Material', +0, 109, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(19,'Stück','Griffe LGrip Shift ', 'Material', +0, 10, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(20,'Stück','Bremshebel XTR', 'Material', +0, 11, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(21,'Stück','Bremsen XTR', 'Material', +0, 110, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(22,'Stück','Sattel Flite', 'Material', +0, 60, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(28,'Stück','Bremse Shimano Alivio Cantilever ', 'Material', +0, 29, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(23,'Stück','Sattelstütze Syncros', 'Material', +0, 28, 20, 10, 10, 10, 1, 0, 0, getdate()) + +INSERT INTO teile +VALUES +(25,'Stück','Bremse Shimano XTR V-Brake ', 'Material', +0, 149, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(26,'Stück','GABEL TOP GUN ', 'Material', +0, 299, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(27,'Stück','Shimano STX-RC i', 'Material', + 0,69, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(29,'Stück','Rahmen Cannondale CAD3 Headshok', 'Material', + 0,1590, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(30,'Stück','Rahmen Super V', 'Material', + 0,2590, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(31,'Stück','Herrenrad GT-LTS 18', 'Artikel', + 3000,0, 20, 10, 20, 20, 2, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(32,'Stück','Rahmen GT-LTS 18"', 'Baugruppe', + 300,0, 20, 10, 10, 10, 1, 0, 0, getdate()) + +INSERT INTO teile +VALUES +(33,'kg','Vb-Farbe', 'Material', + 0,2, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(34,'kg','Aluminium', 'Material', + 0,8, 20, 10, 10, 10, 1, 0, 0, getdate()) + + + +INSERT INTO teile +VALUES +(35,'Stück','RST Hi-5', 'Material', + 0,30, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(36,'Stück','Race Face (TITAN)', 'Material', + 0,18, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(37,'Stück','Kurbelsatz Ritchey Logic', 'Material', + 0,19, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(38,'Stück','Schaltwerk XTR inverse', 'Material', + 0,252, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(39,'Stück','Pedale XT', 'Material', + 0,9, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(40,'Stück','Schalthebel Grip Shift 4', 'Material', + 0,9, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(41,'Stück','Rad XTR 47', 'Baugruppe', + 60,0, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(42,'Stück','Naben Inferno', 'Material', + 0, 0.50 , 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(43,'Stück','Felgen Inferno', 'Material', + 0, 0.60 , 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(44,'Stück','Speichen Mavic Crossmax', 'Material', + 0, 0.50 , 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(45,'Stück','Bereifung Continental ', 'Material', +0, 22, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(46,'Stück','Steuersatz Race Face', 'Material', + 0, 28, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(47,'Stück','Vorbau Syncros', 'Material', + 0, 70, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(48,'Stück','Lenker Syncros (Downhill)', 'Material', + 0, 140, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(49,'Stück','Griffe LGrip Shift ', 'Material', + 0, 10, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(50,'Stück','Bremshebel TWP G-Force', 'Material', + 0, 17, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(51,'Stück','Bremsen Magura Race Line', 'Material', + 0, 150, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(52,'Stück','Sattel Selle Flite Titanium', 'Material', + 0, 80, 20, 10, 10, 10, 1, 0, 0, getdate()) + + + +INSERT INTO teile +VALUES +(53,'Stück','Sattelstütze XTR', 'Material', +0, 30, 20, 10, 10, 10, 1, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(54,'Stück','Klapprad Prompton P3', 'Artikel', +0, 1200, 20, 10, 10, 10, 0, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(55,'Stück','CANNONDALE FSL', 'Artikel', +0, 4200, 20, 10, 10, 10, 0, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(56,'Stück','HERCULES NEPAL', 'Artikel', +0, 1200, 20, 10, 10, 10, 0, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(57,'Stück','Steppenwolf TAO', 'Artikel', +0, 1600, 20, 10, 10, 10, 0, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(58,'Stück','SWITCHBACK AGENT', 'Artikel', +0, 599, 20, 10, 10, 10, 0, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(59,'Stück','STEVENS R.P.R.2 RX100 8FACH', 'Artikel', +0, 1700, 20, 10, 10, 10, 0, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(60,'Stück','Scott ATACAMA TOUR', 'Artikel', +0, 1899, 20, 10, 10, 10, 0, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(61,'Stück','ROTWILD RCC-03', 'Artikel', +0, 3280, 20, 10, 10, 10, 0, 0, 0, getdate()) + + +INSERT INTO teile +VALUES +(62,'Stück','Lenker', 'Baugruppe', +0, 280, 20, 10, 10, 10, 0, 0, 0, getdate()) + +go + +INSERT INTO struktur +VALUES +(1, 2, 1, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(2, 3, 2, 10, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(2, 4, 3, 20, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(1, 5, 4, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(1, 24, 5, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(1, 7, 6, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(1, 8, 7, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(1, 9, 8, 2, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(1, 10, 9, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(1, 11, 10, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(1, 16, 11, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(1, 17, 12, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(1, 18, 13, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(1, 19, 14, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(1, 20, 15, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(1, 21, 16, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(1, 22, 17, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(1, 23, 18, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(11, 12, 1, 50, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(11, 13, 2, 50, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(11, 14, 3, 50, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(11, 15, 4, 2, 0, 0, getdate()) + + + + +INSERT INTO struktur +VALUES +(31, 32, 1, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(32, 33, 2, 10, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(32, 34, 3, 20, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(31, 35, 4, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(31, 44, 5, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(31, 37, 6, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(31, 38, 7, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(31, 39, 8, 2, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(31, 40, 9, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(31, 41, 10, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(31, 46, 11, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(31, 47, 12, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(31, 48, 13, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(31, 49, 14, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(31, 50, 15, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(31, 51, 16, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(31, 52, 17, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(31, 53, 18, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(41, 42, 1, 50, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(41, 43, 2, 50, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(41, 44, 3, 50, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(41, 45, 4, 2, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(60, 2, 1, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(60, 41, 1, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(60, 62, 1, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(62, 49, 1, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(62, 40, 1, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(40, 34, 1, 1, 0, 0, getdate()) + + +INSERT INTO struktur +VALUES +(40, 3, 1, 1, 0, 0, getdate()) diff --git a/db/3_sem/recursion_excercise/recursion_excercise/create_database.sql b/db/3_sem/recursion_excercise/recursion_excercise/create_database.sql new file mode 100644 index 0000000..ae4135b --- /dev/null +++ b/db/3_sem/recursion_excercise/recursion_excercise/create_database.sql @@ -0,0 +1,10 @@ +-- Dateiname create_database.sql +-- +-- Beschreibung: recursion excercise +-- +-- Autor: Andreas Zweili +-- Datum: 2017-05-28 +-- Server Version: SQL Server 2016 + +if not exists (select * from sys.databases where name='bike_shop') + CREATE DATABASE bike_shop; diff --git a/db/3_sem/recursion_excercise/recursion_excercise/create_table.sql b/db/3_sem/recursion_excercise/recursion_excercise/create_table.sql new file mode 100644 index 0000000..d5b1fbb --- /dev/null +++ b/db/3_sem/recursion_excercise/recursion_excercise/create_table.sql @@ -0,0 +1,52 @@ +-- Dateiname create_table.sql +-- +-- Beschreibung: recursion excercise +-- +-- Autor: Andreas Zweili +-- Datum: 2017-05-28 +-- Server Version: SQL Server 2016 + +use bike_shop +if not exists (select * from sysobjects where name='teile') + CREATE TABLE teile( + TNr int not null, + Me varchar(10), + Bezeichnung varchar(50), + Typ varchar(50), + Herstellkosten float, + Einkaufspreis float, + Mindestbestand int, + Bestand int, + Lieferzeit int, + Herstelldauer int, + Gewicht int, + Reserviert int, + Verfügbar int, + Zeitstempel DATE, + constraint PK_TNr primary key (TNr) + ); + +use bike_shop +if not exists (select * from sysobjects where name='struktur') + CREATE TABLE struktur( + OTeil int, + UTeil int, + Position int not null, + Menge int, + Ausschuss int, + Arbeitsgang int, + Zeitstempel DATE, + constraint PK_POS primary key (OTeil, UTeil, Position) + ); + +-- Foreign Key Constraints hinzufügen +IF OBJECT_ID('dbo.[FK_OTeil]', 'O') IS NULL + ALTER TABLE struktur ADD CONSTRAINT FK_OTeil + FOREIGN KEY (OTeil) REFERENCES teile (TNr); +go + +-- Foreign Key Constraints hinzufügen +IF OBJECT_ID('dbo.[FK_UTeil]', 'U') IS NULL + ALTER TABLE struktur ADD CONSTRAINT FK_UTeil + FOREIGN KEY (UTeil) REFERENCES teile (TNr); +go diff --git a/db/3_sem/recursion_excercise/recursion_excercise/recursion_excercise.ssmssqlproj b/db/3_sem/recursion_excercise/recursion_excercise/recursion_excercise.ssmssqlproj index f5a929d..a54802d 100644 --- a/db/3_sem/recursion_excercise/recursion_excercise/recursion_excercise.ssmssqlproj +++ b/db/3_sem/recursion_excercise/recursion_excercise/recursion_excercise.ssmssqlproj @@ -1,9 +1,52 @@ - - + + - - - - + + + + 2017-05-28T14:55:42.7426112+02:00 + SQL + WIN-10-SFR\SQL2016 + + Windows Authentication + + 15 + 0 + NotSpecified + Microsoft SQL Server Management Studio - Query + + + + + + + 8c91a03d-f9b4-46c0-a305-b5dcc79ff907:WIN-10-SFR\SQL2016:True + WIN-10-SFR\SQL2016 + + create_database.sql + + + 8c91a03d-f9b4-46c0-a305-b5dcc79ff907:WIN-10-SFR\SQL2016:True + WIN-10-SFR\SQL2016 + + create_table.sql + + + 8c91a03d-f9b4-46c0-a305-b5dcc79ff907:WIN-10-SFR\SQL2016:True + WIN-10-SFR\SQL2016 + + remove_database.sql + + + 8c91a03d-f9b4-46c0-a305-b5dcc79ff907:WIN-10-SFR\SQL2016:True + WIN-10-SFR\SQL2016 + + TeileInsert.sql + + + + + + \ No newline at end of file diff --git a/db/3_sem/recursion_excercise/recursion_excercise/remove_database.sql b/db/3_sem/recursion_excercise/recursion_excercise/remove_database.sql new file mode 100644 index 0000000..9f474ff --- /dev/null +++ b/db/3_sem/recursion_excercise/recursion_excercise/remove_database.sql @@ -0,0 +1,17 @@ +-- Removes the bike_shop DB +-- +-- Author: Andreas Zweili +-- Erstellt: 2017-05-28 +-- DB-Server SQL Server 2016 + +use bike_shop; + +if exists (select * from sysobjects where name='teile') + drop table teile; + +if exists (select * from sysobjects where name='struktur') + drop table struktur; + +use master; +if exists (select * from sys.databases where name='bike_shop') + drop DATABASE bike_shop; diff --git a/db/3_sem/recursion_excercise/recursion_excercise/selections.sql b/db/3_sem/recursion_excercise/recursion_excercise/selections.sql new file mode 100644 index 0000000..098ec06 --- /dev/null +++ b/db/3_sem/recursion_excercise/recursion_excercise/selections.sql @@ -0,0 +1,23 @@ +-- Dateiname selections.sql +-- +-- Beschreibung: recursion excercise +-- +-- Autor: Andreas Zweili +-- Datum: 2017-05-28 +-- Server Version: SQL Server 2016 + +use Luftfahrzeuge +select l.LFZ_ID, l.LFZ_HERSTELLER, l.LFZ_BAUJAHR, + f.FLU_SPANNWEITE from Luftfahrzeug l + inner join Flugzeug f + on f.FLZ_ID = l.LFZ_ID; + +select l.LFZ_ID, l.LFZ_HERSTELLER, l.LFZ_BAUJAHR, + h.HUB_ROTORDURCHMESSER from Luftfahrzeug l + inner join Hubschrauber h + on h.HUB_ID = l.LFZ_ID; + +select l.LFZ_ID, l.LFZ_HERSTELLER, l.LFZ_BAUJAHR, + z.ZEP_GASVOLUMEN from Luftfahrzeug l + inner join Zeppelin z + on z.ZEP_ID = l.LFZ_ID; From e0dbcc185ae16e818d48b53d742b99ed61226bcd Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Mon, 29 May 2017 22:12:55 +0200 Subject: [PATCH 26/35] some minor work on the selection queries --- .../recursion_excercise/selections.sql | 20 +++++-------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/db/3_sem/recursion_excercise/recursion_excercise/selections.sql b/db/3_sem/recursion_excercise/recursion_excercise/selections.sql index 098ec06..8264cd9 100644 --- a/db/3_sem/recursion_excercise/recursion_excercise/selections.sql +++ b/db/3_sem/recursion_excercise/recursion_excercise/selections.sql @@ -6,18 +6,8 @@ -- Datum: 2017-05-28 -- Server Version: SQL Server 2016 -use Luftfahrzeuge -select l.LFZ_ID, l.LFZ_HERSTELLER, l.LFZ_BAUJAHR, - f.FLU_SPANNWEITE from Luftfahrzeug l - inner join Flugzeug f - on f.FLZ_ID = l.LFZ_ID; - -select l.LFZ_ID, l.LFZ_HERSTELLER, l.LFZ_BAUJAHR, - h.HUB_ROTORDURCHMESSER from Luftfahrzeug l - inner join Hubschrauber h - on h.HUB_ID = l.LFZ_ID; - -select l.LFZ_ID, l.LFZ_HERSTELLER, l.LFZ_BAUJAHR, - z.ZEP_GASVOLUMEN from Luftfahrzeug l - inner join Zeppelin z - on z.ZEP_ID = l.LFZ_ID; +use bike_shop +select t.TNr, t.Bezeichnung, t.Typ, + s.Position, s.OTeil, s.Menge from teile t + inner join struktur s + on t.TNr = s.OTeil; From eb859ffcfc6864ae0b79e780997032a0db95982d Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Mon, 29 May 2017 22:34:53 +0200 Subject: [PATCH 27/35] sql studio wants to update its files... --- .../recursion_excercise/recursion_excercise.ssmssqlproj | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/db/3_sem/recursion_excercise/recursion_excercise/recursion_excercise.ssmssqlproj b/db/3_sem/recursion_excercise/recursion_excercise/recursion_excercise.ssmssqlproj index a54802d..1341c06 100644 --- a/db/3_sem/recursion_excercise/recursion_excercise/recursion_excercise.ssmssqlproj +++ b/db/3_sem/recursion_excercise/recursion_excercise/recursion_excercise.ssmssqlproj @@ -37,6 +37,12 @@ remove_database.sql + + 8c91a03d-f9b4-46c0-a305-b5dcc79ff907:WIN-10-SFR\SQL2016:True + WIN-10-SFR\SQL2016 + + selections.sql + 8c91a03d-f9b4-46c0-a305-b5dcc79ff907:WIN-10-SFR\SQL2016:True WIN-10-SFR\SQL2016 From 70d19e4670f2ba42bc253c025aad054d2d1e0857 Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Sat, 3 Jun 2017 07:30:41 +0100 Subject: [PATCH 28/35] solution to a) --- .../recursion_excercise/selections.sql | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/db/3_sem/recursion_excercise/recursion_excercise/selections.sql b/db/3_sem/recursion_excercise/recursion_excercise/selections.sql index 8264cd9..d1b4073 100644 --- a/db/3_sem/recursion_excercise/recursion_excercise/selections.sql +++ b/db/3_sem/recursion_excercise/recursion_excercise/selections.sql @@ -11,3 +11,19 @@ select t.TNr, t.Bezeichnung, t.Typ, s.Position, s.OTeil, s.Menge from teile t inner join struktur s on t.TNr = s.OTeil; + +select * from struktur +where struktur.OTeil=60; + +select * from dbo.teile + where teile.TNr in (2,41,62); + +select t1.TNr, + t1.Bezeichnung, + s1.UTeil, + t2.Bezeichnung + from teile t1 inner join struktur s1 + on t1.TNr = s1.OTeil + inner join teile t2 + on t2.TNr = s1.UTeil + where t1.TNr=60 From 4bf17cd0f77f7599986fa972be407f3d591e6fbd Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Sat, 3 Jun 2017 09:42:29 +0200 Subject: [PATCH 29/35] change the db connection to localhost --- .../recursion_excercise.ssmssqlproj | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/db/3_sem/recursion_excercise/recursion_excercise/recursion_excercise.ssmssqlproj b/db/3_sem/recursion_excercise/recursion_excercise/recursion_excercise.ssmssqlproj index 1341c06..993c1b8 100644 --- a/db/3_sem/recursion_excercise/recursion_excercise/recursion_excercise.ssmssqlproj +++ b/db/3_sem/recursion_excercise/recursion_excercise/recursion_excercise.ssmssqlproj @@ -3,49 +3,49 @@ - - 2017-05-28T14:55:42.7426112+02:00 + + 2017-06-03T08:55:35.46851+02:00 SQL - WIN-10-SFR\SQL2016 + (local)\SQLEXPRESS Windows Authentication 15 0 NotSpecified - Microsoft SQL Server Management Studio - Query + - 8c91a03d-f9b4-46c0-a305-b5dcc79ff907:WIN-10-SFR\SQL2016:True - WIN-10-SFR\SQL2016 + + create_database.sql - 8c91a03d-f9b4-46c0-a305-b5dcc79ff907:WIN-10-SFR\SQL2016:True - WIN-10-SFR\SQL2016 + + create_table.sql - 8c91a03d-f9b4-46c0-a305-b5dcc79ff907:WIN-10-SFR\SQL2016:True - WIN-10-SFR\SQL2016 + + remove_database.sql - 8c91a03d-f9b4-46c0-a305-b5dcc79ff907:WIN-10-SFR\SQL2016:True - WIN-10-SFR\SQL2016 + + selections.sql - 8c91a03d-f9b4-46c0-a305-b5dcc79ff907:WIN-10-SFR\SQL2016:True - WIN-10-SFR\SQL2016 + + TeileInsert.sql From c3436a46d77c08a8a608dd6a62d6bcba6e4f1df7 Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Sat, 3 Jun 2017 11:18:58 +0200 Subject: [PATCH 30/35] add files from day 2 --- db/3_sem/day_2/introduction_to_security.sql | 24 +++++++++++++++++++++ db/3_sem/day_2/underpriviledged_user.sql | 16 ++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 db/3_sem/day_2/introduction_to_security.sql create mode 100644 db/3_sem/day_2/underpriviledged_user.sql diff --git a/db/3_sem/day_2/introduction_to_security.sql b/db/3_sem/day_2/introduction_to_security.sql new file mode 100644 index 0000000..0491898 --- /dev/null +++ b/db/3_sem/day_2/introduction_to_security.sql @@ -0,0 +1,24 @@ +-- Queuries to create test table and change the permissions of the underpriviledged user + +use IBZ; + +create table SprechendeTiere +( + ID int identity(1,1) not null, + Tierame varchar(50) + constraint pk_sprechende_tiere primary key (ID) +); + + +insert into SprechendeTiere(Tierame) +values ('Einhorn'); + +-- Grant + +grant select on SprechendeTiere to ibzadmin; + +grant delete on SprechendeTiere to ibzadmin; + +grant update on SprechendeTiere to ibzadmin; + +grant all on SprechendeTiere to ibzadmin; diff --git a/db/3_sem/day_2/underpriviledged_user.sql b/db/3_sem/day_2/underpriviledged_user.sql new file mode 100644 index 0000000..9e71f1b --- /dev/null +++ b/db/3_sem/day_2/underpriviledged_user.sql @@ -0,0 +1,16 @@ +-- Test Queries for an unprivileged user + +use IBZ; + +select * from SprechendeTiere; + +delete SprechendeTiere +where Tierame='Einhorn'; + +update SprechendeTiere + set Tierame='Einhörner' + where Tierame='Einhorn'; + + +insert into SprechendeTiere(Tierame) +values ('Papagei'); \ No newline at end of file From b4b9855fe763031c2a4669767eafdc2f12f95232 Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Sat, 3 Jun 2017 11:19:26 +0200 Subject: [PATCH 31/35] add .idea to the ignore list --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index d47b641..ec764ad 100644 --- a/.gitignore +++ b/.gitignore @@ -605,4 +605,5 @@ target/ *.out *.pdf *.toc -*.gz \ No newline at end of file +*.gz +.idea From 9fc60cf83256643b22e55242bd593083c6fe83e3 Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Sat, 3 Jun 2017 11:46:39 +0200 Subject: [PATCH 32/35] update the abo solution --- db/1_sem/Abo/Abo.ssmssqlproj | 114 ++++++++++++++++------------------- db/1_sem/Abo/create_view.sql | 18 ++++++ 2 files changed, 69 insertions(+), 63 deletions(-) create mode 100644 db/1_sem/Abo/create_view.sql diff --git a/db/1_sem/Abo/Abo.ssmssqlproj b/db/1_sem/Abo/Abo.ssmssqlproj index 27d3b6f..edb6f1f 100644 --- a/db/1_sem/Abo/Abo.ssmssqlproj +++ b/db/1_sem/Abo/Abo.ssmssqlproj @@ -1,64 +1,52 @@ - - - - - - - 2017-03-09T18:45:47.4395012+01:00 - SQL - WIN-10-SFR\SQL2016 - - Windows Authentication - - 15 - 0 - NotSpecified - Microsoft SQL Server Management Studio - Query - - - 2017-03-11T08:58:56.8900889+01:00 - SQL - WIN-LAPTOP\SQLEXPRESS - - Windows Authentication - - 15 - 0 - NotSpecified - Microsoft SQL Server Management Studio - Query - - - - - - - 8c91a03d-f9b4-46c0-a305-b5dcc79ff907:WIN-10-SFR\SQL2016:True - WIN-10-SFR\SQL2016 - - create_tables.sql - - - 8c91a03d-f9b4-46c0-a305-b5dcc79ff907:WIN-10-SFR\SQL2016:True - WIN-10-SFR\SQL2016 - - insert_data.sql - - - 8c91a03d-f9b4-46c0-a305-b5dcc79ff907:WIN-10-SFR\SQL2016:True - WIN-10-SFR\SQL2016 - - remove_tables.sql - - - 8c91a03d-f9b4-46c0-a305-b5dcc79ff907:WIN-LAPTOP\SQLEXPRESS:True - WIN-LAPTOP\SQLEXPRESS - - select_statements.sql - - - - - - - + + + + + + + 2017-06-03T11:37:38.3249035+02:00 + SQL + (local)\SQLEXPRESS + + Windows Authentication + + 15 + 0 + NotSpecified + + + + + + + + + + + create_tables.sql + + + + + + insert_data.sql + + + + + + remove_tables.sql + + + + + + select_statements.sql + + + + + + + \ No newline at end of file diff --git a/db/1_sem/Abo/create_view.sql b/db/1_sem/Abo/create_view.sql new file mode 100644 index 0000000..0f28f1b --- /dev/null +++ b/db/1_sem/Abo/create_view.sql @@ -0,0 +1,18 @@ +use Abo; +go + +-- create a view +create view mitglieder_liste +as +select anrede.anrede, + mitglied.mitglied_vorname, + mitglied.mitglied_name + from mitglied inner join anrede + on mitglied.anrede_id = anrede.anrede_id; + +-- query the view + +use Abo; +go + +select * from mitglieder_liste; \ No newline at end of file From 4cd8d090348fd155af59e73f73ba23d97a6b6542 Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Sat, 3 Jun 2017 11:55:30 +0200 Subject: [PATCH 33/35] add some additional code --- db/1_sem/Abo/create_view.sql | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/db/1_sem/Abo/create_view.sql b/db/1_sem/Abo/create_view.sql index 0f28f1b..5b31877 100644 --- a/db/1_sem/Abo/create_view.sql +++ b/db/1_sem/Abo/create_view.sql @@ -2,7 +2,7 @@ use Abo; go -- create a view -create view mitglieder_liste +create view mitglieder_liste (Anr, Vor, Nach) as select anrede.anrede, mitglied.mitglied_vorname, @@ -15,4 +15,7 @@ select anrede.anrede, use Abo; go -select * from mitglieder_liste; \ No newline at end of file +select * from mitglieder_liste; +go + +drop view mitglieder_liste; From eb0f0673bbc5dbb7357e8a1a6d041eb68906b2b5 Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Sun, 4 Jun 2017 17:11:47 +0200 Subject: [PATCH 34/35] update some permissions --- software/install_monodevelop.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 software/install_monodevelop.sh diff --git a/software/install_monodevelop.sh b/software/install_monodevelop.sh old mode 100755 new mode 100644 From dee42972ff4018e029b8ac86eee5278cbce94f90 Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Wed, 7 Jun 2017 17:37:22 +0200 Subject: [PATCH 35/35] add a number to the folder names --- .../customer_management.sln | 0 .../customer_management}/App.config | 0 .../customer_management/Customer.cs | 0 .../customer_management/Program.cs | 0 .../customer_management/Properties/AssemblyInfo.cs | 0 .../customer_management/customer_management.csproj | 0 software/1_sem/{ConsoleApp1 => 02_consoleApp1}/ConsoleApp1.sln | 0 .../1_sem/{ConsoleApp1 => 02_consoleApp1}/ConsoleApp1/App.config | 0 .../{ConsoleApp1 => 02_consoleApp1}/ConsoleApp1/Calculator.cs | 0 .../ConsoleApp1/ConsoleApp1.csproj | 0 .../1_sem/{ConsoleApp1 => 02_consoleApp1}/ConsoleApp1/Program.cs | 0 .../ConsoleApp1/Properties/AssemblyInfo.cs | 0 software/1_sem/{first_app => 03_first_app}/first_app.sln | 0 .../customer_management => 03_first_app/first_app}/App.config | 0 .../1_sem/{first_app => 03_first_app}/first_app/Calculator.cs | 0 software/1_sem/{first_app => 03_first_app}/first_app/Car.cs | 0 software/1_sem/{first_app => 03_first_app}/first_app/Program.cs | 0 .../first_app/Properties/AssemblyInfo.cs | 0 .../1_sem/{first_app => 03_first_app}/first_app/first_app.csproj | 0 .../1_sem/{string_length => 04_string_length}/string_length.sln | 0 .../calculator => 04_string_length/string_length}/App.config | 0 .../string_length/LengthCounter.cs | 0 .../{string_length => 04_string_length}/string_length/Program.cs | 0 .../string_length/Properties/AssemblyInfo.cs | 0 .../string_length/string_length.csproj | 0 software/1_sem/{calculator => 05_calculator}/calculator.sln | 0 .../string_length => 05_calculator/calculator}/App.config | 0 .../1_sem/{calculator => 05_calculator}/calculator/Converter.cs | 0 .../1_sem/{calculator => 05_calculator}/calculator/Program.cs | 0 .../calculator/Properties/AssemblyInfo.cs | 0 .../{calculator => 05_calculator}/calculator/calculator.csproj | 0 .../1_sem/{IBZ-Vererbung => 06_IBZ-Vererbung}/IBZ-Vererbung.sln | 0 .../{IBZ-Vererbung => 06_IBZ-Vererbung}/IBZ-Vererbung/Animal.cs | 0 .../first_app => 06_IBZ-Vererbung/IBZ-Vererbung}/App.config | 0 .../IBZ-Vererbung/IBZ-Vererbung.csproj | 0 .../{IBZ-Vererbung => 06_IBZ-Vererbung}/IBZ-Vererbung/Program.cs | 0 .../IBZ-Vererbung/Properties/AssemblyInfo.cs | 0 37 files changed, 0 insertions(+), 0 deletions(-) rename software/1_sem/{customer_management => 01_customer_management}/customer_management.sln (100%) rename software/1_sem/{IBZ-Vererbung/IBZ-Vererbung => 01_customer_management/customer_management}/App.config (100%) rename software/1_sem/{customer_management => 01_customer_management}/customer_management/Customer.cs (100%) rename software/1_sem/{customer_management => 01_customer_management}/customer_management/Program.cs (100%) rename software/1_sem/{customer_management => 01_customer_management}/customer_management/Properties/AssemblyInfo.cs (100%) rename software/1_sem/{customer_management => 01_customer_management}/customer_management/customer_management.csproj (100%) rename software/1_sem/{ConsoleApp1 => 02_consoleApp1}/ConsoleApp1.sln (100%) rename software/1_sem/{ConsoleApp1 => 02_consoleApp1}/ConsoleApp1/App.config (100%) rename software/1_sem/{ConsoleApp1 => 02_consoleApp1}/ConsoleApp1/Calculator.cs (100%) rename software/1_sem/{ConsoleApp1 => 02_consoleApp1}/ConsoleApp1/ConsoleApp1.csproj (100%) rename software/1_sem/{ConsoleApp1 => 02_consoleApp1}/ConsoleApp1/Program.cs (100%) rename software/1_sem/{ConsoleApp1 => 02_consoleApp1}/ConsoleApp1/Properties/AssemblyInfo.cs (100%) rename software/1_sem/{first_app => 03_first_app}/first_app.sln (100%) rename software/1_sem/{customer_management/customer_management => 03_first_app/first_app}/App.config (100%) rename software/1_sem/{first_app => 03_first_app}/first_app/Calculator.cs (100%) rename software/1_sem/{first_app => 03_first_app}/first_app/Car.cs (100%) rename software/1_sem/{first_app => 03_first_app}/first_app/Program.cs (100%) rename software/1_sem/{first_app => 03_first_app}/first_app/Properties/AssemblyInfo.cs (100%) rename software/1_sem/{first_app => 03_first_app}/first_app/first_app.csproj (100%) rename software/1_sem/{string_length => 04_string_length}/string_length.sln (100%) rename software/1_sem/{calculator/calculator => 04_string_length/string_length}/App.config (100%) rename software/1_sem/{string_length => 04_string_length}/string_length/LengthCounter.cs (100%) rename software/1_sem/{string_length => 04_string_length}/string_length/Program.cs (100%) rename software/1_sem/{string_length => 04_string_length}/string_length/Properties/AssemblyInfo.cs (100%) rename software/1_sem/{string_length => 04_string_length}/string_length/string_length.csproj (100%) rename software/1_sem/{calculator => 05_calculator}/calculator.sln (100%) rename software/1_sem/{string_length/string_length => 05_calculator/calculator}/App.config (100%) rename software/1_sem/{calculator => 05_calculator}/calculator/Converter.cs (100%) rename software/1_sem/{calculator => 05_calculator}/calculator/Program.cs (100%) rename software/1_sem/{calculator => 05_calculator}/calculator/Properties/AssemblyInfo.cs (100%) rename software/1_sem/{calculator => 05_calculator}/calculator/calculator.csproj (100%) rename software/1_sem/{IBZ-Vererbung => 06_IBZ-Vererbung}/IBZ-Vererbung.sln (100%) rename software/1_sem/{IBZ-Vererbung => 06_IBZ-Vererbung}/IBZ-Vererbung/Animal.cs (100%) rename software/1_sem/{first_app/first_app => 06_IBZ-Vererbung/IBZ-Vererbung}/App.config (100%) rename software/1_sem/{IBZ-Vererbung => 06_IBZ-Vererbung}/IBZ-Vererbung/IBZ-Vererbung.csproj (100%) rename software/1_sem/{IBZ-Vererbung => 06_IBZ-Vererbung}/IBZ-Vererbung/Program.cs (100%) rename software/1_sem/{IBZ-Vererbung => 06_IBZ-Vererbung}/IBZ-Vererbung/Properties/AssemblyInfo.cs (100%) diff --git a/software/1_sem/customer_management/customer_management.sln b/software/1_sem/01_customer_management/customer_management.sln similarity index 100% rename from software/1_sem/customer_management/customer_management.sln rename to software/1_sem/01_customer_management/customer_management.sln diff --git a/software/1_sem/IBZ-Vererbung/IBZ-Vererbung/App.config b/software/1_sem/01_customer_management/customer_management/App.config similarity index 100% rename from software/1_sem/IBZ-Vererbung/IBZ-Vererbung/App.config rename to software/1_sem/01_customer_management/customer_management/App.config diff --git a/software/1_sem/customer_management/customer_management/Customer.cs b/software/1_sem/01_customer_management/customer_management/Customer.cs similarity index 100% rename from software/1_sem/customer_management/customer_management/Customer.cs rename to software/1_sem/01_customer_management/customer_management/Customer.cs diff --git a/software/1_sem/customer_management/customer_management/Program.cs b/software/1_sem/01_customer_management/customer_management/Program.cs similarity index 100% rename from software/1_sem/customer_management/customer_management/Program.cs rename to software/1_sem/01_customer_management/customer_management/Program.cs diff --git a/software/1_sem/customer_management/customer_management/Properties/AssemblyInfo.cs b/software/1_sem/01_customer_management/customer_management/Properties/AssemblyInfo.cs similarity index 100% rename from software/1_sem/customer_management/customer_management/Properties/AssemblyInfo.cs rename to software/1_sem/01_customer_management/customer_management/Properties/AssemblyInfo.cs diff --git a/software/1_sem/customer_management/customer_management/customer_management.csproj b/software/1_sem/01_customer_management/customer_management/customer_management.csproj similarity index 100% rename from software/1_sem/customer_management/customer_management/customer_management.csproj rename to software/1_sem/01_customer_management/customer_management/customer_management.csproj diff --git a/software/1_sem/ConsoleApp1/ConsoleApp1.sln b/software/1_sem/02_consoleApp1/ConsoleApp1.sln similarity index 100% rename from software/1_sem/ConsoleApp1/ConsoleApp1.sln rename to software/1_sem/02_consoleApp1/ConsoleApp1.sln diff --git a/software/1_sem/ConsoleApp1/ConsoleApp1/App.config b/software/1_sem/02_consoleApp1/ConsoleApp1/App.config similarity index 100% rename from software/1_sem/ConsoleApp1/ConsoleApp1/App.config rename to software/1_sem/02_consoleApp1/ConsoleApp1/App.config diff --git a/software/1_sem/ConsoleApp1/ConsoleApp1/Calculator.cs b/software/1_sem/02_consoleApp1/ConsoleApp1/Calculator.cs similarity index 100% rename from software/1_sem/ConsoleApp1/ConsoleApp1/Calculator.cs rename to software/1_sem/02_consoleApp1/ConsoleApp1/Calculator.cs diff --git a/software/1_sem/ConsoleApp1/ConsoleApp1/ConsoleApp1.csproj b/software/1_sem/02_consoleApp1/ConsoleApp1/ConsoleApp1.csproj similarity index 100% rename from software/1_sem/ConsoleApp1/ConsoleApp1/ConsoleApp1.csproj rename to software/1_sem/02_consoleApp1/ConsoleApp1/ConsoleApp1.csproj diff --git a/software/1_sem/ConsoleApp1/ConsoleApp1/Program.cs b/software/1_sem/02_consoleApp1/ConsoleApp1/Program.cs similarity index 100% rename from software/1_sem/ConsoleApp1/ConsoleApp1/Program.cs rename to software/1_sem/02_consoleApp1/ConsoleApp1/Program.cs diff --git a/software/1_sem/ConsoleApp1/ConsoleApp1/Properties/AssemblyInfo.cs b/software/1_sem/02_consoleApp1/ConsoleApp1/Properties/AssemblyInfo.cs similarity index 100% rename from software/1_sem/ConsoleApp1/ConsoleApp1/Properties/AssemblyInfo.cs rename to software/1_sem/02_consoleApp1/ConsoleApp1/Properties/AssemblyInfo.cs diff --git a/software/1_sem/first_app/first_app.sln b/software/1_sem/03_first_app/first_app.sln similarity index 100% rename from software/1_sem/first_app/first_app.sln rename to software/1_sem/03_first_app/first_app.sln diff --git a/software/1_sem/customer_management/customer_management/App.config b/software/1_sem/03_first_app/first_app/App.config similarity index 100% rename from software/1_sem/customer_management/customer_management/App.config rename to software/1_sem/03_first_app/first_app/App.config diff --git a/software/1_sem/first_app/first_app/Calculator.cs b/software/1_sem/03_first_app/first_app/Calculator.cs similarity index 100% rename from software/1_sem/first_app/first_app/Calculator.cs rename to software/1_sem/03_first_app/first_app/Calculator.cs diff --git a/software/1_sem/first_app/first_app/Car.cs b/software/1_sem/03_first_app/first_app/Car.cs similarity index 100% rename from software/1_sem/first_app/first_app/Car.cs rename to software/1_sem/03_first_app/first_app/Car.cs diff --git a/software/1_sem/first_app/first_app/Program.cs b/software/1_sem/03_first_app/first_app/Program.cs similarity index 100% rename from software/1_sem/first_app/first_app/Program.cs rename to software/1_sem/03_first_app/first_app/Program.cs diff --git a/software/1_sem/first_app/first_app/Properties/AssemblyInfo.cs b/software/1_sem/03_first_app/first_app/Properties/AssemblyInfo.cs similarity index 100% rename from software/1_sem/first_app/first_app/Properties/AssemblyInfo.cs rename to software/1_sem/03_first_app/first_app/Properties/AssemblyInfo.cs diff --git a/software/1_sem/first_app/first_app/first_app.csproj b/software/1_sem/03_first_app/first_app/first_app.csproj similarity index 100% rename from software/1_sem/first_app/first_app/first_app.csproj rename to software/1_sem/03_first_app/first_app/first_app.csproj diff --git a/software/1_sem/string_length/string_length.sln b/software/1_sem/04_string_length/string_length.sln similarity index 100% rename from software/1_sem/string_length/string_length.sln rename to software/1_sem/04_string_length/string_length.sln diff --git a/software/1_sem/calculator/calculator/App.config b/software/1_sem/04_string_length/string_length/App.config similarity index 100% rename from software/1_sem/calculator/calculator/App.config rename to software/1_sem/04_string_length/string_length/App.config diff --git a/software/1_sem/string_length/string_length/LengthCounter.cs b/software/1_sem/04_string_length/string_length/LengthCounter.cs similarity index 100% rename from software/1_sem/string_length/string_length/LengthCounter.cs rename to software/1_sem/04_string_length/string_length/LengthCounter.cs diff --git a/software/1_sem/string_length/string_length/Program.cs b/software/1_sem/04_string_length/string_length/Program.cs similarity index 100% rename from software/1_sem/string_length/string_length/Program.cs rename to software/1_sem/04_string_length/string_length/Program.cs diff --git a/software/1_sem/string_length/string_length/Properties/AssemblyInfo.cs b/software/1_sem/04_string_length/string_length/Properties/AssemblyInfo.cs similarity index 100% rename from software/1_sem/string_length/string_length/Properties/AssemblyInfo.cs rename to software/1_sem/04_string_length/string_length/Properties/AssemblyInfo.cs diff --git a/software/1_sem/string_length/string_length/string_length.csproj b/software/1_sem/04_string_length/string_length/string_length.csproj similarity index 100% rename from software/1_sem/string_length/string_length/string_length.csproj rename to software/1_sem/04_string_length/string_length/string_length.csproj diff --git a/software/1_sem/calculator/calculator.sln b/software/1_sem/05_calculator/calculator.sln similarity index 100% rename from software/1_sem/calculator/calculator.sln rename to software/1_sem/05_calculator/calculator.sln diff --git a/software/1_sem/string_length/string_length/App.config b/software/1_sem/05_calculator/calculator/App.config similarity index 100% rename from software/1_sem/string_length/string_length/App.config rename to software/1_sem/05_calculator/calculator/App.config diff --git a/software/1_sem/calculator/calculator/Converter.cs b/software/1_sem/05_calculator/calculator/Converter.cs similarity index 100% rename from software/1_sem/calculator/calculator/Converter.cs rename to software/1_sem/05_calculator/calculator/Converter.cs diff --git a/software/1_sem/calculator/calculator/Program.cs b/software/1_sem/05_calculator/calculator/Program.cs similarity index 100% rename from software/1_sem/calculator/calculator/Program.cs rename to software/1_sem/05_calculator/calculator/Program.cs diff --git a/software/1_sem/calculator/calculator/Properties/AssemblyInfo.cs b/software/1_sem/05_calculator/calculator/Properties/AssemblyInfo.cs similarity index 100% rename from software/1_sem/calculator/calculator/Properties/AssemblyInfo.cs rename to software/1_sem/05_calculator/calculator/Properties/AssemblyInfo.cs diff --git a/software/1_sem/calculator/calculator/calculator.csproj b/software/1_sem/05_calculator/calculator/calculator.csproj similarity index 100% rename from software/1_sem/calculator/calculator/calculator.csproj rename to software/1_sem/05_calculator/calculator/calculator.csproj diff --git a/software/1_sem/IBZ-Vererbung/IBZ-Vererbung.sln b/software/1_sem/06_IBZ-Vererbung/IBZ-Vererbung.sln similarity index 100% rename from software/1_sem/IBZ-Vererbung/IBZ-Vererbung.sln rename to software/1_sem/06_IBZ-Vererbung/IBZ-Vererbung.sln diff --git a/software/1_sem/IBZ-Vererbung/IBZ-Vererbung/Animal.cs b/software/1_sem/06_IBZ-Vererbung/IBZ-Vererbung/Animal.cs similarity index 100% rename from software/1_sem/IBZ-Vererbung/IBZ-Vererbung/Animal.cs rename to software/1_sem/06_IBZ-Vererbung/IBZ-Vererbung/Animal.cs diff --git a/software/1_sem/first_app/first_app/App.config b/software/1_sem/06_IBZ-Vererbung/IBZ-Vererbung/App.config similarity index 100% rename from software/1_sem/first_app/first_app/App.config rename to software/1_sem/06_IBZ-Vererbung/IBZ-Vererbung/App.config diff --git a/software/1_sem/IBZ-Vererbung/IBZ-Vererbung/IBZ-Vererbung.csproj b/software/1_sem/06_IBZ-Vererbung/IBZ-Vererbung/IBZ-Vererbung.csproj similarity index 100% rename from software/1_sem/IBZ-Vererbung/IBZ-Vererbung/IBZ-Vererbung.csproj rename to software/1_sem/06_IBZ-Vererbung/IBZ-Vererbung/IBZ-Vererbung.csproj diff --git a/software/1_sem/IBZ-Vererbung/IBZ-Vererbung/Program.cs b/software/1_sem/06_IBZ-Vererbung/IBZ-Vererbung/Program.cs similarity index 100% rename from software/1_sem/IBZ-Vererbung/IBZ-Vererbung/Program.cs rename to software/1_sem/06_IBZ-Vererbung/IBZ-Vererbung/Program.cs diff --git a/software/1_sem/IBZ-Vererbung/IBZ-Vererbung/Properties/AssemblyInfo.cs b/software/1_sem/06_IBZ-Vererbung/IBZ-Vererbung/Properties/AssemblyInfo.cs similarity index 100% rename from software/1_sem/IBZ-Vererbung/IBZ-Vererbung/Properties/AssemblyInfo.cs rename to software/1_sem/06_IBZ-Vererbung/IBZ-Vererbung/Properties/AssemblyInfo.cs