Скачать презентацию Управление и манипулирование объектами 1 Манипулирование данными 2 Скачать презентацию Управление и манипулирование объектами 1 Манипулирование данными 2

ИТ Лекция. БД4.pptx

  • Количество слайдов: 20

Управление и манипулирование объектами 1. Манипулирование данными 2. Объекты БД 3. Манипулирование таблицами 4. Управление и манипулирование объектами 1. Манипулирование данными 2. Объекты БД 3. Манипулирование таблицами 4. Манипулирование представлениями 1

1 Манипулирование данными Операторы манипуляции данными (Data Manipulation Language, DML): o SELECT считывает данные, 1 Манипулирование данными Операторы манипуляции данными (Data Manipulation Language, DML): o SELECT считывает данные, удовлетворяющие заданным условиям, o INSERT добавляет новые данные, o UPDATE изменяет существующие данные, o DELETE удаляет данные. Управление и манипулирование объектами 2

1 Манипулирование данными Инструкция INSERT Добавляет одну или несколько строк в таблицу или представление 1 Манипулирование данными Инструкция INSERT Добавляет одну или несколько строк в таблицу или представление SQL Server [ WITH [ , . . . n ] ] INSERT { [ TOP ( expression ) [ PERCENT ] ] [ INTO ] { | rowset_function_limited [ WITH ( [. . . n ] ) ] } { [ ( column_list ) ] [ ] { VALUES ( { DEFAULT | NULL | expression } [ , . . . n ] ) [ , . . . n ] | derived_table | execute_statement | | DEFAULT VALUES } } } [; ] Управление и манипулирование объектами 3

