Основы SQL - #2 - Нормализация

Поділитися
Вставка
  • Опубліковано 27 гру 2024

КОМЕНТАРІ • 103

  • @АлександрИльин-ы4р
    @АлександрИльин-ы4р 3 роки тому +1

    Прекрасный материал для нубасов или студентов. Сжато, самое основное, то что нужно. Грамотная речь, приятный голос. Спасибо!

  • @21Kip
    @21Kip 4 роки тому +1

    Видео на посмотреть, чтобы вспомнить вообще о чём оно, в самый раз. Хорошо бы ещё, конечно, для sqlite, если уж всё равно в консоли всё происходит, показывать две команды: .mode column и .header on. Тогда и таблицы отображаться будут по феншую.

  • @ronypool5037
    @ronypool5037 7 років тому +47

    9:40 "И видим ошибку... Здорово!"
    Когда я натыкаюсь на ошибки, то обычно бывает "Б****"

  • @fusome
    @fusome 8 років тому +22

    очень лаконично и содержательно, то что нужно. Спасибо за то, что делитесь информацией!

    • @loftblog
      @loftblog  8 років тому +2

      Спасибо)

  • @GrandSilence
    @GrandSilence 8 років тому +2

    Жду более сложных вещей, через уроков 5 буду смотреть уже с большим интересом. Познавательно спасибо.

  • @TakuatChanel
    @TakuatChanel 5 років тому

    Ты чертовски крут чувак, знай это!

  • @DEN-tg1yp
    @DEN-tg1yp 3 роки тому +1

    Сложно всё таки. Мне новичку нифига не понятно. Но интересно) Спасибо! Кому-то другому наверняка поможет

  • @daresushi
    @daresushi 7 років тому +1

    11:05 update cities set regions_id изменяет в строке с id =1 на число 4
    ----------------------------------------
    должен же выдать ошибку же.
    т.к. нельзя ид менять из-за внешнего ключа и потому , что в таблице региона нет ида 4 .
    почему не выдает ошибку? и при выводе таблицы ничего не поменялось?
    даже если он может поменять ид, ид майкопа как был 1 так и остался

  • @djonidjonovic8029
    @djonidjonovic8029 6 років тому +24

    Было бы хорошо,если бы сначала рассказал,как файл к базе данный подключить

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

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

    • @ЯнКадулин-т7с
      @ЯнКадулин-т7с 3 роки тому

      @@copokcem расскажи

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

      @@ЯнКадулин-т7с не рассказал?

    • @psih3695
      @psih3695 8 місяців тому

      @@copokcem прошло еще два года, рассказывай

  • @Arsenal23838
    @Arsenal23838 6 років тому +1

    11:08 Экспортирование данных в Windows я сделал так: Не выходя из консоли и не закрывая файл базы данных(new_database.db) ввёл ".output sqlite_dump.sql", сразу после ".dump". Возможно я что то сделал не так, потому что сам учусь по этому видео.

  • @montmont3329
    @montmont3329 6 років тому +1

    При работе с MySQL и прописывании "active BOOLEAN NOT NULL DEFAULT FALSE" в консоли выводится "1" (то есть TRUE). Если кто-то столкнулся с такой же проблемой, просто уберите NOT NULL, потому как FALSE подразумевает значение "0". DEAFULT его любом случае заполнит, поэтому контрейн NOT NULL даже не нужен (для TRUE то же самое, в принципе).

  • @vladimirb8092
    @vladimirb8092 7 років тому +2

    почему у меня не загружается sql файл в postgre??? пишет "primer1.sql: No such file or directory". Куда его надо закинуть? windows 10

  • @ByteMod
    @ByteMod 5 років тому

    У меня в Windows в консоли с SQLite вместо TRUE выводит 1 (а вместо FALSE 0 соответственно). Почему на видео выводит тип boolean словами, а у меня - цифрами?

  • @vegasprohelper6710
    @vegasprohelper6710 4 роки тому

    у меня пишет cannot open file.sql после команды .read

  • @АлексейКарпов-ч7п
    @АлексейКарпов-ч7п 8 років тому +5

    автор ты че из краснодара?

  • @stanislavzheleznyak6099
    @stanislavzheleznyak6099 8 років тому +2

    Молодец, Саня))

  • @VoidObj
    @VoidObj 6 років тому +1

    У меня "pragma foreing_keys = on;" не работает... В SQLite..

  • @НикитаНескрептов
    @НикитаНескрептов 8 років тому

    Не подскажите, Почему при дампе базы в SQLite в файл кладется "PRAGMA foreign_keys=OFF" хотя мы писали ON?
    Да и просто при загрузке базы этот параметр скидывается. Его надо каждый раз заново прописывать?

  • @ИльяМихайлов-т5г
    @ИльяМихайлов-т5г 8 років тому +7

    Это все по нормализации?! Я ожидал чуть больше информации

  • @200OkLetsplay
    @200OkLetsplay 8 років тому +2

    Почему когда я открываю консоль, то у меня сразу запрашивает пароль. Как мне тогда импортировать ?

  • @bormanbor8740
    @bormanbor8740 5 років тому +1

    Видосы просто супер, особенно если надо все вспомнить после долгой паузы.

  • @ВиталийХохлов-щ2п
    @ВиталийХохлов-щ2п 7 років тому +29

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

    • @bogart047
      @bogart047 5 років тому

      это не текстовый редактор, это IDE. Никто вам не мешает то же самое ввести в консоли, если не можете создать файл.

    • @MrBytmin
      @MrBytmin 4 роки тому

      @Maria Koroleva такие вещи, как "как подключить файл в *название СУБД*" гуглятся за 2 секунды, это во-первых. Во-вторых, к теме урока, то бишь к SQL прямого отношения не имеет, это уже вопрос к специфике конкретной СУБД.

  • @DmitrySazhnev-x3z
    @DmitrySazhnev-x3z 8 років тому

    А почему в таблице cities поле со значением true выводится в строке последним? В коде sql-файла оно стоит предпоследним, перед форейн кием

  • @alex.filatov
    @alex.filatov 6 років тому

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

  • @NickOrlovOfficial
    @NickOrlovOfficial 6 років тому +7

    Курс не очень. Просто скинули кучу инфы как можно быстрее, мало объяснений про команды.

  • @denden4455
    @denden4455 6 років тому

    Отличный урок

  • @АлексейПеньков-ч3у
    @АлексейПеньков-ч3у 8 років тому +6

    В какую директорию нужно положить файл, чтоб поднять базу

    • @ByteMod
      @ByteMod 5 років тому

      Если ты хочешь создавать БД в консоли из sql файла, просто указав его имя, то тебе нужно узнать на какой путь указывает консоль (команда pwd или cd) и уже относительно этого пути указать путь к sql файлу. Либо сразу полный путь к sql файлу, начиная с диска и т.д.

  • @Александр-ы7ч7к
    @Александр-ы7ч7к 7 років тому

    На 11:25 название базы указывается без расширения. У меня не работало. Дамп работает только если указать с расширением .db как было в первом уроке при создании БД.
    То есть sqlite3 database_name.db .dump > sqlite_dump.sql

    • @wonderwall6437
      @wonderwall6437 4 роки тому

      Спасибо! У меня не выгружались данные. Помог ваш комментарий.

  • @Uraltelevision
    @Uraltelevision 6 років тому

    Очень классный урок. Все понятно. Но как работать с тремя таблицами? Join on можно применить относительно только 2 таблиц? А если я хочу вывести (объединить) три таблицы?
    sqlite> select * from trip join (curators,bus) on (curators.id = trip.id_curators, bus.id = trip.id_bus);
    Error: row value Спасибо за совет.

  • @infinitysnake3934
    @infinitysnake3934 6 років тому

    У меня не получается, пишет CREATE TABLE sqlite_sequence(name,seq); в самом начале, и
    1|Gorod|1|1 последнее должно быть тру, а у меня единица какого то. Что то все не так(

  • @magneat
    @magneat 4 роки тому

    а почему у меня выдаёт "1| Republic of Adygheya| 1" ? Вместо "..Adygheya | True" ? всё перепроверил кучу раз...

  • @a4y_m5r
    @a4y_m5r 8 років тому +2

    Города могут повторяться. Здесь было бы логичным использовать составной ключ unique, к примеру cityname+region_id

    • @aleksandrskrylev3312
      @aleksandrskrylev3312 8 років тому +1

      +Андрей М это же просто пример) если четсно я и не рассматривал мир в целом, а чисто рф, поэтому и сказал что они не могут повторяться)

    • @zanytuber
      @zanytuber 8 років тому

      Вообще, кстати, в видео надо бы ещё и про составной ключ unique упомянуть!

  • @Aksafan
    @Aksafan 8 років тому +1

    Спасибо за выпуск, ждем следующих!

  • @TheAngpeu
    @TheAngpeu 8 років тому +13

    Грамотно, толково и по делу, ноо очень быстро и очень большой объем инфы за 16 мин. Тяжело для новичков...

  • @evgeniiae4871
    @evgeniiae4871 6 років тому

    Я тоже не поняла, как файл к базе данных подключить и как делать выгрузку:(

  • @vdrmkr
    @vdrmkr 4 роки тому

    не уточняется в какой директории должен находится файл с исходным SQL кодом

  • @МаксВетер-х8ш
    @МаксВетер-х8ш 6 років тому

    почему все команды капсом написаны?

  • @АлексейБронштейн-ю7б

    Народ, у меня вопрос на засыпку: для чего нужны запросы sql, если есть GUI - pgAdmin и другие ???

  • @McMeil
    @McMeil 7 років тому

    про первую, вторую и тд формы было бы хорошо, если бы рассказал, ато на youtube так то особо и не видно. на других ресурсах пришлось искать.

  • @olehlavryk5902
    @olehlavryk5902 7 років тому +1

    Просто бомба спасибо!
    Да импорт можна делать так
    source [path to file] (/var/www/) etc...

  • @nenne303
    @nenne303 6 років тому +4

    Курс отличный. Стоит продолжать в том же духе и не слушать "неосиливших".
    Помимо баз данных курс не должен предоставлять уроки работы с линуксовым терминалом.

  • @ketuser9634
    @ketuser9634 6 років тому

    отлично спасибо большое .. кому быстро слушайте на скорости 0.75

  • @ПетрМамонтов-х5б
    @ПетрМамонтов-х5б 8 років тому

    А смысл делать связи между таблицами, если при выводе значений, мы все равно указываем по каким столбцам объединять?

    • @aleksandrskrylev3312
      @aleksandrskrylev3312 8 років тому +1

      +Петр Мамонтов да, но при этом в таблицах у нас отсутсвует избыточность данных и благодаря индексам, которые создаются при объявлении первичного ключа, поиск городов по ид. региона будет выполняться значительно быстрее чем вы будете искать города по названию региона
      ну и как пример, допустим вы сделали ошибку в названии региона, а у вас в этом регионе 100 городов, и чтобы исправить ошибку вам придется произвести изменения в 100 записях, а в случае с раздельными таблицами достаточно сделать правку в 1 записи.
      В рамках 100 записей, может звучит и не так уж страшно, но представьте что будет если записей миллион, вы замучаетесь ждать

    • @ПетрМамонтов-х5б
      @ПетрМамонтов-х5б 8 років тому +2

      Alexandr Skrylev Я наверное неправильно объяснил или что-то не учитываю (о индексах не знал, спасибо). Вот смотрите, мы так же осуществляем разбивку изначальной таблицы на две, но просто не связываем их, это позволяет избавиться от избыточности. И вывод нам покажет точно такой же результат (а вот тут я не уверен, будет ли он идентичный, сравню как доберусь до консили), поскольку мы указываем по каким столбцам их объединять.
      Предполагаю, что связка таблиц нам в первую очередь нужна, чтобы нельзя было вбить неверное значение в одной из таблиц, например, несуществующий код регионов.
      P.S.: Спасибо, за интересную серию видео, с нетерпением жду продолжения =)
      UPD: Добрался до консоли, создал две несвязанных таблицы, городов и регионов и LEFT JOIN прекрасно объединил их. Но поскольку я не связывал изначально таблицы, у меня появилась возможность задать неверное значение региона в таблице городов, чем и воспользовался и LEFT JOIN вывел в этом случае NULL - там где не смог взять данные. Поэтому лучше конечно связывать таблицы, в избежании нулевых значений при выводе.
      Тема заинтересовала. Теперь возник вопрос, как написать пользовательскую форму ввода, с учетом нормализации. Буду думать =)

    • @rishatsharafiev
      @rishatsharafiev 8 років тому

      +Петр Мамонтов у FOREIGN KEY есть доп. возможность указать проверки ON UPDATE ON DELETE.

  • @АлмасГиниатуллин
    @АлмасГиниатуллин 8 років тому +2

    Хорошая информация

  • @tigranavagyan1587
    @tigranavagyan1587 6 років тому

    Спасибо за видео!!!

  • @MrDieselForce
    @MrDieselForce 8 років тому

    Что за графическая среда? Unity изменённая?

    • @MrDieselForce
      @MrDieselForce 8 років тому

      Всё, нашёл, восьмая просто)

  • @QwertiuM
    @QwertiuM 6 років тому

    sqlite3 project.sql .dump> suka.sql
    PRAGMA foreign_keys=OFF;
    BEGIN TRANSACTION;
    /**** ERROR: (26) file is not a database *****/
    ROLLBACK; -- due to errors
    help me!

  • @АнтонКарпенко-н7д
    @АнтонКарпенко-н7д 8 років тому +3

    Какой редактор использует автор своих видео?
    Здорово выглядит!

    • @zanytuber
      @zanytuber 8 років тому +1

      В заголовке окна же видно! -__- PhpStorm

  • @iduckk8337
    @iduckk8337 7 років тому +27

    Это видео точно не для новичков.....

    • @fartuh
      @fartuh 6 років тому +3

      Как это, вам всё объяснили, почему не для новичков?

    • @ximer_rok
      @ximer_rok 6 років тому +2

      потому что автор не объяснил как подключить файл к СУБД и как создавать файлы.

    • @nenne303
      @nenne303 6 років тому

      @@ximer_rok Всё объяснили, причем на уровне "для новичков". Пересматривайте внимательнее.

  • @bogart047
    @bogart047 5 років тому

    вместо drop table логичнее бы писать create table if not exists

  • @ВячеславДобрынин-ц5д
    @ВячеславДобрынин-ц5д 5 років тому +3

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

  • @kabala000
    @kabala000 7 років тому +8

    Что ж так быстро вещаешь то...

    • @vinograd_nik
      @vinograd_nik 4 роки тому

      так можно и на паузу нажать))

  • @konstantin_sklyar
    @konstantin_sklyar 8 років тому +1

    А где "Нормализация", внешние ключи и связанные таблицы - это не нормализация а "библейские заповеди".

    • @aleksandrskrylev3312
      @aleksandrskrylev3312 8 років тому

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

  • @Николай-я3ъ2м
    @Николай-я3ъ2м 8 років тому

    Спасибо, очень помогло))

  • @lisafox9026
    @lisafox9026 7 років тому

    ну так жалко что вы любите черный фон... ну вот с маленького ipad так плохо видно... не всегда с собой компьютер...

    • @AS-rz5yd
      @AS-rz5yd 6 років тому

      в линукс консолях по дефолту черный фон

  • @ГеоргийЗлатоуст-и1ф
    @ГеоргийЗлатоуст-и1ф 8 років тому +1

    почему не мак? )))

    • @aleksandrskrylev3312
      @aleksandrskrylev3312 8 років тому +3

      +Георгий Златоуст это история длинною в 5 лет)

  • @godi-tm5yz
    @godi-tm5yz 8 років тому

    Го html 4 ещё раз

  • @Suhov.d
    @Suhov.d 5 років тому +1

    Первый урок понятный этот нет (

    • @dosphp
      @dosphp 5 років тому

      нормализация - это тема для только-только мидов (ну где-то прям на входе в мида). не стоит удивляться если ниче не понятно

  • @retiber1
    @retiber1 5 років тому

    unique - это не "у-ни-кью", а "ю-ниик" с ударением на длинное "и"

    • @andriytsymbalyuk7929
      @andriytsymbalyuk7929 5 років тому

      привет как доавил файл в базу данних??? делал через соурс но ошибка no conection

  • @dsh7264
    @dsh7264 5 років тому

    на 10.34 в lsql ошибка констрайтера - update cities set regions_id =2 where id=1 и на 10.50 в mysql тот же запрос уже ошибки констрайтера нет.... это как ???? Короче как у волшебника сулеймана получилось констр наебать не знаю, я ввел : set foreign_key_checks=0; и только после этого приняло: update cities set regions_id =2 where id=1;

  • @MichaelPeteichuk
    @MichaelPeteichuk 5 років тому

    Что-то ничего не понятно о связях, это не основы по sql, а скорее всего хвастовство.

  • @danilishei
    @danilishei 7 років тому

    Мне кажется есть несколько важных ошибок. Может быть в новых версиях немножко по-другому, но у автора явно кое-что не сходится. На mysql когда указываются ключи, нужно вводить их без пробела. Допустим у меня логин root и пароль root. если логин указать через пробел, он его примет, а вот пароль - нет (возможно потому, что после него ещё идут ключи). Поэтому автор якобы вводит пароль в командной строке, а на самом деле потом вводит заново, так как программа думает, что он введёт его скрыто. Правильно воодить БЕЗ пробелов, например в моём случае: mysql -uroot -proot
    В случае утилиты mysqldump нужно вводить так же без пробелов
    mysqldump -uroot -proot [название схемы] > [имя файла]
    И ещё в mysql можно открывать сорсы не только из коммандной строки, но и в терминале программы
    source [имя файла]

  • @9keepa
    @9keepa 6 років тому +1

    Информация не усваивается потому что не хватает визуальных примеров

  • @maxlich9139
    @maxlich9139 7 років тому +1

    Вообще-то неправильно по поводу слова "реляционный". Вот цитата:
    Реляционные базы данных, как мы уже знаем, состоят из таблиц. Каждая таблица состоит из столбцов (их называют полями или атрибутами) и строк (их называют записями или кортежами). Таблицы в реляционных базах данных обладают рядом свойств. Основными являются следующие:
    * В таблице не может быть двух одинаковых строк. В математике таблицы, обладающие таким свойством, называют отношениями - по-английски relation, отсюда и название - реляционные.
    * Столбцы располагаются в определенном порядке, который создается при создании таблицы. В таблице может не быть ни одной строки, но обязательно должен быть хотя бы один столбец.
    * У каждого столбца есть уникальное имя (в пределах таблицы), и все значения в одном столбце имеют один тип (число, текст, дата...).
    * На пересечении каждого столбца и строки может находиться только атомарное значение (одно значение, не состоящее из группы значений). Таблицы, удовлетворяющие этому условию, называют нормализованными.

    • @maxlich9139
      @maxlich9139 7 років тому

      То есть это двумерные таблицы в математике называются отношениями (relations). Отсюда и пошло название "реляционный". Для связей применяется другое английское слово - "relationship".

    • @TheMaddybaddy
      @TheMaddybaddy 7 років тому

      Зайди в гугл транслейт и переведи слово relation с английского на русский, мистер "я очень люблю поумничать о том, чего не знаю".

    • @maxlich9139
      @maxlich9139 7 років тому

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

  • @Tornado-ln7fq
    @Tornado-ln7fq 5 років тому +1

    Такие заморочки,чтоб написать простую вещь,это не продуктивно!

  • @БорисАлиханов-у4з

    для детей

  • @McMeil
    @McMeil 7 років тому

    красава

  • @maxlich9139
    @maxlich9139 7 років тому +1

    unique читается по-другому; если понимаете английскую транскрипцию, то вот она для этого слово : [juː'niːk]

    • @maxlich9139
      @maxlich9139 7 років тому

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

    • @ThatFreshTV
      @ThatFreshTV 6 років тому +4

      Имбицил)

  • @O_b7_7e7_7y7
    @O_b7_7e7_7y7 5 років тому

    sitys

  • @fussakane2536
    @fussakane2536 4 роки тому

    ничего непонятно 0/10

  • @Owly.XVlll.
    @Owly.XVlll. 7 років тому

    Зачем ты вообще работаешь на работе с такими знаниями ты можешь зарабатывать миллиона на Хаке людей и различных сайтов