#mysql
Вопрос:
Данный SQL создает таблицу песен и вставляет три песни.
Напишите три инструкции по обновлению, чтобы внести следующие изменения:
Измените название с «Один» на «С тобой или без тебя».
Измените исполнителя с «Праведных братьев» на «Арита Франклин».
— Я знаю, что они неправильно написали «Арета», это не проблема
, измените годы выпуска всех песен после 1990 года на 2021 год.
Запустите свое решение и убедитесь, что песни в таблице результатов отражают вышеуказанные изменения.
CREATE TABLE Song (
ID INT,
Title VARCHAR(60),
Artist VARCHAR(60),
ReleaseYear INT,
PRIMARY KEY (ID)
);
INSERT INTO Song VALUES
(100, 'Blinding Lights', 'The Weeknd', 2019),
(200, 'One', 'U2', 1991),
(300, 'You've Lost That Lovin' Feeling', 'The Righteous Brothers', 1964),
(400, 'Johnny B. Goode', 'Chuck Berry', 1958);
-- Write your UPDATE statements here:
UPDATE Song
SET Title = 'With Or Without You' WHERE ID = 200;
UPDATE Song
SET Artist = 'Aritha Franklin' WHERE ID = 300;
UPDATE Song
SET ReleaseYear = 2021;
SELECT *
FROM Song;
Следует отметить, что решение, как есть, работает. Я уже получил кредит за это решение.
Моя проблема приближается к концу, Задание конкретно требует, чтобы песни, выпущенные после 1990 года, были изменены на 2021 год, что будет 100, 200 ID. Это решение изменило все к 2021 году. Я пытался это сделать…
SET ReleaseYear = 2021 WHERE ID = (100, 200);
Но это пугает, потому что есть 2 операнда. И тогда я попытался
CREATE TABLE Song (
ID INT,
Title VARCHAR(60),
Artist VARCHAR(60),
ReleaseYear INT,
PRIMARY KEY (ID)
);
INSERT INTO Song VALUES
(100, 'Blinding Lights', 'The Weeknd', 2019),
(200, 'One', 'U2', 1991),
(300, 'You've Lost That Lovin' Feeling', 'The Righteous Brothers', 1964),
(400, 'Johnny B. Goode', 'Chuck Berry', 1958);
-- Write your UPDATE statements here:
UPDATE Song
SET Title = 'With Or Without You' WHERE ID = 200;
UPDATE Song
SET Artist = 'Aritha Franklin' WHERE ID = 300;
ALTER TABLE Song
ADD CONSTRAINT ReleaseYearCheck CHECK (ReleaseYear >= 1990);
SET ReleaseYear = 2021;
SELECT *
FROM Song;
Он не проходит проверку на ограничение, как я и ожидал. Я понятия не имею, как изменить его, чтобы просто специально изменить «Ослепляющие огни» и «С вами или без вас», чтобы год выпуска был 2021.
Я могу ДОБАВИТЬ код ТОЛЬКО там, где указано «—Напишите свои инструкции по ОБНОВЛЕНИЮ здесь:».
Имейте в виду, что первый блок кода, который я уже разработал, ставит мне в заслугу этот вопрос. Я считаю, что в проверке назначений есть ошибка, потому что первый блок кода изменил год выпуска всего. В соответствии с вопросом, казалось бы, он хочет видеть только изменение года выпуска для ослепляющих огней, и с вами или без Вас до 2021 года.
Комментарии:
1.
ID = (100, 200)
в SQL есть выражениеID IN (100, 2000)
.
Ответ №1:
Учитывая, что критерии выше 1990 г.:
UPDATE Song
SET ReleaseYear = 2021
WHERE ReleaseYear >= 1990
Комментарии:
1. Быстро и эффективно! Мне это нравится! Спасибо! Похоже, я все слишком усложнил.