База данных SQLite в Python. Выборка, связь таблиц #2 | Базовый курс. Программирование на Python

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

КОМЕНТАРІ • 86

  • @_test_test
    @_test_test 2 роки тому +7

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

    • @SweetCoder
      @SweetCoder  2 роки тому +5

      спасибо за отзыв. держи себя в руках

  • @yarko6734
    @yarko6734 Рік тому +4

    Это пушка! Водном видео и бест проктик и работа через конетекст и джоин ! За дату вообще просто поклон! Я всю голову сломал как эти строки потом анализировать, а у вас реально более быстрый подход описан!

  • @SeliverstovMusic
    @SeliverstovMusic 2 роки тому +3

    Годнота! Сжато, без воды!

  • @user-hw7uz3zc8w
    @user-hw7uz3zc8w 2 роки тому +11

    За даты отдельная благодарность!

    • @SweetCoder
      @SweetCoder  2 роки тому +2

      на здоровье

    • @mslq
      @mslq 7 місяців тому

      Да, это находка, не нужно городить непонятно чего.

  • @lite_go_9565
    @lite_go_9565 Рік тому +18

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

  • @sashatunik
    @sashatunik Рік тому +1

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

  • @Gigantovod
    @Gigantovod 3 роки тому +3

    Лайк поставил, колокольчик нажал... Ждём ещё ролики!

  • @Saffbl4
    @Saffbl4 Рік тому

    спасибо за урок

  • @user-sb2xf6qt2z
    @user-sb2xf6qt2z 3 роки тому +1

    Спасибо за урок

  • @denissavast
    @denissavast 2 роки тому

    Благодарю!

  • @aleksandramalakutsko401
    @aleksandramalakutsko401 3 роки тому +1

    Спасибо, крутой канал! Лайк и подписка!

    • @SweetCoder
      @SweetCoder  3 роки тому

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

  • @nickolya00
    @nickolya00 3 роки тому

    супер!!!!!! быстро и понятно

    • @SweetCoder
      @SweetCoder  3 роки тому

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

  • @vladimirkulakov8667
    @vladimirkulakov8667 2 роки тому +1

    Спасибо, дружище, за ещё одно бодрое виде! Устал на работе, лень учить новое? Sweet Coder мотивирует)

  • @user-oi1zl6de8i
    @user-oi1zl6de8i 3 роки тому +1

    Полезное видео.

    • @SweetCoder
      @SweetCoder  3 роки тому +1

      да, без баз никуда

  • @GunaevVO
    @GunaevVO 3 роки тому +2

    Спасибо за уроки, сделай серию уроков по sqlalchemy (Flask) просто в Русскоязычном сегменте мало толковых роликов для тех кто только изучает это.

    • @SweetCoder
      @SweetCoder  3 роки тому

      спасибо за отзыв. не могу обещать, что Flask скоро появится на канале

  • @egorkolobov2392
    @egorkolobov2392 3 роки тому +6

    Крутое видео! Однако лучше не ускорять видео так сильно. Иногда просто не успеваешь отследить изменения кода и увидеть, что написали.

    • @SweetCoder
      @SweetCoder  3 роки тому +3

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

    • @user-bj4kp8td1e
      @user-bj4kp8td1e 2 роки тому

      Я в х2 смотрел))

  • @user-nz5mc7jy2c
    @user-nz5mc7jy2c Рік тому +2

    Здравствуйте! Спасибо Вам за прекрасное изложение и представление материала. Очень полезно. Хочу спросить как расширять БД, если исходный материал представлен в формате Excel.

  • @krestopravtv8192
    @krestopravtv8192 Рік тому

    Привет, дружище!

  • @slavamorozovyoutube
    @slavamorozovyoutube 3 роки тому +1

    лайк

  • @user-ks4mb8kv2i
    @user-ks4mb8kv2i 3 роки тому +1

    Круто! Спасибо! Когда next?

    • @SweetCoder
      @SweetCoder  3 роки тому +1

      на днях. спасибо за отзыв

  • @user-kv3je7fk6v
    @user-kv3je7fk6v 3 роки тому

    Очень интересно. Можете пожалуйста рассказать больше о создании базы данных SQLite в Python, построении взаимосвязей и формировании отчетов

    • @SweetCoder
      @SweetCoder  3 роки тому +2

      тема создания базы раскрыта в предыдущем видео. а построение взаимосвязей в этом. какие конкретные вопросы мне стоило бы еще осветить?

    • @user-kv3je7fk6v
      @user-kv3je7fk6v 3 роки тому

      @@SweetCoder на официальном сайте SQLite в разделе документация представлен схематически синтаксис языка программирования, что очень хорошо и наглядно. Но не совсем понятны возможности каждого. Может быть Вы могли бы рассказать больше об этом www.sqlite.org/lang.html

    • @steelbudy
      @steelbudy 3 роки тому +1

      @@SweetCoder не плохо было бы увидеть пример базы данных взаимодействия с телеграм ботом на py например. Как вносить вносить в таблицы user_id, создавать для каждого пользователя строки с данными и как вызывать определенные данные по команде.

    • @SweetCoder
      @SweetCoder  3 роки тому

      @@steelbudy нет совершенно никакой разницы между взаимодействием базы данных с телеграмм-ботом или с каким либо другим приложением. записывать ЛЮБУЮ информацию в базу нужно с помощью запроса insert. выбирать данные из базы с помощью запроса select. частично, эти примеры показаны в плейлисте создания десктопного приложения. например:
      ua-cam.com/video/NWhwUpV4FsU/v-deo.html
      ua-cam.com/video/PF6TQ9cRjHo/v-deo.html
      используешь тоже самое с телеграмм-ботом - и дело в шляпе.

    • @steelbudy
      @steelbudy 3 роки тому +1

      @@SweetCoder согласен, но те, кто только - только начинают постигать бд в тг ботах ищут инфу именно по телеграм ботам. Ради примера. И это не плохой шанс собрать аудиторию.

  • @Andrew-pn8zx
    @Andrew-pn8zx 2 роки тому +1

    Слушай, не проще ли использовать бд которая формат дат уже поддерживает? Я не профессионал, но когда курс по sql проходил даты там можно было уже в запросе сравнивать

  • @user-sn3po6gm3l
    @user-sn3po6gm3l 8 місяців тому

    Добрый день! Подскажите, а можно как-то БД заполнить "автоматически"ю Мне для проекта нужно 10 000 данных, а вручную как-то не очень хочется все это вводить.

  • @sweetdreams9239
    @sweetdreams9239 Рік тому

    чувак, я все лайки поставил, куда ты пропал????

  • @pavlostakhiv1924
    @pavlostakhiv1924 2 роки тому

    можно узнать у Вас какая-то супер оригинальная методика преподавания? На прошлом занятии все подробно объяснить и разжевать простой пример, а в этом ролике сумбурно все скинуть в кучу и устроить с кем-то гонку по скорости кодинга? Если аудитория Вашего канала ученики с нуля, то могу заверить Вас, что польза от этого ролика для них минимальна

  • @aleksandrit4990
    @aleksandrit4990 3 роки тому +1

    А если указать дату необходимо в формате "число/месяц/год часы/минуты/секунды"?

    • @SweetCoder
      @SweetCoder  3 роки тому

      а какие проблемы? просто учитываешь часы, минуты и секунды в функции конвертирования даты в timestamp и обратно

  • @user-kb8mu4fu2b
    @user-kb8mu4fu2b 2 роки тому

    Жаль,что в уроке нет получения I'd из связанной таблицы, интересно было бы посмотреть полный пример внесения данных. Понятно, что I'd можно запросом получить, но вот как это сделать быстрее и проще? Нужно проверить есть ли запись, например, бензин в таблице, затем создать её если её нет и только потом получить I'd. Вроде дело простое,но как это сделать правильно найти проблематично. Может потому, что это программистам кажется слишком простой задачей? Но так ли все просто, особенно при создании нескольких таблиц?

  • @speedcuber-diary
    @speedcuber-diary Рік тому

    2:24 Преднамереная ошибка что-бьі люди думали?

  • @andriilevin8781
    @andriilevin8781 2 роки тому +1

    Объясните что за объект возвращает cursor.execute(queqry) ?
    class 'sqlite3.Cursor' - что это за класс и его характеристики ?
    - Почему его можно перебирать один раз после вызова execute? (и даже если сохраним его в переменную, то ее тоже удается перебрать 1 раз);
    - Зачем использовать con.row_factory = dict_factory ?
    или когда целесообразнее это применять ?
    и чем sqlite3.Row object отличается от sqlite3.Cursor ? ( у меня получалось их перебирать и разницы в выводе я особо не заметил ну или не осознал...)

    • @SweetCoder
      @SweetCoder  2 роки тому +1

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

    • @andriilevin8781
      @andriilevin8781 2 роки тому

      @@SweetCoder Будем ждать. Хорошие у тебя видео -продолжай!

  • @user-ou3hz5ub7g
    @user-ou3hz5ub7g 7 місяців тому

    бро, а у тебя зрение нормальное ? Сотка ? Если да, то что ты сделал для того,
    чтобы его сберечь ?

  • @mRelby13
    @mRelby13 3 роки тому +1

    А зачем создавалось 2 таблицы? Одной тоже самое реализовать не выйдет?
    ps. и еще момент. Не совсем ясно, как осуществлять поиск по таблице. Например:
    Я хочу вывести заголовок, описание и дату какой-то новости. Пусть эта новость называется: Па-па-ра-па-па. Если вписать название собственно в сам запрос - это сработает. Но, как мне подставить переменную: user_input в место названия? Через f'user_input' не катит =/
    Сама переменная будет определена перед выводом:
    user_input = input('what u want? Enter here: ')
    query = """ SELECT title, description, date FROM movieDataBase WHERE title = 'Па-па-ра-па-па' """

    • @SweetCoder
      @SweetCoder  3 роки тому

      2 таблицы потому что у нас в приложении две отдельные сущности: статьи расходов и платежи(транзакции). они обладают разными свойствами и предназначением. поэтому 2 таблицы.
      один из возможных примеров подставки данных из переменной начиная с 5:31

    • @mRelby13
      @mRelby13 3 роки тому

      @@SweetCoder понял, теперь все стало на свои места :)
      И ещё один вопрос, как мне получить доступ к каждому элемента кортежа из cursor.fetchone()? Если за один запрос можно обратится к cursor.fetch только 1 раз?
      Другими словами, как вытянуть поэлементно содержимое объекта курсор не используя цикл for?
      как это было у тебя в видео:
      cursor.execute(q)
      for i in cursor:
      print(f'firstELem: {i[0]}')
      print(f'secondELem: {i[1]}')
      db.commit()
      Остановился я на этом:
      cursor.execute(q)
      varName = cursor.fetchone()
      print(varName[0])
      print(varName[1])
      но правильно ли это?

  • @falongor6836
    @falongor6836 2 роки тому +3

    Огромный минус это ускорение

    • @SweetCoder
      @SweetCoder  2 роки тому +1

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

    • @falongor6836
      @falongor6836 2 роки тому +1

      @@SweetCoder пожалуйста, просто как то не удобно понимать.

    • @falongor6836
      @falongor6836 2 роки тому +2

      @@SweetCoder а вообще ты топ, хороший и молодец

  • @hasagisosuo0108
    @hasagisosuo0108 3 роки тому +1

    А в чем разница между csv и sql

    • @SweetCoder
      @SweetCoder  3 роки тому

      csv - это, по сути, текстовый файл. а sql это почти язык программирования, который облегчает и ускоряет доступ к данным и их обработку

  • @mkmbtv
    @mkmbtv Рік тому

    как у автора получилось создать таблицу через IF NOT EXIST ????? ))))))

  • @nerves6401
    @nerves6401 3 роки тому

    У меня проблема, я пытаюсь добавить строку с спец символами типо пробелов и # но у меня не выходит, ПОМОГИ плиз! тип ячейки куда хочу добавить TEXT

    • @SweetCoder
      @SweetCoder  3 роки тому

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

    • @nerves6401
      @nerves6401 3 роки тому

      @@SweetCoder не не не, всё норм работает если к примеру добавляю "test", но стоит добавить пробел и всё ломается

    • @SweetCoder
      @SweetCoder  3 роки тому

      нужно больше информации. выдаёт ли интерпретатор какую-то ошибку? какую конкретно строку с пробелом не удаётся добавить?

    • @nerves6401
      @nerves6401 3 роки тому

      @@SweetCoder К примеру "1005" добавляет а вот "100 5" уже нет

    • @SweetCoder
      @SweetCoder  3 роки тому

      нужно больше информации. выдаёт ли интерпретатор какую-то ошибку? приведи часть кода как ты формируешь запрос

  • @_mrmark
    @_mrmark Рік тому

    Какое-то ZIP-видео получилось

  • @user-lu5ve2de4q
    @user-lu5ve2de4q 2 місяці тому

    Очень бистра объясняет!?