1. Cereri simple SQL
Scopul lectiei
Pentru a extrage date din baza de date trebuie sa folositi declaratiile SQL SELECT.S-ar putea sa fie nevoie sa restrictionati coloanele care sunt afisate.Aceasta lectie descrie toate declaratiile SQL necesare pentru a realiza aceste actiuni.Nota: iSQL*Plus este un nou produs Oracle9i.Este un browser unde se
executa comenzile SQL.In versiunile mai vechi de Oracle SQL*Plus era mediul
default de executie al comenzilor SQL.SQL*Plus este inca disponibil.
Ce pot face declaratiile SQL SELECT?
O declaratie SQL extrage informatii din baza de date.Folosind o declaratie SELECT puteti face urmatoarele:
Declaratia SELECT de baza
SELECT *|{[DISTINCT] coloana|expresie [alias],...}
FROM tabela;
Exemplu:
Selectarea tuturor
coloanelor dintr-o tabela.
Selectarea unor anumite coloane
Exemplu:
Se selecteaza coloanele ename si
deptno din tabela emp.
Scrierea declaratiilor SQL
Expresii aritmetice
S-ar putea sa aveti nevoie sa modificati felul in care datele sunt afisate, sa faceti diferite calcule, sau sa vedeti posibile scenarii.Pentru toate acestea e posibil sa folositi expresii aritmetice.O expresie aritmetica poate contine nume de coloane, valori numerice constante, si operatori aritmetici.Operatori aritmetici
Puteti folosi operatori aritmetici in orice clauza a unei declaratii SQL cu exceptia clauzei FROM.Folosirea operatorilor aritmetici
Exemplu:
Listeaza numele fiecarui
angajat, salariul lunar si salariul anual dupa o marire lunara de 100.
Valori Null
Exemplu :
In rezultat, numai agentii de vanzari
au comision.Ceilalti angajati nu au dreptul la comision.Un null reprezinta acest
fapt.
Exemplu :
In acest exemplu , angajatii
fara comision vor avea o valoare null in coloana a doua
Alias-uri de coloana
Cand afiseaza rezultatul unei cereri, iSQL*Plus foloseste in mod normal numele coloanei selectate ca header de coloana.Acest header s-ar putea sa nu fie descriptiv si de aceea, greu de inteles.Puteti schimba header-ul de coloana folosind alias-urile de coloana.Alias-ul se specifica dupa coloana in lista SELECT folosind spatiu ca separator.Ca default alias-urile apar cu litere mari in header-ului coloanei.Daca alias-ul contine spatii sau caractere speciale(cum ar fi # sau $), sau este case sensitive, trebuie inchis intre semne de citare(" "). Exemplu :
Operatorul de concatenare
Puteti lega coloane cu alte coloane, expresii aritmetice, sau valori constante pentu a crea o expresie de caractere folosind operatorul de concatenare (||).Coloanele din stanga sau dreapta operatorului sunt combinate pentru a forma o singura coloana de iesire. Exemplu :
In acest exemplu ename si
job sunt concatenate, si le este dat alias-ul angajati.
Siruri literale de caractere
Un literal este un caracter, un numar sau o data care este inclusa in lista SELECT si nu este un nume sau un alias de coloana.Este tiparit pentru fiecare rand intors.Sirurile literale de text neformatat pot fi incluse in rezultatul cererii si sunt tratate la fel ca si coloanele in lista SELECT.Literalii care sunt data sau caractere trebuie sa fie incadrate in semne simple de citare (' ');literalii numerici nu.Randuri duplicat
Daca nu indicati altfel, iSQL*Plus afiseaza rezultatele unei cereri fara a elimina randurile duplicat.Pentru a elimina randurile duplicat, includeti cuvantul cheie DISTINCT in clauza SELECT imediat dupa cuvantul cheie SELECT.Puteti specifica mai multe coloane dupa DISTINCT.Calificativul DISTINCT afecteaza toate coloanele selectate,si rezultatul este fiecare combinatie distincta a coloanelor.Exemplu:
Se listeaza doar 10 randuri in loc de 15 cum s-ar fi listat fara cuvantul cheie
DISTINCT
Interactiunea intre SQL si iSQL*Plus
SQL este un limbaj de comanda pentru comunicarea cu serverul Oracle din orice unealta sau aplicatie.iSQL*Plus este o unealta Oracle care recunoaste si trimite declaratiile SQL la serverul Oracle pentru executie si contine propriul sau limbaj de comanda.
Caracteristici ale SQL-ului
Poate fi folosit de o mare varietate de utilizatori, inclusiv aceia cu putina sau nici o experienta de programare;este un limbaj non-procedural, cu o sintaxa asemanatore cu engleza.De asemenea, reduce timpul necesar pentru crearea si intretinerea sistemelor.
Caracteristici iSQL*Plus
SQL |
iSQL*Plus |
Este un limbaj pentru comunicarea cu serverul Oracle pentru a accesa datele | Recunoaste declaratiile SQL si le trimite serverului |
Este bazat pe standardul ANSI pentru SQL | Este interfata Oracle pentur executia declaratiilor SQL |
Manipuleaza datele definirea tabelelor in baza de date | Nu permite manipularea valorilor din baza de date |
Nu are un caracter de continuare | Are o liniuta (-) drept caracter de continuare daca comanda este mai lunga de o linie |
Nu poate fi abreviat | Poate fi abreviat |
Foloseste functiile pentru a face unele formatari | Foloseste comenzile penru a formata datele |
Vedere generala asupra iSQL*Plus
iSQL*Plus este un mediu in care puteti sa:
Categorie |
Scop |
De mediu | Afecteaza comportamentul general al declaratiilor SQL pentru o sesiune |
De formatare | Formateaza rezultatele cererilor |
Pentru manipularea fisierelor | Salveaza declaratiile in fisiere de scipt in format text si ruleaza declaratiile din aceste fisiere |
Executie | Trimite declaratiile SQL din browser la serverul Oracle |
Editare | Modifica declaratiile SQL din fereastra de editare |
Interactiune | Permite crearea si trimiterea variabilelor catre declaratii SQL, tiparirea valorilor variabilelor, si afisarea mesajelor pe ecran |
Diverse | Are diverse comenzi de conectare la baza de date, pentru a manipula mediul iSQL*Plus, si pentru a afisa definitiile coloanelor |
Conectarea la iSQL*Plus
Pentru a va conecta printr-un browser: 1.Porniti browser-ul 2.Intoduceti adresa mediului iSQL*Plus .Completati campurile nume de utilizator(username), parola(password) si Oracle Connection Identifier.Mediul iSQL*Plus
Fereastra iSQL*Plus are mai multe zone cheie:
1.Fereastra de editare(Edit window):zona unde scrieti declaratiile SQL si comenzile iSQL*Plus. 2.Butonul de executie:pentru executia declaratiilor si comenzilor din fereastra de editare 3.Optiunea de iesire(Output Option):default este Work Screen, care afiseaza rezultatul declaratiei SQL sub fereastra de editare.Celelalte optiuni sunt File si Window.File salveaza continutul intr-un fisier specificat.Window muta afisajul pe ecran, dar intr-o ordine diferita. 4.Butonul de stergere a ecranului(Clear Screen):sterge textul din fereastra de editare 5.Butonul de salvare a scriptului(Save Script):salveaza continutul ferestrei de editare intr-un fisier 6.Locatorul de script(Script Locator):identifica numele si locatia unui fisier script pe care vreti sa-l executati 7.Butonul de navigare(Browse):folosit pentru a gasi un fisier script utilizand fereasta de dialog a Windows File Open 8.Iesire(Exit):clic pentru a incheia sesiunea iSQL*Plus si a va intoarce la fereasta de conectare 9.Help:asigura accesul la documentatia iSQL*Plus 10.Butonul parola:folositi-l pentru a va schimba parolaAfisarea structurii tabelelor
Comanda iSQL*Plus
DESCRIBE afiseaza structura unui tabel
DESCRIBE
nume_tabel
Comanda afiseaza numele
coloanelor si si tipul de date al fiecareia, de asemenea si daca coloana
raspectiva trebuie sa contina date.In rezultat, in coloana Null? se
indica daca o anumita coloana trebuie sa contina date;NOT NULL arata ca aceea
coloana trebuie sa contina date.Coloana Type afiseaza tipul de date pentru o
coloana.
Tipurile de date sunt descrise in urmatorul tabel:
Tipul de date | Descriere |
NUMBER(p,s) | Valoare numerica avand maximum p cifre, cu maxim s cifre dupa virgula |
VARCHAR2(s) | Valoare tip caracter de lungime variabila si maximum s |
DATE | dValoare de data si ora intre 1 ianuarie 4712 i.e.n.si 31 decembrie 9999 e.n. |
CHAR(s) | Valoare tip caracter de lungime fixa s |
Lucrul cu fisierele script
Puteti salva comenzile si declaratiile din fereastra de editare intr-un fisier text dupa cum urmeaza: 1. Scrieti declaratiile SQL in fereastra de editare din iSQL*Plus. 2. Click pe butonul Save script.Aceasta deschide fereastra de dialog Windows File Save.Scrieti numele fisierului.In mod normal va fi un fisier html.Puteti schimba tipul fisierului in fisier text sau sa-l salvati ca un fisier .sql.
Exercitii
Exercitiul 1
Afisati coloanele ename, cu alias-ul Nume,job si salariul anual,
cu alias-ul Salariu Anual.
Exercitiul 2
Afisati numele si postul fiecarui angajat sub forma
ename
este job si seful lui are numarul
MGR, cu alias-ul de coloana Detalii angajati.
Exercitiul 3
Afisati toate posturile si toti sefii(coloana MGR) acestora, fara a avea randuri
duplicate.
Exercitiul
4
Afisati toate posturile, cu departamentele fiecaruia,cu seful fiecarui post(MGR) si cu salariul anual cu alias-ul
Salariu.
Exercitiul 5
La cerinta de mai inainte, nu mai afisati salariul,dar afisati seful fiecarui
post si eliminati randurile duplicate.Afisati primele doua coloane cu alias-ul
Post si Departament sub forma:Un angajat cu acest
job lucreaza in departamentul
deptno.De ce primul rand arata astfel?
Acasa | Capitolul urmator |