SQL (Structured Query Language) è un linguaggio standardizzato per la definizione e la manipolazione dei dati in un database relazionale. Secondo il modello relazionale dei dati, il database è percepito come un insieme di tabelle, le relazioni lo sono rappresentato dai valori nelle tabelle e i dati vengono recuperati specificando una tabella dei risultati che può essere derivata da una o più tavoli di base. Le query assumono la forma di un linguaggio di comando che ti consente selezionare, inserire, aggiornare, trovare la posizione dei dati e così via.
In Delphi: TQuery
Se utilizzerai SQL nelle tue applicazioni, acquisirai molta familiarità con TQuery componente. Delphi consente alle tue applicazioni di utilizzare la sintassi SQL direttamente tramite il componente TQuery per accedere ai dati dalle tabelle Paradox e dBase (utilizzando SQL locale - sottoinsieme di SQL standard ANSI), database sul server InterBase locale e database sul database remoto server.
Delphi supporta anche query eterogenee su più di un server o tipo di tabella (ad esempio, dati da una tabella Oracle e una tabella Paradox) .TQuery ha una proprietà chiamata
TQuery incapsula una o più istruzioni SQL, le esegue e fornisce metodi con cui possiamo manipolare i risultati. Le query possono essere divise in due categorie: quelle che producono set di risultati (come a SELEZIONARE dichiarazione) e quelli che non lo fanno (come un AGGIORNAREo INSERIRE dichiarazione). Usa TQuery. Apri per eseguire una query che produce un set di risultati; usa TQuery. ExecSQL per eseguire query che non producono set di risultati.
Le istruzioni SQL possono essere entrambe statico o dinamico, cioè possono essere impostati in fase di progettazione o includere parametri (TQuery. Parametri) che variano in fase di esecuzione. L'utilizzo di query con parametri è molto flessibile perché è possibile modificare la vista di un utente e l'accesso ai dati al volo in fase di esecuzione.
Tutte le istruzioni SQL eseguibili devono essere preparate prima di poter essere eseguite. Il risultato della preparazione è la forma eseguibile o operativa della dichiarazione. Il metodo di preparazione di un'istruzione SQL e la persistenza della sua forma operativa distinguono l'SQL statico dall'SQL dinamico. In fase di progettazione, una query viene preparata ed eseguita automaticamente quando si imposta domanda Proprietà attiva del componente su True. In fase di esecuzione, viene preparata una query con una chiamata a Preparare ed eseguita quando l'applicazione chiama i metodi Open o ExecSQL del componente.
Un TQuery può restituire due tipi di set di risultati: "vivere"come con il componente TTable (gli utenti possono modificare i dati con i controlli dei dati e quando si verifica una chiamata a Post vengono inviate modifiche al database),"sola lettura"solo a scopo di visualizzazione. Per richiedere un set di risultati live, impostare la proprietà RequestLive di un componente di query su True ed essere consapevoli del fatto che l'istruzione SQL deve soddisfare alcuni requisiti specifici (no ORDER BY, SUM, AVG, ecc.)
Una query si comporta in molti modi in modo molto simile a un filtro di tabella e, in qualche modo, una query è persino più potente di un filtro perché consente di accedere a:
- più di una tabella alla volta ("join" in SQL)
- un sottoinsieme specificato di righe e colonne dalle sue tabelle sottostanti, anziché restituirle sempre tutte
Esempio semplice
Ora vediamo alcuni SQL in azione. Sebbene sia possibile utilizzare la Creazione guidata modulo database per creare alcuni esempi SQL per questo esempio, lo faremo manualmente, passo dopo passo:
1. Inserire un componente TQuery, TDataSource, TDBGrid, TEdit e un TButton nel modulo principale.
2. Impostare la proprietà DataSet del componente TDataSource su Query1.
3. Impostare la proprietà DataSource del componente TDBGrid su DataSource1.
4. Impostare la proprietà DatabaseName del componente TQuery su DBDEMOS.
5. Fare doppio clic sulla proprietà SQL di un TQuery per assegnargli l'istruzione SQL.
6. Per rendere i dati di visualizzazione della griglia in fase di progettazione, modificare la proprietà Active del componente TQuery su True.
La griglia visualizza i dati dalla tabella Employee.db in tre colonne (FirstName, LastName, Stipendio) anche se Employee.db ha 7 campi e il set di risultati è limitato ai record da cui inizia il FirstName con 'R'.
7. Ora assegna il seguente codice all'evento OnClick del Button1.
procedura TForm1.Button1Click (Mittente: TObject); inizio Query1.Close;{chiudi la query}// assegna una nuova espressione SQL Query1.SQL.Clear; Query1.SQL.Add ('Seleziona EmpNo, FirstName, LastName'); Query1.SQL.Add ('FROM Employee.db'); Query1.SQL.Add ('WHERE Salary>' + Edit1.Text); Query1.RequestLive: = true; Query1.Open; {apri query + visualizza dati}fine;
8. Esegui la tua applicazione. Quando si fa clic sul pulsante (purché in Modifica 1 sia presente un valore di valuta valido), la griglia visualizzerà il simbolo Campi EmpNo, FirstName e LastName per tutti i record in cui lo stipendio è maggiore della valuta specificata valore.
In questo esempio, abbiamo creato una semplice istruzione SQL statica con set di risultati attivi (non abbiamo modificato nessuno dei record visualizzati) solo a scopo di visualizzazione.