SQL in Visual FoxPro - PowerPoint PPT Presentation

About This Presentation
Title:

SQL in Visual FoxPro

Description:

SQL in Visual FoxPro – PowerPoint PPT presentation

Number of Views:48
Avg rating:3.0/5.0
Slides: 18
Provided by: Marcu91
Category:
Tags: foxpro | sql | joins | visual

less

Transcript and Presenter's Notes

Title: SQL in Visual FoxPro


1
SQL in Visual FoxPro
2
SQL Historie
  • SQL - Structured Query Language
  • In den 70er Jahren von IBM entwickelt
  • 1986 zum ANSI Standard erhoben
  • 1987 Übernahme des Standard von ISO
  • 1989 erweitert wobei der 86er Standard als
    SQL89/Level1 übernommen wurde
  • Letzte Erweiterung von 1992 wird SQL2 oder SQL92
    genannt.
  • Heute die Abfragesprache für alle relationalen
    Datenbanksysteme

3
SQL - SELECT (1)
  • SELECT Select_Item FROM Table
  • Sortierung ORDER BY Feldname ASC (Default)
    DESC
  • SelektionWHERE Klausel
  • SELECT
  • FROM CUSTOMER
  • SELECT NAME,VORNAME
  • FROM CUSTOMER
  • SELECT
  • FROM CUSTOMER
  • ORDER BY NAME ASC , VORNAME DESC
  • SELECT
  • FROM CUSTOMER
  • WHERE NAME Alt
  • ORDER BY VORNAME

4
SQL - SELECT (2)
  • BETWEEN Wert1 AND Wert2(Grenzwerte sind
    inklusive)
  • IN (Wert1,Wert2,Wert3)Wertegruppe prüfen
  • LIKEZeichenkettenvergleich mit Wildcards
  • _ ein bel. Zeichen
  • beliebige Anzahl bel. Zeichen
  • SELECT
  • FROM CUSTOMER
  • WHERE PLZ BETWEEN
  • 74000 AND 74999
  • SELECT
  • FROM CUSTOMER
  • WHERE PLZ IN (74072, 74076)
  • SELECT
  • FROM CUSTOMER
  • WHERE NAME LIKE A
  • (Alle Kunden deren Name mit A beginnt)

5
SQL - SELECT (3)
  • GROUP BY (Gruppierung) mit GROUP BY können Sie
    Sätze des Ergebnis Cursors zu einem Satz
    zusammenfassen
  • AS KlauselDer entstehenden Spalte einen
    definieren Namen zuordnen
  • COUNT()Anzahl der Datensätze zählen.
  • SELECT COUNTRY,
  • COUNT() AS ANZAHL
  • FROM CUSTOMER
  • GROUP BY COUNTRY

6
SQL - SELECT (4)
  • HAVING - Einschränken des Ergebnis Cursors
  • FUNKTIONEN
  • MIN, MAX
  • SUM, AVG, COUNT
  • Sinnvoller Einsatz nur bei Gruppierung
  • SELECT Region,
  • COUNT () AS ANZAHL
  • FROM CUSTOMER
  • GROUP BY REGION
  • HAVING ANZAHL gt 1
  • (Alle Regionen, welche mehr als einen Datensatz
    enthalten)

7
SQL - SELECT (5)
  • DISTINCTNur unterschiedliche Werte werden
    beachtet.
  • UNTERABFRAGEN
  • SELECT COUNT DISTINCT PLZ
  • AS ANZAHL
  • FROM CUSTOMER
  • (Anzahl der unterschiedlichen Postleitzahlen in
    der Tabelle ausgeben)
  • SELECT NAME
  • FROM CUSTORMER
  • WHERE UMSATZ gt
  • ( SELECT AVG(UMSATZ)
  • FROM STATISTIK )
  • (Alle Kunden, welche den Max Umsatz erreicht
    haben heraussuchen)

8
SQL - SELECT (6)
  • UNTERABFRAGEN mit WHERE
  • ALL
  • ANY
  • EXISTS
  • IN
  • sowie mit NOT kombiniert (Rushmoore greift nicht
    ! )
  • WHERE UMSATZ gt ALL (SELECT...)
  • WHERE UMSATZ lt ANY (SELECT...)
  • WHERE EXISTS (SELECT...)
  • (Vergleich Unterabfrage leer .T. / .F.)
  • WHERE KDNR IN (SELECT KDNR
  • FROM ...)

