Cum funcționează
Toate subiectele de baze de date de la atestat au aceeași structură în patru pași: creezi
tabelul, introduci datele, faci o interogare de afişare, apoi una de modificare. Odată ce înțelegi
tiparul, restul problemelor sunt variații pe aceeași temă.
a) Traducerea structurii din enunț
Enunțul dă tipurile într-o notație prescurtată, care se traduce direct în SQL:
| Notaţia din enunţ |
Ce înseamnă |
Tip SQL |
(N,5) |
numeric, 5 cifre |
INTEGER |
(T,80) |
text, 80 de caractere |
VARCHAR(80) |
(N,6.2) |
numeric, 6 cifre din care 2 zecimale |
DECIMAL(6,2) |
(D) |
dată calendaristică |
DATE |
DECIMAL(6,2) e important pentru prețuri: păstrează exact două zecimale, spre deosebire de un tip
real obișnuit, unde 4.50 s-ar putea stoca aproximativ.
b) Inserarea datelor
INSERT INTO Carti VALUES (18211, 'Ghid practic in bucatarie', '1/G33', 4.50, 'In biblioteca');
Valorile se dau în ordinea coloanelor din CREATE TABLE. Textul se pune între apostrofuri
('), numerele nu. Zecimalele se scriu cu punct, nu cu virgulă — virgula separă coloanele.
c) Interogarea de afişare
SELECT * FROM Carti WHERE Situatia = 'Imprumutata';
SELECT * înseamnă „toate coloanele". WHERE filtrează rândurile: rămân doar cele în care condiția
e adevărată. Comparația de egalitate se face cu un singur =, nu ==.
d) Interogarea de modificare
UPDATE Carti
SET Situatia = 'Pierduta si achitata'
WHERE Titlu = 'Coliba unchiului Tom';
UPDATE are trei părți: ce tabel, ce se schimbă (SET) și pentru care rânduri
(WHERE).
WHERE este obligatoriu. Fără el, UPDATE modifică toate rândurile din tabel — aici, toate
cele 6 cărți ar deveni „Pierduta si achitata". E cea mai gravă greșeală din toată categoria, pentru
că programul nu dă niciun fel de eroare; pur și simplu distruge datele.
Observă că = are două sensuri diferite în aceeași instrucțiune: în SET înseamnă atribuire, în
WHERE înseamnă comparație.
Greșeli frecvente
UPDATE fără WHERE — se modifică toate înregistrările. Cea mai costisitoare greșeală.
- Text fără apostrofuri —
WHERE Situatia = Imprumutata caută o coloană cu acest nume și dă
eroare.
- Ghilimele duble în loc de apostrofuri —
"text" nu e standard SQL pentru şiruri.
- Zecimale cu virgulă (
4,50) — virgula separă valorile, deci se citește ca două coloane.
== la comparație — în SQL egalitatea se scrie cu un singur =.
- Ordinea valorilor din
INSERT diferită de cea din CREATE TABLE.
- Punct-şi-virgulă uitat la finalul instrucţiunii.
Unde se scriu. Instrucţiunile de mai sus sunt SQL standard. În Microsoft Access se lipesc în
Create → Query Design → SQL View. În Access, VARCHAR se poate scrie şi TEXT, iar
DECIMAL(6,2) devine un câmp Number cu proprietatea Decimal Places setată la 2.