
Idc, idn, Data
-- Pozitionam tabelele in zone de lucru
SELECT a USE clienti
SELECT b USE comanda
-- Crearea legaturilor
SELECT a INDEX ON idn TO z1
SELECT b SET RELATION TO idn INTO a
SET SKIP TO a -- creează relaţii 1>n
ACTUALIZAREA - adaugarea de noi inregistrari, modificarea și stergerea logica si fizică.
Adaugarea de inregistrari:
APPEND [BLANK] [IN nr_zona \ alias_tabela]
- comanda adauga o inregistrare vida la sfirsit tabelei.
APPEND FROM <nume_fisier> [FIELDS <lista cimpuri]>] [FOR<expr-L>]
- adugarea unei inregistrari din alt tabel.
Insert de inregistrari – adugare dupa inregistrarea curenta
Modificarea de inregistrari – CHANGE, EDIT, BROWSE si REPLACE. Comenzile CHANGE si EDIT sunt identice, ele difera de comanda BROWSE doar prin modul de organizare pe ecran a ferestrei corespunzatoare.
Sintaxa: BROWSE
[FIELDS <lista câmpuri>]
[ FOR <expL1>]
[FREEZE]
[noapPend] [noclear] [nodelete]
[noedit] [nomodify]
[VALID [:F] <exp1>[ ERROR<expC1>]]
[WHEN<expL1>]
[WIDTH<expN1>]
REPLACE - modifica valorile cimpului
REPLACE <nota_medie> WITH 9 FOR prenumele = ’popescu’
DELETE – Stergerea logica
DELETE [<domeniu>] [FOR<expL1>] [ WHILE<expL2>]
PACK – marcate. ZAP - Stergerea fizica
RECALL – restabilire (numai cele logice).
RECALL [<domeniu>] [FOR <expL1>] [WHILE<expL2>]
41 |
Crearea interfeţei în Foxpro. Meniuri. Ferestre utilizator. Introducerea şi vizualizarea formatată a datelor. Utilizarea construcţiei @...Say…Get. Opţiunile Picture şi Funcţion. |
Meniul – o formă de dialog în sisteme de prelucrare a datelor.
Ferestre – o posibilitate importantă de lucru cu aplicaţii prezintă utilizarea ferestrelor. Fiecare fereastră se prezintă ca un ecran aparte într-un moment dat de timp pot fi active mai multe ferestre odată.
DEFINE WINDOW – defineşte fereastra
ACTIVATE WINDOW – fereastra devine activă şi se afişează pe ecran
HIDE WINDOW / DEACTIVATE WINDOW – dispare fereastra de pe ecran, dar rămîne în memorie.
CLOSE / RELEASE WINDOW – şterge fereastra din memorie
Instrucţiunea get
Construcţia GET rezervează spaţiu pe ecran pt ca să introducem date. Locul rezervat are atît lungime cît mărimea var sau cîmpului indicat.
Pt citirea datelor din acest spaţiu se utiliz instr READ – poate fi utilizat numai o dată după mai multe construcţii SAY GET.
Construcţiile SAY GET pot fi unite, atunci deodată după afişarea info se rezervă loc pt introducerea datelor.
@ r1, c1 SAY GET „text” var / cîmp read.
Opţiunile a construcţiei SAY GET
Instrucţiunea SAY GET permite de a utiliza opţiunile PICTURE, FUNCTION care sunt utile pt a descrie formatul de introducere a datelor. Ex:
@ 33 SAY „Introduceţi bursa” GET bursa PICTURE „#######.##”
GET Nume PICTURE ’!AAAAAA’ Upper lower
Opţiunea FUNCTION are următorii parametrii:
A–numai litere (introducerea)
B – textul afişat va fi aliniat la stînga
I – aliniere la centru
J – aliniere la dreapta
L – în loc de spaţiu liber se afişează zero.
K – cînd mousul se află în cîmpul dat se schimbă culoarea.
42 |
Limbajul SQL. Tipuri de date. Reguli generale de sintaxă. Forma generală a instrucţiunii de interogare SELECT. Realizarea interogărilor pe un tabel. |
|
Categoria |
Tipuri de date |
|
Şir de caractere |
char, varchar, nchar, nchar varying, clob (character large object), nclob |
|
Număr |
int, integer, smallint, numeric decimal, float, real, double precision |
|
Temporal |
date, time, timestamp, interval |
|
Boolean |
boolean (true, false or unknown) |
|
Construite |
user defined type (UDT) reference type row type collection type |
|
Şir binar |
blob (binary large object) |
|
Şir de biţi |
bit, bit varying |
Unele menţiuni suplimentare fată de conţinutul sintaxei pentru definirea datelor: restricţia foreign key defineşte noţiunea de integritate referenţială între o cheie străină din o tabelă (relaţie) şi o cheie primară din altă tabelă (sau din aceeaşi). Integritatea referenţiată prin restricţia de cheie străină este fundamentală în definirea schemei unei baze de date relaţionale. Această restricţie obligă valoarea cheii străine (care este compusă din una sau mai multe coloane atribute) să fie sau „null” sau egală cu valoarea unei chei primare la care se referă. Cheia străină trebuie să aibă acelaşi tip de date ca şi cheia primară cu care este legată.
Pentru selectarea datelor se utilizează propoziţia: SELECT LISTA cîmp FROM table
43 |
SQL. Interogări pe mai multe tabele. Subinterogări. |
GROUP BY – grupează date după cîmpul indicat:
SELECT <lista_cîmpurilor> FROM tabele [WHERE <condiţie>] GROUP BY <cîmp>
Subinterogarea se numeşte un select în alt select. O interogare în altă interogare. Ea poate fi după clauza WHERE, HAVING, în instrucţiuni INSERT, UPDATE, DELETE.
Subinterogarea serveşte ca un criteriu pentru rezultatele interogării care se află mai sus. Interogarea se leagă cu subinterogare:
semne de comparaţie (<,>,=,<=,>=,<>);
cuvinte IN, NOT IN.
3. >< Any, All
Subinterogarea în cazul dat întorce o mulţime de valori, aceste cuvinte cheie se utilizează pînă la interogare dacă înăinte de subinterogarea se utilizează < ANY atunci rezultatul trebuie să fie mai mare decît orice valorea din mulţimea subinterogării.
> ALL – rezultatul trebuie să fie > decît val maximă din mulţimea subinterogării.
44 |
Limbajul SQL. Reuniunea tabelelor în SQL. Uniuni externe. Operatorul Union. |
Reuniunea reprezintă o operaţie a algebrei relaţională definită pe două relaţii: R1 şi R2, ambele cu aceeaşi schemă, în urma căreia se construieşte o nouă relaţie R3, cu aceeaşi schemă ca şi R1 şi R2 şi având drept extensie tuplurile din R1 şi R2, luate împreună o singură dată.
Notaţii: R1U R2
OR (R1, R2)
APPEND (R1, R2)
UNION (R1, R2)
Uniunea simplă
Procesul de formare a cuplurilor de înregistrări comparînd conţinutul coloanelor respective se numeşte uniunea tabelelor.
La uniunea tabelelor mai întîi se compune un produs dintre înregistrările tabelelor, apoi se aleg numai înregistrările ce satisfac condiţia din clauza WHERE.
Mai des se utilizează uniunea a două tabelele.
Interogarea totală externă * = *
Uniunea externă se crează în felul următor:
Se crează uniunea internă a două tabele prin metoda standartă.
Fiecare rînd din primul tabel care nu are legătura cu tabelul al 2-lea se adaugă la rezultate şi la cîmpul 2 se adaugă valori nule.
Fiecare rînd a tabelului numărul 2 care nu are legătură cu tabelul 1 se adaugă la tabel rezultant în cîmpurile tabelului 1 se pune val nulă.
SQL susţine posibilitatea aceasta cu ajutorul operatorului UNION
Reguli de utilizare a directivei UNION
Două tabele trebuie să conţină acelaşi număr de coloane.
Tipul de date a fiecărei coloane 1 tabel trebuie să corespundă cu tipul de date a coloanei corespunzătoare tabelului 2.
Nici una din tabele nu poate fi ordonată cu ORDER BY
Implicit UNION elimină înregistrările dublate, pentru salvarea înregistrărilor trebuie să utilizăm UNION ALL.
45 |
Limbajul SQL. Instructiuni de definire a datelor. Crearea si actualizarea structurii unui tabel. |
Definirea Datelor
CREATE TABLE <nume_db> – adauga o nouă tabelă la baza de date;
DROP TABLE - şterge o tabelă din BD;
ALTER TABLE – modifica structura unei tabele deja existente;
CREATE VIEW – adaugă o nouă vedere;
DROP VIEW - şterge o vedere;
CREATE INDEX - creează un index pt o coloană;
DROP INDEX - şterge indexul asociat unei coloane;
Crearea unui tabel
CREATE TABLE Produse (
id_produs CHAR(10) NOT NULL,
id_producator CHAR(10) NOT NULL,
nume_produs CHAR(254) NOT NULL,
pret_produs DECIMAL(8,2) NOT NULL,
descrie_produs VARCHAR(1000) NULL);
Actualizarea datelor se referă la adăugarea unor noi rânduri într-o tabelă (cu comanda INSERT), la modificarea valorilor uneia sau mai multor valori dintr-un rând (cu comanda UPDATE) şi la ştergerea unui rând dintr-o tabelă (cu comanda DELETE)
Adaugare
INSERT INTO <nume-tabel>
[(nume-col1, nume-col2,...)]
{VALUES (valoare 1, valoare2,...) | cerere);
Ex: SQL>INSERT INTO Produse VALUES 1 (100000,11111,'MESE 15/20',7,'27-JUN-92,’BUC').
Modificare
UPDATE <nume-tabel>
SET <nume-crt = expresie, nume -expresie, ...> [WHERE <condiţie>];
În funcţie de momentul în care se doreşte realizarea modificărilor asupra BD, user poate folosi una din următoarele comenzi:
SET AUTOCOMMIT IMM [EDIATE] (schimbările se efectuează imediat);
SET AUTOCOMMIT OFF (schimbările sunt păstrate într-un buffer).
Stergerea DELETE FROM <nume_tabela> [WHERE <condiţie>].
Ex: Să se scrie comanda pentru ştergerea datelor despre salariatul VLAD VASILE. Ştergerile să nu fie efectuate imediat ci ulterior.
SQL>SET AUTOCOMMIT OFF
SQL>DELETE FROM SALARIAŢI WHERE NUME='VLAD VASILE'.
46 |
Limbajul SQL. Actualizarea BD prin inserare, prin modificare şi ştergere. |
Actualizarea datelor se referă la adăugarea unor noi rânduri într-o tabelă (cu comanda INSERT), la modificarea valorilor uneia sau mai multor valori dintr-un rând (cu comanda UPDATE) şi la ştergerea unui rând dintr-o tabelă (cu comanda DELETE).
Adaugare