pl sql data types variables
Този урок обяснява подробно какви са PL SQL типове данни, променливи, константи и литерали с помощта на примери за програмиране:
В предишния урок на PL / SQL серия , запознахме се с PL / SQL с неговите функции и основен синтаксис с примери.
В тази статия ще обсъдим различните типове данни, които PL / SQL поддържа. Също така ще изследваме променливите и константите, използвани широко в PL SQL.
PL / SQL литералите също са важни и ще научим за него в този урок заедно с практическото му използване.
Какво ще научите:
Pl SQL типове данни
Всички променливи, константи, параметри на PL / SQL имат определен тип данни, който определя диапазона от стойности, ограничения и формата, в който се съхраняват. PL / SQL съдържа типове данни като Large Object, известни също като LOB, Scalar, Reference и Composite.
Скаларни типове данни
Нека първо обсъдим Скаларните типове данни, които се състоят от следното:
- ЧИСЛЕНО типове данни, които се занимават със стойности, върху които се извършват математически операции.
- БУЛИН типове данни, които се занимават със стойностите, върху които се извършват логическите операции.
- ХАРАКТЕР типове данни, които се занимават със стойностите, състоящи се от буквено-цифрови.
- ВРЕМЕ ЗА СРЕЩА типове данни.
Цифрови типове данни
Числовият тип данни на PL / SQL се състои от следното:
- BINARY_FLOAT
- BINARY_INTERGER
- PLS_INTEGER
- BINARY_DOUBLE
- ДЕЦИМАЛЕН
- ЧИСЛЕНО
- БРОЙ
- ПЛАВАТ
- INT
- ЦЕЛО
- ДВОЙНА ТОЧНОСТ
- ИСТИНСКИ
- СМАЛИНТ
- DEC
Кодов фрагмент с числови типове данни:
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; /
В горния код имаме типове данни INTEGER, NUMBER и DOUBLE PRECISION със съответно променливите numA, numB и numC. numB има числов тип данни с точност 10 и няма цифри след десетичната запетая.
Резултатът от горния код трябва да бъде:
Типове данни за знаци
Типовете данни за знаци PL / SQL се състоят от следното, както е изброено по-долу:
# 1) VARCHAR2: Този тип данни ще съхранява низ, но дължината на низа не е фиксирана по време на декларацията. Varchar2 има максимален размер до 32767 байта. Максималната ширина на колона на база данни varchar2 е 4000 байта.
Синтаксис:
тест VARCHAR2 (20): = ‘SoftwareTest’;
# 2) CHAR: Този тип данни ще съхранява низ, но дължината на низа е фиксирана по време на декларацията. Char има максимален размер до 32767 байта. Максималната ширина на колона с база данни char е 2000 байта.
Синтаксис:
тест CHAR2 (20): = ‘SoftwareTest’;
# 3) NCHAR: Това е подобно на CHAR, но ще съхранява само националния набор от символи. NCHAR има максимален размер до 32767 байта. Максималната ширина на колона за база данни NCHAR е 2000 байта.
Синтаксис:
тест NCHAR2 (20);
# 4) ДЪЛГО: Това ще съхранява символни низове с променлива дължина. Long има максимален размер до 32760 байта.
Синтаксис:
тест ДЪЛГО;
# 5) ДЪЛГ РЕД: Това ще съхранява данни в двоичен формат или байтови низове. Дългият ред има максимален размер до 32760 байта.
как да стана изпитател на продукти
Синтаксис:
тест ДЪЛГ РЯД;
# 6) ROWID: Това са физическите идентификатори на ред, който сочи към адреса на ред в нормална таблица.
# 7) UROWID: Това са универсалните идентификатори на редове.
# 8) NVARCHAR2: Това е подобно на VARCHAR2, но ще съхранява само националния набор от символи. Максималната ширина на колоната на базата данни nvarchar2 е 4000 байта.
# 9) VARCHAR: Това е подобно на VARCHAR2.
Синтаксис:
тест VARCHAR2 (20): = ‘SoftwareTest’;
Нека сега обсъдим типовете данни за знаци PL / SQL в табличен формат.
Sl No. | Тип данни | Описание |
---|---|---|
7 | ДЪЛГО | Това е подобно на LONG. Тези данни не се интерпретират от PL / SQL. |
един | VARCHAR2 | Това се използва за съхранение на символни данни, които са с променлива дължина. Размерът се задава за променливите по време на декларацията. Винаги се препоръчва да използвате VARCHAR2 за ефективно използване на паметта. |
две | ЧАР | Това се използва за съхраняване на данни за символи, които са с фиксирана дължина. Размерът се задава за променливите по време на декларацията. Винаги се препоръчва използването на CHAR, когато трябва да се използват данни с фиксиран размер. |
3 | ВАРЧАР | Това е подобно на VARCHAR2. Винаги се препоръчва използването на VARCHAR по време на внедряването на кода. |
4 | NCHAR | Това се използва за съхраняване на данни за символи, които са с национални данни с фиксирана дължина. Наборът от символи е или UTF 8, или UTF 16. Винаги се препоръчва да конвертирате CHAR в NCHAR. Но конвертирането на NCHAR в CHAR може да доведе до съкращаване на данни. |
5 | NVARCHAR2 | Това се използва за съхраняване на данни за символи, които са с променлива дължина данни за национални символи. Това е подобно на VARCHAR2. Наборът от символи е или UTF 8, или UTF 16. Винаги се препоръчва да конвертирате VARCHAR2 в NVARCHAR2. Но конвертирането на NVARCHAR2 във VARCHAR2 може да доведе до съкращаване на данни. |
6 | ДЪЛГО | Това се използва в речника на данните. Това се използва предимно в данните от набора от символи. |
Булеви типове данни
Тези типове данни PL / SQL могат да се използват за съхраняване на логически стойности. TRUE, FALSE и NULL са булевите стойности.
SQL няма типове данни BOOLEAN. Затова трябва да ги избягваме в следните сценарии:
- PL / SQL изрази, генерирани от SQL.
- Функции по подразбиране на PL / SQL.
- Нормални SQL изрази.
Синтаксис:
test Boolean;
Резултатът от тестовата променлива ще бъде TRUE или FALSE в зависимост от определени критерии.
Типове данни за дата и час
Тези типове данни се използват за постоянни дължини на дата и час. Подходящият диапазон от дати започва от 1 януари 4712 г. пр. Н. Е. До 31 декември 9999 г. сл. Н. Е. И времето се определя в секунди. Вграденият формат на датата е DD-MON-YY, което предполага двойни цифри, разпределени за деня на месеца, име на месец накратко и след това последните две цифри от годината.
ДАТАТА се състои от секунда, минута, ден, час, месец, година и век. Всяко от тези полета има определен специфичен диапазон, както е изброено по-долу:
- ВТОРО: Определя се от диапазона от 00 до 59,9.
- МИНУТА: Определя се в диапазона от 00 до 59.
- ЧАС: Определя се в диапазона от 00 до 23.
- ДЕН: Определя се в диапазона от 01 до 31.
- МЕСЕЦ: Определя се в диапазона от 01 до 12.
- ГОДИНА: Определя се в диапазона от -4712 до 9999 (което не включва 0).
- TIMEZONE_HOUR: Определя се в диапазона от -12 до 14.
- TIMEZONE_MINUTE: Определя се в диапазона от 00 до 59.
- TIMEZONE_REGION
- TIMEZONE_ABBR
Синтаксис:
TIMESTAMP '1990-06-04 9:00:00 US/Pacific' TIMESTAMP '1990-06-04 01:30:00 US/Pacific PDT'
Тук сме описали часовата зона с помощта на символи. Спецификацията на САЩ / Тихия океан или PDT се използва за определяне на конкретна часова зона. PDT формулярът се използва най-вече, тъй като дава насоките при преминаване към лятно часово време.
LOB типове данни
Нека сега обсъдим типовете данни LOB, които се занимават с огромни парчета данни, състоящи се от видеоклипове, звуци, графики, изображения и т.н.
LOB типовете данни имат многобройни предимства пред дългите типове данни. Те са изброени по-долу:
- Long може да побере 2GB, докато LOB може да побере 128TB.
- Таблица може да има една колона от тип LONG, докато може да има множество колони от тип данни LOB.
- Типът данни LOB претърпява постоянни подобрения и актуализации от Oracle, докато типът данни LONG няма много подобрения и актуализации.
Типовете данни за LOB са изброени по-долу:
- BFILE: Това се използва за задържане на неструктурирани данни в двоичен формат извън базата данни като файл на операционната система.
- NCLOB: Това се използва за съхранение на огромни NCHAR данни в базата данни.
- CLOB: Това се използва за съхранение на огромни данни от тип знаци в базата данни.
Синтаксис:
Двоичен CLOB;
- BLOB: Това се използва за съхранение на огромни двоични данни в базата данни.
Синтаксис:
Двоичен BLOB;
Внедряване на код с някои типове данни:
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; /
Резултатът от горния код трябва да бъде:
PL SQL променливи
PL / SQL имената на променливи следват конвенцията за именуване, която се състои от буквено-цифрови знаци, не повече от тридесет. PL / SQL не чувствителни към регистъра и ключовите думи не трябва да се използват като променлива.
Името на променливата трябва да има смисъл и може да бъде последвано от подчертаване (_), число или долар ($).
PL SQL декларация за променлива
Променливите на PL / SQL трябва да са налични в областта на декларацията или да присъстват в пакет като глобална променлива. PL / SQL запазва памет за променливите и местоположението на хранилището се определя от името на променливата.
Синтаксис за декларация на променлива:
variable_name (CONSTANT) datatype (NOT NULL) (:= | DEFAULT initial_value)
Тук името_променлива е автентичен PL / SQL идентификатор и типът данни може да бъде дефиниран от потребителя или потвърден тип PL / SQL данни.
Прилагане на код за декларация на променлива:
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;
Резултатът от горния код трябва да бъде:
Моля обърнете внимание, споменахме както точността, така и размера на числовия тип данни. Това е известно като ограничена декларация. Този тип декларация консумира по-малко памет.
PL / SQL променлива инициализация
По подразбиране PL / SQL приема стойността на променлива като NULL. Ако обаче не искаме да инициализираме променлива с NULL, това може да бъде постигнато чрез използване на ключовата дума DEFAULT или с оператора за присвояване.
Синтаксис:
num integer := 50; test varchar(40) DEFAULT 'Software Test Help';
Също така можем да определим, че променливата не трябва да има стойност NULL, като споменем ограничението NOT NULL. Ако обаче се използва ограничението NOT NULL, трябва да зададем стойност за променливата.
Прилагане на код с инициализация на променлива:
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; /
Резултатът от горния код трябва да бъде:
Прилагане на код с концепция за присвояване:
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; /
Тук операторът на присвояване (=) се използва за присвояване на стойности на променливата.
Резултатът от горния код трябва да бъде:
PL / SQL променлив обхват
PL / SQL блокът може да има вътрешни кодови блокове. Ако променлива, която е декларирана, е част от вътрешния блок, тя не може да бъде използвана от външния блок. Но променлива, която е част от външния блок, може да бъде манипулирана във вътрешния блок на кода.
Тези типове променливи са описани по-долу:
- Глобални променливи: Променливите, които са декларирани във външния блок или пакет.
- Локални променливи: Променливите, които са декларирани във вътрешния блок на кода и не могат да бъдат достъпни от външния блок.
Прилагане на код с глобални и локални променливи:
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; /
Резултатът от горния код трябва да бъде:
Моля обърнете внимание че изходът тук, Глобалната променлива е: 10 (поради глобалната променлива val) и „Локална променлива е: 100 (поради локалната променлива val).
PL / SQL котва
PL / SQL котвите са дефинирани с ключовата дума% TYPE, за да декларират променливи с типа данни, свързани с типа данни на тази конкретна колона на таблицата.
Кодов фрагмент с котва:
DECLARE v_namis RESSIDENT.NAME%TYPE; n_addessis RESSIDENT.ADDRESS%TYPE; BEGIN NULL; END; /
Тук имаме таблица RESIDENT и имаме работа с колоните ИМЕ и АДРЕС на тази таблица.
Константи в PL / SQL
Константа запазва стойността, която веднъж е декларирана непроменена в цялата програма.
PL / SQL Постоянна декларация
The ПОСТОЯННО ключовата дума се използва за дефиниране на константи в програмата. Започва с предварително дефинирана стойност, която остава същата в цялата програма.
Синтаксис за декларация на променлива:
const_name CONSTANT data type := val
Прилагане на код с константа:
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; /
Резултатът от горния код трябва да бъде:
Литерали в PL SQL
Булева, цифрова или низова стойност, която не е дефинирана от PL / SQL идентификатор, се нарича литерал. Литералите са чувствителни към малки и големи букви и са от следните типове, изброени по-долу:
- Булеви литерали ( Например - FALSE, TRUE)
- Буквени знаци ( Например - ‘s’, ‘7’, ‘)’)
- Струнни литерали ( Например - ‘Тест на софтуера’)
- Цифрови литерали ( Например - 78, 04, 6.3)
- ДАТА и времеви литерали ( Например - ’25 -05-2012 ’)
Често задавани въпроси и отговори
Q # 1) Какви са типовете данни в PL SQL?
Отговор: PL SQL типовете данни са съставни и скаларни. Скаларните типове данни могат да съдържат единични стойности като Character, Number, Boolean и DateTime. Докато съставните типове данни съхраняват повече от една стойност като събиране и запис.
Q # 2) Какво представлява променливата PL / SQL?
Отговор: PL SQL променливата е име, което помага на разработчика да съхранява временно данни по време на изпълнението на програмата. Това е смислено име, присвоено на зоната за съхранение. Всички променливи в PL / SQL принадлежат към определен тип данни.
В # 3) Как да предам параметър за дата в PL / SQL?
Отговор: Можем да предадем параметър за дата в PL / SQL с помощта на ключовата дума DATE. Следва фиксиран формат като „ГГГГ-ММ-ДД“.
Q # 4) Как декларирате константа в PL / SQL?
Отговор: Можем да декларираме константа в PL / SQL с помощта на ключовата дума CONSTANT. След CONSTANT трябва да споменем стойността, която му е присвоена. Тази стойност остава фиксирана в цялата програма.
Q # 5) Колко вида литерали са налични в PL / SQL?
Отговор: Типовете литерали в PL / SQL са Number, DateTime, Text и Integer.
Q # 6) PL SQL променливите чувствителни ли са към регистъра?
Отговор: PL SQL променливите, включително запазените думи, не чувствителни към регистъра. Например, НАЧАЛО и започнете и двете служат на една и съща цел.
Заключение
Голяма част от PL / SQL, занимаваща се с теми като различните използвани типове данни и тяхното значение и променливите на PL SQL, трябва да бъдат разбираеми сега, след като прочетете този урок.
Също така проучихме подробно PL SQL константите и литералите. Преминете през всяка от темите една по една и бавно ще овладеете това. PL / SQL се използва в индустрии както за уеб, така и за сървърна разработка в наши дни.
В следващия урок ще обсъдим PL / SQL Insert, Update, Delete, Select statement и други свързани теми.
Нека останем на линия за повече споделяне на знания.
Препоръчително четене
- Променливи на Python
- Типове данни на Python
- Типове данни и променливи C # с примери
- Параметризиране на данни на JMeter, използвайки дефинирани от потребителя променливи
- Data Mart Урок - Видове, примери и изпълнение на Data Mart
- Типове данни на C ++
- Java променливи и техните типове с примери
- SQL срещу NoSQL Точни разлики и знайте кога да използвате NoSQL и SQL