Работа с SQL:



1. SQL - Запросы:


Создать таблицу "price"

create table price
conn = sqlite3.connect("db.sqlite3.sql")
db = conn.cursor()
db.execute("""CREATE TABLE price (id INTEGER, product_name TEXT, brand_name TEXT)""")
conn.commit()

Удалить таблицу "price"

drop table price
conn = sqlite3.connect("db.sqlite3.sql")
db = conn.cursor()
db.execute("""DROP TABLE price""")
conn.commit()

Удалить из таблицы с именем "Data" строку с id = '387'

DELETE FROM Data
WHERE id = '387';

Удалить из таблицы с именем "Data" все записи (строки)

DELETE FROM Data;

Копировать полностью все поля из одной "my_office" таблицы в другую "my_robot".

INSERT INTO `my_robot`
SELECT *
FROM `db`.`my_office`;





2. Установка PostgreSQL:


Ставим сам сервер PostgreSQL и библиотеку разработчика (она пригодится нам при установке бэкэнда)

sudo apt-get update
sudo apt-get install python3-pip python3-dev libpq-dev postgresql postgresql-contrib

1. Открываем консоль PostgreSQL

sudo -u postgres psql postgres

2. Задаем пароль администратора БД

\password postgres          (например 123456)

3. Создаем и настраиваем пользователя при помощи которого будем соединяться с базой данных из Django (ну очень плохая практика все делать через ... суперпользователя).
Заодно указываем значения по умолчанию для кодировки, уровня изоляции транзакций и временного пояса.

create user user_name with password 'password';
Пример: create user uaenergy with password '123456';

После этого получаем ответ: CREATE ROLE
Затем выполняем следующую команду:

alter role user_name set client_encoding to 'utf8';
Пример: alter role uaenergy set client_encoding to 'utf8';

После этого получаем ответ: ALTER ROLE
Затем выполняем следующую команду:

alter role user_name set default_transaction_isolation to 'read committed';
Пример: alter role uaenergy set default_transaction_isolation to 'read committed';

После этого получаем ответ: ALTER ROLE
Затем выполняем следующую команду:

alter role user_name set timezone to 'UTC';
Пример: alter role uaenergy set timezone to 'UTC';

После этого получаем ответ: ALTER ROLE

Временной пояс можно указать свой, согласно тому, который вы прописываете в settings.py проекта. А про страшное определение уровень изоляции транзакций, если оно вам не знакомо, лучше все таки прочитать из учебника по SQL - пригодится.

4. Создаем базу для нашего проекта

create database django_db owner user_name;
Пример: create database db_phonebook owner uaenergy;

После этого получаем ответ: CREATE DATABASE

5. Выходим из консоли

\q

6. В окружении проекта устанавливаем бэкэнд для PostgreSQL

pip3 install psycopg2
pip3 install psycopg2-binary

После этого получаем ответ: Successfully installed psycopg2-2.7.6.1

7. Последний наш шаг - настроить раздел DATABASES конфигурационного файла проекта settings.py

'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'db_phonebook',
'USER' : 'uaenergy',
'PASSWORD' : 'password',
'HOST' : '127.0.0.1',
'PORT' : '5432',

Дальше все как обычно:
Делаем миграцию

python3 manage.py migrate

Создаем суперпользователя

python3 manage.py createsuperuser

Запускаем сервер

python3 manage.py runserver

На этом все! Радуемся! :)






Обучающие материалы по SQL:

Онлайн сервис по работе с Базами Данных
Оператор DELETE