Файл: Лабораторна робота4.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 01.10.2024

Просмотров: 13

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Лабораторна робота 4

Тема: Створення бази даних в середовищі MS SQL Server.

Мета: придбання практичних навичок побудови фізичної моделі даних на основі наявної концептуальної моделі. Побудова прикладу бази даних, а також – індивідуального завдання відповідно до варіанту.

Теоретична частина

В цій роботі розглядаються способи створення баз даних, команди створення і видалення таблиць

Створимо базу даних з ім'ям employees, яка містить дані про співробітників якоїсь компанії BigFoot. Передбачається зберігати ім'я, зарплату, вік, адреса, e-mail, дату народження, захоплення, номери телефонів, і т.д. співробітників.

Створення бази даних в Windows

1. Запустіть сервер MySQL, виконуючи команду mysqld -shareware -standalone в рядку запрошення в каталозі с:\mysql\bin.

2. Потім викличте програму клієнта mysql, вводячи в рядку запрошення mysql.

3. Тепер можна створювати базу даних employees. Виконайте команду:

create database employees;

(Примітка: команда закінчується крапкою з комою)

4. Закрийте сеанс mysql, вводячи в запрошенні команду quit. Вийдіть з режиму суперкористувача і перейдіть в свій обліковий запис. (Введіть exit).

Мал. 4.1. Вітання системи MySQL

5. Введення команди SHOW DATABASES; виведе список всіх доступних в системі баз даних.

mysql> SHOW DATABASES;

На екрані повинне з'явитися вікно, аналогічне мал. 4.2.

Мал. 4.2. Проглядання баз даних

Введіть quit в рядку запрошення mysql>, щоб вийти з програми клієнта mysql.

Команда create database

Синтаксис команди CREATE DATABASE має вигляд:

CREATE DATABASE [IF NOT EXISTS] ім’я_бази_даних

[спецификация_create [,спецификация_create]...]

Команда CREATE DATABASE створює базу даних з вказаним ім'ям. Для використовування команди необхідно мати привілей CREATE для бази даних. Якщо база даних з таким ім'ям існує, генерується помилка.

Опція спецификация_сrеаtе може указуватися для визначення характеристик бази даних. Характеристики бази даних зберігаються у файлі db.opt, розташованому в каталозі даних. Конструкція CHARACTER SET визначає набір символів для бази даних за умовчанням. Конструкція COLLATION задає порядок зіставлення за умовчанням.


Бази даних в MySQL реалізовані у вигляді каталогів, які містять файли, відповідні таблицям бази даних. Оскільки спочатку в базі немає ніяких таблиць, оператор CREATE DATABASE тільки створює підкаталог в каталозі даних MySQL.

Робота з таблицями

Тепер розглянемо команди MySQL для створення таблиць бази даних і вибору бази даних.

Бази даних зберігають дані в таблицях. Чим же є ці таблиці?

Простіше за все таблиці можна уявляти собі, як що складаються з рядків і стовпців. Кожний стовпець визначає дані певного типу. Рядки містять окремі записи.

Розглянемо таблицю 4.1, в якій приведені персональні дані деяких людей:

Таблиця 4.1. Персональні дані

Ім'я Вік Країна e-mail

Михайло Петров 28 Росія misha@yandex.ru

Джон Доусон 32 Австралія j.dow@australia.com

Моріс Дрюон 48 Франція md@france.fr

Снежана 19 Болгарія sneg@bulgaria.com

Приведена вище таблиця містить чотири стовпці, в яких зберігаються ім'я, вік, країна, і адреса e-mail. Кожний рядок містить дані однієї людини. Цей рядок називається записом. Щоб знайти країну і адресу e-mail Снежани, спочатку треба вибрати ім'я в першому стовпці, а потім подивитися вміст третього і четвертого стовпців цього ж рядка.

База даних може містити безліч таблиць, саме таблиці містять реальні дані.

Отже, можна виділити зв'язані (або незв'язані) дані в різні таблиці. Для бази даних employees визначена одна таблиця, яка містить дані компанії про співробітників, а інша таблиця міститиме персональні дані. Давайте створимо першу таблицю.

Команда SQL для створення такої таблиці виглядає таким чином:

CREATE TABLE employee_data

(

emp_id int unsigned not null auto_increment primary key

f_name varchar(20)

l_name varchar(20)

title varchar(30)

age int

уоs int

salary int

реrks int

email varchar(60)

);

Примітка: в MySQL команди і імена стовпців не розрізняють регістр символів, проте імена таблиць і баз даних можуть залежати від регістра у зв'язку з платформою, що використовується (як в Linux). Тому можна замість CREATE TABLE використовувати create table.

За ключовими словами CREATE TABLE слідує ім'я створюваної таблиці employee_data. Кожний рядок усередині дужок представляє один стовпець. Ці стовпці зберігати для кожного співробітника ідентифікаційний номер (emp_id), прізвище (l_name), ім'я (f_name), посаду (title), вік (age), стаж роботи в компанії (уоs), зарплату (salary), надбавки (реrks), і адресу e-mail (email).


