База данных SQLite в Python. Создание БД, вставка в БД | Базовый курс. Программирование на Python

Поделиться
HTML-код
  • Опубликовано: 19 авг 2020
  • База данных является самым распространенным видом хранения информации в современном мире. Пришло время узнать, как управлять базами данных с помощью Python. Для начала научимся создавать базу данных и осуществлять вставку новых записей в таблицы базы данных на примере SQLite
    • Работа с файлами в Py... - Работа с файлами в Python
    sqlitebrowser.org/ - DB Browser for SQLite
    #Python #database #sqlite #курс #обучение

Комментарии • 124

  • @el_Marmelado
    @el_Marmelado 2 года назад

    Хорошо и доходчиво объяснил, без пропусков и недоговорок. Тепрь бы разобраться, как БД изменять и применять на практике.

  • @SettOnly
    @SettOnly Год назад +2

    Готовлюсь к курсовой, данные видео именно то, что надо! Спасибо автор за подробное и понятное объяснение!

  • @radick16kytyax
    @radick16kytyax 3 года назад +41

    Ты так крут, что всегда отвечаешь на комментарии и даешь эти знания бесплатно 🙊

    • @SweetCoder
      @SweetCoder  3 года назад +26

      тут нет никакого подвига. всю эту информацию можно без труда найти в интернете бесплатно. я лишь стараюсь её озвучить более понятными словами, с моей точки зрения. но все равно спасибо за отзыв.

  • @Bah1918
    @Bah1918 3 года назад +8

    Это просто САМОЕ классное.СПАСИБО

    • @SweetCoder
      @SweetCoder  3 года назад +1

      спасибо за отзыв

  • @lbuslaev
    @lbuslaev 3 года назад +6

    Спасибо за адекватную подачу материала!

  • @nickyr42
    @nickyr42 2 года назад +2

    Грамотная и структурированная подача! Уровень!! Спасибо!

    • @SweetCoder
      @SweetCoder  2 года назад

      спасибо за отзыв

  • @user-qp4yp5wb9b
    @user-qp4yp5wb9b 2 года назад

    Атлично что именно у тебя есть курс по peewee, ти крутой!!

  • @juliaweinstein3133
    @juliaweinstein3133 3 месяца назад

    Спасибо тебе огромное 😊 sqlite browser именно то, что я искала 🎉

  • @andreybunin3567
    @andreybunin3567 2 года назад +2

    Блин, с первых секунд понял- это то что мне нужно ! Гениально !)

    • @SweetCoder
      @SweetCoder  2 года назад

      очень рад. на здоровье

  • @zeroskyri
    @zeroskyri 3 года назад +5

    Отлично ! Ждем от тебя новые видео :)

    • @SweetCoder
      @SweetCoder  3 года назад

      спасибо за отзыв.

  • @55sintez
    @55sintez 2 года назад +1

    Очень компактно и понятно, спасибо)

  • @maximhoroshilov
    @maximhoroshilov 3 года назад +5

    Очень хорошая подача материала. Именно через твое видео я стал что то понимать. Спасибо

    • @SweetCoder
      @SweetCoder  3 года назад +2

      спасибо за отзыв

    • @Gigantovod
      @Gigantovod 3 года назад +1

      Полностью поддерживаю предыдущего оратора...

  • @experementalx2985
    @experementalx2985 3 года назад +1

    ты просто топ
    ты лучше всего объясняешь из тех ютуберов которых я смотрел
    за это сто проц лайк и подписка
    продолжай

    • @SweetCoder
      @SweetCoder  3 года назад

      спасибо за отзыв

  • @user-is6yt8yl3z
    @user-is6yt8yl3z 2 года назад

    так нежно показал мне базу данных, мне так хорошо

  • @sergeyvalenok535
    @sergeyvalenok535 Год назад

    You are wonderful, Sir!!!
    Thanks a lot:)))))

  • @sergeysemkin6570
    @sergeysemkin6570 2 года назад +3

    Как же долго я искал, того кто скажет что файл бд создаётся сам. Я просто счастлив

    • @SweetCoder
      @SweetCoder  2 года назад +1

      мне было вообще не трудно ))

  • @Freddi.V
    @Freddi.V 3 года назад +1

    Чётко, ясно, быстро - благодарю! Миллион двести тебе лайков! :D

    • @SweetCoder
      @SweetCoder  3 года назад

      спасибо за отзыв

  • @user-ne2zl4gg9p
    @user-ne2zl4gg9p 2 года назад +1

    Спасибо огромное очень помог круто объясняешь

    • @SweetCoder
      @SweetCoder  2 года назад

      спасибо за отзыв

  • @radiologiya_uz
    @radiologiya_uz Год назад

    Спасибо брат!

  • @strannikhome
    @strannikhome 2 года назад +1

    )) 1 что надо сделать . показать как установить sqlite3 + python на win10 ))

  • @_test_test
    @_test_test 2 года назад +3

    очень годный контент с интересной подачей. с нежного кодера каждый раз ору

    • @SweetCoder
      @SweetCoder  2 года назад +1

      спасибо за отзыв

  • @todrgor
    @todrgor 2 года назад +1

    Атмосферно

  • @Ali-en2kk
    @Ali-en2kk 3 года назад +2

    Спасибо

  • @zunalit4211
    @zunalit4211 4 месяца назад

    Ееее я на своей проге сделаю регистрацию))),жаль почему-то на php не получается

  • @radiologiya_uz
    @radiologiya_uz Год назад

    У меня такой вопрос. Возможно ли файл созданный в Access конвертировать на SQlite и потом его редактировать с помощью Питона? И в конце концов создать exe?

  • @caughtbyenot9999
    @caughtbyenot9999 2 года назад +1

    Спасибо за видео! Подскажи, пожалуйста какое расширение используешь для подсветки синтаксиса запросов?

    • @SweetCoder
      @SweetCoder  2 года назад

      на здоровье. никакого отдельного расширения не использую. это стандартная атомовская схема подсветки систаксиса

  • @hulitolku
    @hulitolku Год назад +1

    В каких случаях надо использовтаь sql а в каких достаточно csv-файла?

  • @michaelmushers6368
    @michaelmushers6368 3 года назад +2

    Спасибо за ролики. Очень кратко и вполне доходчиво. Когда мака под рукой нет то учусь на iPhone в Pythonista. Может эта тема будет интересна !?

    • @SweetCoder
      @SweetCoder  3 года назад

      спасибо за отзыв. да, возможно придется рассмотреть вопрос разработки на мобильных устройствах

  • @sharko-rin7901
    @sharko-rin7901 3 года назад +2

    👍

    • @SweetCoder
      @SweetCoder  3 года назад

      спасибо за отзыв

  • @vladislav12.03
    @vladislav12.03 Год назад

    расскажи пожалуйста какую программу вы используете для программировании

  • @kirill_spirit_releasement
    @kirill_spirit_releasement 3 года назад +1

    Огооонь... Просто лучшие туториалы на этом канале. Спасибо!
    Кстати, столкнулся с такой проблемой - не понимаю, а как дебажить код Python в том же Atome например?
    В MS Visual Studio это прекрасно делается, но там нет норм linter и kite.
    Есть какой то вариант решения?

    • @SweetCoder
      @SweetCoder  3 года назад

      спасибо за отзыв. В VS Code и с линтером и с Kite всё в порядке. кстати, есть на канале соответсвующее видео. в Атоме наверняка есть что-то подобное, но никаких конкретных рекомендаций дать не могу

    • @kirill_spirit_releasement
      @kirill_spirit_releasement 3 года назад

      @@SweetCoder Понял! Но я про microsoft visual studio, а не vs code. Ладно, в PyCharm есть дебагинг, хоть мне и не нравится пайшарм. Но посмотрю тогда повнисательне что нибудь

  • @Koniukhov
    @Koniukhov 3 года назад +3

    DB Browser for SQLite - Для того что б обновить информацию в БД не обязательно открывать заново базу, достаточно перейти на вкладку "Данные" и нажать на значек обновить.

    • @SweetCoder
      @SweetCoder  3 года назад

      надо будет попробовать

  • @thomashenry8365
    @thomashenry8365 Месяц назад

    В чем преимущество управлять через синтаксис python по сравнению с интерфейсом db browser?

  • @mslq
    @mslq 7 месяцев назад

    Спасибо, мне это очень помогло в изучении.

  • @alexsugu
    @alexsugu 3 года назад +6

    Было интересно, понятно и быстро. Будут видео с подключением к сторонним базам данных?

    • @SweetCoder
      @SweetCoder  3 года назад +2

      всему свое время )) спасибо за отзыв

  • @Dimon-op7dp
    @Dimon-op7dp 3 года назад +2

    Здравствуйте, у меня такой вопрос, что если залить бота на сервер это будет работать ?

    • @SweetCoder
      @SweetCoder  3 года назад +2

      какого бота? на какой сервер? что делает бот?
      да, работать будет.

  • @TheRealSantaKlauS
    @TheRealSantaKlauS 3 года назад +2

    Здравствуйте. Вопрос таков. query4 = """INSERT INTO expenses (name, id) VALUES(4, 'Ошибка')""" почему не выбрасывает ошибку, а нормально присваивает значения? Выше же мы указывали на то, что id INTEGER. Разве это не влияет на тип входящих данных?

    • @SweetCoder
      @SweetCoder  3 года назад +1

      база данных не берёт на себя смелость перечить разработчику. если ей прилетают такие данные - sqlite попытается их сконвертировать в нужный тип, а если не удасться - молча их добавит с усталым вздохом "ну надо - так надо". однако на этапе получения данных из базы мы скорее всего получим TypeError ведь будем пытаться использовать строку как int. кстати, если ты попытаешься добавить VALUES(4, '6'), то затем на выходе получишь (6 INT, '4' TEXT), что может сойти за валидные данные. короче, контроль и учёт - дело разработчика

    • @TheRealSantaKlauS
      @TheRealSantaKlauS 3 года назад +1

      @@SweetCoder Все ясно с этим. Благодарю! Простая подача. Нраица!

    • @TheRealSantaKlauS
      @TheRealSantaKlauS 3 года назад +2

      @@SweetCoder Дополнительный вопрос, немного не в тему. Возможно у тебя будет возможность/желание сделать видео, или просто ответить:
      1) что нужно, по твоему мнению, для junior или около junior по знаниям, чтобы получить работу?
      2) Какой проект можно сделать чтобы начинающий мог показать и сказать (ВО! мое творение, и почти не стыдно)
      3) Если первый вопрос не совсем правильный, то по другому - каких знаний достаточно чтобы найти первую работу? (твое субьективное мнение, пожалуйста)

    • @SweetCoder
      @SweetCoder  3 года назад +2

      может быть и запишу отдельное видео. но если коротко:
      1) хорошее понимание базы ЯП (переменные, циклы, массивы, БД, ООП)
      2) любой (я когда устраивался на первую работу у меня не было вообще)
      3) дело случая. некоторые компании берут на позицию джуна любого у кого есть пальцы, глаза, уши и рот. а вот насколько долго ты проработаешь в такой компании зависит только от твоего желания и усердия

  • @denisgor8559
    @denisgor8559 4 месяца назад

    Спасибо за видео! Подскажите пожалуйста , где бы про сами команды sql получше почитать, желательно на русском. Также интересует вопрос, ? - надо обязательно вбивать, что бы избежать инъекций в телеграмм боте хочу запилить БД для сохранения результатов.. Всего доброго)

  • @dimamakrov2969
    @dimamakrov2969 2 года назад

    Бро подскажи принцип как сделать чтобы выдавал qrcode один на язера и чтобы всегда етот код был а транзакцию проверял последную

  • @sergeytretyakov3040
    @sergeytretyakov3040 2 года назад +1

    Подскажите пожалуйста,а sqlite нужно предварительно установить на компьютер?

    • @SweetCoder
      @SweetCoder  2 года назад

      нет, этот модуль входит в стандартную комплектацию Python

  • @user-gh2jq6mv6e
    @user-gh2jq6mv6e 3 года назад +2

    Знаю что не особо в тему но хелп если можешь..
    Короче надо авторизоваться в skype, при помощи библиотеки urllib и других стандартных библиотек не прибегая к сторонним. API скайпа юзать можно, и по возможности вывести сообщения из бесед...
    Я просто не могу разобраться именно как работать с API скупа )

    • @SweetCoder
      @SweetCoder  3 года назад +1

      опыта работы со Skype API у меня нет. но может быть кто-то из зрителей чем-то подсобит.

  • @Vidar4ik
    @Vidar4ik Год назад +1

    А как программа называется?

  • @fionover9816
    @fionover9816 2 года назад +1

    2:37 спасибо, открыл терминал а ты сразу долистал до Fedor(a)-и 😂

  • @dimalakida8052
    @dimalakida8052 4 месяца назад

    Минут 5 разбирался почему у меня не создается файл базы. А потом на stackoverflow в одном из комментариев, а у вас эта папка есть?
    Я по ходу пропустил где-то, что перед созданием файла базы, нужно ручками подготовить папку для нее.

  • @igoweiqibaduk8283
    @igoweiqibaduk8283 3 года назад +1

    Отличный контент, спасибо! Есть ли на канале видео о geolite2? Мой путь: читаю код, натыкаюсь на большое количество peewee, на youtube нахожу видео №4 из этого курса, перехожу на видео 1- вижу sqlite3, проверяю, а у меня в коде geolite2. Вопрос - этот курс поможет разобраться в моей ситуации или нужно искать именно geolite2 + peewee?

    • @SweetCoder
      @SweetCoder  3 года назад +1

      спасибо за отзыв. если речь идёт о использовании mmdb формата - то peewee не поможет в принципе. так как может взаимодействовать только с sqlite, mysql, postgresql и cockroachdb. Если гео-сервис может предоставить один из этих sql-форматов - тогда да, общие принципы взаимодействия описываемые в видосах будут полезны

  • @user-xg4pd7en9d
    @user-xg4pd7en9d Год назад

    Автор, а можно такое же видео только для MS SQL?

  • @radotv1040
    @radotv1040 Год назад

    Привет,а можешь ссылку кинуть на это приложение,просто у меня при скачке sqlite3 вылезает другое приложение

  • @Amerando
    @Amerando 2 года назад +1

    Я новичок в питоне. Вопрос, как ты писал код внутри кавычек ? И как там писать так же ? У меня это все отображалось как обычный коммент.

    • @SweetCoder
      @SweetCoder  2 года назад

      тут никаких хитростей. открываешь кавычки, пишешь код, закрываешь. отображение может отличаться в зависимости от настроек текстового редактора. но это не очень важно. важнее как это воспринимает интерпретатор

  • @user-hf6yn8kj6q
    @user-hf6yn8kj6q 2 года назад +1

    Не подскажите, что делать, если синтаксис SQLITE не подсвечивается( например NOT EXISTS)

    • @SweetCoder
      @SweetCoder  2 года назад

      а) попробуй другие цветовые схемы;
      б) попробуй другой текстовый редактор;
      в) забей;

  • @kron3499
    @kron3499 Год назад +1

    День добрый! Не подскажите как избавиться от этой ошибки
    with sqlite3.connect('db/database.db') as db:
    sqlite3.OperationalError: unable to open database file
    Благодарю!

    • @nalifo2283
      @nalifo2283 Год назад

      То же самое, смог пофиксить?

    • @user-cv5lw2xm2c
      @user-cv5lw2xm2c 8 месяцев назад +1

      Попробуйте убрать название папки, оставить просто название файла.

    • @Viejo_Cervezaurio
      @Viejo_Cervezaurio 3 месяца назад

      Спасибо, помогло. Я думал, что и папка тоже создается, как и фал
      @@user-cv5lw2xm2c

  • @aikosharystamkyzy6940
    @aikosharystamkyzy6940 9 месяцев назад

    Здравствуйте, как только я запустила уменя выходит вот это "you don't have an extension for debugging Python. Should we find a Python extension in the Marketplace?" 😅 можете помочь

  • @omygod3857
    @omygod3857 Год назад

    здравствуйте , прошу прощения я хочу у вас спросить. query = """CREATE TABLE IF BOT EXISTS expenses(id INTEGER, name TEXT)""" вот этот вод ряд у меня не отображается как у вас по типу все считается как обычный текст но не функция и папка expenses не создается ( помогите пожалуйста

    • @rubschik
      @rubschik Год назад

      query = """ CREATE TABLE IF NOT EXISTS expenses(id INTEGER, name TEXT) """ Привет! Ты NOT в BOT превратил

  • @aikosharystamkyzy6940
    @aikosharystamkyzy6940 9 месяцев назад

    Здравствуй, как скачать sqlite ?

  • @mRelby13
    @mRelby13 3 года назад +2

    Небольшой вопрос. А что если я хочу использовать содержимое переменных/списков/словарей в качестве значений? Как мне их записать в значения?
    query1 = """ INSERT INTO expenses (title, original_title) VALUES ('firstVar', 'secondVar') """
    Или например у меня есть словарь из двух пар ключ/значение: gameInfo = {'name': 'CP 2077', 'year': '2020'}. Я хочу закинуть их в БД. Это можно реализовать?
    Заранее спасибо! :)

    • @SweetCoder
      @SweetCoder  3 года назад +1

      'firstVar', 'secondVar' - это значения которые ты хочешь записать в базу? или имена переменных? если имена переменных, то просто убери одинарные кавычки вокруг них. чтобы записать в базу данные из словаря, просто передай необходимые тебе значения указав их с помощью ключей
      query2 = """ INSERT INTO expenses (title, original_title) VALUES (gameInfo['name'], gameInfo['year']) """

    • @mRelby13
      @mRelby13 3 года назад +1

      @@SweetCoder да, имена переменных. А пачкой никак нельзя передать значения из словаря? Пробовал через dict.values(dictName), но так не сработало :|

    • @SweetCoder
      @SweetCoder  3 года назад

      @@mRelby13 sqlite может хранить только 2 (в глобальном смысле) и 4 (в локальном) типа данных. это REAL, INT (укороченный REAL), TEXT, BLOB (по сути тот же TEXT). Хранить словари, списки, кортежи и данные других типов не умеет. Чтобы сохранить данные ты должен передавать либо текст либо число. всё. Реорганизуй код или структуру базы данных, чтобы записывать "пачку" строк или "пачку" чисел. других вариантов нет.

    • @mRelby13
      @mRelby13 3 года назад

      @@SweetCoder либо я не правильно выразился, либо ты не так понял.
      albums = [('Exodus', 'Andy Hunter', '7/9/2002', 'Sparrow Records', 'CD'),
      ('Until We Have Faces', 'Red', '2/1/2011', 'Essential Records', 'CD'),
      ('The End is Where We Begin', 'Thousand Foot Krutch', '4/17/2012', 'TFKmusic', 'CD'),
      ('The Good Life', 'Trip Lee', '4/10/2012', 'Reach Records', 'CD')]

      cursor.executemany("INSERT INTO albums VALUES (?,?,?,?,?)", albums)
      Эта запись позволит мне записать в БД содержимое списка.
      А я спросил, можно ли тоже самое сделать, но со словарями.
      Ведь по сути такая конструкция:
      list(dict.values(dictName)) превратит любой словарь в список, который будет состоять из значений словаря.

  • @fatumdr5128
    @fatumdr5128 Месяц назад

    а как можно сделать курсивом, жирным и подчёркнутыми отдельные слова в bd?

  • @mentefria98
    @mentefria98 2 года назад +1

    неужели нет расширений с помощью которых можно заглянуть на базу данных не выходя из Atom?

    • @SweetCoder
      @SweetCoder  2 года назад

      может и есть

    • @mentefria98
      @mentefria98 2 года назад

      @@SweetCoder как ты умудряешься находить время на ответы каждому комментарию?
      Ты классный парень, спасибо

    • @mentefria98
      @mentefria98 2 года назад

      @@SweetCoder таким темпом, скоро будут

  • @San4ar
    @San4ar 3 года назад +2

    Создайте обучалки на телеграм ботов пожалуйста

    • @SweetCoder
      @SweetCoder  3 года назад +2

      основываясь на том, что этот комментарий ты оставил под первым (из нескольких) видео по базам данных, я могу предположить, что ты дошел только до него. а это означает, что делать ботов для телеграмма (осознанно, а не просто перепечатывать код с экрана) еще рановато. для начала неплохо было бы познакомиться с сетевыми протоколами и модулями, декораторами и ещё кое чем. всему своё время. step by step

    • @San4ar
      @San4ar 3 года назад +3

      Я смотрю уроки не только у вас)Но а так чем быстрее сделаете бота тем лучше)Заранее спасибо

    • @SweetCoder
      @SweetCoder  3 года назад

      @@San4ar понял )) учту.

  • @bogdan4122
    @bogdan4122 3 года назад

    Добрый день, у меня Visual Studio Code при вписании : import sqlite3
    with sqlite3.connect('db/database.db') as db:
    pass ..выбивает след. ошибку..
    Try the new cross-platform PowerShell aka.ms/pscore6
    PS C:\Users\Admin\Desktop\db> & C:/Users/Admin/AppData/Local/Programs/Python/Python39/python.exe c:/Users/Admin/Desktop/db/database_sqlite.py
    Traceback (most recent call last):
    File "c:\Users\Admin\Desktop\db\database_sqlite.py", line 3, in
    with sqlite3.connect('db/database.db') as db:
    sqlite3.OperationalError: unable to open database file
    PS C:\Users\Admin\Desktop\db> ....Помогите пожалуйста разобраться как решить. Заранее спасибо)

    • @SweetCoder
      @SweetCoder  3 года назад +2

      насколько я понимаю, c:\Users\Admin\Desktop\db\database_sqlite.py - это местонахождение скрипта, который ты запускаешь. и видимо пытаешься запустить его находясь в c:\Users\Admin\Desktop\db\
      следующая ошибка может означать, что в этом рабочем каталоге нет каталога "db", в котором модуль пытается создать/найти файл database.db. Или, если он есть, то скрипту может не хватать прав доступа. Другими словами каталог "db" защищён от записи. Проверь эти моменты

  • @funk6248
    @funk6248 3 года назад +2

    что за знак := , как он работает?

    • @SweetCoder
      @SweetCoder  3 года назад +1

      В некоторых языках программирования это знак присваивания. А в Python это ничего не означает

    • @minimus91
      @minimus91 3 года назад +2

      @@SweetCoder С некоторых пор Python также обзавёлся данным оператором - docs.python.org/3.8/whatsnew/3.8.html#assignment-expressions.

    • @Gigantovod
      @Gigantovod 3 года назад

      Моржовый оператор... О как!

  • @user-xz2hz5yq4f
    @user-xz2hz5yq4f 2 года назад

    а почему у меня ничего не открывается?

  • @MrBlecs
    @MrBlecs 2 года назад

    sqlite3.OperationalError: near "CREATY": syntax error
    что-бы это значило?

    • @alexnavin8833
      @alexnavin8833 2 года назад

      Опечатка у вас, нужно писать CREATE

    • @MrBlecs
      @MrBlecs 2 года назад

      @@alexnavin8833 Спасибо, глаз замылился.

  • @user-oj9cu9pe6s
    @user-oj9cu9pe6s 2 года назад +1

    sqlite3.OperationalError: near "VALUES": syntax error
    Что делать?
    import sqlite3
    with sqlite3.connect("game.db") as db:
    cursor =db.cursor()
    tableuser = """CREATE TABLE IF NOT EXISTS expenses(Login , Password ) VALUES(1,пони)"""
    tableuser2 = """CREATE TABLE IF NOT EXISTS expenses(Login , Password ) VALUES(2,кошак)"""
    db.execute(tableuser)
    db.execute (tableuser2)
    db.commit()

    • @SweetCoder
      @SweetCoder  2 года назад

      возьми кошака и пони в кавычки

  • @delsys
    @delsys Год назад

    Эмм а что это за прога на которой ты код пишишь?

  • @ka5ito4ek
    @ka5ito4ek Год назад

    это база
    (base)

  • @ashtonkutcherov3992
    @ashtonkutcherov3992 3 года назад +1

    но мы же программисты, мы не ищем легких путей, у нас все через жопу, мы сами себе должны усложнить работу :)

    • @SweetCoder
      @SweetCoder  3 года назад +1

      ну так же интереснее

  • @onspite1389
    @onspite1389 7 месяцев назад

    Пока существуешь ты, существует моя надежда на диплом.