Запросы SQL для изменения данных.



Изменение значений полей в таблице. Чтобы изменить значение в поле в таблице БД необходимо выполнить запрос UPDATE.

Общий синтаксис запроса UPDATEUPDATE [LOW_PRIORITY] имя_таблицы SET название_поля1=выражение1,название_поля2=выражение2,... [WHERE условное_выражение] [LIMIT количество_записей]

UPDATE заменит значения текущих полей таблицы на новые значения.
SET устанавливает какие поля изменять и новые значения, которые нужно присвоить этим полям.
WHERE (если необходимо) — условие на изменение определенных записей. Если ,изменены будут все записи.
При указании параметра LOW_PRIORITY, выполнение UPDATE задержится пока другие клиенты читают таблицу. Пример запроса на изменение всех записей поля «apple» таблицы «fruit» на определенное значение

UPDATE fruit SET apple=5;

Пример запроса с WHERE который изменяет определенную запись:

UPDATE tovar SET price=500 WHERE id=5

При изменении значения поля можно использовать его текущее значение.
Пример запроса увеличивающего значение поля price в 2 раза:

UPDATE tovar SET price=price*2;

SET в UPDATE вычисляет выражения слева направо.
Пример запроса который удваивает цену (поле price), а потом уменьшает его на 10:

UPDATE tovar SET price=price*2, price=price-10;

Запрос UPDATE возвратит количество полей, которые были изменены в этом запросе.
ИспользованиеLIMIT позволит изменять заданное количество записей.

Вопрос 38. Использование подзапросов в запросах на выборку. Язык SQL

Подзапросы, внутренние или вложенные запросы – есть не что иное, как запрос внутри запроса. Обычно, подзапрос используется в конструкции WHERE. И, в большинстве случаев, подзапрос используется, когда вы можете получить значение с помощью запроса, но не знаете конкретного результата. Подзапросы являются альтернативным путем получения данных из множества таблиц. Наряду с операторами сравнения такими, как =, <, >, >=, <= и др., Вы можете использовать подзапросы с перечисленными ниже конструкциями:

· SELECT

· INSERT

· UPDATE

· DELETE

Примеры подзапросов

Обычно, подзапрос возвращает только одну запись, но случается и так, что записей может быть много, тогда в условии WHERE используются такие операторы, как IN, NOT IN. Запрос может выглядеть следующий образом:

SELECT first_name, last_name, subject
FROM student_details
WHERE games NOT IN ('Cricket', 'Football');

Тогда результат будет примерно таким:

first_name last_name games
------------ ----------- ----------
Shekar   Gowda  Badminton
Priya    Chandra Chess

Вы можете использовать подзапрос с оператором INSERT для добавления данных из одной таблицы в другую. Давайте попробуем сгруппировать всех студентов, которые изучают математику в таблицу math_group

INSERT INTO maths_group(id, name)
SELECT id, first_name || ' ' || last_name
FROM student_details WHERE subject= 'Maths

) Подзапрос может использоваться с оператором SELECT, как описано ниже. Давайте используем таблицы product и order_items, объединив их между собой

select p.product_name,
  p.supplier_name,
  (select order_id from order_items where product_id = 101) as order_id
from product p
where p.product_id = 101product_name supplier_name order_id
-------------- -------------- ----------
Television Onida      5103

Соотнесенный подзапрос

Запрос называется соотнесенным, когда оба, и внутренний, и внешний, запросы взаимозависимы. Это означает, что для обработки каждой записи внутреннего запроса, должна быть получена также запись внешнего запроса, т.е. внутренний запрос всецело зависит от внешнего.

SELECT p.product_name FROM product p
WHERE p.product_id = (SELECT o.product_id FROM order_items o
WHERE o.product_id = p.product_id);

 

 


Дата добавления: 2018-08-06; просмотров: 413; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!