Kaj je vrsta zapisa?
Vrsta zapisa je zapleten podatkovni tip, ki programerju omogoča, da ustvari nov podatkovni tip z želeno strukturo stolpca.
- Združi enega ali več stolpcev, da tvori nov podatkovni tip
- Ti stolpci bodo imeli svoje ime in vrsto podatkov
- Vrsta zapisa lahko sprejme podatke
- Kot en zapis, ki je sestavljen iz številnih stolpcev ALI
- Sprejema lahko vrednost za določen stolpec zapisa
- Vrsta zapisa preprosto pomeni nov podatkovni tip. Ko je vrsta zapisa ustvarjena, bo shranjena kot nov podatkovni tip v zbirki podatkov in bo uporabljena za razglasitev spremenljivke v programih.
- Ključno besedo 'TIP' bo uporabil, da bo prevajalniku naročil, da ustvarja nov podatkovni tip.
- Ustvari se lahko na " ravni baze podatkov", ki se lahko shrani kot predmeti baze podatkov, uporablja se po celotni zbirki podatkov ali pa se ustvari na ravni " podprograma" , kar je vidno samo znotraj podprogramov.
- Za zapis stolpca tabele lahko deklariramo tudi vrsto zapisa baze podatkov, tako da lahko en stolpec vsebuje zapletene podatke.
- Do podatkov v tem tipu podatkov je mogoče dostopati tako, da se sklicujete na njihovo ime_premenljivke, ki ji sledi operator obdobja (.), Čemur sledi ime_ stolpca, tj. '
.
Sintaksa za deklaracijo na ravni baze podatkov:
CREATE TYPEIS RECORD( ,);
V prvi sintaksi lahko vidimo ključno besedo 'CREATE TYPE', ki prevajalniku naroči, naj ustvari vrsto zapisa z imenom "type_name_db" z navedenim stolpcem kot objektom baze podatkov.
To je podano kot posamezna izjava in ne znotraj nobenega bloka.
Sintaksa za izjavo na ravni podprograma:
DECLARETYPEIS RECORD( ,);BEGIN ;END;
V sintaksi ustvarjamo vrsto zapisa z imenom "type_name" samo znotraj podprograma.
Pri obeh metodah deklaracije je način definiranja stolpca in vrste podatkov podoben.
Primer 1: Vrsta RECORD kot predmet zbirke podatkov
V tem programu bomo videli, kako ustvariti "vrsto zapisa" kot objekt baze podatkov. Ustvarili bomo vrsto zapisa 'emp_det' s štirimi stolpci. Stolpci in njihov podatkovni tip so naslednji:
- EMP_NO (ŠTEVILO)
- EMP_NAME (VARCHAR2 (150))
- VODJA (ŠTEVILO)
- PLAČA (ŠTEVILO)
CREATE TYPE emp_det IS OBJECT(EMP_NO NUMBER,EMP_NAME VARCHAR2(150),MANAGER NUMBER,SALARY NUMBER);/Izhod:
Type created
Razlaga kode:
- Zgornja koda bo ustvarila vrsto emp_det kot objekt baze podatkov.
- Imel bo 4 stolpce emp_no, emp_name, manager in plača, kot je določeno.
- Zdaj je 'emp_det' podoben drugemu tipu podatkov (na primer ŠTEVILO, VARCHAR @ itd.) In je viden v celotni bazi podatkov. Zato je to mogoče uporabiti v celotni bazi podatkov za razglasitev spremenljivke te vrste.
Izhod:
Na ravni baze podatkov ustvaril vrsto 'emp_det' kot vrsto zapisa.
Primer 2: vrsta zapisa na ravni podprograma - dostop na ravni stolpca
V tem primeru bomo videli, kako ustvariti vrsto zapisa na ravni podprograma in kako izpolniti in pridobiti vrednosti iz njega na ravni stolpca.
Ustvarili bomo vrsto zapisa 'emp_det' na ravni podprograma, ki jo bomo uporabili za zapolnitev in prikaz podatkov iz nje.
DECLARETYPE emp_det IS RECORD(EMP_NO NUMBER,EMP_NAME VARCHAR2(150),MANAGER NUMBER,SALARY NUMBER);guru99_emp_rec emp_det;BEGINguru99_emp_rec.emp_no:= 1001;guru99_emp_rec.emp_name:=:'XXX';guru99_emp_rec.manager:= 1000;guru99_emp_rec.salary:=10000;dbms_output.put.line('Employee Detail');dbms_output.put_line ('Employee Number: '||guru99_emp_rec.emp_no);dbms_output.put_line ('Employee Name: '||guru99_emp_rec.emp_name);dbms_output.put_line ('Employee Salary: ' ||guru99_emp_rec.salary);dbms_output.put_line ('Employee Manager Number: '||guru99_emp_rec.manager);END;/
Izhod:
Employee DetailEmployee Number: 1001Employee Name: XXXEmployee Salary: 10000Employee Manager Number: 1000
Razlaga kode:
- Vrstica kode 2-8 : Tip zapisa 'emp_det' je prijavljen s stolpci emp_no, emp_name, plača in upravitelj podatkovnih tipov ŠTEVILO, VARČAR2, ŠTEVILO, ŠTEVILO.
- Vrstica kode 9: spremenljivka guru99_emp_rec je deklarirana kot podatkovni tip 'emp_det'. Zdaj lahko ta spremenljivka vsebuje vrednost, ki vsebuje vsa zgornja 4 polja / stolpce.
- Vrstica kode 11: Popolnite polje 'emp_no' v 'guru99_emp_rec' z vrednostjo 1001.
- Vrstica kode 12: Polje 'emp_name' polja 'guru99_emp_rec' zapolni z vrednostjo XXX.
- Vrstica kode 13: Popolnite polje 'manager' v 'guru99_emp_rec' z vrednostjo 1000.
- Vrstica kode 14: Zapolnitev polja "plača" polja "guru99_emp_rec" z vrednostjo 10000.
- Vrstica kode 15-19: Prikaz vrednosti 'guru99_emp_rec' v izhodu.
3. primer: vrsta zapisa na ravni podprograma - dostop na ravni vrstice
V tem primeru bomo videli, kako ustvariti vrsto zapisa na ravni podprograma in kako ga izpolniti kot raven vrstice. Ustvarili bomo vrsto zapisa 'emp_det' na ravni podprograma, ki jo bomo uporabili za zapolnitev in prikaz podatkov iz nje.
DECLARETYPE emp_det IS RECORD(EMP_NO NUMBER,EMP_NAME YARCHAR2( 150),MANAGER NUMBER,SALARY NUMBER);guru99_emp_rec emp_det;BEGININSERT INTO emp (emp_no, emp_name, salary, manager) VALUES (1002,'YYY',15000,1000);COMMIT;SELECT emp_no, emp_name, salary, manager INTO guru99_emp_rec FROM emp WHERE emp_no=1002;dbms_output.put_line (‘Employee Detail’);dbms_output.put_line (‘Employee Number: '||guru99_emp_rec.emp_no);dbms_output.put_line (‘Employee Name: '||guru99_emp_rec.emp_name);dbms_output.put_line (‘Employee Salary: '||guru99_emp_rec. salary);dbms_output.put_line (‘Employee Manager Number: '||guru99_emp_rec.manager);END;/
Razlaga kode:
- Vrstica kode 2-8 : Tip zapisa 'emp_det' je prijavljen s stolpci emp_no, emp_name, plača in upravitelj podatkovnih tipov ŠTEVILO, VARČAR2, ŠTEVILO, ŠTEVILO.
- Vrstica kode 9: spremenljivka guru99_emp_rec je deklarirana kot podatkovni tip 'emp_det'. Zdaj lahko ta spremenljivka vsebuje vrednost, ki vsebuje vsa zgornja 4 polja / stolpce.
- Vrstica kode 11: Tabelo emp zapolnite s podatki 1002 kot emp_no, LLL kot ime_praznikov, 15000 kot plačo in 1000 kot številko upravitelja.
- Vrstica kode 12: Izvajanje zgornje vstavitvene transakcije.
- Vrstica kode 13: Spremenljivka 'guru99_emp_rec' se zapolni kot podatki na ravni vrstice iz izbrane poizvedbe za številko zaposlenega 1002
- Vrstica kode 15-19: Prikaz vrednosti 'guru99_emp_rec' v izhodu.
Izhod:
Employee DetailEmployee Number: 1002Employee Name: YYYEmployee Salary: 1000Employee Manager Number: 15000
Opomba: Do tipa zapisa je mogoče dostopati samo na ravni stolpca, medtem ko njegovo vrednost preusmerja v kateri koli način izpisa.