1 Манипулирование данными Вставка одной строки данных INSERT INTO Production. Unit. Measure VALUES ('FT', 1 Манипулирование данными Вставка одной строки данных INSERT INTO Production. Unit. Measure VALUES ('FT', 'Feet', '20080414'); Вставка нескольких строк данных INSERT INTO Production. Unit. Measure VALUES ('FT 2', 'Square Feet ', '20080923'), ('Y', 'Yards', '20080923'), ('Y 3', 'Cubic Yards', '20080923'); Вставка данных в порядке, отличном от порядка столбцов таблицы INSERT INTO Production. Unit. Measure (Name, Unit. Measure. Code, Modified. Date) VALUES ('Square Yards', 'Y 2', GETDATE()); Управление и манипулирование объектами 4

1 Манипулирование данными Инструкция UPDATE Изменяет существующие данные в таблице или представлении в SQL 1 Манипулирование данными Инструкция UPDATE Изменяет существующие данные в таблице или представлении в SQL Server WITH [. . . n] ] UPDATE [ TOP ( expression ) [ PERCENT ] ] { { table_alias | | rowset_function_limited [ WITH ( [. . . n ] ) ] } | @table_variable } SET { column_name = { expression | DEFAULT | NULL } | { udt_column_name. { { property_name = expression | field_name = expression } | method_name ( argument [ , . . . n ] ) } } | column_name {. WRITE ( expression , @Offset , @Length ) } | @variable = expression | @variable = column = expression | column_name { += | -= | *= | /= | %= | &= | ^= | |= } expression | @variable = column { += | -= | *= | /= | %= | &= | ^= | |= } expression } [ , . . . n ] [ ] [ FROM{ } [ , . . . n ] ] [ WHERE { | { [ CURRENT OF { { [ GLOBAL ] cursor_name } | cursor_variable_name } ] } Управление и манипулирование объектами } 5

1 Манипулирование данными Обновляется один столбец для всех строк в таблице Person. Address UPDATE 1 Манипулирование данными Обновляется один столбец для всех строк в таблице Person. Address UPDATE Person. Address GETDATE(); SET Modified. Date = Выполняется обновление значений в столбцах Bonus, Commission. Pct и Sales. Quota для всех строк в таблице Sales. Person. UPDATE Sales. Person SET Bonus = 6000, Commission. Pct =. 10, Sales. Quota = NULL; Инструкция обновляет значение в столбце Color таблицы Production. Product для всех строк, в которых имеется существующее значение Red в столбце Color и имеется значение в столбце Name, который начинается с Road-250 UPDATE Production. Product SET Color = N'Metallic Red' WHERE Name LIKE N'Road-250%' AND Color = N'Red'; Удваивается значение столбца List. Price для всех строк в таблице Product. UPDATE Production. Product SET List. Price = List. Price * 2; Управление и манипулирование объектами 6

1 Манипулирование данными Используется составной оператор += для добавления данных ' - tool malfunction' 1 Манипулирование данными Используется составной оператор += для добавления данных ' - tool malfunction' к существующему значению в столбце Name для строк, имеющих значение Scrap. Reason. ID от 10 до 12. UPDATE Production. Scrap. Reason SET Name += ' - tool malfunction' WHERE Scrap. Reason. ID BETWEEN 10 and 12; Управление и манипулирование объектами 7

1 Манипулирование данными Используется вложенный запрос в предложении SET для определения значения, которое используется 1 Манипулирование данными Используется вложенный запрос в предложении SET для определения значения, которое используется для обновления столбца. Вложенный запрос должен возвращать только скалярное значение (то есть одно значение для каждой строки). В примере изменяется столбец Sales. YTD в таблице Sales. Person для отображения самой последней информации о продажах, зафиксированной в таблице Sales. Order. Header. Вложенный запрос проводит статистическую обработку сведений о продажах по всем продавцам в инструкции UPDATE SET Sales. Person Sales. YTD = Sales. YTD + (SELECT SUM(so. Sub. Total) FROM Sales. Order. Header AS so WHERE so. Order. Date = (SELECT MAX(Order. Date) FROM Sales. Order. Header AS so 2 WHERE so 2. Sales. Person. ID = so. Sales. Person. ID) AND Sales. Person. Business. Entity. ID = so. Sales. Person. ID GROUP BY so. Sales. Person. ID); Управление и манипулирование объектами 8

1 Манипулирование данными Инструкция DELETE Удаляет одну или несколько строк из таблицы или представления 1 Манипулирование данными Инструкция DELETE Удаляет одну или несколько строк из таблицы или представления в SQL Server [ WITH [ , . . . n ] ] DELETE [ TOP ( expression ) [ PERCENT ] ] [ FROM ] { { table_alias | | rowset_function_limited [ WITH ( table_hint_limited [. . . n ] ) ] } | @table_variable } [ ] [ FROM table_source [ , . . . n ] ] [ WHERE { | { [ CURRENT OF { { [ GLOBAL ] cursor_name } | cursor_variable_name } ] } ] Управление и манипулирование объектами 9

1 Манипулирование данными Команда удаляет все строки из таблицы Sales. Person. Quota. History в 1 Манипулирование данными Команда удаляет все строки из таблицы Sales. Person. Quota. History в базе данных Adventure. Works 2012, поскольку не указано предложение WHERE, ограничивающее количество удаляемых строк. DELETE FROM Sales. Person. Quota. History Команда удаляет все строки таблицы Product. Cost. History в базе данных Adventure. Works 2012, у которых значение в столбце Standard. Cost больше 1000. DELETE FROM Production. Product. Cost. History WHERE Standard. Cost > 1000. 00; Значение в столбце Standard. Cost должно быть в диапазоне от 12. 00 до 14. 00, а значение в столбце Sell. End. Date должно быть равно NULL. Также выводится значение из функции@@ROWCOUNT, которое показывает количество удаленных строк. DELETE Production. Product. Cost. History WHERE Standard. Cost BETWEEN 12. 00 AND 14. 00 AND End. Date IS NULL; PRINT 'Number of rows deleted is ' + CAST(@@ROWCOUNT as char(3)); Управление и манипулирование объектами 10

1 Манипулирование данными Удаления строк в одной таблице на основании данных в другой таблице. 1 Манипулирование данными Удаления строк в одной таблице на основании данных в другой таблице. Будут удалены строки на основании сведений о продажах за текущий год, хранящихся в таблице Sales. Person. DELETE FROM Sales. Person. Quota. History WHERE Business. Entity. ID IN (SELECT Business. Entity. ID FROM Sales. Person WHERE Sales. YTD > 2500000. 00); Управление и манипулирование объектами 11

Управление и манипулирование объектами 1. Манипулирование данными 2. Объекты БД 3. Манипулирование таблицами 4. Управление и манипулирование объектами 1. Манипулирование данными 2. Объекты БД 3. Манипулирование таблицами 4. Манипулирование представлениями 12

2 Объекты БД Объекты (сущности) БД: • База данных (database) • Таблица (table) • 2 Объекты БД Объекты (сущности) БД: • База данных (database) • Таблица (table) • Представление (view) • Процедура (procedure) • Функция (function) • Триггер (trigger) • Пользователь (use) • Роль (role) • Схема (scheme) • Синоним (synonym) • Статистика (statistics) • Маршрут (route) • Правило (rule) • и др (всего 53) Управление и манипулирование объектами 13

2 Объекты БД Операторы определения данных (Data Definition Language, DDL): o CREATE создает объект 2 Объекты БД Операторы определения данных (Data Definition Language, DDL): o CREATE создает объект БД (саму базу, таблицу, представление, пользователя и т. д. ), o ALTER изменяет объект, o DROP удаляет объект; Управление и манипулирование объектами 14

Управление и манипулирование объектами 1. Манипулирование данными 2. Объекты БД 3. Манипулирование таблицами 4. Управление и манипулирование объектами 1. Манипулирование данными 2. Объекты БД 3. Манипулирование таблицами 4. Манипулирование представлениями 15

3 Манипулирование таблицами Упрощенный пример создания таблицы CREATE TABLE имя_таблицы ( столбец тип_данных [ 3 Манипулирование таблицами Упрощенный пример создания таблицы CREATE TABLE имя_таблицы ( столбец тип_данных [ DEFAULT значение_по_умол. ] [ [ CONSTRAINT имя_огранич. ] ограничение_поля ] [, столбец тип_данных [ DEFAULT значение_по_умол. ] [ [ CONSTRAINT имя_огранич. ] ограничение_поля ]]. . . ); CREATE TABLE people( [surname] [varchar](24) NULL, [name] [varchar](16) NULL, [secname] [varchar](16) NULL, [birthday] [datetime] NULL, [sex] [int] NULL) Управление и манипулирование объектами 16

3 Манипулирование таблицами Команда удаления таблицы DROP TABLE имя_таблицы Управление и манипулирование объектами 17 3 Манипулирование таблицами Команда удаления таблицы DROP TABLE имя_таблицы Управление и манипулирование объектами 17

Управление и манипулирование объектами 1. Манипулирование данными 2. Объекты БД 3. Манипулирование таблицами 4. Управление и манипулирование объектами 1. Манипулирование данными 2. Объекты БД 3. Манипулирование таблицами 4. Манипулирование представлениями 18

4 Манипулирование представлениями Представление — виртуальная таблица, представляющая собой поименованный запрос (синоним к запросу), 4 Манипулирование представлениями Представление — виртуальная таблица, представляющая собой поименованный запрос (синоним к запросу), который будет подставлен как подзапрос при использовании представления. В отличие от обычных таблиц реляционной баз данных, представление не является самостоятельной частью набора данных, хранящегося в базе. Содержимое представления динамически вычисляется на основании данных, находящихся в реальных таблицах. Изменение данных в реальной таблице базы данных немедленно отражается в содержимом всех представлений, построенных на основании этой таблицы Управление и манипулирование объектами 19

4 Манипулирование представлениями CREATE VIEW имя_представления [ (поле 1 [ , . . . 4 Манипулирование представлениями CREATE VIEW имя_представления [ (поле 1 [ , . . . полеn ] ) ] AS команда_select CREATE VIEW Представление_рейсы AS SELECT Рейсы. №Рейса, Пункты. Пункт_прибытия FROM Рейсы, Пункты WHERE Рейсы. №Пункта = Пункты. №Пункта DROP VIEW имя_представления Управление и манипулирование объектами 20