Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Зміна визначення домена – після CREATE DOMAIN (крім типу та NOT NULL)
ALTER DOMAIN ім’я { [SET DEFAULT {літерал] NULL | USER}] | [DROP DEFAULT] | [ADD [CONSTRAINT] CHECK (<обмеж_домена>)] | [DROP CONSTRAINT] };
Створення таблиць InterBase
CREATE TABLE Ім’яТаблиці [EXTERNAL [FILE] "<ім’я файлу>"] (<визн_поля> [, <визн_поля> | <обмеження> ...]);
[EXTERNAL [FILE] "<ім’я файлу >"] – для зовнішніх таблиць БД.
- <визн_поля> - визначення поля таблиці БД.
<визн_поля> = поле {тип_даних | COMPUTED [BY] (<вираз>) | домен} [DEFAULT {літерал! NULL | USER}] [NOT NULL] [<обмеж_поля>] [COLLATE collation]
де поле – ім’я поля; тип_даних - тип поля, і, можливо, розмірність масиву (в кв. дужках), якщо поле - масив; для символьних полів может бути вказаний набір символів, відмінний від прийнятого за замовчуванням, за доп. речення CHARACTER SET; COMPUTED [BY] (<вираз>) - служить для визначення поля з обчислюваними значеннями; domain – ім’я домена, тобто. раніше описаного типу поля;
DEFAULT - значення поля за замовчуванням (при створенні запису і до його зміни); обмеж_поля - обмеження, на значення поля; COLLAТЕ collation - порядок сортування символів (для символьних полів) для обраного набору символів.
Первинний ключ Атрибут PRIMARY KEY(<ім’я_поля>)
Унікальний ключ(для полів – не-первинних ключів)
Атрибут UNIQUE(<ім’я_поля>)
Зовнішній ключ та визначення цілісності посилань
FOREIGN KEY (<список полів зовнішнього ключа>)
REFERENCES <ім’я батьківської таблиці> [<список полів батьківської таблиці>]
Список полів зовнішнього ключа визначає поля дочірньої таблиці, по яким будується зовнішній ключ. Імя батьківської таблиці визначає таблицю, в якій описаний первинний ключ (або поле з атрібутом UNIQUE).
Також цілісність посилань можна задати як
[CONSTRAINT <ім’я цілісності посилань >] FOREIGN KEY (<список полів зовнішнього ключа>) REFERENCES < ім’я батьківської таблиці > [<список полів батьківської таблиці >]
Приклад:
CREATE TABLE TOVARY( TOVAR VARCHAR(20) NOT NULL COLLATE PXW_CYRL, OD_VYM VARCHAR(l0) NOT NULL COLLATE PXW_CYRL, CINA FLOAT NOT NULL, PRIMARY KEY(TOVAR), CHECH CINA>0 );
CREATE TABLE POKUPCI( POKUP VARCHAR(20) NOT NULL COLLATE PXW_CYRL, MISTO VARCHAR(12) COLLATE PXW_CYRL, ADRESAA CHAR(20) COLLATE PXW_CYRL, PRIMARY KEY(POKUP) );
CREATE TABLE PRODAZH( N_PROD INTEGER NOT NULL, DAT_PROD DATE NOT NULL, KILK INTEGER NOT NULL, TOVAR VARCHAR(20) NOT NULL COLLATE PXW_CYRL, POKUP VARCHAR(20) COLLATE PXW_CYRL, PRIMARY KEY(N_PROD), FOREIGN KEY(POKUP) REFERENCES POKUPCI, FOREIGN KEY(TOVAR) REFERENCES TOVARY );
COLLATE – порядок сортування FOREIGN KEY – зовнішній ключ ( у дочірній таблиці для з’єднання з батьківською)
Використання генераторів та збережених процедур
Для створення автоінкрементних полів (як первинних ключів) використовуються генератори
CREATE GENERATOR PROD_N; SET GENERATOR PROD_N TO 1; %1 – стартове значення
Тоді створимо збережену процедуру GET_N_PROD, яка повертає поточне значення генератора у цілочисельний параметр NR CREATE PROCEDURE GET_N_PROD RETURNS (NR INTEGER) AS BEGIN NR = GEN_ID(PROD_N,1); END;
Для роботи зі збереженою процедурою в клієнтській програмі використовується компонента TStoredProc,властивістьParamByName.Value(до якої можна звернутись в обробнику подій AfterInsert або OnNewRecord компоненти TTable).
Зміна таблиці:
ALTER TABLE
- -
- додати опис нового поля;
ALTER TABLE <ім’я таблиці> ADD <визначення поля>;
- додати нові атрибути цілісності.
ALTER TABLE < ім’я таблиці > ADD [CONSTRAINT <і’мя обмеження>] <визначення цілісності>;
- видалити поле (поля) з таблиці;
ALTER TABLE < ім’я таблиці > DROP < ім’я поля 1>[,< ім’я поля 2 >.. . ] ;
- видалити атрибути цілісності таблиці;
ALTER TABLE < ім’я таблиці > DROP < і’мя обмеження цілісності>;
Приклад. Нехай потрібно змінити характеристики поля ADRESAA, змінивши тип поля з CHAR(20) на VARCHAR(20). Тоді: 1. Додаємо в таблицю нове тимчасове поле ADRESAA_TMP, яке повністю повторює характеристики поля ADRESAA: ALTER TABLE POKUPCI ADD ADRESAA_TMP CHAR(20) CHARACTER SET WIN1251 NOT NULL COLLATE PXW_CYRL; 2. Копіюємо дані з ADRESAA в ADRESAA_TMP: UPDATE POKUPCI SET ADRESAA_TMP = ADRESAA; 3. Видаляємо стовпець ADRESAA: ALTER TABLE POKUPCI DROP ADRESAA; 4. Створюємо нове поле ADRESAA з потрібними характеристиками: ALTER TABLE POKUPCI ADD ADRESAA VARCHAR(20) NOT NULL COLLATE PXW_CYRL; 5. Переписуємо дані з тимчасового поля ADRESAA_TMP в нове поле ADRESAA: UPDATE POKUPCI SET ADRESAA = ADRESAA_TMP; 6. Вилучаємо поле ADRESAA_TMP: ALTER TABLE POKUPCI DROP ADRESAA_TMP;
Знищення таблиці
DROP TABLE < ім’я таблиці >; Оператор SELECT Оператор SELECT – самий використовуваний оператор SQL. Він дозволяє проводити вибірки даних з ТБД і перетворювати до потрібного вигляду отримані результати. За його допомогою можна реалізувати вельми складні і громіздкі умови вибору даних з різних таблиць. Оператора SELECT має наступний формат: SELECT [DISTINCT | ALL] {* | <значення1> [, <значення2> ...]} FROM <таблиця1> [, < таблиця2> ...] [WHERE <умови_пошуку>] [GROUP BY поле [COLLATE collation] ...] [HAVING < умови пошуку >] [UNION <оператор select>] [PLAN <план виконання_запиту>] [ORDER BY <список_полів>] Прим. Значення – поле, або арифм. вираз. Найпростіший різновид оператора SELECT (SELECT .. FROM). Після ключового слова SELECT приводиться список значень. Кожне з них визначає поле результуючого набору даних. В більшості випадків – це імена полів таблиць, перерахованих після слова FROM. Зірочка '*' указує, що в результат виконання запиту потрібно включити всі поля тієї або іншої таблиці. Після FROM вказується список ТБД, з яких буде відбуватись вибірка даних. Наприклад, створити набір даних, що складається зі всіх полів і всіх записів з таблиці PRODAZH можна за допомогою такого оператора: SELECT * FROM PRODAZH що еквівалентно SELECT N_PROD, DAT_PROD, KILK, TOVAR, POKUP FROM PRODAZH Використання WHERE WHERE використовується для включення в НД лише потрібних записів. У набір даних, який повертається оператором SELECT, включатимуться тільки ті записи, які задовольняють умові пошуку, вказаній після WHERE. Розглянемо дві прості умови пошуку. Порівняння значення поля з константою Приклад. Вибрати з таблиці PRODAZH всі операції продажу товарів об'ємом 20 одиниць SELECT * FROM PRODAZH WHERE KILK = 20 Порівняння значення поля однієї таблиці із значенням поля іншої таблиці (внутрішнє з'єднання) Приклад 1. Видати всі записи про витрату товару з таблиці PRODAZH і для кожного товару вказати його ціну з таблиці TOVARY SELECT PRODAZH.*, TOVARY.CINA FROM PRODAZH, TOVARY WHERE PRODAZH.TOVAR = TOVARY.TOVAR Приклад 2. Видати всі записи про витрату товару з таблиці PRODAZH Для кожного покупця вказати його адресу з таблиці POKUPCI SELECT PRODAZH.*, POKUPCI.ADRESA FROM PRODAZH, POKUPCI WHERE POKUPCI.POKUP = PRODAZH.POKUP Використання псевдонімів таблиць Використання імен таблиць для ідентифікації полів (див. попер приклади) незручно із-за своєї громіздкості. Набагато краще присвоїти кожній таблиці яке-небудь коротке ім’я. Такі імена називаються псевдонімами таблиць. Приклад. PR, PO – псевдоніми SELECT PR.*, РO.ADRESA FROM PRODAZH PR, POKUPCI PO WHERE PO.POKUP = PR.POKUP |
||
Последнее изменение этой страницы: 2018-04-12; просмотров: 314. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |