pl sql data types variables
Tento výukový program podrobne vysvetľuje, čo sú PL SQL dátové typy, premenné, konštanty a literály, pomocou príkladov programovania:
V predchádzajúcom návode na Séria PL / SQL , sme sa zoznámili s PL / SQL s jeho vlastnosťami a základnou syntaxou s príkladmi.
V tomto článku si rozoberieme rôzne dátové typy, ktoré PL / SQL podporuje. Preskúmame tiež premenné a konštanty, ktoré sa rozsiahle používajú v PL SQL.
Dôležité sú aj literály PL / SQL, o ktorých sa dozvieme v tomto návode spolu s ich praktickým využitím.
Čo sa dozviete:
Pl SQL dátové typy
Všetky premenné, konštanty, parametre PL / SQL majú konkrétny dátový typ, ktorý definuje jeho rozsah hodnôt, obmedzenia a formát, v ktorom sú uložené. PL / SQL obsahuje dátové typy ako Large Object, tiež známe ako LOB, Scalar, Reference a Composite.
Skalárne dátové typy
Najprv sa pozrime na skalárne dátové typy, ktoré pozostávajú z nasledujúcich:
- NUMERICKÉ dátové typy, ktoré sa zaoberajú hodnotami, na ktorých sa vykonávajú matematické operácie.
- BOOLEAN dátové typy, ktoré sa zaoberajú hodnotami, na ktorých sa vykonávajú logické operácie.
- CHARAKTER dátové typy, ktoré sa zaoberajú hodnotami pozostávajúcimi z alfanumerických.
- DÁTUM ČAS dátové typy.
Číselné typy údajov
Číselný datový typ PL / SQL sa skladá z nasledujúcich položiek:
- BINARY_FLOAT
- BINARY_INTERGER
- PLS_INTEGER
- BINARY_DOUBLE
- DESATINNE
- NUMERICKÉ
- ČÍSLO
- PLAVÁK
- INT
- INTEGER
- DVOJNÁSOBNÁ PRESNOSŤ
- REÁLNY
- SMALLINT
- DEC
Úryvok kódu s číselnými údajovými typmi:
DECLARE numA INTEGER := 10; numB NUMBER(10) := 10.8; numC DOUBLE PRECISION := 10.6; BEGIN dbms_output.put_line('The numA is: ' || numA); dbms_output.put_line('The numB is: ' || numB); dbms_output.put_line('The numC is: ' || numC); END; /
Vo vyššie uvedenom kóde máme dátové typy INTEGER, NUMBER a DOUBLE PRECISION s premennými numA, numB a numC. numB má číselný dátový typ s presnosťou 10 a po desatinnej čiarke nemá žiadne číslice.
Výstup z vyššie uvedeného kódu by mal byť:
Znakové dátové typy
Znakové dátové typy PL / SQL pozostávajú z nasledujúcich položiek:
# 1) VARCHAR2: Tento dátový typ uloží reťazec, ale dĺžka reťazca nie je v čase deklarácie pevne stanovená. Varchar2 má maximálnu veľkosť až 32 767 bajtov. Maximálna šírka stĺpca databázy varchar2 je 4 000 bajtov.
Syntax:
test VARCHAR2 (20): = ‘SoftwareTest’;
# 2) CHAR: Tento dátový typ uloží reťazec, ale dĺžka reťazca je v čase vyhlásenia pevná. Znak má maximálnu veľkosť až 32 767 bajtov. Maximálna šírka stĺpca databázy char je 2 000 bajtov.
Syntax:
test CHAR2 (20): = ‘SoftwareTest’;
# 3) NCHAR: Je to podobné ako CHAR, ale bude sa v ňom ukladať iba národná znaková sada. NCHAR má maximálnu veľkosť až 32 767 bajtov. Maximálna šírka stĺpca databázy NCHAR je 2 000 bajtov.
Syntax:
test NCHAR2 (20);
# 4) DLHÉ: Toto uloží reťazce znakov s premennou dĺžkou. Dlhý má maximálnu veľkosť až 32 760 bajtov.
Syntax:
test DLHÝ;
# 5) DLHÝ RIADOK: Takto sa uložia údaje v binárnom formáte alebo v bajtových reťazcoch. Dlhý riadok má maximálnu veľkosť až 32 760 bajtov.
fig_cropper.swf ako sa otvoriť
Syntax:
test DLHÝ RIADOK;
# 6) ROWID: Jedná sa o fyzické identifikátory riadku, ktorý ukazuje na adresu riadku v normálnej tabuľke.
# 7) UROWID: Toto sú univerzálne identifikátory riadkov.
# 8) NVARCHAR2: Je to podobné ako v prípade VARCHAR2, ale uloží sa doň iba národná znaková sada. Maximálna šírka stĺpca databázy nvarchar2 je 4 000 bajtov.
# 9) VARCHAR: Je to podobné ako s VARCHAR2.
Syntax:
test VARCHAR2 (20): = ‘SoftwareTest’;
Poďme teraz diskutovať o znakových dátových typoch PL / SQL v tabuľkovej podobe.
Sl č. | Dátový typ | Popis |
---|---|---|
7 | DLHO | Je to podobné ako pri DLHOM. PL / SQL tieto údaje nevykladá. |
1 | VARCHAR2 | Slúži na ukladanie znakových údajov, ktoré majú premenlivú dĺžku. Veľkosť premenných je nastavená v čase vyhlásenia. Pre efektívne využitie pamäte sa vždy odporúča používať VARCHAR2. |
dva | CHAR | Slúži na ukladanie znakových údajov pevnej dĺžky. Veľkosť premenných je nastavená v čase vyhlásenia. Keď sa majú použiť dáta pevnej veľkosti, vždy sa odporúča použiť CHAR. |
3 | VARCHAR | Je to podobné ako s VARCHAR2. Počas implementácie kódu sa vždy odporúča používať VARCHAR. |
4 | NCHAR | Používa sa na ukladanie znakových údajov, ktoré sú národnými údajmi pevnej dĺžky. Znaková sada je buď UTF 8 alebo UTF 16. Vždy sa odporúča prevádzať CHAR na NCHAR. Konverzia NCHAR na CHAR však môže viesť k skráteniu údajov. |
5 | NVARCHAR2 | Používa sa na ukladanie znakových údajov, ktoré sú údajmi o národných znakoch s premenlivou dĺžkou. Je to podobné ako s VARCHAR2. Znaková sada je buď UTF 8 alebo UTF 16. Vždy sa odporúča prevádzať VARCHAR2 na NVARCHAR2. Ale konverzia NVARCHAR2 na VARCHAR2 môže viesť k skráteniu údajov. |
6 | DLHÉ | Používa sa v dátovom slovníku. Toto sa primárne používa v údajoch znakovej sady. |
Boolovské dátové typy
Tieto dátové typy PL / SQL možno použiť na ukladanie logických hodnôt. TRUE, FALSE a NULL sú boolovské hodnoty.
SQL nemá dátové typy BOOLEAN. Musíme sa im teda vyhnúť v nasledujúcich scenároch:
- Príkazy PL / SQL generované z SQL.
- Predvolené funkcie PL / SQL.
- Normálne príkazy SQL.
Syntax:
test Boolean;
Výstupom testovacej premennej bude TRUE alebo FALSE v závislosti od určitých kritérií.
Dátové typy dátumu a času
Tieto dátové typy sa používajú pre konštantné dĺžky dátumu a času. Správny rozsah dátumov začína od 1. januára 4712 pred n. L. Do 31. decembra 9999 n. L. A čas je definovaný v sekundách. Integrovaný formát dátumu je DD-MON-YY, čo znamená dvojciferné čísla pridelené pre deň v mesiaci, skrátene názov mesiaca, a potom posledné dve číslice v roku.
DÁTUM sa skladá z druhej, minúty, dňa, hodiny, mesiaca, roku a storočia. Každé z týchto polí má definovaný konkrétny rozsah, ako je uvedené nižšie:
- DRUHÉ: Definuje sa v rozmedzí od 00 do 59,9.
- MINUTA: Je definované v rozmedzí od 00 do 59.
- HODINA: Je definované v rozmedzí od 00 do 23.
- DEŇ: Je definovaná v rozmedzí od 01 do 31.
- MESIAC: Je definovaná v rozmedzí od 01 do 12.
- ROK: Je definovaná v rozmedzí od -4712 do 9999 (nezahŕňa 0).
- TIMEZONE_HOUR: Je definovaná v rozmedzí od -12 do 14.
- TIMEZONE_MINUTE: Je definované v rozmedzí od 00 do 59.
- TIMEZONE_REGION
- TIMEZONE_ABBR
Syntax:
TIMESTAMP '1990-06-04 9:00:00 US/Pacific' TIMESTAMP '1990-06-04 01:30:00 US/Pacific PDT'
Tu sme opísali časové pásmo pomocou symbolov. Na vymedzenie konkrétneho časového pásma sa používa špecifikácia USA / Tichomorie alebo PDT. Formulár PDT sa väčšinou používa, pretože poskytuje pokyny pri prechode na letný čas.
Dátové typy LOB
Poďme teraz diskutovať o datových typoch LOB, ktoré sa zaoberajú obrovským počtom dát pozostávajúcich z videí, zvukov, grafiky, obrázkov atď.
Dátové typy LOB majú oproti dlhým dátovým typom množstvo výhod. Sú uvedené nižšie:
- Long pojme 2 GB, zatiaľ čo LOB pojme 128 TB.
- Tabuľka môže mať jeden stĺpec typu LONG, zatiaľ čo stĺpcov dátového typu LOB môže byť viac.
- Dátový typ LOB prechádza neustálymi vylepšeniami a aktualizáciami od spoločnosti Oracle, zatiaľ čo dátový typ LONG nemá veľa vylepšení a aktualizácií.
Dátové typy LOB sú uvedené nižšie:
- BFILE: Používa sa na zadržanie neštruktúrovaných údajov v binárnom formáte mimo databázy ako súboru operačného systému.
- NCLOB: Používa sa na uchovanie obrovských údajov NCHAR v databáze.
- CLOB: Používa sa na uchovanie obrovských údajov typu znaku v databáze.
Syntax:
Binárny CLOB;
- BLOB: Používa sa na uchovanie obrovských binárnych údajov v databáze.
Syntax:
Binárny BLOB;
Implementácia kódu s niektorými typmi údajov:
DECLARE m CHAR(20) := 'softwareTest!'; n VARCHAR2(30) := 'plsql'; o NCHAR(30) := 'plsql datatypes'; p NVARCHAR2(30) := 'plsql literals'; presentDt DATE:= SYSDATE; a INTEGER := 16; b NUMBER(20) := 11.2; c DOUBLE PRECISION := 14.7; BEGIN dbms_output.put_line('The char datatype is: ' || m); dbms_output.put_line('The varchar datatype is: ' || n); dbms_output.put_line('The nchar datatype is: ' || o); dbms_output.put_line('The nvarchar2 datatype is: ' || p); dbms_output.put_line('The current date is: ' || presentDt); dbms_output.put_line('The number a is: ' || a); dbms_output.put_line('The number b is: ' || b); dbms_output.put_line('The number c is: ' || c); END; /
Výstup z vyššie uvedeného kódu by mal byť:
Premenné PL SQL
Názvy premenných PL / SQL sa riadia konvenciou pomenovania, ktorá sa skladá z alfanumerických znakov, ktoré nie sú väčšie ako tridsať. V PL / SQL sa nerozlišujú malé a veľké písmená a kľúčové slová by sa nemali používať ako premenná.
Názov premennej by mal mať zmysel a môže za ním nasledovať podčiarkovník (_), číslo alebo dolár ($).
Deklarácia premenných PL SQL
Premenné PL / SQL musia byť k dispozícii v oblasti vyhlásenia alebo musia byť prítomné v balíku ako globálna premenná. PL / SQL rezervuje pamäť pre premenné a umiestnenie úložiska je definované názvom premennej.
Syntax deklarácie premennej:
variable_name (CONSTANT) datatype (NOT NULL) (:= | DEFAULT initial_value)
Názov premennej je autentický identifikátor PL / SQL a dátový typ môže byť používateľom definovaný alebo potvrdený dátový typ PL / SQL.
Implementácia kódu pre deklaráciu premennej:
DECLARE v_namis VARCHAR2(10); n_addressis NUMBER(10,3); BEGIN dbms_output.put_line('The name is: ' || v_namis); dbms_output.put_line('The address is: ' || n_addressis); END;
Výstup z vyššie uvedeného kódu by mal byť:
Vezmite prosím na vedomie, spomenuli sme presnosť aj veľkosť číselného údajového typu. Toto sa nazýva obmedzená deklarácia. Tento typ vyhlásenia spotrebuje menej pamäte.
Inicializácia premennej PL / SQL
Štandardne PL / SQL berie hodnotu premennej ako NULL. Ak však nechceme inicializovať premennú pomocou NULL, potom to možno dosiahnuť buď pomocou kľúčového slova DEFAULT, alebo pomocou operátora priradenia.
Syntax:
num integer := 50; test varchar(40) DEFAULT 'Software Test Help';
Môžeme tiež definovať, že premenná by nemala mať hodnotu NULL, a to uvedením obmedzenia NOT NULL. Ak sa však použije obmedzenie NOT NULL, musíme pre premennú nastaviť hodnotu.
Implementácia kódu s variabilnou inicializáciou:
DECLARE v_namis VARCHAR2(40) := 'softwareTest!'; n_couris VARCHAR2(30) := 'plsql'; BEGIN dbms_output.put_line('The value is: ' || v_namis); dbms_output.put_line('The value is: ' || n_couris); END; /
Výstup z vyššie uvedeného kódu by mal byť:
Implementácia kódu s konceptom Priradenie:
DECLARE v_namis VARCHAR2(40); n_couris VARCHAR2(30); BEGIN v_namis := 'softwareTest!'; n_couris := 'plsql'; dbms_output.put_line('The value is: ' || v_namis); dbms_output.put_line('The value is: ' || v_couris); END; /
Tu sa na priradenie hodnôt premennej používa operátor priradenia (=).
Výstup z vyššie uvedeného kódu by mal byť:
Variabilný rozsah PL / SQL
Blok PL / SQL môže mať vnútorné bloky kódu. Ak je premenná, ktorá je deklarovaná, súčasťou vnútorného bloku, nemôže ju použiť vonkajší blok. S premennou, ktorá je súčasťou vonkajšieho bloku, sa však dá manipulovať vo vnútornom bloku kódu.
Tieto typy premenných sú opísané nižšie:
- Globálne premenné: Premenné, ktoré sú deklarované na vonkajšom bloku alebo balíku.
- Lokálne premenné: Premenné, ktoré sú deklarované vo vnútornom bloku kódu a nie sú prístupné z vonkajšieho bloku.
Implementácia kódu s globálnymi a lokálnymi premennými:
DECLARE -- Global variables val number := 10; BEGIN dbms_output.put_line('Global variable is : ' || val); DECLARE -- Local variables val number := 100; BEGIN dbms_output.put_line('Local variable is: ' || val); END; END; /
Výstup z vyššie uvedeného kódu by mal byť:
Vezmite prosím na vedomie že výstupom je globálna premenná: 10 (kvôli globálnej premennej val) a ‘lokálna premenná: 100 (kvôli miestnej premennej val).
Kotva PL / SQL
Kotvy PL / SQL sú definované pomocou kľúčového slova% TYPE na deklarovanie premenných s dátovým typom spojeným s dátovým typom daného konkrétneho stĺpca tabuľky.
Fragment kódu s ukotvením:
DECLARE v_namis RESSIDENT.NAME%TYPE; n_addessis RESSIDENT.ADDRESS%TYPE; BEGIN NULL; END; /
Tu máme tabuľku RESIDENT a máme do činenia so stĺpcami NÁZOV a ADRESA tejto tabuľky.
Konštanty v PL / SQL
Konštanta udržuje hodnotu, ktorá sa raz deklaruje ako nezmenená v celom programe.
Konštantná deklarácia PL / SQL
The KONŠTANTNÉ kľúčové slovo sa používa na definovanie konštánt v programe. Začína sa to preddefinovanou hodnotou, ktorá zostáva v celom programe rovnaká.
Syntax deklarácie premennej:
const_name CONSTANT data type := val
Implementácia kódu s konštantou:
DECLARE -- Constant p constant number := 3.141592654; -- Radius declarations r number(10,1); a_circle number(10,3); BEGIN -- Area calculation r := 9.4; a_circle := p * r * r; -- Output in console dbms_output.put_line('Area of circle: ' || a_circle); END; /
Výstup z vyššie uvedeného kódu by mal byť:
Literály v PL SQL
Boolovská, číselná alebo reťazcová hodnota, ktorá nie je definovaná identifikátorom PL / SQL, sa nazýva literál. V literáloch sa rozlišujú veľké a malé písmená a sú uvedené nasledujúce typy:
- Boolean Literals ( Napríklad - FALSE, TRUE)
- Postavné literály ( Napríklad - „s“, „7“, „)“)
- Sláčikové literály ( Napríklad - „Test softvéru“)
- Číselné literály ( Napríklad - 78, 04, 6,3)
- DÁTUM a časové literály ( Napríklad - „25-05-2012“)
Často kladené otázky a odpovede
Otázka č. 1) Aké sú dátové typy v PL SQL?
Odpoveď: Dátové typy PL SQL sú zložené a skalárne. Skalárne dátové typy môžu obsahovať jednotlivé hodnoty ako Character, Number, Boolean a DateTime. Zatiaľ čo zložené dátové typy ukladajú viac ako jednu hodnotu, napríklad zhromažďovanie a záznam.
Otázka č. 2) Čo je to premenná PL / SQL?
Odpoveď: Premenná PL SQL je názov, ktorý pomáha vývojárovi dočasne ukladať údaje počas vykonávania programu. Je to zmysluplný názov priradený úložnej oblasti. Všetky premenné v PL / SQL patria do konkrétneho dátového typu.
Otázka č. 3) Ako odovzdať parameter dátumu v PL / SQL?
Odpoveď: Parameter dátumu môžeme odovzdať v PL / SQL pomocou kľúčového slova DATE. Sleduje pevný formát ako „RRRR-MM-DD“.
Otázka č. 4) Ako deklarujete konštantu v PL / SQL?
Odpoveď: Konštantu v PL / SQL môžeme deklarovať pomocou kľúčového slova CONSTANT. Po slove CONSTANT musíme spomenúť hodnotu, ktorá mu je priradená. Táto hodnota zostáva v celom programe pevná.
Otázka č. 5) Koľko typov literálov je k dispozícii v PL / SQL?
Odpoveď: Typy literálov v PL / SQL sú Number, DateTime, Text a Integer.
Otázka č. 6) Rozlišujú sa v premenných PL SQL veľké a malé písmená?
Odpoveď: V premenných PL SQL vrátane vyhradených slov sa nerozlišujú malé a veľké písmená. Napríklad, ZAČNITE a začnite obidve slúžiť rovnakému účelu.
Záver
Veľká časť PL / SQL zaoberajúcich sa témami, ako sú rôzne použité typy údajov, ich dôležitosť a premenné PL SQL, by mala byť po prečítaní tohto tutoriálu zrozumiteľná.
Tiež sme podrobne preskúmali konštanty a literály PL SQL. Prejdite si postupne každú z tém a pomaly to zvládnete. PL / SQL sa v dnešnej dobe používa v priemyselných odvetviach pre vývoj webových aj serverových serverov.
V nasledujúcom tutoriáli sa budeme zaoberať príkazmi PL / SQL Vložiť, Aktualizovať, Odstrániť, Vybrať a ďalšími súvisiacimi témami.
Zostaňme naladení na ďalšie zdieľanie vedomostí.
Odporúčané čítanie
- Premenné Pythonu
- Dátové typy v Pythone
- C # dátové typy a premenné s príkladmi
- Parametrizácia údajov JMeter pomocou užívateľom definovaných premenných
- Výukový program Data Mart - Typy, príklady a implementácia Data Mart
- Dátové typy C ++
- Premenné Java a ich typy s príkladmi
- Presné rozdiely medzi programom SQL a NoSQL a informácia o tom, kedy používať NoSQL a SQL