Резюме :в този урок ще научите как да използвате 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