Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 9 лет назад пользователемПавел Марченко
1 Разработка WEB-приложений Автор: доцент, к.т.н. Галямова Елена Валентиновна Курс лекций и практических занятий для студентов ИУ6-7 х и АК учебный год
2 Задачи на эту лекцию: Рассмотреть понятия базы данных БД и СУБД, Кратко описать существующие типы баз данных –сетевые, –реляционные, –иерархические; Рассмотреть основы языка запросов SQL: –операции выбора, добавления, изменения и удаления строки, –операции создания, изменения и удаления таблицы. База данных MySql, как пример реляционной базы данных Использование PhpMyAdmin для взаимодействия с базой данных MySql. Обсуждить основные принципы отображения объектной модели документа на реляционную структуру базы данных. Рассмотреть пример – проектирование базы данных виртуального музея истории кафедры
3 Базы данных: основные понятия Пример базы данных: телефонная книга ФИОНомер телефона Адрес Иванов Иван Иванович ул. Ленина, 12, 43 Ильин Федор Иванович пр. Маркса, 32, 45 База данных – это совокупность связанных данных, организованных по определенным правилам, предусматривающим общие принципы описания, хранения и манипулирования, независимая от прикладных программ. База данных является информационной моделью предметной области. Обращение к базам данных осуществляется с помощью системы управления базами данных (СУБД). СУБД обеспечивает поддержку создания баз данных, централизованного управления и организации доступа к ним различных пользователей.
4 Типы БД Реляционная модель БД - совокупность двумерных таблиц особого вида, известного в математике как отношение. Объектная модель БД - данные представляются в виде набора объектов и классов, связанных между собой родственными отношениями, а работа с объектами осуществляется с помощью скрытых (инкапсулированных) в них методов. Объектно- реляционная модель – объединение двух подходов
5 Ключи Первичный ключ (primary key, PK) – минимальный набор полей, уникально идентифицирующий запись в таблице. Внешние ключи используются для организации связей между таблицами базы данных (родительскими и дочерними) и для поддержания ограничений ссылочной целостности данных
6 Ключи
7 Индексирование PRIMARY – уникальный индекс (ключ) с ограничением, что все индексированные им поля не могут иметь пустого значения (т.е. они NOT NULL), может состоять из нескольких полей. UNIQUE – ключ (индекс), задающий поля, которые могут иметь только уникальные значения. INDEX – обычный индекс (как мы описали выше). В MySqL, кроме того, можно индексировать строковые поля по заданному числу символов от начала строки.
8 СУБД MySQL в текстовом режиме в графическом режиме
9 Запуск MySQL сервера (2 режима) Исполняемая программа mysql.exe shell> mysql.exe -u root shell>mysql -u root mysql Сервис mysql.dll shell> mysql -u root mysql mysql> UPDATE user SET Password=PASSWORD('new_password') WHERE user='root'; mysql> DELETE FROM user WHERE user=''; mysql> FLUSH PRIVILEGES;
10 Работа с MySQL в режиме администрирования Основные команды: mysql>create database ak5; mysql> use ak5; mysql> show databases; mysql> show tables mysql> GRANT ALL PRIVILEGES ON book.* TO IDENTIFIED BY '123'; shell>mysql -u user -p Enter password: *** Welcome to the MySQL monitor!... mysql>
11 Язык SQL Функции любой СУБД включают: создание, удаление, изменение базы данных (БД); добавление, изменение, удаление, назначение прав пользователя; внесение, удаление и изменение данных в БД (таблиц и записей); выборку данных из БД.
12 Основные операторы языка SQL Оператор CREATE TABLE Синтаксис CREATE [TEMPORARY] TABLE [IF NOT EXISTS] имя_таблицы [(определение_столбца,...)] [опции_таблицы] [select_выражение] имя_столбца тип [NOT NULL | NULL] [DEFAULT значение_по_умолчанию] [AUTO_INCREMENT][PRIMARY KEY] [reference_definition] Тип столбца (тип в выражении определение_столбца) может быть одним из следующих: целый: INT[(length)] [UNSIGNED] [ZEROFILL] действительный: REAL[(length,decimals)] [UNSIGNED] [ZEROFILL] символьный: CHAR(length) [BINARY] и VARCHAR(length) [BINARY] дата и время: DATE и TIME для работы с большими объектами: BLOB текстовый: TEXT перечислимое множество: ENUM(value1,value2,value3,...) и SET(value1,value2,value3,...) Полный список типов смотрите в документации MySQL.
13 Вместо перечисления столбцов - списки ключевых и индексных полей PRIMARY KEY (имя_индексируемого_столбца,...) или KEY [имя_индекса] (имя_индексируемого_столбца,...) или INDEX [имя_индекса] (имя_индексируемого_столбца,...) или UNIQUE [INDEX] [имя_индекса] (имя_индексируемого_столбца,...) или FULLTEXT [INDEX] [имя_индекса] (имя_индексируемого_столбца,...) или [CONSTRAINT symbol] FOREIGN KEY [имя_индекса] (имя_индексируемого_столбца,...) [reference_definition] или CHECK (expr) имя_столбца [(длина_индекса)] FOREIGN KEY, CHECK и REFERENCES для совместимости с другими SQL- серверами
14 Свойства (опции) таблицы Тип таблицы: TYPE = {BDB | HEAP | ISAM | InnoDB | MERGE | MRG_MYISAM | MYISAM } Начальное значение счетчика автоинкремента: AUTO_INCREMENT = число Средняя длина строк в таблице: AVG_ROW_LENGTH = число Комментарии к таблице (строка из 60 символов): COMMENT = "строка" Максимальное и минимальное предполагаемое число строк: MAX_ROWS = число и MIN_ROWS = число Опционально: SELECT (select_выражение): [IGNORE | REPLACE] SELECT... (любое корректное выражение SELECT)
15 Задание: Создать таблицу Persons, структура которой была приведена на слайде 7. mysql>CREATE TABLE Persons (id INT PRIMARY KEY AUTO_INCREMENT, first_name VARCHAR(50), last_name VARCHAR(100), death_date INT, description TEXT, photo INT, citienship CHAR(50) DEFAULT 'Russia'); Проверка результата: mysql>SHOW databases; mysql>use ak5; mysql>show tables; mysql> show columns from Persons;
16 Основные операторы языка SQL Оператор DROP TABLE Синтаксис DROP TABLE [IF EXISTS] имя_таблицы [, имя_таблицы,...] [RESTRICT | CASCADE] mysql> DROP TABLE IF EXISTS Persons, Artifacts, test; Оператор ALTER TABLE Синтаксис: ALTER [IGNORE] TABLE имя_таблицы alter_specification [, alter_specification...] добавление поля: ADD [COLUMN] определение_столбца [FIRST | AFTER имя_столбца ] или ADD [COLUMN] (определение_столбца, определение_столбца,...)
17 Основные операторы языка SQL изменение поля: ALTER [COLUMN] имя_столбца {SET DEFAULT literal | DROP DEFAULT} или CHANGE [COLUMN] старое_имя_столбца определение_столбца или MODIFY [COLUMN] определение_столбца удаление поля, индекса, ключа: DROP [COLUMN] имя_столбца DROP PRIMARY KEY DROP INDEX имя_индекса переименование таблицы: RENAME [TO] новое_имя_таблицы переупорядочение полей таблицы: ORDER BY поле или опции_таблицы Оператор ALTER TABLE Синтаксис: ALTER [IGNORE] TABLE имя_таблицы alter_specification [, alter_specification...] добавление поля: ADD [COLUMN] определение_столбца [FIRST | AFTER имя_столбца ] или ADD [COLUMN] (определение_столбца, определение_столбца,...) добавление индексов: ADD INDEX [имя_индекса] (имя_индексируемого_столбца,...) или ADD PRIMARY KEY (имя_индексируемого_столбца,...) или ADD UNIQUE [имя_индекса] (имя_индексируемого_столбца,...) или ADD FULLTEXT [имя_индекса] (имя_индексируемого_столбца,...) mysql> ALTER TABLE Persons ADD bday INTEGER AFTER last_name;
18 Основные операторы языка SQL Примеры. mysql> SELECT * FROM Persons WHERE first_name='Александр'; mysql> SELECT title,description FROM Artifacts WHERE id=10; Оператор SELECT Синтаксис: mysql> SELECT 2*2; SELECT select_выражение 1, select_выражение 2,... [FROM table_references [WHERE where_definition] [ORDER BY {число | имя_столбца | формула} [ASC | DESC],...]]
19 Основные операторы языка SQL Примеры: 1) mysql> INSERT INTO Persons (last_name, bday) VALUES ('Иванов', '1934'); 2) mysql> INSERT INTO Artifacts (author) SELECT id FROM Persons WHERE last_name='Иванов' AND bday='1934'; 3) mysql> INSERT INTO Persons SET last_name='Петров', first_name='Иван'; Оператор INSERT Синтаксис: INSERT [LOW_PRIORITY | DELAYED] [IGNORE] [INTO] имя_таблицы [(имя_столбца,...)] VALUES (выражение,...),(...),... INSERT [LOW_PRIORITY | DELAYED] [IGNORE] [INTO] имя_таблицы [(имя_столбца,...)] SELECT... INSERT [LOW_PRIORITY | DELAYED] [IGNORE] [INTO] имя_таблицы SET имя_столбца=выражение, имя_столбца=выражение,...
20 Основные операторы языка SQL Нельзя: mysql> INSERT INTO имя_таблицы (col1,col2) VALUES(col2*2,15); Оператор INSERT Можно: mysql> INSERT INTO имя_таблицы (col1,col2) VALUES(15,col1*2);
21 Основные операторы языка SQL LOW_PRIORITY, DELAYED и IGNORE INSERT INSERT IGNORE дублирующиеся ключи (PRIMARY или UNIQUE)
22 Основные операторы языка SQL Примеры: 1) mysql> UPDATE Persons SET death_date=death_date+1; 2) mysql> UPDATE Artifacts SET title='Ламповая ЭВМ' Limit 1; Оператор UPDATE Синтаксис: UPDATE [LOW_PRIORITY] [IGNORE] имя_таблицы SET имя_столбца 1=выражение 1 [, имя_столбца 2=выражение 2,...] [WHERE where_definition] [LIMIT число]
23 Основные операторы языка SQL Примеры: 1) mysql> DELETE FROM Persons WHERE bday>2003; 2) mysql> DELETE FROM Persons WHERE 1>0; 3) mysql> DELETE FROM Persons; Оператор DELETE Синтаксис: DELETE [LOW_PRIORITY] FROM имя_таблицы [WHERE where_definition] [LIMIT rows]
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.