5. Database – phpmyadmin (Vratsasoftware)

Download Report

Transcript 5. Database – phpmyadmin (Vratsasoftware)

БД
• Къде се съхраняват данните за
нашите WP – страници?
• Защо има толкова много таблици
нашият WP? За какво служи всяка от
тях?
• Какво се случва като натиснем бутона
Publish?
Бази от данни
заявки
дизайн
phpmyadmin
Съдържание
• Заявки
• Дизайн на БД
• phpmyadmin
Заявки
• Data manipulation language (DML)
• SELECT
• INSERT
• UPDATE
• DELETE
• Заявки между няколко таблици
БД-заявки (queries)
• За манипулации с данни в създадени
таблици
• Data manipulation language (DML)
• Най-популярен език - SQL
SELECT
• Извлича данни от таблици
SELECT полета FROM таблица WHERE
условия
• Примери:
– SELECT teamName FROM ‘teams’
– SELECT * FROM ‘teams’ WHERE budget > 1 000
000
INSERT
• Вмъква данни в таблица
INSERT INTO таблица VALUES
(стойности)
• Примери:
– INSERT INTO ‘teams‘ VALUES (‘5’, ‘Slavia Sofia’,
‘Bulgaria’, ’50 000’, ‘Ovcha kupel’)
UPDATE
• Обновява записи в таблица
UPDATE таблица SET полета WHERE
условия
• Пример:
– UPDATE ‘players’ SET salary = salary * 1.1 WHERE
teamID = ‘5’
DELETE
• Изтрива записи от таблица
DELETE FROM таблица WHERE условия
• Пример:
– DELETE FROM ‘players’ WHERE age > 40
Задачи
За таблицата youthsav_study_db
Пример: Да се извлечат: а) всички отбори; б) всички отбори
от Русия; в) всички отбори с бюджет под 300 000
1.
Да се извлечат всички записи от таблицита с играчи
‘players’ (6)
2.
Да се извлечат играчи на възраст под 25 години (4)
3.
Да се извлечат всички играчи, с име ‘Georgi’
4.
Да се добави по 1 запис в таблиците ‘players’, ‘teams’
5.
Да се извлечат всички играчи, които са от отбор ‘CSKA’
[3]
Работа с няколко
таблици
• Как да извлечем всички играчи от
български отбори?
Работа с няколко
таблици (2)
• Извличане на всички играчи от
български отбори
– SELECT * FROM ‘players’ p INNER JOIN ’teams’ t
ON p.teamID = t.ID WHERE t.country = ‘Bulgaria’
• Извличане на всички играчи от
български отбори
– SELECT * FROM `players` WHERE teamID IN
(SELECT id FROM ‘teams’ WHERE country =
'Bulgaria')
Задачи
За таблицата youthsav_study_db
1.
Да се извлечат всички играчи, които са от отбор с
бюджет над 1 млн [1]
2.
Да се извлечат всички руски отбори [2]
3.
Да се извлечат всички отбори, които имат играч с име
‘Georgi’ [2]
4.
Да се извлечат всички български отбори, които имат
чуждестранен играч [1]
Дизайн на бази данни
• Data definition language (DDL)
• Нормализация на БД
– Първа нормална форма
– Втора нормална форма
Дизайн на БД
• Създаване на БД и таблици с колони
към нея
– Как определяме колко таблици да има и кои
колони в коя таблица да сложим?
– Как да бъдат свързани таблиците помежду си?
• Data definition language (DDL)
Нормализация на
данните
• Изключване на повтаряща се
информация в таблиците.
• Минимизиране на аномалиите при
съхраняване, изтриване и промяна на
данните.
• Създаване на отворена към бъдещи
промени структура.
Ненормализирана
таблица
Първа нормална форма
• Цел: Всяка колона (всяко поле) от
таблицата съдържа само по 1
стойност.
Втора нормална форма
• Цел: Една таблица не съдържа
повтаряща се информация.
Втора нормална форма
• Условие: Когато имаме повече 1
колона за първичен ключ, тогава
всяка колона от таблицата трябва да е
зависима от целия първичен ключ.
Задача 1
• Да се нормализира БД за Уoutube
песни със следните полета:
–
–
–
–
–
–
Име на изпълнител
Жанр за изпълнител
Възраст на изпълнител
Заглавие на песен
Година на песен
Брой гледания на песен
Решение 1
artists
songs
ID
Name
Genre
Age
ID
Title
YearPublished
Views
artistID
Задача 2
• Да се нормализира БД за училище
със следните полета:
–
–
–
–
–
–
–
Име на ученик
Клас
Номер в клас
Класна стая
Класен ръководител
Среден успех на ученик
Телефон на класен ръководител
Решение 2
classes
teachers
Students
ID
className
classRoom
teachersID ‘класен ръководител
ID
Names
phoneNumber
ID
Names
classNumber
averageResult
classID
phpmyadmin
• Преглед на таблици
• Създаване на БД
• Работа с БД (DML)
– Вмъкване на данни в таблица
• Експортиране на БД
Още по темата
• http://w3schools.com/sql/default.asp
• http://www.youtube.com/watch?v=E7_
rIGq3u58&list=PLVpLSaSC1ZDRvC9pV41K8kB2pr5fZH_M&index=1