Selbsterstellte SQLite Datenbankabfrage Tips !
Posted: 05 Nov 2015, 15:31
Einige Tipps und Beispiele zur Selbsterstellung von eigenen individuellen Custom-Suchbefehlen.
Es gibt zwar schon eine ganze Menge vorgefertigter Abfragemöglichkeiten in LO4OM.
Syntax Beispiele und komplexe Abfragekombinationen (Filter)
Die Beispiele sollen nur die verschiedenen Möglichkeiten der Syntax aufzeigen.
Platzhalter % und _ (Unterstrich)
% >Steht für beliebiges Zeichen und beliebige Anzahl (auch dem 0 Zeichen). z.B.: 'JH_ %' steht für JH1ABC, JH6ABC
_ > Steht für genau ein beliebiges Zeichen, z.B.: 'W_4%' steht für WA4ABC, WB4ABC,WN4ABC .........
---------------------------------------------------------------------------------------------------------------------------------------------------
Kombination Operatoren AND & OR
Sie können AND und OR kombinieren, mit Klammern ( ) werden komplexe Ausdrücke gebildet, siehe Beispiele)
----------------------------------------------------------------------------------------------------------------------------------------------------
Beispiel 1: Suchbefehl: log.Country = 'Japan' AND (log.mode = 'JT65' OR log.mode = 'JT9')
Aus der SQL-Datenbank Tabelle (log) wird das Land (Country) ‘Japan‘ und die Betriebsart (mode) ‘JT65‘ ODER ‘JT9‘ ausgewählt.
Dieser Suchbefehl gibt eine Auflistung aller QSO`s mit Japan und den Betriebsarten JT65 - und - JT9 - aus.
----------------------------------------------------------------------------------------------------------------------------------------------------
Beispiel 2: Suchbefehl: log.Country = 'United States' AND (log.mode = 'JT65' OR log.mode = 'JT9') AND (log.call like 'W%')
Mit diesem Suchbefehl werden alle US-stationen im Mode JT65 und JT9 und alle Calls mit Anfangsbuchstaben W im Prefix aufgelistet.
----------------------------------------------------------------------------------------------------------------------------------------------------
Beispiel 3: Suchbefehl: log.Country = 'United States' AND (log.mode = 'PSK31' OR log.mode = 'RTTY') AND (log.State like 'M%')
Auflistung aller US Stationen Mode PSK31 und RTTY in den Staten M...... wie z.B MN MA MO...usw
----------------------------------------------------------------------------------------------------------------------------------------------------
Weiter Beispiele, die bei Search Parameter - Simple - nicht alle funktionieren würden.
Im Feld Comment irgendwelche Einträge:
Eingabe: log.comment like '_%'
Suche leere Felder Im Feld QslRcvd,:
Eingabe: log.QslRcvd = ''
Suche leere Comment Felder z.B bei Country Japan
Eingabe: log.country = 'Japan' and (log.comment = '')
Ausgabe: alle W_4... Stationen:
Eingabe: (log.call like 'W_4%')
Ausgabe: alle W_4.. und K_4.. Stationen
Eingabe: (log.call like 'W_4%' OR log.call like 'K_4%')
Ausgabe: alle Japanischen Stationen mit Prefix JA1... und JH.....
Eingabe: (log.call like 'JA1%' OR log.call like 'JH_%')
Ausgabe: alle W_1... und K_5... Stationen plus EqslQslRcvd Status Y (Yes)
Eingabe: (log.call like 'W_1%' OR log.call like 'K_5%') AND (log.EqslQslRcvd like 'Y')
Ausgabe: alle W_4... und K_4... Stationen plus EqslQslRcvd Status N (No)
Eingabe: (log.call like 'W_4%' OR log.call like 'K_4%') AND (log.EqslQslRcvd like 'N')
Ausgabe: alle W3 und K1 Stationen mit Mode JT65 und EqslQslRcvd Status N (No)
Eingabe: (log.call like 'W_3%' OR log.call like 'K_1%') AND (log.mode like 'JT65') AND (log.EqslQslRcvd like 'N')
Ausgabe: alle W4 und K4 Stationen mit Mode RTTY und EqslQslRcvd Status Y (Yes)
Eingabe: (log.call like 'W_4%' OR log.call like 'K_4%') AND (log.mode like 'RTTY') AND (log.EqslQslRcvd like 'Y')
Ausgabe: alle W_2... und K_3... Stationen mit Mode JT9 und EqslQslRcvd Status Y (Yes)
Eingabe: (log.call like 'W_2%' OR log.call like 'K_3%') AND (log.mode like 'JT9') AND (log.EqslQslRcvd like 'Y')
Die Beispielen zeigen, wie man die Abfrage-Kombinationen (Filter) erweitern oder ändern kann und wo die ( ) notwendig sind.
Am Anfang jeder Syntax-Zeile kann die Klammer ( oder beides (log meist wegelassen werden.
Natürlich können Parameter (Spalten) gelöscht, erweitert oder ausgetauscht werden, wie K_3% z.B zu GB_%, das würde alle GB.... Calls auflisten. Auf genaue schreibweise ist besonders zu achten !!!
Zum Test kann man die Syntax-Beispiele einfach kopieren und in die Custom Leerzeile (Search Parameter) einfügen.
Den genauen von der DB verwendeten Feldnamen (Spaltenname) erfährt man im Simple Modus, mit dem gewünschten Feldnamen ein Kommando erzeugen und von dort den genauen Datenbank Feldnamen übernehmen. Nicht alle Tabellen-Überschriften entsprechen den tatsächlichen Feldnamen in der DB z.B, der Feldnamen - Callsign - entspricht dem realen
Datenbankfeldnamen - Call -, Callsign würde bei der Abfrage nichts ergeben.
Die öffters benutzten Kommandos bei den Search Parameter, kann man mit einem aussagekräftigen Namen in - Save Search name- abspeicher, grünes Plus Zeichen unten Mitte. Ich benütze das Notepad bei der Erstellung und zum Testen der Syntax,
die Befehle einfach vom Notepad kopieren und in Custom einfügen.
Man kann so seine eigenen individuellen Filter erstellen.
Es sieht schwieriger aus als es ist, nun viel Spaß beim probieren mit dem Custom Filter ! !
Wer weitere Ideen, bzw. Korrekturen hat, bitte diese Liste korrigieren bzw. erweitern, ich bin kein Datenbank – Experte
Ob man die Custom Suche nützt oder nicht muß jeder selbst entscheiden, individuelle Möglichkeiten sind dadurch gegeben.
VY 73 und 55 de Hans DF2MC.
Es gibt zwar schon eine ganze Menge vorgefertigter Abfragemöglichkeiten in LO4OM.
Syntax Beispiele und komplexe Abfragekombinationen (Filter)
Die Beispiele sollen nur die verschiedenen Möglichkeiten der Syntax aufzeigen.
Platzhalter % und _ (Unterstrich)
% >Steht für beliebiges Zeichen und beliebige Anzahl (auch dem 0 Zeichen). z.B.: 'JH_ %' steht für JH1ABC, JH6ABC
_ > Steht für genau ein beliebiges Zeichen, z.B.: 'W_4%' steht für WA4ABC, WB4ABC,WN4ABC .........
---------------------------------------------------------------------------------------------------------------------------------------------------
Kombination Operatoren AND & OR
Sie können AND und OR kombinieren, mit Klammern ( ) werden komplexe Ausdrücke gebildet, siehe Beispiele)
----------------------------------------------------------------------------------------------------------------------------------------------------
Beispiel 1: Suchbefehl: log.Country = 'Japan' AND (log.mode = 'JT65' OR log.mode = 'JT9')
Aus der SQL-Datenbank Tabelle (log) wird das Land (Country) ‘Japan‘ und die Betriebsart (mode) ‘JT65‘ ODER ‘JT9‘ ausgewählt.
Dieser Suchbefehl gibt eine Auflistung aller QSO`s mit Japan und den Betriebsarten JT65 - und - JT9 - aus.
----------------------------------------------------------------------------------------------------------------------------------------------------
Beispiel 2: Suchbefehl: log.Country = 'United States' AND (log.mode = 'JT65' OR log.mode = 'JT9') AND (log.call like 'W%')
Mit diesem Suchbefehl werden alle US-stationen im Mode JT65 und JT9 und alle Calls mit Anfangsbuchstaben W im Prefix aufgelistet.
----------------------------------------------------------------------------------------------------------------------------------------------------
Beispiel 3: Suchbefehl: log.Country = 'United States' AND (log.mode = 'PSK31' OR log.mode = 'RTTY') AND (log.State like 'M%')
Auflistung aller US Stationen Mode PSK31 und RTTY in den Staten M...... wie z.B MN MA MO...usw
----------------------------------------------------------------------------------------------------------------------------------------------------
Weiter Beispiele, die bei Search Parameter - Simple - nicht alle funktionieren würden.
Im Feld Comment irgendwelche Einträge:
Eingabe: log.comment like '_%'
Suche leere Felder Im Feld QslRcvd,:
Eingabe: log.QslRcvd = ''
Suche leere Comment Felder z.B bei Country Japan
Eingabe: log.country = 'Japan' and (log.comment = '')
Ausgabe: alle W_4... Stationen:
Eingabe: (log.call like 'W_4%')
Ausgabe: alle W_4.. und K_4.. Stationen
Eingabe: (log.call like 'W_4%' OR log.call like 'K_4%')
Ausgabe: alle Japanischen Stationen mit Prefix JA1... und JH.....
Eingabe: (log.call like 'JA1%' OR log.call like 'JH_%')
Ausgabe: alle W_1... und K_5... Stationen plus EqslQslRcvd Status Y (Yes)
Eingabe: (log.call like 'W_1%' OR log.call like 'K_5%') AND (log.EqslQslRcvd like 'Y')
Ausgabe: alle W_4... und K_4... Stationen plus EqslQslRcvd Status N (No)
Eingabe: (log.call like 'W_4%' OR log.call like 'K_4%') AND (log.EqslQslRcvd like 'N')
Ausgabe: alle W3 und K1 Stationen mit Mode JT65 und EqslQslRcvd Status N (No)
Eingabe: (log.call like 'W_3%' OR log.call like 'K_1%') AND (log.mode like 'JT65') AND (log.EqslQslRcvd like 'N')
Ausgabe: alle W4 und K4 Stationen mit Mode RTTY und EqslQslRcvd Status Y (Yes)
Eingabe: (log.call like 'W_4%' OR log.call like 'K_4%') AND (log.mode like 'RTTY') AND (log.EqslQslRcvd like 'Y')
Ausgabe: alle W_2... und K_3... Stationen mit Mode JT9 und EqslQslRcvd Status Y (Yes)
Eingabe: (log.call like 'W_2%' OR log.call like 'K_3%') AND (log.mode like 'JT9') AND (log.EqslQslRcvd like 'Y')
Die Beispielen zeigen, wie man die Abfrage-Kombinationen (Filter) erweitern oder ändern kann und wo die ( ) notwendig sind.
Am Anfang jeder Syntax-Zeile kann die Klammer ( oder beides (log meist wegelassen werden.
Natürlich können Parameter (Spalten) gelöscht, erweitert oder ausgetauscht werden, wie K_3% z.B zu GB_%, das würde alle GB.... Calls auflisten. Auf genaue schreibweise ist besonders zu achten !!!
Zum Test kann man die Syntax-Beispiele einfach kopieren und in die Custom Leerzeile (Search Parameter) einfügen.
Den genauen von der DB verwendeten Feldnamen (Spaltenname) erfährt man im Simple Modus, mit dem gewünschten Feldnamen ein Kommando erzeugen und von dort den genauen Datenbank Feldnamen übernehmen. Nicht alle Tabellen-Überschriften entsprechen den tatsächlichen Feldnamen in der DB z.B, der Feldnamen - Callsign - entspricht dem realen
Datenbankfeldnamen - Call -, Callsign würde bei der Abfrage nichts ergeben.
Die öffters benutzten Kommandos bei den Search Parameter, kann man mit einem aussagekräftigen Namen in - Save Search name- abspeicher, grünes Plus Zeichen unten Mitte. Ich benütze das Notepad bei der Erstellung und zum Testen der Syntax,
die Befehle einfach vom Notepad kopieren und in Custom einfügen.
Man kann so seine eigenen individuellen Filter erstellen.
Es sieht schwieriger aus als es ist, nun viel Spaß beim probieren mit dem Custom Filter ! !
Wer weitere Ideen, bzw. Korrekturen hat, bitte diese Liste korrigieren bzw. erweitern, ich bin kein Datenbank – Experte
Ob man die Custom Suche nützt oder nicht muß jeder selbst entscheiden, individuelle Möglichkeiten sind dadurch gegeben.
VY 73 und 55 de Hans DF2MC.