- •1. Пояснення до тексту пояснювальної записки
- •1. Постановка задачі до курсової роботи
- •2. Теоретична частина (короткий опис візуальних та програмних засобів PostfreSql)
- •1.2. Поради щодо складання тексту пояснювальної записки
- •2. Варіанти задач курсової роботи
- •Варіант 2 Реалізація продукції хлібозаводу
- •Варіант 3 Нафтогазоносні родовища України
- •Варіант 4 Розміри газонафтоносних родовищ України
- •Варіант 5 Газосховища України
- •Варіант 6 Нафтобази України
- •Варіант 7 Транспортування газу по території України
- •Варіант 8 Забезпеченість України паливно-мастильними матеріалами
- •Варіант 9 Видобування нафти на Україні
- •Варіант 10 Запаси нафти на родовищах України
- •Варіант 11 Зміни запасів нафти в родовищах України
- •Варіант 12 Гiдрохiмiчний стан поверхневих вод
- •Варіант 13 Реалізація продукції хлібозаводу
- •Варіант 14 Облік відвідування занять студентами вузу
- •Варіант 15 Газосховища України
- •Варіант 16 Вміст нафтопродуктів у нафтобазах України
- •Варіант 17 Забезпеченість паливно-мастильними матеріалами
- •Варіант 18 Добовий видобуток нафти на Україні
- •Варіант 19 Кадровий облік працівників фірми
- •Варіант 20 Дані про туристичну фірму (даний варіант розглянути в прикладі)
- •Варіант 21 Продажа товарів торгівельною фірмою
- •Варіант 22 Продажа фірмою виробів із сої
- •Варіант 23 Виготовлення продукції підприємствами виробничого об’єднання
- •Варіант 24 Малий бізнес
- •Варіант 25 Книжковий магазин
- •Варіант 26 Заклади освіти
- •Варіант 27 Науково-технічна література бібліотеки
- •Напрям: код напряму, напрям;
- •Варіант 28 Транспортні підприємства
- •Варіант 29 Автомобілі
- •Варіант 30 Підприємства-банкрути
- •Завдання
- •Дата видачі завдання 02.09.2013 р.
- •Календарний план
- •1. Вступ
- •2 Коротка історія postgresql
- •2.1 Проект postgres його заснування та розробка
- •3 Основні концепції роботи з postgresql
- •3.1 Створення таблиць
- •3.1.1 Типи даних
- •3.2 Внесення даних у таблицю
- •Insert into ім’я_таблиці [(список_імен_полів)] values (значення1, значення2, …, значення n);
- •3.3 Редагування таблиць
- •Alter table ім’я_таблиці owner то новий_власник
- •3.4 Обмеження
- •Immediate – всі або конкретне обмеження перевіряються наприкінці кожної команди.
- •3.5 Послідовності
- •Drop sequence перелік_послідовностей
- •3.6 Запити
- •3.7 Об'єднання таблиць (Join)
- •3.8 Агрегатні функції
- •3.9 Курсори sql
- •4 Основні елементи мови plpgsql
- •4.1 Структура мови, функції користувача
- •4.2 Розгалуження, цикли, масиви
- •4.3 Курсори
- •5. Практична частина Завдання в-20
- •5.1 Завдання 1
- •Результати виконання:
- •5.2 Завдання 2
- •Розв'язок задачі
- •Задача 8.
- •Розв'язок задачі
- •Результати запиту:
- •5.4 Завдання 4
- •Розв'язок задачі
- •Результат задачі
- •Задача 6,9
- •Розв’язок задачі
- •Результат задачі:
- •6. Висновки
- •7. Список використаної літератури
- •Рекомендована література
Alter table ім’я_таблиці owner то новий_власник
Змінювати власника таблиці може або поточний власник, або суперкористувач. Приклад зміни власника таблиці employee, де новим власником стає користувач corwin:
ALTER TABLE employees OWNER TO corwin;
Реструктуризація таблиць командами CREATE TABLE і INSERT INTO. Якщо таблиця, створена командою CREATE TABLE AS, не влаштовує (наприклад, якщо в таблиці необхідно встановити обмеження полів), то одну команду CREATE TABLE AS можна замінити двома командами SQL. Спочатку команда CREATE TABLE створює нову таблицю, а потім команда INSERT INTO з запрограмованим SELECT заповнює її даними. Приклад реструктуризації таблиці командами CREATE TABLE і INSERT INTO:
CREATE TABLE newbooks (
id integer UNIQUE,
title text NOT NULL,
authorid integer,
subjected integer CONSTRAINT books_id_pkey PRIMARY KEY (id));
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index, books_id_pkey1
for table 'new_books "
INSERT INTO new books
SELECT id, title. author_id, subjected FROM books;
ALTER TABLE books RENAME TO old_books;
ALTER TABLE new_books RENAME TO books;
Table "books"
Attribute | Type | Modifier
------------------------------------
id | integer | not null
title | text |not null
author_id | integer |
subjectid | integer |
Index: books_id_pkey
Видалення таблиць забезпечує команда:
DROP TABLE таблиця
Використання команди DROP TABLE вимагає обережності, оскільки видалення таблиці спричиняє знищення всіх збережених у ній даних. При знищенні таблиці з неявно створеним індексом знищуються і всі пов’язані з нею індекси.
Копіювання даних із зовнішніх файлів командою COPY. У PostgreSQL підтримується і така корисна можливість, як пряме імпортування даних в таблицю з зовнішніх файлів командою COPY. Файл, з якого беруться дані, зберігається або в стандартному текстовому форматі ASCII з обмеженням полів спеціальним символом-роздільником, або в двійковому форматі таблиць PostgreSQL. У ASCII-файлах як роздільник зазвичай використовується символ табуляції або кома. При імпортуванні данних з ASCII-файлу кожен рядок файлу інтерпретується як окремий запис даних, а кожен компонент рядка – як значення відповідного поля запису.
Команда COPY FROM працює значно швидше за звичайну команду INSERT, оскільки дані передаються прямо в приймальну таблицю за одну транзакцію. З іншого боку, до формату вихідного файлу пред'являються надзвичайно жорсткі вимоги, тому помилка всього в одному рядку спричинить до збою всієї команди COPY. Синтаксис команди COPY FROM:
COPY [BINARY] таблиця [WITH 0IDS]
FROM {’ім’я_файлу’ | stdin}
[[USING] DELIMITERS ’роздільник’]
[WITH NULL AS ‘рядок_null’]
Параметри команди:
BINARY. Ознака імпортування вхідних даних із двійкового файлу, раніше створеного командою COPY ТО;
таблиця. Ім’я таблиці, в яку імпортуються дані;
WITH 0IDS. З першого рядка файлу завантажуються значення всіх ідентифікаторів OID імпортованої таблиці;
FROM {’ім’я_файлу’ | stdin}. Джерело, з якого PostgreSQL отримує вхідні дані, це може бути файл із заданим ім’ям або стандартний ввід (stdin);
[USING] DELIMITERS ’роздільник’. Символ, який використовується в якості розділювача при розборі вхідних даних. Не використовується для файлів, виведених у двійковому форматі PostgreSQL;
WITH NULL AS ’рядок null’. Заданий рядок повинен інтерпретуватися як значення NULL. Не використовується для файлів, виведених у двійковому форматі PostgreSQL.
При підготовці до імпортування файлу слід простежити за тим, щоб він був доступний для читання процесом postmaster (тобто користувачем, який запустив PostgreSQL). Крім того, дозволені тільки абсолютні імена файлів; при спробі передати відносне ім’я відбувається помилка.
При роботі з вхідними файлами в форматі ASCII в секції DELIMITERS передається символ, використаний як роздільник значень полів у рядках файлу. Якщо роздільник не вказаний, PostgreSQL вважає, що значення розділюються символом табуляції. Необов’язкова секція WITH NULL визначає формат, в якому передається значення NULL. Якщо секція відсутня, то PostgreSQL інтерпретує послідовність \N як NULL (наприклад, порожні поля вихідного файлу за замовчуванням інтерпретуються як порожні рядкові константи, а не як NULL).
Двійковий формат. Команда COPY також дозволяє виконувати операції введення і виведення з даними в двійковому форматі. Якщо команда COPY FROM містить ключове слово BINARY, то вхідний файл повинен бути створений командою COPY ТО в двійковому форматі PostgreSQL. Двійкові файли завантажуються швидше за ASCII-файли, але на відміну від останніх їх не можна читати і редагувати в простих текстових редакторах.
Системні поля. У PostgreSQL всі таблиці містять системні поля, які залишаються невидимими для користувача і не виводяться при вибірці (якщо службова інформації не запитується спеціально). У системних полях зберігаються метадані, які описують вміст записів, вони такі:
Поле |
Опис |
oid |
4-байтовий унікальний ідентифікатор запису |
tableoid |
Ідентифікатор таблиці. Ім’я таблиці зв’язується з ідентифікатором у системній таблиці pg_class |
xmin |
Ідентифікатор транзакції вставки для кортежу |
cmin |
Ідентифікатор команди, асоційованої з транзакцією вставки для кортежу |
хmах |
Ідентифікатор транзакції видалення для кортежу. Для видимих (не видалених) кортежів дорівнює нулю |
сmах |
Ідентифікатор команди, асоційованої з транзакцією видалення для кортежу. За аналогією з xmax дорівнює нулю для видимих кортежів |
ctid |
Ідентифікатор, що описує фізичне місцезнаходження кортежу в БД. Поле ctid містить пару чисел: номер блоку та індекс кортежу в блоці |
Ідентифікатори записів дозволяють розрізнити два записи з однаковими значеннями полів. Для цього в PostgreSQL передбачений ідентифікатор OID, унікальний в межах таблиці. Приклад:
SELECT *, oid FROM my_list;
Знищення таблиці виконує команда:
DROP TABLE tablename;
