Мова sql

Для зміни вмісту бази даних застосовуються 3 оператора:

• INSERT - призначений для додавання даних в таблицю;

• UPDATE - призначений для модифікації вже поміщених в таблицю даних;

• DELETE - дозволяє видаляти з таблиці рядки даних.

Перша форма INSERT:

INSERT INTO TableName [(columnList)]

Тут параметр TableName (ім'я таблиці) може становити або ім'я таблиці бази даних, або ім'я оновлюваного уявлення. Параметр colunmList (список стовпців) являє собою список, що складається з імен одного або більше стовпців, розділених комами. Параметр coIumnList є необов'язковим. Якщо він опущений, то передбачається використання списку з імен всіх стовпців таблиці, зазначених в тому порядку, в якому вони були описані в операторі CREATE TABLE. Якщо в операторі INSERT вказується конкретний список імен стовпців, то будь-які опущені в ньому стовпці повинні бути оголошені при створенні таблиці як допускають значення NULL - за винятком випадків, коли при описі стовпчика використовувався параметр

DEFAULT, тобто було зазначено значення за замовчуванням. Параметр dataValueList (список значень даних) повинен відповідати параметру columnList.

Приклад 1. Використання конструкції INSERT. VALUES. Помістіть в таблицю staff новий запис, що містить дані у всіх шпальтах.

INSERT INTO Staff

VALUES ( 'SG16', 'Alan', 'Brown', 'Assistant1,' M1. DATE '1957-05-25', 8300, 'B003')

Використано всі стовпці, причому порядок вставляються значень відповідає порядку стовпців, використаному при створенні таблиці. Не дуже зручний варіант: необхідно пам'ятати порядок стовпців. Зручніше наступний варіант.

Приклад 2. Вставка нового запису з використанням значень, прийнятих за замовчуванням. Помістіть в таблицю Staff новий запис, що містить дані у всіх обов'язкових шпальтах: staffNo, ftfame, IName, position, salary і branchNo.

INSERT INTO Staff (staffNo, fName, IName, position, salary, branchNo)

VALUES ( 'SG441.' Anne1. 'Jones', 'Assistant', 8100, 'B003')

Можна також записати таким чином:

INSERT INTO Staff

VALUES ( 'SG441.' Anne1. 'Jones'. 'Assistant1. NULL, NULL, 8100, NULL,' B003 ')

(Явно вказали, що додається значення NULL)

Друга форма INSERT:

INSERT INTO. TableName [(columnList)]

В даному випадку копіюється безліч рядків з однієї таблиці в іншу.

Приклад 3. Припустимо, що існує таблиця StaffPropCount, що містить імена працівників компанії та облікові номера здаються в оренду, за які

вони відповідають: Staff PropCount (staff No, fNarie, IName, propCount)

Заповніть таблицю staff PropCount даними, використовуючи інформацію з таблиць staff і

INSERT INTO StaffPropCount

(SELECT s.staffNo, fName, IName, COUNT (*)

FROM Staff s, PropertуForRent p

WHERE s.staffNo = p.staffNo

GROUP BY s.staffNo, fName, lName)

Підраховується кількість об'єктів по кожному співробітнику компанії (внутрішній запит select) і результат додається в таблицю StaffPropCount.

SET columnName1 = dataValue1 [, columnValue2 = dataValue2 ...]

Тут параметр TableName представляє або ім'я таблиці бази даних, або ім'я оновлюваного уявлення. У конструкції SET вказуються імена одного або більше стовпців, дані в яких необхідно змінити. Конструкція WHERE є необов'язковою. Якщо вона опущена, значення зазначених стовпців будуть змінені у всіх рядках таблиці. Якщо конструкція WHERE присутній, то оновлені будуть тільки ті рядки, які задовольняють умові пошуку, заданому в параметрі searchCondition. Параметри dataValuel, dataValue2. представляють нові значення відповідних стовпців і повинні бути сумісні з ними за типом даних.

Приклад 4. Оновлення всіх рядків таблиці за допомогою оператора UPDATE. Всьому персоналу підвищити заробітну плату на 3%.

SET salary = salary * 1.03

Приклад 5. Всім менеджерам компанії підвищити заробітну плату на 5%.

SET salary = salary * 1.05

WHERE position = 'Manager'

Приклад 6. Перевести співробітника з номером 'SGl4' на посаду менеджера і підвищити йому зарплату до 18 000 фунтів стерлінгів на рік.

SET position = 'Manager', salary = 18000

WHERE staffNo = 'SG14'

DELETE FROM TableName

Як і в випадку операторів INSERT і UPDATE, параметр TableName може являти собою або ім'я таблиці бази даних, або ім'я оновлюваного уявлення. Параметр searchCondition є необов'язковим - якщо він опущений, з таблиці будуть видалені всі існуючі в ній рядки. Однак сама по собі таблиця видалена не буде. Якщо необхідно видалити не тільки вміст таблиці, але і її визначення, слід використовувати оператор DROP TABLE. Якщо конструкція WHERE присутній, з таблиці будуть видалені тільки ті рядки, які задовольняють умові відбору, заданому параметром searchCondition,

Приклад 7. Видалити всі записи про оглядах здається в оренду об'єкта з обліковим номером PG4.

DELETE FROM Viewing

WHERE propertyNo = 'PG4'

Приклад 8. Видалити всі рядки з таблиці Viewing.

DELETE FROM Viewing

Схожі статті