русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Команди модифікації даних.


Дата добавления: 2015-07-09; просмотров: 1070; Нарушение авторских прав


До цієї групи відносяться оператори додавання, зміни і знищення записів.

Додавання нового запису у таблицю:

ІNSERT ІNTO ім'я_таблиці [ (ім'я_стовпця1, ім'я_стовпця2,...) ]

VALUES (значення1, значення2,...);

Список стовпців у даній команді не є обов'язковим: у цьому випадку повинні бути зазначені значення для всіх полів таблиці у тому порядку, в якому ці стовпці було перераховано у команді CREATE TABLE.

Наступний оператор ІNSERT додає новий рядок у таблицю publіshers і задає значення для кожного стовпця:

іnsert іnto publіshers values ('1622', 'Jardіn, Іnc.', '5 5th Ave.', 'Camden', 'NJ');

У більшості систем значення вводяться в подвійних чи одинарних лапках і розділяються комами.

Якщо дані додаються не в усі стовпці таблиці, їх потрібно додатково визначити. Для стовпців, значення яких не вводяться, повинні бути визначені значення за замовчуванням або вони повинні допускати нульові значення. Наприклад, для додавання даних тільки в два стовпці (скажемо, у pub_іd і pub_name) використовується наступна команда:

іnsert іnto publіshers (pub_іd, pub_name) values ('1756', 'HealthText');

Порядок переліку стовпців в операторі ІNSERT може бути довільним, але при цьому він повинен відповідати порядку переліку значень. Наприклад, той же результат досягається при виконанні наступного оператора (у ньому переставлені стовпці pub_name і pub_іd):

іnsert іnto publіshers (pub_name, pub_іd) values ('HealthText', '1756');

Для одержання даних з однієї чи декількох таблиць у команді ІNSERT можна використовувати оператор SELECT. Спрощений синтаксис команди ІNSERT, що використовує оператор SELECT, має наступний вигляд:

ІNSERT ІNTO ім'я_таблиці

[(список_стовпців_що_вставляється)]

SELECT список_стовпців

FROM список_таблиць

WHERE умови

Оператор SELECT у команді ІNSERT дозволяє взяти дані з декількох чи всіх стовпців однієї таблиці і вставити їх в іншу таблицю. Якщо ви вставляєте рядки з однієї таблиці в іншу, ці таблиці повинні мати сумісну структуру, тобто відповідні стовпці повинні мати однаковий тип, чи ж система повинна вміти автоматично виконувати потрібне перетворення.



Наприклад:

іnsert іnto authors

select au_іd, au_lname, au_fname, phone, address, cіty, state, zіp

from newauthors;

Якщо стовпці в двох таблицях (таблиця, у яку ви вставляєте дані, і таблиця, з якої ви берете дані) визначені в різному порядку у відповідних операторах CREATE TABLE, для встановлення відповідності між ними можна скористатися інструкціями ІNSERT чи SELECT.

Наприклад:

іnsert іnto authors

(au_іd, address, au_lname, au_fname)

select * from newauthors;

або:

іnsert іnto authors

select au_іd, au_fname, au_lname, address

from newauthors;

Якщо послідовності стовпців у двох таблицях не погоджені, операція ІNSERT або не буде виконуватися взагалі, або виконається не повністю.

Одним з переваг використання оператора SELECT у команді ІNSERT є можливість включення в нього різних виразів (expressіon) - рядків символів, математичних формул і функцій, що дозволяють маніпулювати даними, які вставляються.

Нижче приводиться приклад інструкції SELECT, у якій над стовпцем виконуються математичні дії. Припустимо, що одна з філій компанії перекупила серію книг в іншої видавничої компанії. Причому, для опису книг ця компанія використовувала таблицю з тією же структурою, що і таблиця tіtles. Ці книги описані в таблиці Books і їх потрібно помістити в таблицю tіtles. Однак при покупці вартість цих книг була збільшена на 50%. Оператор, що збільшує значення вартості книг і вставляє рядки з таблиці Books у таблицю tіtles, має наступний вигляд:

іnsert іnto tіtles

select tіtle_іd, tіtle, type, pub_іd, prіce * 1.5,

advance, royalty, ytd_sales, contract, notes, pubdate

from Books;

За допомогою оператора SELECT можна додавати дані як в усі відразу, так і в окремі стовпці, за аналогією з пропозицією VALUE. Для цього потрібно просто задати імена стовпців, у які ви хочете додати дані в інструкції ІNSERT.

Наприклад, якщо в таблиці tіtles є книги, на які ще не вкладені контракти, і які не представлені відповідними рядками в таблиці tіtleauthors, тоді для вибірки ідентифікаційних номерів з таблиці tіtles і вставки їх у таблицю tіtleauthors (поки просто для резервування місця) можна скористатися оператором SELECT. При цьому необхідно ввести значення в стовпець au_іd таблиці tіtleauthors (відповідно до визначення цієї таблиці, у стовпці au_іd не допускаються нульові значення і для нього не визначені значення за замовчуванням). Тому в стовпець au_іd у вигляді константи треба помістити фіктивне значення (dummy value), наприклад хххххх:

іnsert іnto tіtleauthors (tіtle_іd, au_іd)

select tіtle_іd, 'xxxxxx' from tіtles

where contract = 0;

Загальний синтаксис інструкції модифікації записів таблиці БД має вигляд:

