<jupyter_start><jupyter_text>[![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Fuenfgeld/2022TeamBDataEngineeringBC/blob/main/Uebungen/Uebungen/Uebungen%20zu%20Teil%201.ipynb)  Übungen zu Teil 1  Bitte führen Sie die nächsten beiden Codeabschnitte aus  Die Lösungen befinden sich im Ordner Uebungen/Loesungen und sind am Ende der Übung verlinkt<jupyter_code>#Load Libraries
import sqlite3
import pandas as pd

# Load GitHub repo
%cd /content/
%rm -r ./2022TeamBDataEngineeringBC
!git clone https://github.com/Fuenfgeld/2022TeamBDataEngineeringBC.git
%cd ./2022TeamBDataEngineeringBC/
# Connect to Database
conn = sqlite3.connect('sqlite_workshop.db')
cursor = conn.cursor()
print("Opened database successfully");

# Delete table if exists 
cursor.execute("DROP TABLE IF EXISTS food")
cursor.execute("DROP TABLE IF EXISTS orders")
cursor.execute("DROP TABLE IF EXISTS animals")
cursor.execute("DROP TABLE IF EXISTS customer")
cursor.execute("DROP TABLE IF EXISTS customer_buys_food")
cursor.execute("DROP TABLE IF EXISTS employee")
cursor.execute("DROP TABLE IF EXISTS sales")
cursor.execute("DROP TABLE IF EXISTS food_new")
cursor.execute("DROP TABLE IF EXISTS customer_new")
cursor.execute("DROP TABLE IF EXISTS employee_new")
cursor.execute("DROP TABLE IF EXISTS Liga")
cursor.execute("DROP TABLE IF EXISTS Verein")
cursor.execute("DROP TABLE IF EXISTS Spieler")

# Create tables
cursor.execute('''
		CREATE TABLE IF NOT EXISTS Liga (
            L_name nvarchar(80) primary key,
            Anzahl_Vereine int
			)
               ''')

cursor.execute('''
		CREATE TABLE IF NOT EXISTS Verein (
			V_name nvarchar(80) primary key,
            Liga nvarchar(80),
            Anzahl_Meisterschaften int,
            foreign key(Liga) references Liga(L_name)

			)
               ''')

cursor.execute('''
		CREATE TABLE IF NOT EXISTS Spieler (
			S_name nvarchar(80) primary key,
            Verein nvarchar(80),
            foreign key(Verein) references Verein(V_name)

			)
               ''')

# fill tables for Part 1
cursor.execute('''
		INSERT INTO Liga (L_name,Anzahl_Vereine)
            VALUES
            ("1. Bundesliga", 18),
            ("2. Bundesliga", 18), 
            ("3. Bundesliga",20)

			
               ''')

cursor.execute('''
		INSERT INTO Verein (V_name, Liga, Anzahl_Meisterschaften)
            VALUES
            ("1. FC Bayern Muenchen", "1. Bundesliga", 32),
            ("1. FC Kaiserslautern", "3. Bundesliga", 4), 
            ( "SV Waldhof Mannheim", "3. Bundesliga", 0)

			
               ''')
cursor.execute('''
		INSERT INTO Spieler (S_name, Verein)
            VALUES
            ("<NAME>","1. FC Bayern Muenchen"),
            ("<NAME>", "1. FC Kaiserslautern"), 
            ("<NAME>", "SV Waldhof Mannheim")

			
               ''')<jupyter_output><empty_output><jupyter_text>Aufgabe zu Teil 1  Beispielcode zum herausfinden eines Primary Keys print(pd.read_sql_query("PRAGMA table_info('TABELLENNAME')", conn))  Beispielcode zum herausfinden der Foreign Keys print(pd.read_sql_query("PRAGMA foreign_key_list("TABELLENNAME")", conn))  Die Elemente eines ER-Diagramms [](https://raw.githubusercontent.com/Fuenfgeld/2022TeamBDataEngineeringBC/main/Presentation/Bilder/er_basics.png)  1.1 Ersetze die Fragezeichen, um eine gültige PRAGMA Funktion zu nutzen und Informationen über die Datenbankstruktur zu gewinnen  Herausfinden der Tabellennamen<jupyter_code>print(pd.read_sql_query("SELECT name FROM sqlite_master WHERE type='table';", conn))<jupyter_output><empty_output><jupyter_text>Welche Primary Keys gibt es?<jupyter_code>print(pd.read_sql_query("???('???')", conn))
print("----------------------------------------")
print(pd.read_sql_query("???('???')", conn))
print("----------------------------------------")
print(pd.read_sql_query("???('???')", conn))<jupyter_output><empty_output><jupyter_text>Welche Foreign Keys gibt es?<jupyter_code># Foreign keys herausfinden
print(pd.read_sql_query("PRAGMA ???('???')", conn))
print("----------------------------------------")
print(pd.read_sql_query("PRAGMA ???('???')", conn))
print("----------------------------------------")
print(pd.read_sql_query("PRAGMA ???('???')", conn))<jupyter_output><empty_output><jupyter_text>Ausgabe der kompletten Tabelleninhalte<jupyter_code>print(pd.read_sql_query("SELECT * FROM Liga", conn))
print("----------------------------------------")
print(pd.read_sql_query("SELECT * FROM Verein", conn))
print("----------------------------------------")
print(pd.read_sql_query("SELECT * FROM Spieler", conn))<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.17692806221646143, 'fraction_numerical': 0.013825880319723483, 'mean_word_length': 3.2830712303422755, 'pattern_counts': {'":': 0, '<': 24, '<?xml version=': 0, '>': 24, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '5', 'dir': 'jupyter-structured-clean-dedup', 'id': '594355', 'license': 'MIT', 'n_tokens_mistral': 1559, 'n_tokens_neox': 1494, 'n_words': 340, 'path': 'Uebungen/Uebungen/Uebungen zu Teil 1.ipynb', 'repo_name': 'Fuenfgeld/2022TeamBDataEngineeringBC', 'size': '4650'}