9
SQL - SELECT (7)
  • SELECT über mehrere Tabellen
  • lokaler Alias
  • SELECT Customer.NAME,
  • Orders.Summe
  • FROM Customer, Orders
  • WHERE Customer.id Orders.CustormerId
  • ODER verkürzt
  • SELECT C1.NAME, O1.Summe
  • FROM Customer C1, Orders O1
  • WHERE C1.id O1.CustormerId

10
SQL - SELECT (8)
  • LEFT
  • Alle Daten der linken Tabelle, und die
    übereinstimmenden der rechten Tabelle
  • RIGHT
  • Alle Daten der rechten Tabelle, und die
    übereinstimmenden der linken Tabelle
  • INNER
  • nur die übereinstimmenden Daten der linken und
    rechten Tabelle
  • FULL
  • Alle Daten der rechten Tabelle, sowie alle Daten
    der linken Tabelle, wobei übereinstimmende Sätze
    zugeordnet werden.

JOINS
11
SQL - SELECT (8)
  • AUSGABE des Ergebnisses in
  • INTO CURSOR NOFILTER
  • INTO DBF TABLE
  • INTO ARRAY
  • TO FILE ADDITIVE
  • TO PRINTER
  • TO SCREEN

12
VFP Neuerungen (1)
  • SELECT TOPSelektion der ersten xx Sätze wobei
    die Order By Klausel entscheidend ist
  • SELECT TOP PERCENTSelektion der ersten xx
    Prozent der Sätze wobei die Order BY Klausel
    entscheidend ist.
  • Achtung Sätze welche in der Sortierfolge
    überein-stimmen werden nur einmal gezählt -gt
    event. mehr Sätze im Ergebnis als erwartet.
  • SELECT TOP 10 NAME
  • FROM CUSTOMER
  • ORDER BY UMSATZ
  • SELECT TOP 10 PERCENT NAME
  • FROM CUSTOMER
  • ORDER BY UMSATZ

13
VFP Neuerungen (2)
  • FORCE
  • Mit FORCE können Sie erzwingen, daß die WHERE
    Bedingung von Links nach Rechts abgearbeitet
    wird.(Dies macht vor allem für die Optimierung
    größerer Abfragen Sinn.)
  • NOFILTER
  • Mit NOFILTER können Sie erzwingen, daß ein
    temporäre Tabelle erstellt wird !
  • Nur NOFILTER Cursor können Sie mit SELECT
    weiterverarbeiten

14
SQL - SELECT im Überblick
  • SELECT ALL DISTINCT TOP nExpr
    PERCENTAlias. Select_Item AS
    Column_Name, Alias. Select_Item AS
    Column_Name ...
  • FROM FORCEDatabaseName!Table AS
    Local_AliasINNER LEFT OUTER RIGHT
    OUTER FULL OUTER JOINDatabaseName!Table
    AS Local_AliasON JoinCondition
  • INTO Destination TO FILE FileName
    ADDITIVE TO PRINTER PROMPT TO SCREEN
  • PREFERENCE PreferenceName
  • NOCONSOLE
  • PLAIN
  • NOWAIT
  • WHERE JoinCondition AND JoinCondition ...AND
    OR FilterCondition AND OR FilterCondition
    ...
  • GROUP BY GroupColumn , GroupColumn ...
  • HAVING FilterCondition
  • UNION ALL SELECTCommand
  • ORDER BY Order_Item ASC DESC , Order_Item
    ASC DESC ...

15
Weitere SQL Befehle
  • INSERT INTO dbf_name (fname1 , fname2,
    ...)VALUES (eExpression1 , eExpression2,
    ...) oder
  • INSERT INTO dbf_name FROM ARRAY ArrayName FROM
    MEMVAR
  • UPDATE DatabaseName!TableNameSET Column_Name
    eExpressionWHERE FilterCondition
  • DELETE FROM DatabaseName!TableNameWHERE
    FilterCondition

16
SQL zu Wartungszwecken
  • CREATE DATABASE
  • CREATE TABLE
  • ALTER TABLE
  • CREATE CURSORtemporäre Tabelle erstellen, diese
    kann wie jede andere VFP Tabelle verwendet
    werden. (Also nicht schreibgeschützt !)
  • CREATE SQL VIEW

17
Anregungen und Fragen
  • TMN-Systemberatung GmbH
  • Allee 62
  • 74072 Heilbronn
  • http//www.tmn-systemberatung.de
  • info_at_tmn-systemberatung.de
Write a Comment
User Comments (0)
About PowerShow.com