АКТУАЛИЗИРАНЕ на SQL
Инструкцията SQL UPDATE е използвана до актуализирайте и модифицирайте наличните записи в база данни . Използва се за промяна на вече съществуващите записи, съхранени в таблиците в базата данни. Тази команда работи заедно с WHERE клауза. Условието, посочено в оператора UPDATE, се използва, за да се реши кои колони или редове на таблицата ще бъдат засегнати или променени.
Командата UPDATE може да се използва и за актуализиране на таблица от друга таблица. Може да се използва и за актуализиране на датата и часа на SQL заявка.
Присъединяване към актуализация на SQL
Инструкцията SQL UPDATE може също да се използва за актуализиране на една таблица с помощта на друга таблица, която е свързана чрез присъединяване. Това е известно като SQL оператор UPDATE JOIN.
UPDATE table1, table2, INNER JOIN table1 ON table1.column1 = table2.column1 SET table1.column1 = table2.column2 WHERE condition
Следва основният синтаксис на израза UPDATE, използващ клаузата JOIN:
Пример:
CREATE TABLE TAE1 (Col1 INT, Col2 INT, Col3 VARCHAR (100)) INSERT INTO TAE1 (Col1, Col2, Col3) SELECT 1, 11, 'FIRST' UNION ALL SELECT 11,12, 'SECOND' UNION ALL SELECT 21, 13, 'THIRD' UNION ALL SELECT 31, 14, 'FOURTH'
Нека първо създадем първата таблица TAE1.
CREATE TABLE TAE2 (Col1 INT, Col2 INT, Col3 VARCHAR (100)) INSERT INTO TAE2 (Col1, Col2, Col3) SELECT 1, 21, 'TWO-ONE' UNION ALL SELECT 11,22, 'TWO-TWO' UNION ALL SELECT 21, 23, 'TWO-THREE' UNION ALL SELECT 31, 24, 'TWO-FOUR'
Сега нека създадем втората таблица TAE2.
SELECT * FROM TAE1
Col1 | Кол2 | Кол3 |
1 | 11 | Първо |
11 | 12 | Втори |
21 | 13 | Трето |
31 | 14 | Четвърто |
Изход:
Сега нека видим съдържанието на таблицата TAE2.
SELECT * FROM TAE2
Изход:
Col1 | Кол2 | Кол3 |
1 | 21 | Две-едно |
11 | 22 | Две-две |
21 | 23 | Две-три |
31 | 24 | Две-четири |
Сега следната заявка ще актуализира редовете на TAE1, където стойността на Col1 е 21 и 31, използвайки таблицата TAE2, където има подобни редове и където Col1 е 21 и 31. Само съответните записи на Col2 и Col3 от таблицата TAE1 ще бъдат актуализирани .
UPDATE TAE1 SET Col2 = TAE2.Col2, Col3 = TAE2.Col3 FROM TAE1 INNER JOIN TAE2 ON TAE1.Col1 = TAE2.Col1 WHERE TAE1.Col1 IN (21, 31);
Изход:
Col1 | Кол2 | Кол3 |
1 | 11 | Първо |
11 | 12 | Втори |
21 | 13 | Две-три |
31 | 14 | Две-четири |
Сега, ако се провери съдържанието на таблицата TAE1, ще се получи следният изход.
Съдържанието на TAE2 обаче остава непроменено.
Col1 | Кол2 | Кол3 |
1 | 21 | Две-едно |
11 | 22 | Две-две |
21 | 23 | Две-три |
31 | 24 | Две-четири |
Това е пример за използване на клаузата JOIN с израза UPDATE. Той обедини горните две таблици.
ДАТА НА АКТУАЛИЗИРАНЕ НА SQL
SQL операторът UPDATE DATE се използва за актуализиране на полето за дата и час в SQL.
UPDATE table_name SET data_field = ‘data_value’ WHERE conditions;
Следва общият синтаксис на актуализиране на полето за дата и час в SQL :
UPDATE table_name SET data_field = getdate();
Следва синтаксисът на актуализиране на датата с текущата дата в SQL :
UPDATE table_name SET data_field = CURRENT_TIMESTAMP;
Следва синтаксисът на актуализиране на датата и часа с текущата дата и час в SQL:
UPDATE table_name SET data_field = ‘YYYY-MM-DD HH:MM:SS’;
Следва синтаксисът на актуализиране на датата и часа с конкретна дата и час в SQL:
UPDATE table_name SET data_field = CAST(‘date_value’ AS DATETIME);
Следва синтаксисът на актуализиране на датата с конкретна стойност, когато форматът на датата не е известен:
Пример:
UPDATE Employee SET DOJ = ‘2021-07-05’ WHERE Dept_ID = 10;
Следва пример за актуализиране на датата на няколко реда в дадения Служител таблица.
Emp_ID | Emp_Name | Обозначение | ИД на мениджър | DOJ | Заплата | Dept_ID |
1 | Emp1 | Директор | 11.07.2021 | 45000 | 10 | |
2 | Emp2 | Директор | 11.07.2021 | 40 000 | 20 | |
3 | Emp3 | Мениджър | Emp1 | 11.07.2021 | 27 000 | 10 |
4 | Emp4 | Мениджър | Emp2 | 08.10.2021 | 25 000 | 20 |
5 | Emp5 | Аналитик | Emp3 | 11.07.2021 | 20 000 | 10 |
6 | Emp6 | Аналитик | Emp3 | 08.10.2021 | 18 000 | 10 |
7 | Emp7 | Служител | Emp3 | 11.07.2021 | 15 000 | 10 |
8 | Emp8 | Продавач | Emp4 | 09.09.2021 | 14000 | 20 |
9 | Emp9 | Продавач | Emp4 | 08.10.2021 | 13000 | 20 |
Запитване:
Изход:
Emp_ID | Emp_Name | Обозначение | ИД на мениджър | DOJ | Заплата | Dept_ID |
1 | Emp1 | Директор | 05.07.2021 | 45000 | 10 | |
3 | Emp3 | Мениджър | Emp1 | 05.07.2021 | 27 000 | 10 |
5 | Emp5 | Аналитик | Emp3 | 05.07.2021 | 20 000 | 10 |
6 | Emp6 | Аналитик | Emp3 | 05.07.2021 | 18 000 | 10 |
7 | Emp7 | Служител | Emp3 | 05.07.2021 | 15 000 | 10 |
По този начин колоната на DOJ за всички служители с Dept_ID 10 е актуализирана.
Следва примерът за актуализиране на датата на прием в студентска таблица с помощта на функцията CAST:
UPDATE student
SET admission_date = CAST(‘2021-04-10’ AS DATETIME)
WHERE id = 42;