pl sql data types variables
W tym samouczku szczegółowo wyjaśniono, czym są typy danych SQL, zmienne, stałe i literały języka PL za pomocą przykładów programowania:
W poprzednim samouczku dotyczącym Seria PL / SQL , zapoznaliśmy się z PL / SQL z jego funkcjami i podstawową składnią z przykładami.
W tym artykule omówimy różne typy danych obsługiwane przez PL / SQL. Zbadamy również zmienne i stałe używane szeroko w PL SQL.
Literały PL / SQL są również ważne i dowiemy się o tym w tym samouczku wraz z praktycznym zastosowaniem.
Czego się nauczysz:
Pl Typy danych SQL
Wszystkie zmienne, stałe, parametry PL / SQL mają określony typ danych, który definiuje zakres wartości, ograniczenia i format, w jakim są przechowywane. PL / SQL zawiera typy danych, takie jak Large Object, znane również jako LOB, Scalar, Reference i Composite.
Skalarne typy danych
Najpierw omówmy skalarne typy danych, które składają się z następujących elementów:
- NUMERYCZNE typy danych, które dotyczą wartości, na których wykonywane są operacje matematyczne.
- BOOLEAN typy danych, które dotyczą wartości, na których wykonywane są operacje logiczne.
- POSTAĆ typy danych, które zajmują się wartościami składającymi się z alfanumerycznych.
- DATA CZAS typy danych.
Numeryczne typy danych
Numeryczny typ danych PL / SQL składa się z następujących elementów:
- BINARY_FLOAT
- BINARY_INTERGER
- PLS_INTEGER
- BINARY_DOUBLE
- DZIESIĘTNY
- NUMERYCZNE
- NUMER
- PŁYWAK
- INT
- LICZBA CAŁKOWITA
- PODWÓJNA PRECYZJA
- REAL
- SMALLINT
- DEC
Fragment kodu z numerycznymi typami danych:
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; /
W powyższym kodzie mamy typy danych INTEGER, NUMBER i DOUBLE PRECISION ze zmiennymi odpowiednio numA, numB i numC. numB ma typ danych liczbowych z dokładnością do 10 i nie ma cyfr po przecinku.
Wynik powyższego kodu powinien wyglądać następująco:
Typy danych postaci
Typy danych znakowych PL / SQL składają się z następujących, jak podano poniżej:
# 1) VARCHAR2: Ten typ danych będzie przechowywać ciąg, ale długość ciągu nie jest ustalona w momencie deklaracji. Varchar2 ma maksymalny rozmiar do 32767 bajtów. Maksymalna szerokość kolumny bazy danych varchar2 to 4000 bajtów.
Składnia:
test VARCHAR2 (20): = „SoftwareTest”;
# 2) CHAR: Ten typ danych będzie przechowywał ciąg, ale jego długość jest ustalana w momencie deklaracji. Znak ma maksymalny rozmiar do 32767 bajtów. Maksymalna szerokość kolumny bazy danych typu char to 2000 bajtów.
Składnia:
test CHAR2 (20): = „SoftwareTest”;
# 3) NCHAR: Jest to podobne do CHAR, ale przechowuje tylko zestaw znaków narodowych. NCHAR ma maksymalny rozmiar do 32767 bajtów. Maksymalna szerokość kolumny bazy danych NCHAR wynosi 2000 bajtów.
Składnia:
test NCHAR2 (20);
# 4) DŁUGIE: Spowoduje to przechowywanie ciągów znaków o zmiennej długości. Długość long ma maksymalny rozmiar do 32760 bajtów.
Składnia:
test LONG;
# 5) DŁUGI RZĘD: Spowoduje to przechowywanie danych w formacie binarnym lub ciągach bajtów. Długi wiersz ma maksymalny rozmiar do 32760 bajtów.
programy używające języka C ++
Składnia:
test LONG ROW;
# 6) ROWID: Są to fizyczne identyfikatory wiersza wskazujące na adres wiersza w normalnej tabeli.
#7) UROWID: To są uniwersalne identyfikatory wierszy.
# 8) NVARCHAR2: Jest to podobne do VARCHAR2, ale przechowuje tylko zestaw znaków narodowych. Maksymalna szerokość kolumny bazy danych nvarchar2 to 4000 bajtów.
# 9) VARCHAR: Jest to podobne do VARCHAR2.
Składnia:
test VARCHAR2 (20): = „SoftwareTest”;
Omówmy teraz charakterystyczne typy danych PL / SQL w formacie tabelarycznym.
Sl No. | Typ danych | Opis |
---|---|---|
7 | DŁUGIE | Jest to podobne do LONG. Te dane nie są interpretowane przez PL / SQL. |
jeden | VARCHAR2 | Służy do przechowywania danych znakowych o zmiennej długości. Rozmiar jest ustawiany dla zmiennych w momencie deklaracji. W celu efektywnego wykorzystania pamięci zawsze zaleca się używanie VARCHAR2. |
dwa | ZWĘGLAĆ | Służy do przechowywania danych znakowych o stałej długości. Rozmiar jest ustawiany dla zmiennych w momencie deklaracji. Zawsze zaleca się używanie znaku CHAR, gdy mają być używane dane o stałym rozmiarze. |
3 | VARCHAR | Jest to podobne do VARCHAR2. Podczas implementacji kodu zawsze zaleca się użycie VARCHAR. |
4 | NCHAR | Służy do przechowywania danych znakowych, które mają stałą długość danych dotyczących znaków narodowych. Zestaw znaków to UTF 8 lub UTF 16. Zawsze zaleca się konwersję CHAR na NCHAR. Jednak konwersja NCHAR na CHAR może prowadzić do obcięcia danych. |
5 | NVARCHAR2 | Służy do przechowywania danych znakowych, które mają dane znaków narodowych o zmiennej długości. Jest to podobne do VARCHAR2. Zestaw znaków to UTF 8 lub UTF 16. Zawsze zaleca się konwersję VARCHAR2 na NVARCHAR2. Jednak konwersja NVARCHAR2 na VARCHAR2 może prowadzić do obcięcia danych. |
6 | DŁUGO | Jest to używane w słowniku danych. Jest to używane głównie w danych zestawu znaków. |
Boolowskie typy danych
Te typy danych PL / SQL mogą być używane do przechowywania wartości logicznych. TRUE, FALSE i NULL to wartości logiczne.
SQL nie ma typów danych BOOLEAN. Dlatego musimy ich unikać w następujących scenariuszach:
- Instrukcje PL / SQL generowane z SQL.
- Domyślne funkcje PL / SQL.
- Normalne instrukcje SQL.
Składnia:
test Boolean;
Wynik zmiennej testowej będzie miał wartość PRAWDA lub FAŁSZ w zależności od określonych kryteriów.
Typy danych daty i godziny
Te typy danych są używane dla stałych długości daty i godziny. Właściwy zakres dat zaczyna się od 1 stycznia 4712 rpne do 31 grudnia 9999 rne, a czas jest określony w sekundach. Wbudowany format daty to DD-MON-RR, co oznacza dwie cyfry przypisane do dnia miesiąca, nazwę miesiąca w skrócie, a następnie dwie ostatnie cyfry roku.
DATA składa się z sekundy, minuty, dnia, godziny, miesiąca, roku i wieku. Każde z tych pól ma zdefiniowany określony zakres, jak pokazano poniżej:
- DRUGA: Jest definiowany w zakresie od 00 do 59,9.
- MINUTA: Jest definiowany w zakresie od 00 do 59.
- GODZINA: Jest definiowany w zakresie od 00 do 23.
- DZIEŃ: Jest zdefiniowany w przedziale od 01 do 31.
- MIESIĄC: Jest zdefiniowany w zakresie od 01 do 12.
- ROK: Jest definiowany w zakresie od -4712 do 9999 (co nie obejmuje 0).
- TIMEZONE_HOUR: Jest definiowany w przedziale od -12 do 14.
- TIMEZONE_MINUTE: Jest definiowany w zakresie od 00 do 59.
- TIMEZONE_REGION
- TIMEZONE_ABBR
Składnia:
TIMESTAMP '1990-06-04 9:00:00 US/Pacific' TIMESTAMP '1990-06-04 01:30:00 US/Pacific PDT'
Tutaj opisaliśmy strefę czasową za pomocą symboli. Specyfikacja US / Pacific lub PDT służy do definiowania określonej strefy czasowej. Formularz PDT jest najczęściej używany, ponieważ podaje wytyczne przy przejściu na czas letni.
Typy danych LOB
Omówmy teraz typy danych LOB, które zajmują się ogromnymi fragmentami danych składającymi się z wideo, dźwięków, grafiki, obrazów i tak dalej.
Typy danych LOB mają wiele zalet w porównaniu z długimi typami danych. Są one wymienione poniżej:
- Long może pomieścić 2 GB, podczas gdy LOB może pomieścić 128 TB.
- Tabela może mieć jedną kolumnę typu LONG, podczas gdy może istnieć wiele kolumn typu danych LOB.
- Typ danych LOB jest stale ulepszany i aktualizowany przez Oracle, podczas gdy typ danych LONG nie ma wielu ulepszeń i aktualizacji.
Typy danych LOB są wymienione poniżej:
- BFILE: Służy do przechowywania nieustrukturyzowanych danych w formacie binarnym poza bazą danych w postaci pliku systemu operacyjnego.
- NCLOB: Służy do przechowywania ogromnych danych NCHAR w bazie danych.
- CLOB: Służy do przechowywania w bazie danych ogromnych danych typu znakowego.
Składnia:
Binarny CLOB;
- KROPELKA: Służy do przechowywania ogromnych danych binarnych w bazie danych.
Składnia:
Binarny BLOB;
Implementacja kodu z niektórymi typami danych:
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; /
Wynik powyższego kodu powinien wyglądać następująco:
Zmienne PL SQL
Nazwy zmiennych PL / SQL są zgodne z konwencją nazewnictwa, która składa się z nie więcej niż trzydziestu znaków alfanumerycznych. W PL / SQL wielkość liter nie jest rozróżniana, a słowa kluczowe nie powinny być używane jako zmienne.
Nazwa zmiennej powinna być zrozumiała i może poprzedzać podkreślenie (_), liczbę lub dolara ($).
Deklaracja zmiennej PL SQL
Zmienne PL / SQL muszą być dostępne w obszarze deklaracji lub występować w pakiecie jako zmienna globalna. PL / SQL rezerwuje pamięć dla zmiennych, a miejsce przechowywania określa nazwa zmiennej.
Składnia deklaracji zmiennej:
variable_name (CONSTANT) datatype (NOT NULL) (:= | DEFAULT initial_value)
Tutaj nazwa_zmiennej jest autentycznym identyfikatorem PL / SQL, a typ danych może być typem danych zdefiniowanym przez użytkownika lub potwierdzonym PL / SQL.
Implementacja kodu dla deklaracji zmiennej:
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;
Wynik powyższego kodu powinien wyglądać następująco:
Proszę zanotować, wspomnieliśmy zarówno o dokładności, jak i rozmiarze typu danych liczbowych. Jest to znane jako deklaracja ograniczona. Ten typ deklaracji zajmuje mniej pamięci.
Inicjalizacja zmiennej PL / SQL
Domyślnie PL / SQL przyjmuje wartość zmiennej jako NULL. Jeśli jednak nie chcemy inicjalizować zmiennej wartością NULL, można to osiągnąć za pomocą słowa kluczowego DEFAULT lub operatora przypisania.
Składnia:
num integer := 50; test varchar(40) DEFAULT 'Software Test Help';
Możemy również zdefiniować, że zmienna nie powinna mieć wartości NULL, wspominając o ograniczeniu NOT NULL. Jeśli jednak używane jest ograniczenie NOT NULL, musimy ustawić wartość zmiennej.
Implementacja kodu z inicjalizacją zmiennych:
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; /
Wynik powyższego kodu powinien wyglądać następująco:
Implementacja kodu z koncepcją Assignment:
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; /
Tutaj operator przypisania (=) jest używany do przypisywania wartości zmiennej.
Wynik powyższego kodu powinien wyglądać następująco:
Zakres zmiennej PL / SQL
Blok PL / SQL może mieć wewnętrzne bloki kodu. Jeśli zadeklarowana zmienna jest częścią bloku wewnętrznego, nie może być wykorzystana przez blok zewnętrzny. Ale zmienną, która jest częścią zewnętrznego bloku, można manipulować w wewnętrznym bloku kodu.
Te typy zmiennych opisano poniżej:
- Zmienne globalne: Zmienne, które są zadeklarowane w zewnętrznym bloku lub pakiecie.
- Zmienne lokalne: Zmienne, które są zadeklarowane w wewnętrznym bloku kodu i nie mogą być dostępne z zewnętrznego bloku.
Implementacja kodu ze zmiennymi globalnymi i lokalnymi:
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; /
Wynik powyższego kodu powinien wyglądać następująco:
Proszę zanotować że wynik tutaj, zmienna globalna to: 10 (z powodu zmiennej globalnej val) i „Zmienna lokalna to: 100 (z powodu zmiennej lokalnej val).
Kotwica PL / SQL
Kotwice PL / SQL są zdefiniowane za pomocą słowa kluczowego% TYPE w celu zadeklarowania zmiennych o typie danych powiązanym z typem danych tej konkretnej kolumny tabeli.
Fragment kodu z kotwicą:
DECLARE v_namis RESSIDENT.NAME%TYPE; n_addessis RESSIDENT.ADDRESS%TYPE; BEGIN NULL; END; /
Tutaj mamy tabelę RESIDENT i mamy do czynienia z kolumnami NAZWA i ADRES tej tabeli.
Stałe w PL / SQL
Stała utrzymuje raz zadeklarowaną wartość niezmienioną w całym programie.
Deklaracja stałej PL / SQL
Plik STAŁY słowo kluczowe służy do definiowania stałych w programie. Rozpoczyna się od wstępnie zdefiniowanej wartości, która pozostaje taka sama przez cały program.
Składnia deklaracji zmiennej:
const_name CONSTANT data type := val
Implementacja kodu ze stałą:
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; /
Wynik powyższego kodu powinien wyglądać następująco:
Literały w PL SQL
Wartość logiczna, numeryczna lub łańcuchowa, która nie jest zdefiniowana przez identyfikator PL / SQL, nazywana jest literałem. W literałach rozróżniana jest wielkość liter i należą one do następujących typów, jak podano poniżej:
- Literały boolowskie ( Na przykład - FAŁSZ PRAWDA )
- Literały znakowe ( Na przykład - „s”, „7”, „)”)
- Literały ciągów ( Na przykład - „Test oprogramowania”)
- Literały liczbowe ( Na przykład - 78, 04, 6,3)
- DATA i literały czasu ( Na przykład - „25-05-2012”)
Często zadawane pytania i odpowiedzi
Pytanie nr 1) Jakie są typy danych w PL SQL?
Odpowiedź: Typy danych PL SQL są złożone i skalarne. Skalarne typy danych mogą zawierać pojedyncze wartości, takie jak Character, Number, Boolean i DateTime. Podczas gdy złożone typy danych przechowują więcej niż jedną wartość, taką jak kolekcja i rekord.
Pytanie nr 2) Co to jest zmienna PL / SQL?
Odpowiedź: Zmienna PL SQL to nazwa, która pomaga programiście w tymczasowym przechowywaniu danych podczas wykonywania programu. Jest to wymowna nazwa przypisana do magazynu. Wszystkie zmienne w PL / SQL należą do określonego typu danych.
Q # 3) Jak przekazać parametr daty w PL / SQL?
Odpowiedź: Za pomocą słowa kluczowego DATE możemy przekazać parametr daty w PL / SQL. Ma ustalony format „RRRR-MM-DD”.
Pytanie 4) Jak deklarujesz stałą w PL / SQL?
Odpowiedź: Możemy zadeklarować stałą w PL / SQL za pomocą słowa kluczowego CONSTANT. Po CONSTANT musimy wspomnieć o przypisanej jej wartości. Ta wartość pozostaje stała przez cały program.
Pytanie nr 5) Ile typów literałów jest dostępnych w PL / SQL?
Odpowiedź: Typy literałów w PL / SQL to Number, DateTime, Text i Integer.
Pytanie nr 6) Czy zmienne PL SQL uwzględniają wielkość liter?
Odpowiedź: Zmienne PL SQL, w tym słowa zastrzeżone, nie uwzględniają wielkości liter. Na przykład, POCZĄTEK i zacznij służą temu samemu celowi.
Wniosek
Duża część PL / SQL dotycząca tematów takich jak różne używane typy danych i ich znaczenie oraz zmienne PL SQL powinna być zrozumiała już po przeczytaniu tego samouczka.
Ponadto szczegółowo zbadaliśmy stałe i literały języka PL SQL. Przejdź przez każdy z tematów jeden po drugim i powoli opanujesz to. PL / SQL jest obecnie używany w przemyśle zarówno do tworzenia stron internetowych, jak i serwerów.
W następnym samouczku omówimy instrukcję PL / SQL Insert, Update, Delete, Select i inne powiązane tematy.
Czekajmy na dalsze dzielenie się wiedzą.
rekomendowane lektury
- Zmienne Pythona
- Typy danych w Pythonie
- C # typy danych i zmienne z przykładami
- Parametryzacja danych JMeter przy użyciu zmiennych zdefiniowanych przez użytkownika
- Data Mart Tutorial - Rodzaje, przykłady i implementacja Data Mart
- Typy danych C ++
- Zmienne Java i ich typy z przykładami
- SQL vs NoSQL Dokładne różnice i wiedzieć, kiedy używać NoSQL i SQL