Решение задач по базам данных. Решение задач. (тема практического задания) фио студента Супрун Вячеслав Сергеевич
Скачать 191 Kb.
|
s —— поставщики p —— товары sp —— поставки s_no sname status city p_no pname color city s_no p_no qty | s_no p_no qty s1 Smith 20 London p1 Nut Red London s1 p1 300 | s2 p1 300 s2 Jones 10 Paris p2 Bolt Green Paris s1 p2 200 | s2 p2 400 s3 Blake 30 Paris p3 Screw Blue Rome s1 p3 400 | s3 p2 200 s4 Clark 20 London p4 Screw Red London s1 p4 200 | s4 p2 200 s5 Adams 30 Athens p5 Cam Blue Paris s1 p5 100 | s4 p4 300 p6 Cog Red London s1 p6 100 | s4 p5 400 В sp ограничение: FOREIGN KEY (s_no) REFERENCES s (s_no) ON UPDATE CASCADE Какое будет состояние базы данных после команды UPDATE s SET s_no = ‘s10’ WHERE s_no = ‘s1’ Решение: будет заменено значение s_no = s1 на s_no=s10 в таблице s и таблице sp База данных содержит таблицы: s —— поставщики p —— товары sp —— поставки s_no sname status city p_no pname color city s_no p_no qty | s_no p_no qty s1 Smith 20 London p1 Nut Red London s1 p1 300 | s2 p1 300 s2 Jones 10 Paris p2 Bolt Green Paris s1 p2 200 | s2 p2 400 s3 Blake 30 Paris p3 Screw Blue Rome s1 p3 400 | s3 p2 200 s4 Clark 20 London p4 Screw Red London s1 p4 200 | s4 p2 200 s5 Adams 30 Athens p5 Cam Blue Paris s1 p5 100 | s4 p4 300 p6 Cog Red London s1 p6 100 | s4 p5 400 В sp ограничение: FOREIGN KEY (s_no) REFERENCES s (s_no) ON DELETE CASCADE Какое будет состояние базы данных после команды DELETE FROM s WHERE status > 10 Решение: будут удалены записи со значением status > 10 в таблице s и таблице sp База данных содержит таблицы: s —— поставщики p —— товары sp —— поставки s_no sname status city p_no pname color city s_no p_no qty | s_no p_no qty s1 Smith 20 London p1 Nut Red London s1 p1 300 | s2 p1 300 s2 Jones 10 Paris p2 Bolt Green Paris s1 p2 200 | s2 p2 400 s3 Blake 30 Paris p3 Screw Blue Rome s1 p3 400 | s3 p2 200 s4 Clark 20 London p4 Screw Red London s1 p4 200 | s4 p2 200 s5 Adams 30 Athens p5 Cam Blue Paris s1 p5 100 | s4 p4 300 p6 Cog Red London s1 p6 100 | s4 p5 400 Какое будет состояние базы данных после команды UPDATE s SET status = 40 WHERE city = ‘Paris’ Решение: в таблице s для записей у которых значение city = Paris будет заменено значение status на 40 База данных содержит таблицы: s —— поставщики p —— товары sp —— поставки s_no sname status city p_no pname color city s_no p_no qty | s_no p_no qty s1 Smith 20 London p1 Nut Red London s1 p1 300 | s2 p1 300 s2 Jones 10 Paris p2 Bolt Green Paris s1 p2 200 | s2 p2 400 s3 Blake 30 Paris p3 Screw Blue Rome s1 p3 400 | s3 p2 200 s4 Clark 20 London p4 Screw Red London s1 p4 200 | s4 p2 200 s5 Adams 30 Athens p5 Cam Blue Paris s1 p5 100 | s4 p4 300 p6 Cog Red London s1 p6 100 | s4 p5 400 Какое будет состояние базы данных после команды UPDATE s SET status = status/2 Решение: в таблице s все значения поля status заменятся на эти же значения, поделенные на 2 База данных содержит таблицы: s —— поставщики p —— товары sp —— поставки s_no sname status city p_no pname color city s_no p_no qty | s_no p_no qty s1 Smith 20 London p1 Nut Red London s1 p1 300 | s2 p1 300 s2 Jones 10 Paris p2 Bolt Green Paris s1 p2 200 | s2 p2 400 s3 Blake 30 Paris p3 Screw Blue Rome s1 p3 400 | s3 p2 200 s4 Clark 20 London p4 Screw Red London s1 p4 200 | s4 p2 200 s5 Adams 30 Athens p5 Cam Blue Paris s1 p5 100 | s4 p4 300 p6 Cog Red London s1 p6 100 | s4 p5 400 Какое будет состояние базы данных после команды DELETE FROM sp Решение: будут удалены записи из таблицы sp, структура останется без изменений База данных содержит таблицы: s —— поставщики p —— товары sp —— поставки s_no sname status city p_no pname color city s_no p_no qty | s_no p_no qty s1 Smith 20 London p1 Nut Red London s1 p1 300 | s2 p1 300 s2 Jones 10 Paris p2 Bolt Green Paris s1 p2 200 | s2 p2 400 s3 Blake 30 Paris p3 Screw Blue Rome s1 p3 400 | s3 p2 200 s4 Clark 20 London p4 Screw Red London s1 p4 200 | s4 p2 200 s5 Adams 30 Athens p5 Cam Blue Paris s1 p5 100 | s4 p4 300 p6 Cog Red London s1 p6 100 | s4 p5 400 Какое будет состояние базы данных после команды DELETE FROM sp WHERE qty NOT BETWEEN 200 AND 300 Решение: удалятся записи из таблицы sp, у которых qty находится между 200 и 300 База данных содержит таблицы: s —— поставщики p —— товары sp —— поставки s_no sname status city p_no pname color city s_no p_no qty | s_no p_no qty s1 Smith 20 London p1 Nut Red London s1 p1 300 | s2 p1 300 s2 Jones 10 Paris p2 Bolt Green Paris s1 p2 200 | s2 p2 400 s3 Blake 30 Paris p3 Screw Blue Rome s1 p3 400 | s3 p2 200 s4 Clark 20 London p4 Screw Red London s1 p4 200 | s4 p2 200 s5 Adams 30 Athens p5 Cam Blue Paris s1 p5 100 | s4 p4 300 p6 Cog Red London s1 p6 100 | s4 p5 400 Какое изменение базы данных произведет команда DELETE FROM s WHERE status = 10 OR city = ‘Athens’ Решение: удалятся записи из таблицы s, у которых status равен 10 либо city является Athens База данных содержит таблицы: s —— поставщики p —— товары sp —— поставки s_no sname status city p_no pname color city s_no p_no qty | s_no p_no qty s1 Smith 20 London p1 Nut Red London s1 p1 300 | s2 p1 300 s2 Jones 10 Paris p2 Bolt Green Paris s1 p2 200 | s2 p2 400 s3 Blake 30 Paris p3 Screw Blue Rome s1 p3 400 | s3 p2 200 s4 Clark 20 London p4 Screw Red London s1 p4 200 | s4 p2 200 s5 Adams 30 Athens p5 Cam Blue Paris s1 p5 100 | s4 p4 300 p6 Cog Red London s1 p6 100 | s4 p5 400 Какое изменение базы данных произведет команда INSERT INTO s (sname, s_no) VALUE (‘Mueller’, ‘s6’) Решение: в таблицу s дет добавлена запись, в колонку sname = Mueller в колонку s_no = s6 База данных содержит таблицы: s —— поставщики p —— товары sp —— поставки s_no sname status city p_no pname color city s_no p_no qty | s_no p_no qty s1 Smith 20 London p1 Nut Red London s1 p1 300 | s2 p1 300 s2 Jones 10 Paris p2 Bolt Green Paris s1 p2 200 | s2 p2 400 s3 Blake 30 Paris p3 Screw Blue Rome s1 p3 400 | s3 p2 200 s4 Clark 20 London p4 Screw Red London s1 p4 200 | s4 p2 200 s5 Adams 30 Athens p5 Cam Blue Paris s1 p5 100 | s4 p4 300 p6 Cog Red London s1 p6 100 | s4 p5 400 Какое изменение базы данных произведет команда INSERT INTO s VALUE (‘s6’, ‘Mueller’, , ‘Berlin’) Решение: в таблицу s будет добавлена запись s_no = s6, sname = Mueller, status = NULL, city = Berlin База данных содержит таблицы: s —— поставщики p —— товары sp —— поставки s_no sname status city p_no pname color city s_no p_no qty | s_no p_no qty s1 Smith 20 London p1 Nut Red London s1 p1 300 | s2 p1 300 s2 Jones 10 Paris p2 Bolt Green Paris s1 p2 200 | s2 p2 400 s3 Blake 30 Paris p3 Screw Blue Rome s1 p3 400 | s3 p2 200 s4 Clark 20 London p4 Screw Red London s1 p4 200 | s4 p2 200 s5 Adams 30 Athens p5 Cam Blue Paris s1 p5 100 | s4 p4 300 p6 Cog Red London s1 p6 100 | s4 p5 400 Какой результат возвратит команда SELECT s_no, sname FROM s WHERE NOT EXISTS (SELECT * FROM sp WHERE sp.s_no = s.s_no) Решение: s_no sname s5 Adams База данных содержит таблицы: s —— поставщики p —— товары sp —— поставки s_no sname status city p_no pname color city s_no p_no qty | s_no p_no qty s1 Smith 20 London p1 Nut Red London s1 p1 300 | s2 p1 300 s2 Jones 10 Paris p2 Bolt Green Paris s1 p2 200 | s2 p2 400 s3 Blake 30 Paris p3 Screw Blue Rome s1 p3 400 | s3 p2 200 s4 Clark 20 London p4 Screw Red London s1 p4 200 | s4 p2 200 s5 Adams 30 Athens p5 Cam Blue Paris s1 p5 100 | s4 p4 300 p6 Cog Red London s1 p6 100 | s4 p5 400 Какой результат возвратит команда SELECT s_no, sname FROM s WHERE EXISTS (SELECT * FROM sp WHERE sp.s_no = s.s_no) Решение: s_no sname s1 Smith s2 Jones s3 Blake s4 Clark База данных содержит таблицы: s —— поставщики p —— товары sp —— поставки s_no sname status city p_no pname color city s_no p_no qty | s_no p_no qty s1 Smith 20 London p1 Nut Red London s1 p1 300 | s2 p1 300 s2 Jones 10 Paris p2 Bolt Green Paris s1 p2 200 | s2 p2 400 s3 Blake 30 Paris p3 Screw Blue Rome s1 p3 400 | s3 p2 200 s4 Clark 20 London p4 Screw Red London s1 p4 200 | s4 p2 200 s5 Adams 30 Athens p5 Cam Blue Paris s1 p5 100 | s4 p4 300 p6 Cog Red London s1 p6 100 | s4 p5 400 Какой результат возвратит команда SELECT s_no, sname FROM s WHERE city NOT IN (SELECT city FROM p) Решение: s_no sname s5 Adams База данных содержит таблицы: s —— поставщики p —— товары sp —— поставки s_no sname status city p_no pname color city s_no p_no qty | s_no p_no qty s1 Smith 20 London p1 Nut Red London s1 p1 300 | s2 p1 300 s2 Jones 10 Paris p2 Bolt Green Paris s1 p2 200 | s2 p2 400 s3 Blake 30 Paris p3 Screw Blue Rome s1 p3 400 | s3 p2 200 s4 Clark 20 London p4 Screw Red London s1 p4 200 | s4 p2 200 s5 Adams 30 Athens p5 Cam Blue Paris s1 p5 100 | s4 p4 300 p6 Cog Red London s1 p6 100 | s4 p5 400 Какой результат возвратит команда SELECT s_no, sname FROM s WHERE city IN (SELECT city FROM p) Решение: s_no sname s1 Smith s2 Jones s3 Blake s4 Clark База данных содержит таблицы: s —— поставщики p —— товары sp —— поставки s_no sname status city p_no pname color city s_no p_no qty | s_no p_no qty s1 Smith 20 London p1 Nut Red London s1 p1 300 | s2 p1 300 s2 Jones 10 Paris p2 Bolt Green Paris s1 p2 200 | s2 p2 400 s3 Blake 30 Paris p3 Screw Blue Rome s1 p3 400 | s3 p2 200 s4 Clark 20 London p4 Screw Red London s1 p4 200 | s4 p2 200 s5 Adams 30 Athens p5 Cam Blue Paris s1 p5 100 | s4 p4 300 p6 Cog Red London s1 p6 100 | s4 p5 400 Какой результат возвратит команда SELECT s_no, sname FROM s WHERE city IN (‘Athens’, ‘London’) Решение: s_no sname s1 Smith s4 Clark s5 Adams База данных содержит таблицы: s —— поставщики p —— товары sp —— поставки s_no sname status city p_no pname color city s_no p_no qty | s_no p_no qty s1 Smith 20 London p1 Nut Red London s1 p1 300 | s2 p1 300 s2 Jones 10 Paris p2 Bolt Green Paris s1 p2 200 | s2 p2 400 s3 Blake 30 Paris p3 Screw Blue Rome s1 p3 400 | s3 p2 200 s4 Clark 20 London p4 Screw Red London s1 p4 200 | s4 p2 200 s5 Adams 30 Athens p5 Cam Blue Paris s1 p5 100 | s4 p4 300 p6 Cog Red London s1 p6 100 | s4 p5 400 Какой результат возвратит команда SELECT DISTINCT city, ‘s’ AS ind FROM s UNION SELECT DISTINCT city, ‘p’ AS ind FROM p Решение: city ind London s Paris s Athens s London p Paris p Rome p База данных содержит таблицы: s —— поставщики p —— товары sp —— поставки s_no sname status city p_no pname color city s_no p_no qty | s_no p_no qty s1 Smith 20 London p1 Nut Red London s1 p1 300 | s2 p1 300 s2 Jones 10 Paris p2 Bolt Green Paris s1 p2 200 | s2 p2 400 s3 Blake 30 Paris p3 Screw Blue Rome s1 p3 400 | s3 p2 200 s4 Clark 20 London p4 Screw Red London s1 p4 200 | s4 p2 200 s5 Adams 30 Athens p5 Cam Blue Paris s1 p5 100 | s4 p4 300 p6 Cog Red London s1 p6 100 | s4 p5 400 Какой результат возвратит команда SELECT DISTINCT city FROM s UNION SELECT DISTINCT city FROM p Решение: city London Paris Athens London Paris Rome База данных содержит таблицы: s —— поставщики p —— товары sp —— поставки s_no sname status city p_no pname color city s_no p_no qty | s_no p_no qty s1 Smith 20 London p1 Nut Red London s1 p1 300 | s2 p1 300 s2 Jones 10 Paris p2 Bolt Green Paris s1 p2 200 | s2 p2 400 s3 Blake 30 Paris p3 Screw Blue Rome s1 p3 400 | s3 p2 200 s4 Clark 20 London p4 Screw Red London s1 p4 200 | s4 p2 200 s5 Adams 30 Athens p5 Cam Blue Paris s1 p5 100 | s4 p4 300 p6 Cog Red London s1 p6 100 | s4 p5 400 Какой результат возвратит команда SELECT s_no AS no, sname AS name FROM s WHERE status = 20 UNION SELECT p_no AS no, pname AS name FROM p WHERE color = ‘Green’ Решение: no name s1 Smith s4 Clark no pname p2 Bolt База данных содержит таблицы: s —— поставщики p —— товары sp —— поставки s_no sname status city p_no pname color city s_no p_no qty | s_no p_no qty s1 Smith 20 London p1 Nut Red London s1 p1 300 | s2 p1 300 s2 Jones 10 Paris p2 Bolt Green Paris s1 p2 200 | s2 p2 400 s3 Blake 30 Paris p3 Screw Blue Rome s1 p3 400 | s3 p2 200 s4 Clark 20 London p4 Screw Red London s1 p4 200 | s4 p2 200 s5 Adams 30 Athens p5 Cam Blue Paris s1 p5 100 | s4 p4 300 p6 Cog Red London s1 p6 100 | s4 p5 400 Какой результат возвратит команда SELECT s_no, sname, qty FROM s NATURAL JOIN sp WHERE s.s_no = ‘s2’ Решение: s_no sname qty s2 Jones 300 s2 Jones 400 База данных содержит таблицы: s —— поставщики p —— товары sp —— поставки |