Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Додавання інформації в базу даних
Всі записи в SQL уводяться з використанням команди модифікації INSERT. У найпростішій формі ця команда ім'я наступний синтаксис: INSERT INTO <table name> VALUES <value>, <value>…); Так, наприклад, для додавання запису в таблицю викладачів TEACHERS, можна скористатися наступним вираженням: INSERT INTO TEACHERS VALUES (4006, 'Федченко', 'Світлана', 'Геннадіївна', 01/09/1999); Команда INSERT не робить ніякого висновку, але бажано, щоб СУБД давала деяке підтвердження того що, дані були успішно внесені. Крім того, варто пам'ятати, що ім'я таблиці, у яку виробляється вставка, повинне бути попередньо визначено, а кожне значення в списку вставля даних повинне збігатися з типом даних стовпця, у який воно вставляється. Значення в цьому списку вводяться в таблицю в тім порядку, у якому вони записані в команді, тому перше значення автоматично попадає в перший стовпець, друге - у другий стовпець і т.д. Якщо потрібно ввести в таблицю NULL значення, то воно вводиться точно так само, як і звичайне. Наприклад, що випливає команда, що вставляє запис з невідомим значенням коду викладача, цілком припустима: INSERT INTO TEACHERS VALUES (NULL, 'Федченко', 'Світлана', 'Геннадіївна', 01/09/1999); Тому що значення NULL - спеціальне службове слово, то укладати його в одиночних лапк не потрібно. Також допускається вказувати стовпці, куди необхідно здійснити вставку значення, що дозволяє робити це в будь-якому порядку. Наприклад, команда: INSERT INTO TEACHERS (TDATE, TFAM, TIMA) VALUES (01/09/1999, 'Федченко', 'Світлана'); дозволяє вставити значення в полючи таблиці в порядку TDATE, TFAM, TIMA, причому стовпці TNUM і ТОТСН відсутні. Це означає, що для цих полів автоматично встановлюється значення за замовчуванням. Значення за замовчуванням може бути введене чи заздалегідь, у противному випадку, це буде NULL значення. Якщо обмеження забороняє використання значення NULL у даному полі, то обов'язково треба подбати про забезпечення стовпця змістовним значенням для будь-якої команди INSERT. Можна використовувати команду INSERT для того, щоб чи одержувати вибирати значення з однієї таблиці і поміщати їх в іншу разом із запитом. Для цього пропозиція VALUES заміняється на відповідний запит: INSERT INTO EXCELLENT SELECT * FROM USP WHERE OCENKA = 5; У результаті буде сформована таблиця з даними, приведеними в табл. 2.5. Таблиця 2.5 Таблиця ЕХСЕLLENT
Отже, буде зробленеі наступне: Всі значення, дані запитом (інформація про студентів, що має тільки особисті оцінки), містяться в таблицю, названу EXCELLENT. Для того щоб не відбулося помилки, таблиця EXCELLENT повинна вже бути створена командою CREATE TABLE і мати п'ять стовпців, що збігаються з таблицею USP по типі даних. Таким чином, буде отримана незалежна таблиця з деякими даними з таблиці успішності USP. При зміні значень у таблиці USP це ні в якому разі не відіб'ється на таблиці EXCELLENT. У принципі, мається можливість указувати стовпці по імені, як це вже було продемонстровано вище, а значить - упорядковувати інформацію, що додається. Наприклад, за допомогою нижчеподаної команди можна вставити інформацію про середній бал кожного студента: INSЕRT INTO AVGRAITING (SNUM, AVGOCENKA) SELECT SNUM, AVG (OCENKA) FROM USP GROUP BY SNUM; Зверніть увагу на те, що зазначено імена стовпців таблиці AVGRAITING, а виходить, послідовність даних списку, що вставляється, (тобто порядок проходження полів у пропозиції SELECT) повинна з цим порядком збігатися. У INSERT можна використовувати подзапросы усередині запиту, що генерує значення для цієї команди аналогічно тому. Наприклад, для вставки у вже наявну таблицю STO прізвищ, імен і по батькові студентів, у яких хоча б одна відмінна оцінка, можна скористатися наступною командою: INSERT INTO STO (SFAM, SIMA, SOTCH) SELECT SFAM, SIMA, SOTCH FROM STUDENTS WHERE SNUM = ANY (SELECT SNUM FROM USP WHERE OCENKA = 5); Обидва запити в цій команді функціонують так само, як якби вони не були частиною вираження INSERT. Подзапрос знаходить Всі рядки для студентів, що мають відмінні оцінки, і формує набір значень SNUM. Зовнішній запит вибирає рядка з таблиці STUDENTS, де ці значення SNUM знайдені, а INSERT уставляє знайдені дані в таблицю STO. У команді INSERT допускається використовувати співвіднесені подзапросы. Припустимо, що мається таблиця МАХОCENKA, у якій зберігається інформація про студента, що має максимальну оцінку за визначену дату (скажемо, для нарахування іменної стипендії). Тоді, для відстеження зміни даних у таблиці успішності і модифікації відповідної інформації про претендента на іменну стипендію, необхідно скористатися наступною командою зі співвіднесеним подзапросом: INSERT INTO MAXOCENKA (SNUM, OCENKA) SELECT SNUM, OCENKA FROM USP FIRST WHERE OCENKA = (SELECT MAX (OCENKA) FROM USP SECOND WHERE FIRST.UDATE=SECOND.UDATE); При цьому розглянута команда має подзапрос, що базується на тій же самій таблиці, що і зовнішній запит, але не посилається на таблицю MAXOCENKA, на которую впливає команда, тому така конструкція є припустимої.
Date: 2015-12-11; view: 431; Нарушение авторских прав |