loading..
Русский    English
12:00
листать

Оператор UPDATE стр. 2

В  Transact-SQL (T-SQL) — процедурное расширение языка SQL, используемое для программирования на стороне сервера в Microsoft SQL Server и Sybase ASE.Transact-SQL оператор UPDATE расширяет стандарт за счет применения необязательного предложения FROM. В этом предложении специфицируется таблица, обеспечивающая критерий для операции обновления. Дополнительную гибкость здесь дают операции соединения таблиц.

Пример 6.2.1.

Пусть требуется указать «No PC» (нет ПК) в столбце type для тех моделей ПК из таблицы Product, для которых нет соответствующих строк в таблице PC. Решение посредством соединения таблиц можно записать так

  1. UPDATE Product
  2. SET type = 'No PC'
  3. FROM Product pr LEFT JOIN
  4. PC ON pr.model=PC.model
  5. WHERE type = 'pc' AND
  6. PC.model IS NULL;

Здесь применяется внешнее соединение, в результате чего столбец PC.model для моделей ПК, отсутствующих в таблице PC, будет содержать NULL-значение, что и используется для идентификации подлежащих обновлению строк. Естественно, эта задача имеет решение и в «стандартном» исполнении:

  1. UPDATE Product
  2. SET type = 'No PC'
  3. WHERE type = 'pc' AND
  4. model NOT IN (SELECT model
  5. FROM PC
  6. );

MySQL

Оператор UPDATE в MySQL также имеет функциональность, аналогичную дополнительному предложению FROM в SQL Server. Только вместо FROM соединение таблиц выполняется непосредственно в предложении UPDATE. Пример 6.1.2 в синтаксисе MySQL можно переписать следующим образом    

  1. UPDATE Product pr
  2.     LEFT JOIN PC ON pr.model=PC.model
  3.     SET type = 'No PC'
  4.     WHERE type = 'pc'
  5.     AND PC.model IS NULL;

Рекомендуемые упражнения: 7, 9, 12, 15, 17, 20

Bookmark and Share
Страницы: 1 2
Тэги:
ALL AND AUTO_INCREMENT AVG battles CASE CAST CHAR CHARINDEX CHECK classes COALESCE CONSTRAINT Convert COUNT CROSS APPLY CTE DATEADD DATEDIFF DATENAME DATEPART DATETIME DDL DEFAULT DELETE DISTINCT DML EXCEPT EXISTS EXTRACT FOREIGN KEY FROM FULL JOIN GROUP BY Guadalcanal HAVING IDENTITY IN INFORMATION_SCHEMA INNER JOIN insert INTERSECT IS NOT NULL IS NULL ISNULL laptop LEFT LEFT OUTER JOIN LEN maker Больше тэгов
Учебник обновлялся
месяц назад
https://exchangesumo.com/obmen/SVBRUB-NIXEUR/ . ремонт ноутбуков
©SQL-EX,2008 [Развитие] [Связь] [О проекте] [Ссылки] [Team]
Перепечатка материалов сайта возможна только с разрешения автора.