Кафедра инфокоммуникационных технологий (ИКТ) Сетевые приложения на языке программирования Python Лабораторная работа №4
БД. Используемое программное обеспечение.
XAMPP
XAMPP
XAMPP
phpMyAdmin
Создание БД
Создание БД
Запросы SQL для манипуляции данными
Python и MySQL. Подключение к СУБД.
Python и MySQL. Установка PyMySQL
Проверка версии СУБД.
Вставка, изменение, удаление записей
Чтение записей
Чтение записей. Метод fetchall
Даталогическая модель БД для практической работы
Физическая модель БД для практической работы
Задание лабораторной работы
Пример программного кода на Python
Содержание отчета
Спасибо за внимание!
2.15M
Category: programmingprogramming

Python. ЛР 4. Python и MySQL (1)

1. Кафедра инфокоммуникационных технологий (ИКТ) Сетевые приложения на языке программирования Python Лабораторная работа №4

Взаимодействие ПО на Python и СУБД MySQL.
Стучилин Владимир Валерьевич
доцент каф. ИКТ, к.т.н.
stuchilin.vv@misis.ru

2. БД. Используемое программное обеспечение.

misis.ru
БД. Используемое программное обеспечение.
Система управления базами данных (СУБД): MySQL (MariaDB)
Графический администратор СУБД: phpMyAdmin
Веб сервер (необходим для phpMyAdmin): Apache
Установочный пакет XAMPP
XAMPP полностью бесплатный и простой в установке дистрибутив Apache,
содержащий MariaDB (MySQL), phpMyAdmin и др.
https://www.apachefriends.org/ru/index.html
Стучилин Владимир Валерьевич, каф. ИКТ
2

3. XAMPP

Стучилин Владимир Валерьевич, каф. ИКТ
misis.ru
3

4. XAMPP

Стучилин Владимир Валерьевич, каф. ИКТ
misis.ru
4

5. XAMPP

misis.ru
C://xampp/xamp-control.exe
Стучилин Владимир Валерьевич, каф. ИКТ
5

6. phpMyAdmin

Университет науки и технологий МИСИС
misis.ru
6

7. Создание БД

misis.ru
1. Создать БД (задается имя БД и кодировка utf8_general_ci)
2. Создать таблицу в БД (задается имя таблицы и количество
столбцов)
3. Задать обязательные свойства столбцов и кодировку таблицы.
- имя столбца;
- тип столбца (int – целое число, varchar – набор символов, нужно
указать максимальную длину)
- Установить первичный ключ (PRIMARY в разделе Индекс).
Ключевой столбец содержит уникальные значения для каждой
строки. Часто это отдельный столбец с порядковым номером)
- Установить у ключевого столбца свойство A_I (Autoicrement –
Автозаполнение)
- Установить кодировку utf8_general_ci в разделе «Сравнение».
Стучилин Владимир Валерьевич, каф. ИКТ
7

8. Создание БД

Университет науки и технологий МИСИС
misis.ru
8

9. Запросы SQL для манипуляции данными

misis.ru
Язык манипуляции данными (Data Manipulation Language, DML):
SELECT выбирает данные, удовлетворяющие заданным условиям,
INSERT добавляет новые данные,
UPDATE изменяет существующие данные,
DELETE удаляет данные.
SELECT список_столбцов FROM имя_таблицы WHERE [WHERE условие]
SELECT `name`, `tel` FROM `customer` WHERE `id`>2
INSERT INTO имя_таблицы [(список_столбцов)] VALUES (значение1, значение2, ... значениеN)
INSERT INTO `customer`(`id`, `name`, `tel`) VALUES (NULL, 'Иванов И.И.','89161234567')
UPDATE имя_таблицы SET столбец1 = значение1, столбец2 = значение2, ... столбецN = значениеN
[WHERE условие_обновления]
UPDATE `customer` SET `name`='Сидоров С.С.',`tel`='84951112233' WHERE `id`=1
DELETE FROM имя_таблицы [WHERE условие_удаления]
DELETE FROM `customer` WHERE `id`>3
Стучилин Владимир Валерьевич, каф. ИКТ
9

10. Python и MySQL. Подключение к СУБД.

misis.ru
Python и MySQL. Подключение к СУБД.
PyMySQL представляет собой уникальную для Python клиентскую библиотеку,
основанную на PEP 249 (Python Database API Specification v2.0). Большая часть
общедоступных API совместимы с mysqlclient и MySQLdb. PyMySQL работает с MySQL
5.5+ и MariaDB 5.5+.
Для использования в программе PyMySQL необходимо установить в IDE (в нашем
случае в Visual Studio) и импортировать в коде.
import pymysql
#Импорт библиотеки PyMySQL
Затем необходимо подключиться к серверу БД (MySQL).
con = pymysql.connect(host='localhost', user='root', password='', database='bd1')
Стучилин Владимир Валерьевич, каф. ИКТ
10

11. Python и MySQL. Установка PyMySQL

misis.ru
Python и MySQL. Установка PyMySQL
Для установки библиотеки PyMySQL в Visual Studio необходимо в открытом проекте
зайти в «Окружение Python». Для этого шелкнуть правой кнопкой мыши на
«Окружение Python» в обозревателе решений и в меню выбрать «Просмотреть все
окружение Python». Выбрать «Пакеты PyPl» и в строке поиска написать «PyMySQL» и
выбрать команду «pip install PyMySQL». Внимание, могут потребоваться права
Администратора.
Стучилин Владимир Валерьевич, каф. ИКТ
11