За ім'ям кожного стовпця слідує тип стовпця. Типи стовпців визначають тип даних, які міститиме стовпець. В даному прикладі стовпці f_name, l_name, title і email міститимуть текстові рядки, тому тип стовпця заданий як varchar, що означає змінну кількість символів. Максимальне число символів для стовпців varchar визначається числом, укладеним в дужки, яке слідує відразу за ім'ям стовпця. Стовпці age, уоs, salary і реrks міститимуть числа (цілі), тому тип стовпця задається як int. Перший стовпець (emp_id) містить ідентифікаційний номер (id) співробітника. Його тип стовпця виглядає дещо переобтяженим, тому розглянемо його по частинах:


Int: визначає тип стовпця як ціле число.

unsigned: визначає, що число буде без знака (позитивне ціле).

not null: визначає, що значення не може бути null (порожнім); тобто кожний рядок в цьому стовпці повинен мати значення.

auto_increment: коли MySQL зустрічається із стовпцем з атрибутом auto_increment, то генерується нове значення, яке на одиницю більше, ніж найбільше значення в стовпці. Тому ми не повинні задавати для цього стовпця значення, MySQL генерує їх самостійно. З цього також витікає, що кожне значення в цьому стовпці буде унікальним.

primary key: допомагає при індексації стовпця, що прискорює пошук значень. Кожне значення повинне бути унікально. Ключовий стовпець необхідний для того, щоб виключити можливість збігу даних. Наприклад, два співробітники можуть мати одне і те ж ім'я, і тоді встане проблема – як розрізняти цих співробітників, якщо не задати їм унікальні ідентифікаційні номери. Якщо є стовпець з унікальними значеннями, то можна легко розрізнити два записи. Краще всього доручити привласнення унікальних значень самій системі MySQL.

Використовування бази даних

База даних employees вже створена. Для роботи з нею, необхідно її "активувати" або "вибрати". В запрошенні mysql виконаєте команду:

SELECT DATABASE();

На екрані побачимо відповідь системи, як показано на мал. 4.3

Мал. 4.3. Вибір бази даних

Це говорить про те, що жодна база даних не була вибрана. Насправді всякий раз при роботі з клієнтом mysql необхідно визначати, яка база даних використовуватиметься.

Визначити поточну базу даних можна декількома способами:

визначення імені бази даних при запуску

Введіть в запрошенні системи наступне:

mysql employees (в Windows)

визначення бази даних за допомогою оператора USE в запрошенні mysql

mysql>USE employees;

Визначення бази даних з допомогою \u в запрошенні mysql

mysql>\u employees;

При роботі необхідно визначати базу даних, яка використовуватиметься, інакше MySQL породжуватиме помилку.

Створення таблиці

Після вибору бази даних employees, виконайте в запрошенні mysql команду CREATE TABLE.

CREATE TABLE employee_data

(

emp_id int unsigned not null auto_increment primary key

f_name varchar(20)


l_name varchar(20)

title varchar(30)

age int

уоs int

salary int

реrks int

email varchar(60)

);

Примітка: натиснення клавіші Enter після введення першого рядка змінює запрошення mysql на ->. Це означає, що mysql розуміє, що команда не завершена і запрошує ввести додаткові оператори. Пам'ятайте, що кожна команда mysql закінчується крапкою з комою, а кожне оголошення стовпця відділяється комі. Можна також при бажанні ввести всю команду на одному рядку.

Висновок на екрані повинен відповідати мал. 4.6.

Мал. 4.4. Створення таблиці

Синтаксис команди CREATE TABLE

Загальний формат інструкції CREATE TABLE такий:

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] ім'я

[(специфікація ...)]

[опція ...]

[ [IGNORE | REPLACE] запит]

Прапор TEMPORARY задає створення тимчасової таблиці, існуючої протягом поточного сеансу. Після закінчення сеансу таблиця віддаляється. Тимчасовим таблицям можна привласнювати імена інших таблиць, роблячи останні тимчасово неприступними. Специфікатор IF NOT EXIST пригнічує виведення повідомлень про помилки у випадку, якщо таблиця з вказаним ім'ям вже існує. Імені таблиці може передувати ім'я бази даних, відокремлене крапкою. Якщо це не зроблено, таблиця буде створена в базі даних, яка встановлена за умовчанням.

Щоб задати ім'я таблиці з пропусками, необхідно укласти його в зворотні лапки, наприклад 'courses list'. Те ж саме буде потрібне робити у всіх посиланнях на таблицю, оскільки пропуски використовуються для розділення ідентифікаторів.

Дозволяється створювати таблиці без стовпців, проте в більшості випадків специфікація хоча б одного стовпця все ж таки присутня. Специфікації стовпців і індексів приводяться в круглих дужках і розділяються комами. Формат специфікації наступний:

ім'я тип

[NOT NULL | NULL]

[DEFAULT значення]

[AUTO_INCREMENT]

[KEY]

[посилання]

Специфікація типу включає назву типа і його розмірність. За умовчанням стовпці приймають значення NULL. Специфікатор NOT NULL забороняє подібну поведінку.

У будь-якого стовпця є значення за умовчанням. Якщо воно не вказано, програма MySQL вибере його самостійно. Для стовпців, що приймають значення NULL, значенням за умовчанням буде NULL, для рядкових стовпців — порожній рядок, для чисельних стовпців — нуль. Змінити цю установку дозволяє пропозицію DEFAULT.