Резюме :в този урок ще научите как да използвате SQLite UPDATE изявление за актуализиране на данни за съществуващи редове в таблицата.
Въведение в SQLite UPDATE изявление
За да актуализирате съществуващи данни в таблица, използвате SQLite UPDATE изявление. Следното илюстрира синтаксиса на UPDATE изявление:
UPDATE table
SET column_1 = new_value_1,
column_2 = new_value_2
WHERE
search_condition
ORDER column_or_expression
LIMIT row_count OFFSET offset;Code language: SQL (Structured Query Language) (sql) В този синтаксис:
- Първо посочете таблицата, където искате да актуализирате след
UPDATEклауза. - Второ, задайте нова стойност за всяка колона на таблицата в
SETклауза. - Трето, посочете редове за актуализиране, като използвате условие в
WHEREклауза.WHEREклаузата е незадължителна. Ако го пропуснете,UPDATEоператор ще актуализира данните във всички редове на таблицата. - Накрая използвайте
ORDER BYиLIMITклаузи вUPDATEоператор, за да посочите броя на редовете за актуализиране.
Забележете, че ако използвате отрицателна стойност в LIMIT клауза, SQLite приема, че няма ограничение и актуализира всички редове, които отговарят на условието в предходния WHERE клауза.
ORDER BY Клаузата винаги трябва да върви с LIMIT клауза, за да посочите точно кои редове да бъдат актуализирани. В противен случай никога няма да разберете кой ред всъщност ще бъде актуализиран; защото без ORDER BY клауза, редът на редовете в таблицата не е посочен.
SQLite UPDATE примери за изрази
Ще използваме employees таблица в примерната база данни, за да демонстрира UPDATE изявление.
Следният SELECT изявлението получава частични данни от employees таблица:
SELECT
employeeid,
firstname,
lastname,
title,
email
FROM
employees;Code language: SQL (Structured Query Language) (sql) Опитайте го
1) Актуализирайте пример за една колона
Да предположим, че Джейн се е омъжила и тя е искала да промени фамилното си име с фамилията на съпруга си, т.е. Smith . В този случай можете да актуализирате фамилното име на Джейн, като използвате следното изявление:
UPDATE employees
SET lastname = 'Smith'
WHERE employeeid = 3;Code language: SQL (Structured Query Language) (sql) Опитайте го
Изразът в WHERE клаузата гарантира, че актуализираме само записа на Джейн. Задаваме lastname колона към литерален низ 'Smith' .
За да проверите UPDATE , използвате следното изявление:
SELECT
employeeid,
firstname,
lastname,
title,
email
FROM
employees
WHERE
employeeid = 3;Code language: SQL (Structured Query Language) (sql) Опитайте го
2) Пример за актуализиране на няколко колони
Да предположим, че Park Margaret намира в Toronto и искате да промените неговия адрес, град и информация за държавата. Можете да използвате UPDATE изявление за актуализиране на множество колони, както следва:
UPDATE employees
SET city = 'Toronto',
state = 'ON',
postalcode = 'M5P 2N7'
WHERE
employeeid = 4;Code language: SQL (Structured Query Language) (sql) Опитайте го
За да проверите UPDATE , използвате следното изявление:
SELECT
employeeid,
firstname,
lastname,
state,
city,
PostalCode
FROM
employees
WHERE
employeeid = 4;Code language: SQL (Structured Query Language) (sql) Опитайте го
3) Актуализирайте с ORDER BY и LIMIT пример за клаузи
Забележете, че трябва да изградите SQLite с опция SQLITE_ENABLE_UPDATE_DELETE_LIMIT, за да извършите UPDATE изявление с незадължителен ORDER BY и LIMIT клаузи.
Нека проверим имейл адресите на служителите в employees таблица:
SELECT
employeeid,
firstname,
lastname,
email
FROM
employees;Code language: SQL (Structured Query Language) (sql) Опитайте го
За да актуализирате един ред в employees таблица, използвате LIMIT 1 клауза. За да сте сигурни, че актуализирате първия ред служители, сортирани по собствено име, добавяте ORDER BY firstname клауза.
Така че следното изявление актуализира имейла на Andrew Adams :
UPDATE employees
SET email = LOWER(
firstname || "." || lastname || "@chinookcorp.com"
)
ORDER BY
firstname
LIMIT 1;Code language: SQL (Structured Query Language) (sql) Опитайте го
Новият имейл е комбинацията от собствено име, точка (.), фамилия и наставка @chinookcorp.com
LOWER() функция преобразува имейла в малки букви.
4) Пример за актуализиране на всички редове
За да актуализирате всички редове в employees таблица, пропускате WHERE клауза. Например следната UPDATE изявление променя всички имейл адреси на всички служители на малки букви:
UPDATE employees
SET email = LOWER(
firstname || "." || lastname || "@chinookcorp.com"
);Code language: SQL (Structured Query Language) (sql) Опитайте го
В този урок научихте как да използвате SQLite UPDATE изявление за актуализиране на съществуващи данни в таблица.
Препратки
- https://www.sqlite.org/lang_update.html – Изявление за актуализиране на SQLite