12. Проверка версии СУБД.

misis.ru
Проверка версии СУБД.
import pymysql
#Импорт библиотеки PyMySQL
# Подключение к СУБД и выбор БД
con = pymysql.connect(host='localhost', user='root', password='', database='bd1')
with con:
cur = con.cursor()
cur.execute("SELECT VERSION()")
version = cur.fetchone()
print("Database version: {}".format(version[0]))
Стучилин Владимир Валерьевич, каф. ИКТ
12

13. Вставка, изменение, удаление записей

misis.ru
Вставка, изменение, удаление записей
import pymysql
#Импорт библиотеки PyMySQL
# Подключение к СУБД и выбор БД
con = pymysql.connect(host='localhost', user='root', password='', database='bd1')
# Запись в БД (изменение, удаление)
with con:
cur = con.cursor()
# Create a new record
query_insert = "INSERT INTO sotr (fio, tel) VALUES ('Сидоров С.С.', '+71112223344')"
query_update = "UPDATE sotr SET fio = 'Степанов С.С.' , tel = '+4956667788' WHERE fio =
'Сидоров С.С.'"
query_delete = "DELETE FROM sotr WHERE id = 19"
cur.execute(query_delete)
con.commit()
Стучилин Владимир Валерьевич, каф. ИКТ
13

14. Чтение записей

import pymysql
misis.ru
#Импорт библиотеки PyMySQL
# Подключение к СУБД и выбор БД
con = pymysql.connect(host='localhost', user='root', password='', database='bd1')
with con:
cur = con.cursor()
cur.execute("SELECT * FROM sotr")
rows = cur.fetchall()
for row in rows:
print("{0} {1} {2} {3}".format(row[0], row[1], row[2], row[3]))
Стучилин Владимир Валерьевич, каф. ИКТ
14

15. Чтение записей. Метод fetchall

misis.ru
Возвращает кортеж кортежей. Каждый внутренний кортеж – одна
строка (разделенная на столбцы) ответа на запрос SELECT.
SELECT * FROM fond
0
1
2
А
Б
В
1000
900
500
rows = cur.fetchall()
rows = ( (0, А, 1000), (1, Б, 900), (2, В, 500) )
rows[0][2] = 1000
rows[2][1] = В
Стучилин Владимир Валерьевич, каф. ИКТ
15

16. Даталогическая модель БД для практической работы

misis.ru
Даталогическая модель БД для практической работы
Аудиторный фонд
Тип аудиторий
ID
(PK)
Код
типа
(PK)
Имя
типа
Корпус
Кол.
Ауд.
ID_F
(FK)
Аудитории
Код
типа
(FK)
П.номер
Стучилин Владимир Валерьевич, каф. ИКТ
Кол.
комп
Нал.
виде
о
Вместимость
ID
(PK)
16

17. Физическая модель БД для практической работы

misis.ru
Физическая модель БД для практической работы
Стучилин Владимир Валерьевич, каф. ИКТ
17

18. Задание лабораторной работы

misis.ru
Задание лабораторной работы
1.Заполнить таблицу типов аудиторий (не менее 5).
2.Заполнить таблицу корпусов (не менее 5).
3.Заполнить таблицу аудиторий (не менее 100). Параметры аудиторий задаются случайным
образом.
1.Вывести список всех корпусов, отсортированных по алфавиту (по букве корпуса).
2.Вывести список всех типов аудиторий, отсортированных по коду в обратном порядке.
3.Вывести список всех аудиторий, отсортированных по номеру аудитории (первые пять).
4.Вывести количество аудиторий.
5.Вывести список уникальных вместимостей аудиторий, отсортированных по возрастанию.
6.Вывести номер аудитории с минимальной вместимостью.
7.Вывести информацию об аудитории, указанной пользователем.
Стучилин Владимир Валерьевич, каф. ИКТ
18

19. Пример программного кода на Python

misis.ru
Пример программного кода на Python
import pymysql
import random
#Импорт библиотеки PyMySQL
# Подключение к СУБД и выбор БД
con = pymysql.connect(host='localhost', user='root', password='', database='test1')
with con:
cur = con.cursor()
print('Очищаем все таблицы')
cur.execute("DELETE FROM aud WHERE 1")
con.commit()
cur.execute("DELETE FROM type WHERE 1")
con.commit()
cur.execute("DELETE FROM fond WHERE 1")
con.commit()
print()
print('Заполняем таблицу fond (корпуса)')
Стучилин
Владимир
Валерьевич,
каф. ИКТ
name
= ('Г', 'Л',
'В', 'Б', 'А')
19

20. Содержание отчета

misis.ru
1. Титульный лист.
2. Цель работы.
3. Задание на лабораторную работу.
4. Теоретическая часть (опционально).
5. Структура БД.
6. Структура таблиц БД.
7. Программный код.
8. Пример выполнения (скриншоты).
9. Вывод.
Стучилин Владимир Валерьевич, каф. ИКТ
20

21. Спасибо за внимание!

Стучилин В.В.
stuchilin.vv@misis.ru
Кафедра ИКТ,
НИТУ МИСИС
English     Русский Rules