Лого на 91. НЕГ „Проф. Константин Гълъбов“

Модул 3 · Урок 20

Създаване и редактиране на таблици със SQL

CREATE TABLE с модификатори, CREATE TABLE AS от заявка, INSERT INTO, DELETE FROM и UPDATE — пълният набор SQL заявки за промяна на данните.

Създаване на таблица — CREATE TABLE

Таблица може да се създаде не само с визуалните инструменти на Access, но и със заявка:

CREATE TABLE име ( атрибут1 тип {(модификатор)}, …, PRIMARY KEY (атрибут(и)) );

Типовете леко се различават от визуалните: за числата — подтипът (int, double…), за текстовете — char с брой байтове в скоби. Незадължителни модификатори: NOT NULL, UNIQUE (без кортежи с еднакви стойности) и др. PRIMARY KEY посочва първичния ключ.

Примерът от учебника

CREATE TABLE Ученик ( ID int, Клас char (3), Номер int, Име char (15), Презиме char (15), Фамилия char (15), ЕГН char (12), [Дата на раждане] DateTime, [Място на раждане] char (32), PRIMARY KEY (ID));

В Access: изгледът SQL View не е достъпен направо от Create\Table — стартираме Query Wizard, затваряме прозореца за избор на таблица, пишем заявката в SQL View и я изпълняваме с Run. Програмата предупреждава, че предстои изменение в схемата на базата — потвърждаваме.

Таблица от заявка за извличане

Нова таблица може да се създаде и от заявка за извличане — временната таблица става постоянна:

CREATE TABLE име AS заявка за извличане;

В Access: създаваме заявката за извличане и натискаме бутона Make Table (Query Tools Design), посочваме име, OK.

Добавяне на данни — INSERT INTO

INSERT INTO таблица (атрибут1, атрибут2, …) VALUES (стойност1, стойност2, …);

Стойностите на текстовите атрибути — между два апострофа (не между кавички, както в други езици).

Бележка

INSERT INTO Ученик (Клас, Номер, Име, Презиме, Фамилия) VALUES ('12а', 14, 'Красимир', 'Илиев', 'Костов');

Не всички атрибути са зададени — останалите добавяме по-късно (визуално или с UPDATE).

INSERT INTO + SELECT = обединение

INSERT INTO може да се комбинира със SELECT, ако двете таблици имат една и съща схема — това имплементира релационната операция обединение на таблици.

Изтриване на данни — DELETE FROM

DELETE FROM таблица WHERE условие;

Изтрива кортежите, отговарящи на условието. Програмата предупреждава, че се готви изменение — потвърждаваме.

Внимание

DELETE FROM таблица; без WHERE изтрива всички кортежи — но не и самата таблица: по-късно в нея може да се добавят нови данни.

Обновяване на данни — UPDATE

UPDATE таблица SET атрибут1 = стойност1 {, …} WHERE условие;

Разглеждат се само кортежите, отговарящи на условието, и посочените атрибути се заменят със зададените стойности.

Бележка

UPDATE Ученик SET Клас = '12б'; — без WHERE променя атрибута във ВСИЧКИ кортежи.

Обновяване на данни от Excel

Access може да попълни таблица с данни от Excel: колоните на листа трябва да са със същите имена като атрибутите, а типовете — подходящи. External Data → Excel → „Append a copy of the records to the table" → избор на таблица → Finish. Подобен трансфер работи и от друга Access база, и от текстов файл.

Какво трябва да запомниш

  • CREATE TABLE = схема + модификатори (NOT NULL, UNIQUE) + PRIMARY KEY.
  • CREATE TABLE … AS заявка — временната таблица става постоянна (Make Table).
  • INSERT INTO … VALUES — текстовете между апострофи; INSERT INTO + SELECT = обединение.
  • DELETE FROM … WHERE; без WHERE трие всички кортежи, но не и таблицата.
  • UPDATE … SET … WHERE; без WHERE обновява всички кортежи.