
- •1. Характеристика програмних та інтелектуальних систем
- •2. Експертні системи, як клас інтелектуальних
- •3. Особливості та інсталяція ms sql Server 2005 Express Edition.
- •Субд ms sql Server 2005/2008. Переваги та недоліки. Огляд версій та редакцій
- •4. Переваги та недоліки
- •4.1. Переваги
- •4.1.1. Незалежність від конкретної субд
- •4.1.2. Наявність стандартів
- •4.1.3. Декларативність
- •4.2. Недоліки
- •4.2.1. Невідповідність реляційної моделі даних
- •4.2.2. Складність
- •4.2.3. Відхилення від стандартів
- •4.2.4. Складність роботи з ієрархічними структурами
- •Загальна інформація про утиліти
- •10.Створення бд засобами sql Management Studio
- •11. Зміна властивостей бд засобами sql Management Studio
- •12. Перейменування і видалення бд засобами sql Management Studio
- •13. Категорії команд sql: ddl, dml, dcl
- •20,Оператор модифікації таблиць, синтаксис
- •21.Оператор видалення таблиць, синтаксис
- •22.Діаграми бази даних
- •23.Пакетні запити та сценарії
- •24.Типи даних в ms sql Server 2005
- •25.Поняття домену і способи їх створення
- •26.Створення, модифікація та видалення домену засобами ms sql Server
- •27.Створення домену за допомогою sql запитів
- •28.Створення домену за допомогою зберігаємих процедур
- •29.Історія створення Пролог
- •30.Візуальне середовище розробки додатків Visual Prolog
- •31.Створення нового проекту Visual Prolog
- •32.Основні поняття системи Пролог (база знань, терм, формула, речення, предикат, правило, факт). Навести приклади.
- •34.Побудова бази знань. Факти й правила
- •Арифметика в Пролог
- •Вбудовані предикати в Пролог
- •Рекурсія в Пролог
- •Графічні можливості системи Пролог
- •39.Обробка списків в Пролог
- •40.Прості типи даних системи Пролог
- •41.Структуровані типи даних системи Пролог
13. Категорії команд sql: ddl, dml, dcl
Data Manipulation Language (работа со строками)
Приведенные ниже команды группы DML работают исключительно со строками и выполняются преимущественно клиентом:
INSERT — добавление строк(и);
SELECT — выборка строк(и);
UPDATE — изменение строк(и);
DELETE— удаление строк(и);
Data Definition Language (работа со структурой базы)
Команды DDL подразумевают под собой создание и организацию структуры как самой БД так и ее объектов. Со строками такая группа операторов не работает вовсе.
CREATE — создание объекта (например таблицы);
ALTER— изменение объекта (например добавление/изменение полей);
DROP — удаление объекта;
Data Control Language (работа с правами доступа)
Следующая группа служит для разграничения прав пользователей, т.к. с одной базой скорее всего будут работать как минимум несколько человек/клиентов. По-умолчанию у новых пользователей прав никаких нет.
GRANT — назначения прав пользователю;
DENY — явный запрет для пользователя;
REVOKE — отменить запрет или разрешение;
Transaction Control Language (работа с транзакциями)
Группа команд по работе с транзакциями, в остальном — тема целой статьи.
BEGIN TRANSACTION — начать транзакцию;
COMMIT — принять изменения внесенные текущей транзакцией;
ROLLBACK — откат;
14. Створення бази даних засобами SQL
Для створення бази даних в SQL існує оператор CREATE DATABASE, синтаксис якого має наступний вигляд:
CREATE DATABASE ім’я_БД
[ON PRIMARY] /*група файлів*/
( NAME = логічне_ім’я_для_файла_на_диску,
FILENAME = 'адреса_та_ім’я_файла_БД'
[, SIZE = розмір_файла_БД ]
[, MAXSIZE = максимальний_розмір_файлу | UNLIMITED ]
[, FILEGROWTH = інкремент_автоматичного_збільшення_файла ]
)
[, ... n ] /*опис наступного файлу бази даних*/
LOG ON /*файл журналу транзакцій*/
( NAME = логічне_ім’я_для_файла_журналу_транзакцій_на_диску,
FILENAME = 'адреса_та_ім’я_файла_журналу_транзацій'
[, SIZE = розмір_файла_журналу_транзакцій ]
[, MAXSIZE = максимальний_розмір_файлу | UNLIMITED ]
[, FILEGROWTH = інкремент_автоматичного_збільшення_файла ]
)
[COLLATE спосіб_сортування_даних_в_БД ]
[FOR LOAD ] /*використовується лише для сумісності з SQL Server 6.5*/
| [FOR ATTACH] /*дозволяє перекомпонувати набір вже створених файлів в єдину БД*/
Початковий, максимальний розмір файла бази даних та інкремент автоматичного збільшення бази даних можна задавати як в мегабайтах, так і в кілобайтах. Якщо початковий розмір не вказувати, тоді по замовчуванню він встановлюється рівний розміру БД model. Якщо не задати максимальний розмір, то по замовчуванню приймається параметр UNLIMITED. Величина автоматичного збільшення розміру файлу по замовчуванню рівна 1 Мб.
Наприклад, створимо базу даних з іменем MyTestDB, яка має аналогічну назву файла, в якому зберігаються її дані. База даних складається з одного файлу, які входить до групи файлів PRYMARY та має початковий розмір файлу – 12 Мб, максимальний – 20 Мб, а величину прирощення при нестачі розміру 2 Мб. Початкова величина журналу транзакцій – 2 Мб, а максимальна – 12 Мб. Створювана база даних використовує кодову сторінку Latin1 або 1251 та має алфавітний порядок сортуваня даних (General) – регістрозалежний ( СІ ) та індексозалежний ( АІ ).
create database MyTestDB on primary
(name = MyTestDB,
filename = 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\MyTestDB.mdf',
size = 12MB,
maxsize = 20MB,
filegrowth = 2MB )
LOG ON
(name = MyTestDB_Log,
filename = 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\MyTestDB_Log.ldf',
size = 2MB,
maxsize = 12MB,
filegrowth = 1MB)
COLLATE Latin1_General_CI_AI;
Після запуску даного запиту, створиться нова база дних з вищеописаними параметрами.
15. Створення схем бази даних
В SQL Server вирізняють таке поняття як схеми, яке співзвучне з просторами імен, в межах яких можуть знаходитись таблиці, представлення, зберігаємі процедури і тригери та інші об’єкти бази даних. Починаючи з версії MS SQL Server 2005 схеми реалізовані у відповідності до стандарту ANSI і являють собою колекції об’єктів баз даних, тоді як в ранніх версіях об’єкти знаходились в межах їх власника. Ім’я користувача тепер не являється частиною імені об’єкта, тому імена користувачів бази даних можна змінювати і навіть видаляти, не вносячи при цьому змін в додаток. У кожної схеми є свій власник – користувач або роль, і якщо їх необхідно видалити, володіння схемою слід передати іншому користувачу або ролі.
Для створення схем використовується оператор CREATE SCHEMA, скорочений синтаксис якого виглядає наступним
чином:
CREATE SCHEMA { назва_схеми | AUTHORIZATION власник
| назва_схеми AUTHORIZATION власник }
[ елемент_схеми [ ...n ] ]
-- елемент схеми описується:
{ таблиця | представлення
оголошення_GRANT | оголошення_REVOKE | оголошення_DANY }
Як видно з інструкції, при створенні схеми ви можете їй вказати конкретного власника або ж залишити власником поточного користувача, який являється її створювачем. Інструкції, які містять CREATE SCHEMA AUTHORIZATION, тобто не вказують ім’я, дозволені лише для зворотної сумісності. Після вказаного імені та власника, можна здійснити перелік елементів схеми, тобто перелік таблиць та інших об’єктів, які будуть створені всередині схеми. Цей перелік задається інструкціями CREATE TABLE, CREATE VIEW, GRANT, REVOKE або DENY. Останні три інструкції надають, відміняють або забороняють права доступу на захищені об’єкти, за виключенням новоствореної схеми. Після створення, інформація про схему заноситься в представлення каталога sys.schemas.
Приведемо кілька прикладів:
-- створюється схема, яка належить поточному користувачу
create schema mgmt;
-- створюється схема people, яка належить користувачу Pupkin
create schema people authorization Pupkin;
-- створюється схема people, яка належить користувачу Pupkin і містить таблицю
-- testTable. Інструкція також надає право на SELECT для користувача Jeckson
-- і забороняє SELECT для Volydemar.
-- Примітка! І схема people і таблиця TestTable створюються в одній інструкції
create schema people authorization Pupkin
create table testTable (id int not null, number int)
grant select to Jeckson
deny select to Volydemar;
Назначити таблицю (або інший об’єкт) певній схемі не обов’язково при її безпосередньому створенні. Набагато зручніше вказати область бачення об’єкта при створенні самого об’єкта, тобто таблиці, вказавши перед її іменем назву схеми. Наприклад:
create table people.testTable (id int not null, number int);
go
select *
from people.testTable;
go
Щоб змінити схему, використовується інструкція ALTER SCHEMA:
ALTER SCHEMA назва_схеми
TRANSFER [ тип_сутності :: ] ім’я_об’єкта_для_переміщення
В інструкції alter schema необхідно обов’язково вказати назву нової схеми та ім’я об’єкта для переміщення (як правило, з вказанням імені старої схеми). У випадку необхідності можна вказати тип переміщаємої сутності, який може приймати одне з наступних значень:
- object (по замовчуванню);
- type;
- xml_schema_collection.
Наприклад:
-- перемістити таблицю Address з схеми People в схему Resources
alter schema Resources transfer People.Address;
-- перемістити тип TestType з схеми People в схему Resources
alter schema Resources transfer type::People.TestType ;
Для видалення існує оператор DROP SCHEMA:
DROP SCHEMA назва_схеми [, ...n ]
-- наприклад
drop schema people;
16.Модифікація та видалення бази даних засобами SQL
Для модифікації вже створеної бази даних (зміни розмірів, додавання нових файлів в БД тощо) використовується оператор SQL ALTER DATABASE:
Для видалення бази даних використовується SQL оператор DROP DATABASE
Імпортування даних засобами SQL
18.Основи побудови таблиць засобами SQL
19.Оператор вставки таблиць, синтаксис
Синтаксис:
CREATE TABLE table_name (create_definition, ...)
Тут create_definition має наступний формат:
create_definition:
column_name type NOT NULL [DEFAULT default_value] [ PRIMARY KEY ] or
column_name type [NULL] [ PRIMARY KEY ] or
PRIMARY (KEY|INDEX) [key_name] ( column_name,... ) or
(KEY|INDEX) [key_name] ( column_name[length],...) or
INDEX [key_name] ( column_name[length],...) or
UNIQUE (column_name[length],...) or
FOREIGN (KEY|INDEX) [key_name] (column_name[length],...)
REFERENCES table_name
[ON DELETE (RESTRICT | CASCADE | SET NULL) ]
Опис:
У MySQL всі поля мають неявне значення за умовчанням, якщо оголошені, як не порожні (NOT NULL). Якщо ви не даєте значення за умовчанням при використанні не порожнього поля, його буде призначено, виходячи з типу поля.
Блок FOREIGN потрібен тільки для сумісності. Ключове слово REFERENCE теж не виконує в даній версії ніяких дій.
Команда MySQL CREATE TABLE не підтримує ключове слово SQL CHECK.
Зауваження:
Номер стовпця може мати додаткове ключове слово AUTO_INCREMENT, щоб автоматично одержати номер = найбільший номер стовпця + 1 для кожної вставки, в якій номер стовпця = 0 або NULL.
AUTO_INCREMENT можна використовувати його тільки в одному полі таблиці. Це поле повинно бути оголошено як первинний ключ, і повинно бути числовим.