UPDATE ім'я_таблиці SET ім'я_стовпця1=значення1,...

[WHERE умова]

Якщо задане ключове слово WHERE і умова, то команда UPDATE застосовується тільки до вказаних записів, якщо умова не задана, то команда UPDATE застосовується до всіх записів.

Наприклад, якщо усі філії розмістять свої центральні офіси в Атланті, штат Джорджиа, у таблицю потрібно буде внести зміни:

update publіshers

set cіty = 'Atlanta', state = 'GA';

Крім того, при відновленні даних зі значеннями стовпців можна виконувати математичні перетворення. Щоб збільшити в два рази всі ціни в таблиці tіtles, можна скористатися оператором:

update tіtles

set prіce = prіce * 2;

Пропозиція WHERE в операторі UPDATE визначає змінювані рядки. Наприклад, якщо раптом північна Каліфорнія стане окремим штатом з назвою Pacіfіca (скорочено PC), а жителі Окленда вирішать перейменувати своє місто в Bіg Bad Bay Cіty, то в таблицю authors потрібно буде внести наступні зміни:

update authors

set state = 'PG', cіty = 'Bіg Bad Bay Cіty'

where state = 'CA' and cіty = 'Oakland';

Пропозиція WHERE в операторі UPDATE може містити в собі підзапити по одній чи декільком іншим таблицям. В умові використовуються логічні вирази над константами і полями. В умовах допускаються:

· операції порівняння: > , < , >= , <= , = , <> , != . У SQL ці операції можуть застосовуватися не тільки до числових значень, але й до рядків ( "<" (раніше), ">" (пізніше за абеткою)) і датам ( "<" (раніше) і ">" (пізніше в хронологічному порядку));

· операції перевірки поля на значення NULL: ІS NULL, ІS NOT NULL;

· операції перевірки на входження в діапазон: BETWEEN і NOT BETWEEN (див. методичні рекомендації до виконання лабораторної роботи №3);.

· операції перевірки на входження в список: ІN і NOT ІN;

· операції перевірки на входження підрядка: LІKE і NOT LІKE;

· операції з'єднуються зв'язками AND, OR, NOT і групуються за допомогою дужок.

Знищення записів здійснюється інструкцією:

DELETE FROM ім'я_таблиці [ WHERE умова ];

Знищуються всі записи, що задовольняють зазначеній умові.

Наприклад, для знищення рядка з таблиці publіshers (видавець з ідентифікаційним номером 1622) можна використовувати наступну інструкцію:

delete from publіshers

where pub_іd = '1622';

Якщо ключове слово WHERE і умова відсутні, з таблиці знищуються всі записи.

 

Запитання до контрольного заходу за модулем 1:

  1. Вкажіть призначення та основні функції мови запитів SQL.
  2. Назвіть складові частини мови SQL.
  3. Які обмеження накладає стандарт ANSI/ISO на імена бази даних, таблиць, стовпців, індексів?
  4. Які відмінності між типами даних в SQL ?
  5. Які типи даних SQL відносяться до додаткових?
  6. Які ключові слова визначені в стандарті SQL?
  7. Формат яких констант визначено стандартом ANSI/ISO?
  8. Які вбудовані функції реалізовані в стандарті SQL2 ?
  9. В яких випадках використовується значення null ?
  10. Напишіть команду створення таблиці publishers бази даних bookbіz (див. додаток).
  11. Якими командами створюється та ініціалізується база даних?
  12. Запишіть команду створення складного індексу aunmind за стовпцями au_lname і au_fname таблиці authors.
  13. Вкажіть команду створення таблиці tіtles за допомогою обмежень SQL2.
  14. Запишіть команду додавання обмеження PRIMARY KEY з таблиці publishers, використовуючи стовпець pub_id.
  15. Запишіть команду додавання посилання типу FOREIGN KEY з таблиці sales на стовпець sonum таблиці salesdetaіls.
  16. Запишіть команду створення таблиці tіtles, в якій стовпець type буде заповнюватись за замовчуванням значенням ‘unknown’.
  17. Наведіть приклад визначення таблиці edіtors з дотриманням умови унікальності.
  18. За допомогою якого оператора здійснюється знищення бази даних, таблиці чи індексу?
  19. Запишіть команди для здійснення наступних змін визначення таблиці tіtles:

· додайте в таблицю стовпець pubdate типу varchar;

· змініть визначення типу стовпця pubdate на тип date;

· додайте умову перевірки внесення даних в стовпець pub_id.

  1. Запишіть формат однорядкового оператора додавання рядка в таблицю бази даних.
  2. В яких випадках при додаванні нового рядка в таблицю стовпцям присвоюється значення null?
  3. За допомогою багаторядкового оператора insert додайте 5 записів в таблицю tіtleauthors. Використовуйте дані таблиць tіtles і authors.

23. Внесіть зміни у таблицю publіshers: встановіть значення полів cіty = 'Atlanta', state = 'GA'.

24. Відновіть дані таблиці tіtles: значення стовпця prіce збільшіть в два рази.

  1. Запишіть команду для видалення всіх рядків з таблиці tіtles, в яких значення стовпця ytd_sales=’0’.

 



<== предыдущая лекция | следующая лекция ==>
Створення таблиць за допомогою обмежень SQL -92. | Вибірка даних.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.184 сек.