мета-данные страницы
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| zadanie_3._znakomstvo_s_sql [2024/03/15 15:08] – wikiadmin | zadanie_3._znakomstvo_s_sql [2024/04/14 04:42] (текущий) – [Задание №3] wikiadmin | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | ====Задание №3==== | + | ======Задание №3. Знакомство с SQL====== |
| ====Шаг 1. SQL==== | ====Шаг 1. SQL==== | ||
| Основные варианты СУБД (систем управления баз данных): | Основные варианты СУБД (систем управления баз данных): | ||
| Строка 28: | Строка 28: | ||
| bsk23-01-student-1@BSK23-01-1: | bsk23-01-student-1@BSK23-01-1: | ||
| </ | </ | ||
| + | |||
| + | После обновления пакетов устанавливаем sqlite3: | ||
| <code Bash> | <code Bash> | ||
| Строка 61: | Строка 63: | ||
| sqlite3/ | sqlite3/ | ||
| - | ==Шаг 3. Справка по sqlite3== | + | ====Шаг 3. Справка по sqlite3==== |
| Команда **man** отображает справку по использованию пакетов. | Команда **man** отображает справку по использованию пакетов. | ||
| Строка 67: | Строка 69: | ||
| man sqlite3 | man sqlite3 | ||
| + | |||
| + | В справке видим следующее: | ||
| + | |||
| < | < | ||
| SYNOPSIS | SYNOPSIS | ||
| Строка 72: | Строка 77: | ||
| </ | </ | ||
| - | Пункты в квадратных скобках говорят о том, что при запуске SQLite мы можем (но не обязаны) указать опции, имя базы данных и запрос SQL | + | Пункты в квадратных скобках говорят о том, что при запуске SQLite мы можем (но не обязаны) указать опции |
| If the database file does not exist, it will be created. | If the database file does not exist, it will be created. | ||
| Строка 78: | Строка 83: | ||
| Если при запуске sqlite укажем имя несуществующей базы данных, | Если при запуске sqlite укажем имя несуществующей базы данных, | ||
| - | ==Шаг 4. Создание базы данных== | + | ====Шаг 4. Создание базы данных==== |
| - | Смотрим в какой директории | + | Смотрим в каком каталоге мы сейчас находимся: |
| pwd | pwd | ||
| - | Переходим в нужную директорию | + | Переходим в каталог python |
| Запускаем SQLite с именем базы данных (пусть будет «pythondb»): | Запускаем SQLite с именем базы данных (пусть будет «pythondb»): | ||
| sqlite3 pythondb | sqlite3 pythondb | ||
| Строка 96: | Строка 101: | ||
| sqlite> .databases | sqlite> .databases | ||
| main: / | main: / | ||
| + | | ||
| + | Подключена база / | ||
| - | ==Шаг 5. Создание таблицы CREATE TABLE== | + | ====Шаг 5. Создание таблицы. CREATE TABLE==== |
| Команды в SQL называют запросами. Создадим новую таблицу в нашей базе данных, | Команды в SQL называют запросами. Создадим новую таблицу в нашей базе данных, | ||
| Строка 108: | Строка 115: | ||
| sqlite> CREATE TABLE users(name String, age Int, mac String); | sqlite> CREATE TABLE users(name String, age Int, mac String); | ||
| - | < | + | < |
| Посмотрим, | Посмотрим, | ||
| Строка 114: | Строка 121: | ||
| users | users | ||
| - | ==Шаг 6. Заполнение данных таблицы INSERT== | + | ====Шаг 6. Заполнение данных таблицы. INSERT==== |
| Добавим в созданную таблицу данные. Для этого используем SQL запрос «INSERT». | Добавим в созданную таблицу данные. Для этого используем SQL запрос «INSERT». | ||
| Строка 125: | Строка 132: | ||
| sqlite> INSERT INTO users(name, age, mac) VALUES (' | sqlite> INSERT INTO users(name, age, mac) VALUES (' | ||
| - | ==Шаг 7. Отображение данных таблицы SELECT== | + | ====Шаг 7. Отображение данных таблицы. SELECT==== |
| Отобразим данные из таблицы users. Это делается SQL запросом «SELECT». После «SELECT» указывается список столбцов, | Отобразим данные из таблицы users. Это делается SQL запросом «SELECT». После «SELECT» указывается список столбцов, | ||
| Строка 171: | Строка 178: | ||
| </ | </ | ||
| - | ==Шаг 8. Условия выборки WHERE== | + | ====Шаг 8. Условия выборки. WHERE==== |
| Выберем не все данные, | Выберем не все данные, | ||
| Строка 191: | Строка 198: | ||
| </ | </ | ||
| - | ==Шаг 9. Создание и заполнение второй таблицы== | + | ====Шаг 9. Создание и заполнение второй таблицы==== |
| Создадим вторую таблицу. Это будет таблица MAC-адресов активных регистраций устройств WiFi-роутера с уровнями сигналов: | Создадим вторую таблицу. Это будет таблица MAC-адресов активных регистраций устройств WiFi-роутера с уровнями сигналов: | ||
| sqlite> CREATE TABLE registrations (mac String, signal String); | sqlite> CREATE TABLE registrations (mac String, signal String); | ||
| Строка 217: | Строка 224: | ||
| </ | </ | ||
| - | ==Шаг 10. Связь двух таблиц== | + | ====Шаг 10. Связь двух таблиц==== |
| Теперь наша задача – связать 2 таблицы: | Теперь наша задача – связать 2 таблицы: | ||
| Строка 247: | Строка 254: | ||
| Теперь нам нужно научиться выполнять SQL запросы к базе данных SQLite из Python. | Теперь нам нужно научиться выполнять SQL запросы к базе данных SQLite из Python. | ||
| - | ==Шаг 11. SQL из Python== | + | ====Шаг 11. SQL из Python==== |
| В Python есть готовые библиотеки почти на все случаи жизни. Есть библиотека для работы с **sqlite3**. Эта библиотека содержит функции для подключения к базе данных SQLite, для выполнения SQL запросов к базе данных, | В Python есть готовые библиотеки почти на все случаи жизни. Есть библиотека для работы с **sqlite3**. Эта библиотека содержит функции для подключения к базе данных SQLite, для выполнения SQL запросов к базе данных, | ||
| Строка 264: | Строка 271: | ||
| con.close() # | con.close() # | ||
| </ | </ | ||
| + | |||
| + | < | ||
| Результат выполнения скрипта – массив данных (таблица): | Результат выполнения скрипта – массив данных (таблица): | ||
| [(' | [(' | ||
| - | ==Шаг 12. Выборочное чтение данных== | + | ====Шаг 12. Выборочное чтение данных==== |
| Для чтения одной строки массива (таблицы) нужно после названия массива «users» написать номер строки в квадратных скобках. Например «users[0]»: | Для чтения одной строки массива (таблицы) нужно после названия массива «users» написать номер строки в квадратных скобках. Например «users[0]»: | ||
| Строка 289: | Строка 298: | ||
| Dasha | Dasha | ||
| - | ==Шаг 13. Чтение данных в цикле== | + | ====Шаг 13. Чтение данных в цикле==== |
| Построчное чтение данных в цикле: | Построчное чтение данных в цикле: | ||
| <code python> | <code python> | ||