Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #########################
- ## Opdracht 2 Blok 3 ##
- ## IF3 ##
- ## Sander Leurs, Mike Vromen ##
- #########################
- import os
- import pymssql
- menu_keuze = True
- #Connectie maken Python <> SQL
- def connect_sql():
- global conn
- conn = pymssql.connect(server='.', user='IF3', password='IF3_VB', database='IF3_TENNIS')#, port = 1433)# port nummer van belang omdat ik een instantie heb aangemaakt waardoor default poort 1433 is aangepast!
- # Om poortnummer te achterhalen zie handleiding "Bepaal SQL poort nummer.docx"
- print("Connected to DB")
- #Disconnect Python <> SQL
- def disconnect_sql():
- conn.close()
- #Vraag 1 - Toevoegen van een speler
- def insert_speler():
- os.system('cls')
- spelersnummer = ''
- spelersnaam = ''
- spelervoor = ''
- spelergebdatum = ''
- spelergeslacht = ''
- spelerjaartoe = ''
- spelerstraat = ''
- spelerhuisnr = ''
- spelerpostcode = ''
- spelerplaats = ''
- spelertelefoon = ''
- spelerbondnmr = ''
- print("---------------- TOEVOEGEN VAN SPELER --------------------")
- while spelersnummer == '' or spelersnaam == '' or spelervoor == '' or spelergebdatum == '' or spelergeslacht == '' or spelerjaartoe == '' or spelerstraat == '' or spelerhuisnr == '' or spelerpostcode == '' or spelerplaats == '' or spelertelefoon == '' or spelerbondnmr == '':
- spelersnummer = input("Spelers Nummer: ")
- spelersnaam = input("Spelers Naam: ")
- spelervoor = input("Spelers Voorletter: ")
- spelergebdatum = input ("Geboorte datum? --jaar-mn-dg--: ")
- spelergeslacht = input ("M of V ?: ")
- spelerjaartoe = input ("Jaar van toetreden?: ")
- spelerstraat = input ("Straat naam?: ")
- spelerhuisnr = input ("Huis nummer?: ")
- spelerpostcode = input ("Postcode?--1234AB--: ")
- spelerplaats = input ("Plaats naam?: ")
- spelertelefoon = input ("Telefoon nummer?: ")
- spelerbondnmr = input ("Bond nummer?: ")
- if spelersnummer == '' or spelersnaam == '' or spelervoor == '' or spelergebdatum == '' or spelergeslacht == '' or spelerjaartoe == '' or spelerstraat == '' or spelerhuisnr == '' or spelerpostcode == '' or spelerplaats == '' or spelertelefoon == '' or spelerbondnmr == '':
- print('Alles invullen A.U.B.')
- data = (spelersnummer, spelersnaam, spelervoor, spelergebdatum, spelergeslacht, spelerjaartoe,spelerstraat,spelerhuisnr,spelerpostcode,spelerplaats,spelertelefoon,spelerbondnmr)
- cursor = conn.cursor()
- cursor.execute('INSERT INTO SPELER (spelersnr,naam,voorletters,geb_datum,geslacht,jaartoe,straat,huisnr,postcode,plaats,telefoon,bondsnr) VALUES(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)', data)
- conn.commit()
- #Vraag 2 - Lijst van spelers
- def show_spelers():
- os.system('cls')
- print("---------------- OVERZICHT spelers --------------------")
- cursor = conn.cursor()
- cursor.execute('SELECT NAAM,VOORLETTERS,GEB_DATUM,GESLACHT,PLAATS FROM SPELER ORDER BY naam ASC')
- row = cursor.fetchone()
- headers = ("Achternaam","Voorletters","Geb_datum","Geslacht","Plaats")
- print("--------------------------------------------------------------------")
- print("| %-13s | %-12s | %-10s | %-8s | %-10s|"%(headers[0], headers[1], headers[2], headers[3], headers[4]))
- print("--------------------------------------------------------------------")
- while row:
- print("--------------------------------------------------------------------")
- print("| %-13s | %-12s | %-10s | %-8s | %-10s|"%(row[0], row[1], row[2], row[3], row[4]))
- row = cursor.fetchone()
- print("--------------------------------------------------------------------")
- #Vraag 3 - Lijst van speler met input voor plaats
- def show_speler_plaatsnaam():
- os.system('cls')
- print("---------------- OVERZICHT spelers met input plaats --------------------")
- print("LET OP !!! De plaatsnaam moet PRECIES overeenkomen met de plaatsnamen in de database")
- cursor = conn.cursor()
- plaatsnaam = input("Voer een plaatsnaam in: ")
- print("\n")
- cursor.execute("SELECT NAAM, VOORLETTERS, GEB_DATUM, GESLACHT, PLAATS FROM SPELER WHERE PLAATS='%s'" % plaatsnaam)
- row = cursor.fetchone()
- headers = ("Naam","Voorletters","Geb_datum","Geslacht","Plaats")
- print("--------------------------------------------------------------------")
- print("| %-13s | %-12s | %-10s | %-8s | %-10s|"%(headers[0], headers[1], headers[2], headers[3], headers[4]))
- print("--------------------------------------------------------------------")
- while row:
- print("--------------------------------------------------------------------")
- print("| %-13s | %-12s | %-10s | %-8s | %-10s|"%(row[0], row[1], row[2], row[3], row[4]))
- row = cursor.fetchone()
- print("--------------------------------------------------------------------")
- #Vraag 4 - Lijst van spelers jonger dan 18 jaar met hun woonplaats
- def show_speler_junior():
- os.system('cls')
- print("---------------- OVERZICHT spelers jonger dan 18 jaar --------------------")
- cursor = conn.cursor()
- cursor.execute('SELECT NAAM,VOORLETTERS,GEB_DATUM,GESLACHT,PLAATS FROM SPELER WHERE DATEDIFF(YEAR,GEB_DATUM,GETDATE()) <= 18 ORDER BY naam ASC')
- row = cursor.fetchone()
- headers = ("Achternaam","Voorletters","Geb_datum","Geslacht","Plaats")
- print("--------------------------------------------------------------------")
- print("| %-13s | %-12s | %-10s | %-8s | %-10s|"%(headers[0], headers[1], headers[2], headers[3], headers[4]))
- print("--------------------------------------------------------------------")
- while row:
- print("--------------------------------------------------------------------")
- print("| %-13s | %-12s | %-10s | %-8s | %-10s|"%(row[0], row[1], row[2], row[3], row[4]))
- row = cursor.fetchone()
- print("--------------------------------------------------------------------")
- #Vraag 5 - Lijst van mensen met een boete hoger dan het gemiddelde boete bedrag
- def show_speler_gem_boete():
- os.system('cls')
- print("---------------- OVERZICHT spelers met hoger dan gem. boete bedrag --------------------")
- cursor = conn.cursor()
- cursor.execute('SELECT S.NAAM, S.VOORLETTERS, B.BEDRAG FROM SPELER S JOIN BOETE B on S.SPELERSNR = B.SPELERSNR WHERE B.BEDRAG > (SELECT AVG(BEDRAG) FROM BOETE)')
- row = cursor.fetchone()
- headers = ("Achternaam","Voorletters","Boete")
- print("--------------------------------------------")
- print("| %-13s | %-12s | %-10s|"%(headers[0], headers[1], headers[2]))
- print("--------------------------------------------")
- while row:
- print("--------------------------------------------")
- print("| %-13s | %-12s | %-10s|"%(row[0], row[1], row[2]))
- row = cursor.fetchone()
- print("--------------------------------------------")
- #Vraag 6 - Lijst van mensen met een boete hoger dan het gemiddelde boete bedrag dmv input
- def show_speler_boete_input():
- os.system('cls')
- print("---------------- OVERZICHT spelers met hoger dan input bedrag --------------------")
- cursor = conn.cursor()
- BoeteInput = input("Wat is het minimaale boete bedrag?: ")
- cursor.execute("SELECT S.NAAM, S.VOORLETTERS, B.BEDRAG FROM SPELER S JOIN BOETE B on S.SPELERSNR = B.SPELERSNR WHERE B.BEDRAG > '%s'" % BoeteInput)
- row = cursor.fetchone()
- headers = ("Achternaam","Voorletters","Boete")
- print("--------------------------------------------")
- print("| %-13s | %-12s | %-10s|"%(headers[0], headers[1], headers[2]))
- print("--------------------------------------------")
- while row:
- print("--------------------------------------------")
- print("| %-13s | %-12s | %-10s|"%(row[0], row[1], row[2]))
- row = cursor.fetchone()
- print("--------------------------------------------")
- #Vraag 7 - Lijst van telefoon nummers van het actieve bestuur
- def show_tel_bestuur():
- os.system('cls')
- print("---------------- OVERZICHT van de telefoonnummers van het actieve bestuur --------------------")
- cursor = conn.cursor()
- cursor.execute('SELECT S.Naam, S.VOORLETTERS, F.FUNCTIENAAM, S.TELEFOON FROM BESTUURSLID B JOIN SPELER S on B.SPELERSNR = S.SPELERSNR JOIN FUNCTIE F on B.FUNCTIE = F.FUNCTIENR WHERE B.EIND_DATUM is NULL')
- row = cursor.fetchone()
- headers = ("Achternaam","Voorletters","Functie","Telefoonnummer")
- print("--------------------------------------------------------------------")
- print("| %-13s | %-12s | %-15s | %-15s |"%(headers[0], headers[1], headers[2], headers[3]))
- print("--------------------------------------------------------------------")
- while row:
- print("--------------------------------------------------------------------")
- print("| %-13s | %-12s | %-15s | %-15s |"%(row[0], row[1], row[2], row[3]))
- row = cursor.fetchone()
- print("--------------------------------------------------------------------")
- #Vraag 8 - Lijst van aantal leden per plaats
- def show_aantal_leden_plaats():
- os.system('cls')
- print("---------------- OVERZICHT van de aantal leden per plaats--------------------")
- cursor = conn.cursor()
- cursor.execute('SELECT COUNT(S.NAAM),S.PLAATS FROM SPELER S WHERE S.PLAATS is not NULL GROUP BY S.PLAATS')
- row = cursor.fetchone()
- headers = ("Aantal leden","Plaats")
- print("--------------------------------")
- print("| %-13s | %-12s |"%(headers[0], headers[1]))
- print("--------------------------------")
- while row:
- print("--------------------------------")
- print("| %-13s | %-12s |"%(row[0], row[1]))
- row = cursor.fetchone()
- print("--------------------------------")
- #Vraag 9 - Lijst van de aanvoerder het teamnummer en het totaal boetes per team
- def show_aanvoerder_teamnr_boete():
- os.system('cls')
- print("---------------- OVERZICHT van de aanvoerder, teamnummer en het totaal boetes per team--------------------")
- cursor = conn.cursor()
- cursor.execute("SELECT (SELECT S.NAAM FROM SPELER S WHERE S.SPELERSNR = (SELECT TS.SPELERSNR FROM TEAMSPELER TS WHERE TS.AANVOERDER = 'J' AND TS.TEAMNR = T.TEAMNR)) AS AANVOERDER,T.TEAMNAAM, SUM(B.BEDRAG) TOTAAL FROM BOETE B JOIN TEAMSPELER TS ON TS.SPELERSNR = B.SPELERSNR JOIN TEAM T ON T.TEAMNR = TS.TEAMNR GROUP BY TS.TEAMNR, T.TEAMNAAM, T.TEAMNR")
- row = cursor.fetchone()
- headers = ("Aanvoerder","Teamnaam","Totaal boete")
- print("----------------------------------------------------------")
- print("| %-13s | %-20s | %-15s'|"%(headers[0], headers[1], headers[2]))
- print("----------------------------------------------------------")
- while row:
- print("---------------------------------------------------------")
- print("| %-13s | %-20s | %-15s|"%(row[0], row[1], row[2]))
- row = cursor.fetchone()
- print("---------------------------------------------------------")
- #Vraag 10 - Lijst van de aanvoerder het teamnummer en het totaal boetes per team
- def show_bestuurs_boete():
- os.system('cls')
- print("---------------- OVERZICHT van de bestuursleden met een boete--------------------")
- cursor = conn.cursor()
- cursor.execute("SELECT S.VOORLETTERS, S.NAAM, S.GESLACHT, B.BEDRAG FROM SPELER S JOIN BOETE B ON B.SPELERSNR = S.SPELERSNR JOIN (SELECT DISTINCT SPELERSNR FROM BESTUURSLID) BS ON BS.SPELERSNR = S.SPELERSNR GROUP BY S.SPELERSNR, S.VOORLETTERS, S.NAAM, S.GESLACHT, B.BEDRAG")
- row = cursor.fetchone()
- headers = ("Voorletters","Achternaam","Geslacht","Boete")
- print("------------------------------------------------------")
- print("| %-13s | %-12s | %-10s| %-8s|"%(headers[0], headers[1], headers[2], headers[3]))
- print("------------------------------------------------------")
- while row:
- print("------------------------------------------------------")
- print("| %-13s | %-12s | %-10s| %-8s|"%(row[0], row[1], row[2], row[3]))
- row = cursor.fetchone()
- print("------------------------------------------------------")
- #Vraag 11 - Lijst van alle bestuursleden die een x aantal boeten of meer hebben x = input
- def show_speler_aantal_boete_input():
- os.system('cls')
- print("---------------- OVERZICHT van de bestuursleden die een x aantal boetes of meer hebben --------------------")
- cursor = conn.cursor()
- AantalInput = input("Wat is het minimaale aantal boetes?: ")
- cursor.execute("SELECT S.NAAM, S.VOORLETTERS, count(*) as Aantal FROM SPELER S JOIN BOETE B ON B.SPELERSNR = S.SPELERSNR JOIN (SELECT DISTINCT SPELERSNR FROM BESTUURSLID) BS ON BS.SPELERSNR = S.SPELERSNR GROUP BY S.SPELERSNR, S.VOORLETTERS, S.NAAM, S.GESLACHT HAVING COUNT(*) >= '%s';" % AantalInput)
- row = cursor.fetchone()
- headers = ("Achternaam","Voorletters","Aantal")
- print("--------------------------------------------")
- print("| %-13s | %-12s | %-10s|"%(headers[0], headers[1],headers[2]))
- print("--------------------------------------------")
- while row:
- print("-------------------------------------------")
- print("| %-13s | %-12s |%-10s|"%(row[0], row[1],row[2]))
- row = cursor.fetchone()
- print("-------------------------------------------")
- #Vraag 12 - Lijst van de bestuursleden die nu in het bestuur zitten en nog nooit een functie hebben gehad
- def show_bestuursleden_functie():
- os.system('cls')
- print("---------------- OVERZICHT van de bestuursleden die nu in het bestuur zitten en nog nooit een functie hebben gehad--------------------")
- cursor = conn.cursor()
- cursor.execute("SELECT S.NAAM, S.VOORLETTERS FROM BESTUURSLID B JOIN BESTUURSLID B1 on B.SPELERSNR = B1.SPELERSNR JOIN SPELER S on B.SPELERSNR = S.SPELERSNR WHERE B1.EIND_DATUM is NULL GROUP BY B.SPELERSNR, S.VOORLETTERS, S.NAAM HAVING count (*) = 1")
- row = cursor.fetchone()
- headers = ("Achternaam","Voorletters")
- print("--------------------------------")
- print("| %-13s | %-12s |"%(headers[0], headers[1]))
- print("--------------------------------")
- while row:
- print("--------------------------------")
- print("| %-13s | %-12s |"%(row[0], row[1]))
- row = cursor.fetchone()
- print("--------------------------------")
- connect_sql()
- while menu_keuze:
- os.system('cls')
- print ("""
- Wat wilt u nu doen?
- 1. Speler toevoegen aan de database
- 2. Lijst van spelers in de database
- 3. Lijst van spelers wonend in woonplaats x
- 4. Lijst van spelers jonger dan 18 jaar
- 5. Lijst van spelers met een boete hoger dan de gemiddelde boete
- 6. Lijst van spelers met een boete hoger dan het input bedrag
- 7. Telefoonlijst van het actieve bestuur
- 8. Lijst van aantal leden per plaats
- 9. Lijst van aanvoerder, het teamnummer en het totaal boete bedrag per team
- 10. Lijst van alle bestuursleden die een boete hebben
- 11. Lijst van alle bestuursleden die een x aantal boetes of meer hebben
- 12. Lijst van de bestuursleden die nu in het bestuur zitten en nog nooit een functie hebben gehad
- 0. Disconnect SQL en sluit dit script af
- """)
- menu_keuze = input("Wat wilt u doen?: ")
- if menu_keuze == "1":
- os.system('cls')
- speler_toevoegen = input("Wilt u een nieuwe speler toevoegen (J/N): ")
- if speler_toevoegen.upper() == "J":
- insert_speler()
- input ("\nDruk op enter om terug te gaan naar het menu.")
- elif menu_keuze == "2":
- show_spelers()
- input ("\nDruk op enter om terug te gaan naar het menu.")
- elif menu_keuze == "3":
- show_speler_plaatsnaam()
- input ("\nDruk op enter om terug te gaan naar het menu.")
- elif menu_keuze == "4":
- show_speler_junior()
- input ("\nDruk op enter om terug te gaan naar het menu.")
- elif menu_keuze == "5":
- show_speler_gem_boete()
- input ("\nDruk op enter om terug te gaan naar het menu.")
- elif menu_keuze == "6":
- show_speler_boete_input()
- input ("\nDruk op enter om terug te gaan naar het menu.")
- elif menu_keuze == "7":
- show_tel_bestuur()
- input ("\nDruk op enter om terug te gaan naar het menu.")
- elif menu_keuze == "8":
- show_aantal_leden_plaats()
- input ("\nDruk op enter om terug te gaan naar het menu.")
- elif menu_keuze == "9":
- show_aanvoerder_teamnr_boete()
- input ("\nDruk op enter om terug te gaan naar het menu.")
- elif menu_keuze == "10":
- show_bestuurs_boete()
- input ("\nDruk op enter om terug te gaan naar het menu.")
- elif menu_keuze == "11":
- show_speler_aantal_boete_input()
- input ("\nDruk op enter om terug te gaan naar het menu.")
- elif menu_keuze == "12":
- show_bestuursleden_functie()
- input ("\nDruk op enter om terug te gaan naar het menu.")
- elif menu_keuze == "0":
- os.system('cls')
- input ("Bedankt voor het gerbuiken van dit script !")
- disconnect_sql()
- raise SystemExit
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement