how use pl sql insert
Този урок обяснява как да използвате командите PL SQL INSERT, UPDATE, DELETE и SELECT с примери за програмиране:
В тази статия ще продължим с PL / SQL серия . В PL / SQL типове данни, константи и променливи урок, научихме подробно за PL SQL типове данни, променливи, константи и литерали с помощта на примери за програмиране. Тук ще обсъдим PL SQL DML изразите и как те работят.
Ще проучим командите PL SQL INSERT, DELETE, UPDATE и SELECT, за да манипулираме данни в PL / SQL таблици.
Нека започнем с ученията !!
Какво ще научите:
- PL SQL DML команди
- Заключение
PL SQL DML команди
Нека започнем да разбираме изпълнението на команди INSERT, DELETE, UPDATE и SELECT на таблици. Заедно те се наричат изрази за управление на данни (DML).
Команда PL SQL INSERT
Операторът INSERT INTO се използва за вмъкване на данни в таблица. Нарича се a Език за управление на данни . Той използва името на таблицата и имената и стойностите на колоните като входни данни и извършва вмъкването на стойности в таблицата.
как да премахна елемента от масива в Java
Синтаксис:
INSERT INTO <> VALUES (<>, <>, …..);Името на таблицата и стойностите, които трябва да бъдат вмъкнати, са задължителната част от оператора PL SQL INSERT. По желание можем да споменем и имената на колоните, където трябва да се вмъкнат стойностите.
Създадохме таблицата EMPLOYEE с помощта на SQL израза, даден по-долу:
CREATE TABLE EMPLOYEE ( CODE INT NOT NULL, NAME VARCHAR (15) NOT NULL, AGE INT NOT NULL, PRIMARY KEY (CODE) );
Внедряване на код с PL SQL INSERT:
BEGIN INSERT INTO EMPLOYEE VALUES (1, 'FLEX', 34); INSERT INTO EMPLOYEE VALUES (2, 'HARRY', 35); END
Резултатът от горния код трябва да бъде:
SELECT * from EMPLOYEE;
ВЪВЕДЕТЕ В ИЗБОР
ВМЕСТЕТЕ ВЪВ ВСИЧКИ КОЛОНИ
INSERT INTO SELECT се използва за вмъкване на редове в таблица чрез въздействие върху резултата от оператора SELECT. Може да се наложи да получите ред от таблицата и да го вмъкнете в друга таблица.
Синтаксис:
INSERT INTO <> (col1, col2, col3) SELECT col1, col2, col3 FROM <
Командата INSERT INTO SELECT се нуждае от типовете данни на източника и целевата таблица да бъдат еднакви. В случай, че се наложи да копираме цели редове на таблицата източник в целевата таблица, можем да пропуснем условието WHERE.
Създадохме друга таблица, наречена MANAGER, с помощта на SQL израза, даден по-долу:
CREATE TABLE MANAGER ( CODE INT NOT NULL, NAME VARCHAR (15) NOT NULL, AGE INT NOT NULL, PRIMARY KEY (CODE) );
Нека отново разгледаме таблицата EMPLOYEE.
Прилагане на код с INSERT INTO SELECT .:
BEGIN INSERT INTO MANAGER (CODE, NAME, AGE) SELECT CODE, NAME, AGE FROM EMPLOYEE WHERE CODE = 1; END;
Изход на горния код:
SELECT * from MANAGER;
ПОСТАВЕТЕ ЧАСТИЧНИ ДАННИ
Можем също да вмъкнем частични данни в друга таблица. Нека първо създадем ПОДРОБНОСТ ЗА УПРАВИТЕЛЯ таблица от таблицата EMPLOYEE със заявката по-долу.
CREATE TABLE MANAGERDETAIL AS SELECT * FROM EMPLOYEE WHERE 1 = 0;
Тук, КЪДЕ 1 = 0 се отнася до първата колона на таблицата EMPLOYEE, която е CODE.
След това ще използваме израза INSERT INTO SELECT, за да дублираме данните от таблицата EMPLOYEE в таблицата MANAGERDETAIL.
Внедряване на код с INSERT INTO SELECT;
BEGIN INSERT INTO MANAGERDETAIL SELECT CODE, NAME, AGE FROM EMPLOYEE WHERE CODE! = 0 END;
Изход на горния код:
SELECT * from MANAGERDETAIL;
В горния пример не сме споменавали имената на колоните в командата INSERT, тъй като изходът на командата SELECT има стойностите, които съвпадат с колоните на таблицата MANAGERDETAIL. Също така включихме условие с клаузата WHERE.
ПОСТАВЕТЕ ЧАСТИЧНИ ДАННИ И ЛИТЕРАЛНИ
Можем да вмъкнем частични данни и буквална стойност в таблица.
Нека първо създадем таблицата MANAGERCONTACT със заявката по-долу:
CREATE TABLE MANAGERCONTACT ( CODE INT NOT NULL, NAME VARCHAR (15) NOT NULL, AGE INT NOT NULL, PRIMARY KEY (CODE) );
Сега, нека отново се възползваме от помощта на таблицата EMPLOYEE и се опитаме да дублираме данните от таблицата EMPLOYEE в таблицата MANAGERCONTACT.
Прилагане на код с INSERT INTO:
BEGIN INSERT INTO MANAGERCONTACT (CODE, NAME, AGE) SELECT CODE, NAME, 0 FROM EMPLOYEE; END;
Резултатът от горния код:
SELECT * from MANAGERCONTACT;
В горния пример получихме стойностите от таблицата EMPLOYEE и също така включихме 0 литерала в израза INSERT, който промени стойностите на колоната AGE на 0 в таблицата MANAGERCONTACT.
ПОСТАВЕТЕ ВСИЧКИ
Оператор INSERT ALL се използва за добавяне на повече от един ред в една таблица или множество таблици. Нарича се още команда с много таблици и е от два типа условна и безусловна.
# 1) БЕЗУМЕННО ВЪВЕЖДАНЕ НА ВСИЧКИ
За да вмъкнете повече от един ред в таблица, се използва израз INSERT ALL.
Синтаксис:
INSERT ALL INTO <> (c1, c2, c3) VALUES (v1, v2, v3) INTO <> (c1, c2, c3) VALUES (v4, v5, v6) INTO <> (c1, c2, c3) VALUES (v7, v8, v9) Тук c1, c2 и c3 са имената на колоните, а v1, v2 и v3 са стойностите, които трябва да се вмъкнат. В случай, че трябва да използваме буквална стойност вместо подзаявка; трябва да използваме заявката по-долу:
SELECT * FROM dual;
Създадохме таблицата SOCCERPLAYERS с помощта на SQL израза, даден по-долу:
CREATE TABLE SOCCERPLAYERS ( PLAYERID INT NOT NULL, NAME VARCHAR (15) NOT NULL, COUNTRY VARCHAR (15), PRIMARY KEY (PLAYERID) );
Внедряване на код с INSERT ALL:
BEGIN INSERT ALL INTO SOCCERPLAYERS (PLAYERID, NAME, COUNTRY) VALUES (4, 'DANIEL', 'USA') INTO SOCCERPLAYERS (PLAYERID, NAME, COUNTRY) VALUES (8, 'DANNY', 'ITALY') INTO SOCCERPLAYERS (PLAYERID, NAME, COUNTRY) VALUES (7, 'FRANK', 'FRANCE') SELECT 1 FROM dual; END;
Резултатът от горния код:
SELECT * from SOCCERPLAYERS;
В горния пример в таблицата са вмъкнати три реда наведнъж с команда INSERT ALL.
За да вмъкнете повече от един ред в множество таблици, се използва израз INSERT ALL.
Синтаксис:
INSERT ALL INTO <> (c1, c2, c3) VALUES (v1, v2, v3) INTO <> (c1, c2, c3) VALUES (v4, v5, v6) INTO <> (c1, c2, c3) VALUES (v7, v8, v9) Subquery;
Тук c1, c2 и c3 са имената на колоните, а v1, v2 и v3 са стойностите, които трябва да се вмъкнат. Table_name1, table_name2 и table_name3 са имената на таблиците.
# 2) УСЛОВНО ПОСТАВЯНЕ НА ВСИЧКИ
Оператор INSERT ALL може да вмъкне повече от един ред в таблици в зависимост от някои условия.
Синтаксис:
INSERT (ALL | FIRST) WHEN cond1 THEN INTO table_name1 <> VALUES <> WHEN cond2 THEN INTO table_name2 <> VALUES <> ELSE INTO table_name3 <> VALUES <> Subquery;
Ключовата дума ALL се използва за указване, че всички условия по клаузата WHERE трябва да бъдат изпълнени. Ако условието е изпълнено, ще се изпълни съответната клауза INTO.
Ако се използва ключовата дума FIRST, тогава за всеки отделен ред, получен от подзаявка, Oracle изпълнява критериите в клаузата WHEN отгоре надолу. След като условието е изпълнено, съответната клауза INTO ще се изпълни и ще премине към друга клауза WHEN за този ред.
Създадохме таблиците VEHICLE, CARS, SMALLCARS и LARGECARS с помощта на SQL изразите, дадени по-долу:
CREATE TABLE VEHICLE ( CARID INT NOT NULL, NAME VARCHAR (15) NOT NULL, COLOR VARCHAR (15), PRIMARY KEY (CARID) );
Поставете следните стойности в таблицата VEHICLE:
INSERT INTO VEHICLE VALUES (1, 'AUDI', 'RED'); INSERT INTO VEHICLE VALUES (4, 'BMW', 'WHITE'); INSERT INTO VEHICLE VALUES (7, 'KIA', 'GREEN'); CREATE TABLE CARS ( CARID INT NOT NULL, NAME VARCHAR (15) NOT NULL, COLOR VARCHAR (15), PRIMARY KEY (CARID) ); CREATE TABLE SMALLCARS AS SELECT * FROM CARS; CREATE TABLE LARGECARS AS SELECT * FROM CARS;
Внедряване на код с INSERT ALL.
BEGIN INSERT ALL WHEN CARID = 1 THEN INTO CARS WHEN CARID = 4 THEN INTO SMALLCARS WHEN CARID = 7 THEN INTO LARGECARS SELECT CARID, NAME, COLOR FROM VEHICLE; END;
Резултатът от горния код:
SELECT * from CARS;
SELECT * from SMALLCARS;
SELECT * from LARGECARS;
В горния пример е добавен един ред във всяка от трите таблици въз основа на стойността CARDID.
Съществуват определени ограничения с израза INSERT ALL:
- Използва се само за вмъкване на стойности в таблици. Не работи с възгледи или материализирани възгледи.
- Не е в състояние да вмъква стойности в отдалечени таблици.
- Броят на колоните, с които може да се справи командата INSERT INTO, не трябва да бъде по-голям от 999.
- Израз на събиране на таблици не може да се използва в команда за вмъкване на множество таблици.
- Подзаявката INSERT от няколко таблици не може да използва последователност.
PL SQL Команда за актуализация
Операторът UPDATE се използва за промяна на стойностите в таблица. Нарича се още a Език за управление на данни . Той използва имената на таблицата, колоната и стойностите като входни данни и извършва модификацията на стойностите в таблицата.
Синтаксис:
UPDATE <> SET <>=<>, <>=<>,… WHERE <>;Ключовата дума SET се използва за промяна на стойността на колоната с новата стойност. По желание се използва ключовата дума WHERE, ако е пропусната, тогава стойността на посочената колона в пълната таблица ще бъде променена.
АКТУАЛИЗИРАНЕ НА ЕДИННА КОЛОНА НА РЕД
Нека отново разгледаме таблицата EMPLOYEE.
Внедряване на код с UPDATE:
BEGIN UPDATE EMPLOYEE SET NAME = 'HENRY' WHERE CODE=1; END;
Резултатът от горния код:
SELECT * from EMPLOYEE;
АКТУАЛИЗИРАНЕ НА МНОГО КОЛОНИ НА РЕД
Нека отново разгледаме таблицата EMPLOYEE.
Внедряване на код с UPDATE:
BEGIN UPDATE EMPLOYEE SET NAME = 'COMO', AGE = 30 WHERE CODE=2; END;
Резултатът от горния код:
SELECT * from EMPLOYEE;
АКТУАЛИЗИРАНЕ НА МНОЖЕСТВЕНИ РЕДОВЕ
Нека отново разгледаме таблицата EMPLOYEE.
Внедряване на код с UPDATE:
BEGIN UPDATE EMPLOYEE SET AGE = AGE +1; END;
Изход на горния код:
SELECT * from EMPLOYEE;
В горния пример ВЪЗРАСТЪТ на всички служители се е увеличил с 1.
PL SQL команда за изтриване
Изразът DELETE се използва за премахване на цял запис от таблицата. Нарича се още a Език за управление на данни.
хеш таблица c ++ пример
Синтаксис:
DELETE FROM <> WHERE <>;Ключовата дума FROM не е задължителна и изразът DELETE ще даде същия резултат, ако FROM е добавен или не добавен в заявката. По желание се използва ключовата дума WHERE, ако е пропусната, пълната таблица ще бъде изтрита.
ИЗТРИВАНЕ НА ЕДИН РЯД ОТ МАСА
Нека отново разгледаме таблицата EMPLOYEE.
Внедряване на код с DELETE:
BEGIN DELETE FROM EMPLOYEE WHERE CODE=2; END;
Изход на горния код:
SELECT * from EMPLOYEE;
ИЗТРИВАНЕ НА МНОГО РЕДОВЕ ОТ МАСА
Нека отново разгледаме таблицата MANAGERDETAIL.
Внедряване на код с DELETE:
BEGIN DELETE FROM MANAGERDETAIL WHERE CODE > 0; END;
Изход на горния код:
SELECT * from MANAGERDETAIL;
ИЗТРИВАНЕ НА ЦЯЛИТЕ РЕДОВЕ ОТ МАСА
Нека отново разгледаме таблицата VEHICLE.
Внедряване на код с DELETE:
BEGIN DELETE FROM VEHICLE; END;
Изход на горния код:
SELECT * from VEHICLE;
PL SQL команда за избор
Операторът SELECT се използва за извличане на данни от базата данни. Операторът SELECT INTO се използва за извличане на стойностите от базата данни и съхраняването им в локалните променливи, въведени от PL / SQL.
Ако използваме само оператор SELECT, той връща един запис. В случай, че операторът SELECT извлича множество стойности, TOO_MANY_ROWS изключение е хвърлено от PL / SQL. Докато използваме оператора SELECT INTO, ние присвояваме поне една стойност на променливата. Ако обаче не е извлечен запис от базата данни, NO_DATA_FOUND хвърля се изключение.
Броят на колоните и техният тип трябва да бъде равен на броя на променливите и техния тип в ключовата дума INTO. Стойностите се получават от базата данни в същата последователност, както е дефинирана в оператора SELECT.
Ключовата дума WHERE в оператора SELECT не е задължителна и ни позволява да получаваме записи, които отговарят на определени критерии. Важно е да се отбележи, че заявката SELECT с команди DELETE, UPDATE и INSERT няма клауза INTO.
Синтаксис:
SELECT <>, <>, ..<> INTO <>, <>, … <> FROM <> WHERE <>;ВЗЕМЕТЕ ДАННИ ОТ ВСИЧКИ КОЛОНИ НА МАСА
Нека отново разгледаме таблицата EMPLOYEE.
Внедряване на код с SELECT:
BEGIN SELECT * FROM EMPLOYEE WHERE CODE=1; END;
Изход на горния код:
Прилагане на код с оператор SELECT, изхвърлящ изключение:
BEGIN SELECT * FROM EMPLOYEE WHERE CODE=2; END;
Изход на горния код:
Изключението „няма намерени данни“ се изхвърля, тъй като операторът SELECT не успя да получи ред, съвпадащ с условието, тъй като в базата данни няма служител с CODE 2
ИЗВЕСТЕТЕ ДАННИ ОТ КОЛОНА НА МАСА
Нека отново разгледаме таблицата EMPLOYEE.
BEGIN SELECT CODE FROM EMPLOYEE; END;
Резултатът от горния код:
ИЗВЕСТЕТЕ ДАННИ ОТ МНОГО КОЛОНИ НА МАСА
Нека отново разгледаме таблицата EMPLOYEE.
BEGIN SELECT CODE, NAME FROM EMPLOYEE; END;
Изход на горния код:
В горния пример в оператора SELECT са добавени две колони CODE и NAME.
Често задавани въпроси и отговори
В # 1) Какво е INSERT, UPDATE и DELETE в SQL?
Отговор: INSERT, UPDATE и DELETE са команди в SQL, които помагат за работа и актуализиране на данни. Операторът INSERT вмъква редове в таблица. Изразът DELETE изтрива редове от таблица и изразът UPDATE актуализира стойностите в редовете на таблицата.
В # 2) Можем ли да вмъкнем, актуализираме и изтрием с оглед в SQL?
Отговор: Да, можем да вмъкнем, актуализираме и изтрием в изглед в SQL. Ако изгледът се е присъединил между таблиците, можем да извършим само действия INSERT и UPDATE, но не можем да извършим операция DELETE. Изразът DROP се използва за изтриване на изглед.
В # 3) ВЪВЕЖДАНЕ ли е DDL или DML?
най-добрият безплатен компютър за ускоряване на софтуера -
Отговор: INSERT е DML или език за управление на данни). Другите DML изрази включват UPDATE, DELETE и т.н. Операторът DDL е способен да създава таблици, схема и база данни.
В # 4) Можем ли да използваме JOIN IN заявка за изтриване?
Отговор: Да, можем да използваме израза INNER JOIN в командата DELETE за изтриване на редове от таблица.
В # 5) Каква е разликата между командата за отрязване и изтриване?
Отговор: TRUNCATE е DDL израз, докато DELETE е DML. Командата TRUNCATE може да премахне цялата таблица. Не запазва целостта на масата. Операторът DELETE може да изтрие само определени данни от таблицата. Той може също да включва условия за изтриване.
В # 6) Какво представляват DML, DCL и DDL?
Отговор: SQL изразите са от типа - DML, DCL и DML.
Езикът за дефиниция на данни или DDL включва команди като ALTER, DROP, CREATE, RENAME, TRUNCATE и COMMENT. Езикът за управление на данни или DML включва команди като INSERT, DELETE, MERGE, UPDATE, CALL, LOCK TABLE и EXPLAIN PLAN.
Езикът за управление на данни или DCL включва команди като GRANT и REVOKE.
В # 7) Срязването е по-бързо от падането?
Отговор: Да, операцията TRUNCATE е по-бърза от DROP. Командата TRUNCATE изтрива само данните от таблицата. Командата DROP изтрива структурата на таблицата и данните от нея.
Заключение
В този урок обсъдихме подробно някои основни концепции на PL SQL команди, които са от съществено значение за развиване на знания за него. Покрихме следните теми, изброени по-долу:
- Команди на езика за управление на данни.
- Използване на PL SQL INSERT.
- Използване на PL SQL UPDATE.
- Използване на PL SQL DELETE.
- Използване на PL SQL SELECT.
<< PREV Tutorial | СЛЕДВАЩ Урок >>
Препоръчително четене
- PL SQL Урок за начинаещи с примери | Какво е PL / SQL
- PL SQL курсор и низове: Урок с примери за кодове
- PL SQL Типове данни, променливи, константи и литерали
- PL SQL формат за дата и час: Функции за дата и час в PL / SQL
- PL SQL пакет: Урок за Oracle PL / SQL пакет с примери
- MySQL Вмъкване в таблица - Вмъкване на изявление Синтаксис и примери
- Урок за изявление за актуализация на MySQL - Синтаксис и примери за актуализиране на заявки
- Изявление за изтриване на MySQL - Изтриване на синтаксис на командата и примери
^