You are here: Foswiki>GPS Web>SqlBasics (02 Mar 2023, TinaSchuett)Edit Attach
header_end.PNG

Anleitung: SQL Basics im SQL Server Management Studio (SSMS)


Diese WIKI Seite beinhaltet Videos! Bitte auf die Videos klicken, um sie zu starten (größere Videos müssen heruntergeladen werden).

Am Server anmelden


Am Terminalserver 192.168.0.119 ist die Anwendung "Microsoft SQL Server Management Studio 18" installiert (falls sie nicht am Desktop auffindbar ist, bitte in der Suche danach suchen).

Das Programm starten.

Es folgt die Aufforderung sich anzumelden. Bitte folgendes eintragen:

.

IDEA! Hier ist folgendes wichtig:

- Bitte immer bei Authentifizierung "SQL Server-Authentifizierung" verwenden, damit ihr euch mit dem pps_ro User anmelden könnt (dieser hat alle Leserechte, aber keine Schreibrechte, so kann nichts passieren).
- Bitte holt euch das Passwort des pps_ro Users bei der IT (Tina) und speichert es euch in euren Keepass.

Bei Servername kann der sprechende Name eines Servers, oder dessen IP-Adresse, eingetragen werden.

IDEA! Die wichtigsten Servernamen lauten:

database flex07 = produktiver GPS Server
database qablade88 = Test-GPS Server
database flex10 = Datawarehouse-Server, historisierte GPS Daten
database mirror01 = Spiegelserver des Produktivsystems (hier werden große Abfragen gestartet, um das Produktivsystem zu entlasten)
database service = produktiver IIS Server ("Radius-Server" bzw. WIS- und Webservice-Server)
database testservice = Test-IIS Server ("Test-Radius Server" bzw. TESTWIS- und Test-Webservice-Server)

Die Verbidung zu den verschiedenen Servern wird im Video (01:27) nochmal kurz erklärt:

.

Übersicht über die Elemente des SSMS


Wurde eine Verbindung zum Server hergestellt, finden sich einige verschiedene Kategorien an Informationen aufgelistet. Hier die wichtigsten erklärt:

Im Video wird auf die wichtigsten Kategorien nochmal genau eingegangen:

.

Struktur der GPS Datenbank


Aufbau der Datenbank

Eine Datenbank (hier am Beispiel des flex07 → GPS Datenbank) besteht aus folgenden Elementen:

Tabellen und deren Inhalte

Klappt man den Ordner "Tabellen" auf, werden hunderte von verschiedenen Tabellen angezeigt, manche haben sprechende Namen, die auf die Inhalte verweisen.
Andere Tabellen muss man kennen um deren Inhalte zu wissen.

IDEA! Hier die wichtigsten Tabellen aufgelistet

dbo.TADRE0 Alle Adressdaten von Personen und Firmen, Infos vom 1. Tab in den Stammdaten
dbo.TPHON0 Alle Telefonnummern, E-Mailadressen zu den Personen/Firmen inkl. Zusatzinfos
dbo.TADMZ0 Personenzusatz, z.B. Geburts- und Eintrittsdaten, Verrechnungsdaten etc.
dbo.TADFZ0 Firmenzusatz, Verrechnungsdaten, Registriernummern, Kostenstellen etc.
dbo.TKONT0 Kontakttabelle - Firmen und Personenverknüpfungen inkl. Funktionen etc.
dbo.TPRO1H01 Produkt bzw. Artikeltabelle
dbo.TANG0H01 / dbo.TAngDetail GB1 Angebotskopf und Angebotsdetails
dbo.TTAngebotskopf / dbo.TTAngebotdetail GB2 Angebotskopf und Angebotsdetails
dbo.TABLE0 Angebots-Ablehnungsgründe
dbo.TUSER0 GPS-User Tabelle
etc...

SQL Suche

Natürlich kann in jedem Falle die SQL-Suche verwendet werden, entweder um Tabellen, Spalten oder Inhalte zu finden, oder um schnell zu der gewünschten Tabelle zu hüpfen:

Im Video (05:15) wird die Suchfunktion noch einmal genau durchgespielt:

.

Simple SQL Statements, um Tabellen zu filtern/sortieren


Eine Tabelle wird geöffnet, indem man sie mit der rechten Maustaste anklickt und wählt "Erste 1000 Zeilen auswählen":

Nun öffnet sich im oberen Bereich eine Eingabemaske mit dem SQL Statement der Abfrage, und unten die Ergebnisse der Abfrage.

Gibt man nun gewisse Parameter ein, ändern sich bei Klick auf "Ausführen" die Ergebnisse unten.

IDEA! möchte man mehr als nur 1000 Zeilen sehen, einfach ganz oben den Ausdruck "TOP (1000)" löschen und nochmal → Ausführen!

video3.gif

.

Folgende Ausdrücke in den SQL Statements können hilfreich sein:

1. Nach eindeutigen Werten suchen:

Fügt man am SQL Statement WHERE [Spalte] = '[Suchparameter z.B. Name]' ein, erhält man ein eindeutiges Ergebnis:

2. Nach enthaltenen Schlagwörtern suchen:

Möchte man Ergebnisse sehen, welche ein Schlagwort enthalten, benützt man LIKE statt dem "=" und fügt Prozentzeichen zum Suchparameter hinzu:

3. Nach mehreren Parametern suchen:

Das Wort "AND" kann am Ende des vorherigen Statements hinzugefügt werden, um noch tiefer zu filtern, Hier z.B. möchten wir NUR Personen filtern, die Mayer oder ähnlich heißen:

4. Ergebnisse sortieren:

Möchten wir nun noch die Ergebnisse sortieren, geben wir den Befehl "order by" [Parameter nach dem wir sortieren] und dann entweder "asc" (aufsteigend) oder "desc" (absteigend) dazu:

.

Im Video (05:59) zeigt Stefan nochmal im Schnelldurchlauf wie die Befehle funktionieren:

.

Änderungshistorie


Ein praktisches Tool ist die Änderungshistorie, welche am flex07 für viele Tabellen bereits existiert. Die Historie befindet sich immer in den Tabellen mit Namen ..._Historie_Col.

Möchte man die genaue Historie zu einem geänderten Datensatz benötigt man die Historie_Col Tabelle und die RowID in der Ursprungstabelle.

puzzle Beispiel: Ich möchte wissen, wer zuletzt eine bestimmte E-Mailadresse geändert hat.

Ich gehe in die TPHON0 Tabelle und suche mir die ID der E-Mailadresse:

Die fortlaufende Nummer in dieser Tabelle lautet also 29304.

Ich öffne die dazugehörige Tabelle TPHON0_Historie_Col und suche nach dieser Row-ID, und sortiere diese nach Datum absteigend:

Hier kann ich also erkennen, dass zuletzt in das Bemerkungsfeld eingetragen wurde und zuvor den Eyepin-Newsletter Einstellungen gearbeitet wurde.
Der alte Wert steht in der Spalte "DeletedValue", der neue Wert in "InsertedValue".

Der User, der die Änderung eingetragen hat, steht in der Spalte HistorieUserID.

Den User kann man, wenn man das wissen möchte, in der Tabelle TUSER0 herausfinden:

Im folgenden Video (04:45) wird die Änderungshistorie nochmal dargestellt:

Topic revision: r7 - 02 Mar 2023, TinaSchuett
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback