Видео на посмотреть, чтобы вспомнить вообще о чём оно, в самый раз. Хорошо бы ещё, конечно, для sqlite, если уж всё равно в консоли всё происходит, показывать две команды: .mode column и .header on. Тогда и таблицы отображаться будут по феншую.
11:05 update cities set regions_id изменяет в строке с id =1 на число 4 ---------------------------------------- должен же выдать ошибку же. т.к. нельзя ид менять из-за внешнего ключа и потому , что в таблице региона нет ида 4 . почему не выдает ошибку? и при выводе таблицы ничего не поменялось? даже если он может поменять ид, ид майкопа как был 1 так и остался
11:08 Экспортирование данных в Windows я сделал так: Не выходя из консоли и не закрывая файл базы данных(new_database.db) ввёл ".output sqlite_dump.sql", сразу после ".dump". Возможно я что то сделал не так, потому что сам учусь по этому видео.
При работе с MySQL и прописывании "active BOOLEAN NOT NULL DEFAULT FALSE" в консоли выводится "1" (то есть TRUE). Если кто-то столкнулся с такой же проблемой, просто уберите NOT NULL, потому как FALSE подразумевает значение "0". DEAFULT его любом случае заполнит, поэтому контрейн NOT NULL даже не нужен (для TRUE то же самое, в принципе).
У меня в Windows в консоли с SQLite вместо TRUE выводит 1 (а вместо FALSE 0 соответственно). Почему на видео выводит тип boolean словами, а у меня - цифрами?
Не подскажите, Почему при дампе базы в SQLite в файл кладется "PRAGMA foreign_keys=OFF" хотя мы писали ON? Да и просто при загрузке базы этот параметр скидывается. Его надо каждый раз заново прописывать?
Я просто понять не могу, если уроки для обучения, неужели не льзя по нормальному обьяснить как подключить файл к mysql и какие файлы в текстовом редакторе создавать.
@Maria Koroleva такие вещи, как "как подключить файл в *название СУБД*" гуглятся за 2 секунды, это во-первых. Во-вторых, к теме урока, то бишь к SQL прямого отношения не имеет, это уже вопрос к специфике конкретной СУБД.
Если ты хочешь создавать БД в консоли из sql файла, просто указав его имя, то тебе нужно узнать на какой путь указывает консоль (команда pwd или cd) и уже относительно этого пути указать путь к sql файлу. Либо сразу полный путь к sql файлу, начиная с диска и т.д.
На 11:25 название базы указывается без расширения. У меня не работало. Дамп работает только если указать с расширением .db как было в первом уроке при создании БД. То есть sqlite3 database_name.db .dump > sqlite_dump.sql
Очень классный урок. Все понятно. Но как работать с тремя таблицами? Join on можно применить относительно только 2 таблиц? А если я хочу вывести (объединить) три таблицы? sqlite> select * from trip join (curators,bus) on (curators.id = trip.id_curators, bus.id = trip.id_bus); Error: row value Спасибо за совет.
У меня не получается, пишет CREATE TABLE sqlite_sequence(name,seq); в самом начале, и 1|Gorod|1|1 последнее должно быть тру, а у меня единица какого то. Что то все не так(
Курс отличный. Стоит продолжать в том же духе и не слушать "неосиливших". Помимо баз данных курс не должен предоставлять уроки работы с линуксовым терминалом.
+Петр Мамонтов да, но при этом в таблицах у нас отсутсвует избыточность данных и благодаря индексам, которые создаются при объявлении первичного ключа, поиск городов по ид. региона будет выполняться значительно быстрее чем вы будете искать города по названию региона ну и как пример, допустим вы сделали ошибку в названии региона, а у вас в этом регионе 100 городов, и чтобы исправить ошибку вам придется произвести изменения в 100 записях, а в случае с раздельными таблицами достаточно сделать правку в 1 записи. В рамках 100 записей, может звучит и не так уж страшно, но представьте что будет если записей миллион, вы замучаетесь ждать
Alexandr Skrylev Я наверное неправильно объяснил или что-то не учитываю (о индексах не знал, спасибо). Вот смотрите, мы так же осуществляем разбивку изначальной таблицы на две, но просто не связываем их, это позволяет избавиться от избыточности. И вывод нам покажет точно такой же результат (а вот тут я не уверен, будет ли он идентичный, сравню как доберусь до консили), поскольку мы указываем по каким столбцам их объединять. Предполагаю, что связка таблиц нам в первую очередь нужна, чтобы нельзя было вбить неверное значение в одной из таблиц, например, несуществующий код регионов. P.S.: Спасибо, за интересную серию видео, с нетерпением жду продолжения =) UPD: Добрался до консоли, создал две несвязанных таблицы, городов и регионов и LEFT JOIN прекрасно объединил их. Но поскольку я не связывал изначально таблицы, у меня появилась возможность задать неверное значение региона в таблице городов, чем и воспользовался и LEFT JOIN вывел в этом случае NULL - там где не смог взять данные. Поэтому лучше конечно связывать таблицы, в избежании нулевых значений при выводе. Тема заинтересовала. Теперь возник вопрос, как написать пользовательскую форму ввода, с учетом нормализации. Буду думать =)
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!
+Konstantin Sklyar либо вы невнимательно смотрели / слушали, либо вы неправильно трактуете это понятие, никто и не утверждает что внешние и первичные ключи это нормализация, о ней говорилось перед ними
на 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;
Мне кажется есть несколько важных ошибок. Может быть в новых версиях немножко по-другому, но у автора явно кое-что не сходится. На mysql когда указываются ключи, нужно вводить их без пробела. Допустим у меня логин root и пароль root. если логин указать через пробел, он его примет, а вот пароль - нет (возможно потому, что после него ещё идут ключи). Поэтому автор якобы вводит пароль в командной строке, а на самом деле потом вводит заново, так как программа думает, что он введёт его скрыто. Правильно воодить БЕЗ пробелов, например в моём случае: mysql -uroot -proot В случае утилиты mysqldump нужно вводить так же без пробелов mysqldump -uroot -proot [название схемы] > [имя файла] И ещё в mysql можно открывать сорсы не только из коммандной строки, но и в терминале программы source [имя файла]
Вообще-то неправильно по поводу слова "реляционный". Вот цитата: Реляционные базы данных, как мы уже знаем, состоят из таблиц. Каждая таблица состоит из столбцов (их называют полями или атрибутами) и строк (их называют записями или кортежами). Таблицы в реляционных базах данных обладают рядом свойств. Основными являются следующие: * В таблице не может быть двух одинаковых строк. В математике таблицы, обладающие таким свойством, называют отношениями - по-английски relation, отсюда и название - реляционные. * Столбцы располагаются в определенном порядке, который создается при создании таблицы. В таблице может не быть ни одной строки, но обязательно должен быть хотя бы один столбец. * У каждого столбца есть уникальное имя (в пределах таблицы), и все значения в одном столбце имеют один тип (число, текст, дата...). * На пересечении каждого столбца и строки может находиться только атомарное значение (одно значение, не состоящее из группы значений). Таблицы, удовлетворяющие этому условию, называют нормализованными.
То есть это двумерные таблицы в математике называются отношениями (relations). Отсюда и пошло название "реляционный". Для связей применяется другое английское слово - "relationship".
найди хорошую книгу по высшей математике или скулю и почитай, что такое отношение. И не умничай тут. (ей же такие люди, лишь бы выпендриться, троли что ли)
с произнишением других английских слов у Вас тоже есть небольшие проблемы, так что советую посмотреть в словаре, как они звучат (или послушать, как сами носители их произносят), и потренироваться.
Прекрасный материал для нубасов или студентов. Сжато, самое основное, то что нужно. Грамотная речь, приятный голос. Спасибо!
Видео на посмотреть, чтобы вспомнить вообще о чём оно, в самый раз. Хорошо бы ещё, конечно, для sqlite, если уж всё равно в консоли всё происходит, показывать две команды: .mode column и .header on. Тогда и таблицы отображаться будут по феншую.
9:40 "И видим ошибку... Здорово!"
Когда я натыкаюсь на ошибки, то обычно бывает "Б****"
очень лаконично и содержательно, то что нужно. Спасибо за то, что делитесь информацией!
Спасибо)
Жду более сложных вещей, через уроков 5 буду смотреть уже с большим интересом. Познавательно спасибо.
+Richard Silverstone не за что
Ты чертовски крут чувак, знай это!
Сложно всё таки. Мне новичку нифига не понятно. Но интересно) Спасибо! Кому-то другому наверняка поможет
11:05 update cities set regions_id изменяет в строке с id =1 на число 4
----------------------------------------
должен же выдать ошибку же.
т.к. нельзя ид менять из-за внешнего ключа и потому , что в таблице региона нет ида 4 .
почему не выдает ошибку? и при выводе таблицы ничего не поменялось?
даже если он может поменять ид, ид майкопа как был 1 так и остался
Было бы хорошо,если бы сначала рассказал,как файл к базе данный подключить
прошло два года, но я могу рассказать, вдруг до сих пор не понял))
@@copokcem расскажи
@@ЯнКадулин-т7с не рассказал?
@@copokcem прошло еще два года, рассказывай
11:08 Экспортирование данных в Windows я сделал так: Не выходя из консоли и не закрывая файл базы данных(new_database.db) ввёл ".output sqlite_dump.sql", сразу после ".dump". Возможно я что то сделал не так, потому что сам учусь по этому видео.
При работе с MySQL и прописывании "active BOOLEAN NOT NULL DEFAULT FALSE" в консоли выводится "1" (то есть TRUE). Если кто-то столкнулся с такой же проблемой, просто уберите NOT NULL, потому как FALSE подразумевает значение "0". DEAFULT его любом случае заполнит, поэтому контрейн NOT NULL даже не нужен (для TRUE то же самое, в принципе).
почему у меня не загружается sql файл в postgre??? пишет "primer1.sql: No such file or directory". Куда его надо закинуть? windows 10
У меня в Windows в консоли с SQLite вместо TRUE выводит 1 (а вместо FALSE 0 соответственно). Почему на видео выводит тип boolean словами, а у меня - цифрами?
у меня пишет cannot open file.sql после команды .read
автор ты че из краснодара?
Молодец, Саня))
У меня "pragma foreing_keys = on;" не работает... В SQLite..
Не подскажите, Почему при дампе базы в SQLite в файл кладется "PRAGMA foreign_keys=OFF" хотя мы писали ON?
Да и просто при загрузке базы этот параметр скидывается. Его надо каждый раз заново прописывать?
Это все по нормализации?! Я ожидал чуть больше информации
Почему когда я открываю консоль, то у меня сразу запрашивает пароль. Как мне тогда импортировать ?
Видосы просто супер, особенно если надо все вспомнить после долгой паузы.
Я просто понять не могу, если уроки для обучения, неужели не льзя по нормальному обьяснить как подключить файл к mysql и какие файлы в текстовом редакторе создавать.
это не текстовый редактор, это IDE. Никто вам не мешает то же самое ввести в консоли, если не можете создать файл.
@Maria Koroleva такие вещи, как "как подключить файл в *название СУБД*" гуглятся за 2 секунды, это во-первых. Во-вторых, к теме урока, то бишь к SQL прямого отношения не имеет, это уже вопрос к специфике конкретной СУБД.
А почему в таблице cities поле со значением true выводится в строке последним? В коде sql-файла оно стоит предпоследним, перед форейн кием
Спасибо за урок! Подскажите, а что за шрифт в консоли?
Курс не очень. Просто скинули кучу инфы как можно быстрее, мало объяснений про команды.
Отличный урок
В какую директорию нужно положить файл, чтоб поднять базу
Если ты хочешь создавать БД в консоли из sql файла, просто указав его имя, то тебе нужно узнать на какой путь указывает консоль (команда pwd или cd) и уже относительно этого пути указать путь к sql файлу. Либо сразу полный путь к sql файлу, начиная с диска и т.д.
На 11:25 название базы указывается без расширения. У меня не работало. Дамп работает только если указать с расширением .db как было в первом уроке при создании БД.
То есть sqlite3 database_name.db .dump > sqlite_dump.sql
Спасибо! У меня не выгружались данные. Помог ваш комментарий.
Очень классный урок. Все понятно. Но как работать с тремя таблицами? Join on можно применить относительно только 2 таблиц? А если я хочу вывести (объединить) три таблицы?
sqlite> select * from trip join (curators,bus) on (curators.id = trip.id_curators, bus.id = trip.id_bus);
Error: row value Спасибо за совет.
У меня не получается, пишет CREATE TABLE sqlite_sequence(name,seq); в самом начале, и
1|Gorod|1|1 последнее должно быть тру, а у меня единица какого то. Что то все не так(
а почему у меня выдаёт "1| Republic of Adygheya| 1" ? Вместо "..Adygheya | True" ? всё перепроверил кучу раз...
Города могут повторяться. Здесь было бы логичным использовать составной ключ unique, к примеру cityname+region_id
+Андрей М это же просто пример) если четсно я и не рассматривал мир в целом, а чисто рф, поэтому и сказал что они не могут повторяться)
Вообще, кстати, в видео надо бы ещё и про составной ключ unique упомянуть!
Спасибо за выпуск, ждем следующих!
Грамотно, толково и по делу, ноо очень быстро и очень большой объем инфы за 16 мин. Тяжело для новичков...
Я тоже не поняла, как файл к базе данных подключить и как делать выгрузку:(
не уточняется в какой директории должен находится файл с исходным SQL кодом
почему все команды капсом написаны?
Народ, у меня вопрос на засыпку: для чего нужны запросы sql, если есть GUI - pgAdmin и другие ???
про первую, вторую и тд формы было бы хорошо, если бы рассказал, ато на youtube так то особо и не видно. на других ресурсах пришлось искать.
Просто бомба спасибо!
Да импорт можна делать так
source [path to file] (/var/www/) etc...
Курс отличный. Стоит продолжать в том же духе и не слушать "неосиливших".
Помимо баз данных курс не должен предоставлять уроки работы с линуксовым терминалом.
отлично спасибо большое .. кому быстро слушайте на скорости 0.75
А смысл делать связи между таблицами, если при выводе значений, мы все равно указываем по каким столбцам объединять?
+Петр Мамонтов да, но при этом в таблицах у нас отсутсвует избыточность данных и благодаря индексам, которые создаются при объявлении первичного ключа, поиск городов по ид. региона будет выполняться значительно быстрее чем вы будете искать города по названию региона
ну и как пример, допустим вы сделали ошибку в названии региона, а у вас в этом регионе 100 городов, и чтобы исправить ошибку вам придется произвести изменения в 100 записях, а в случае с раздельными таблицами достаточно сделать правку в 1 записи.
В рамках 100 записей, может звучит и не так уж страшно, но представьте что будет если записей миллион, вы замучаетесь ждать
Alexandr Skrylev Я наверное неправильно объяснил или что-то не учитываю (о индексах не знал, спасибо). Вот смотрите, мы так же осуществляем разбивку изначальной таблицы на две, но просто не связываем их, это позволяет избавиться от избыточности. И вывод нам покажет точно такой же результат (а вот тут я не уверен, будет ли он идентичный, сравню как доберусь до консили), поскольку мы указываем по каким столбцам их объединять.
Предполагаю, что связка таблиц нам в первую очередь нужна, чтобы нельзя было вбить неверное значение в одной из таблиц, например, несуществующий код регионов.
P.S.: Спасибо, за интересную серию видео, с нетерпением жду продолжения =)
UPD: Добрался до консоли, создал две несвязанных таблицы, городов и регионов и LEFT JOIN прекрасно объединил их. Но поскольку я не связывал изначально таблицы, у меня появилась возможность задать неверное значение региона в таблице городов, чем и воспользовался и LEFT JOIN вывел в этом случае NULL - там где не смог взять данные. Поэтому лучше конечно связывать таблицы, в избежании нулевых значений при выводе.
Тема заинтересовала. Теперь возник вопрос, как написать пользовательскую форму ввода, с учетом нормализации. Буду думать =)
+Петр Мамонтов у FOREIGN KEY есть доп. возможность указать проверки ON UPDATE ON DELETE.
Хорошая информация
Спасибо за видео!!!
Что за графическая среда? Unity изменённая?
Всё, нашёл, восьмая просто)
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!
Какой редактор использует автор своих видео?
Здорово выглядит!
В заголовке окна же видно! -__- PhpStorm
Это видео точно не для новичков.....
Как это, вам всё объяснили, почему не для новичков?
потому что автор не объяснил как подключить файл к СУБД и как создавать файлы.
@@ximer_rok Всё объяснили, причем на уровне "для новичков". Пересматривайте внимательнее.
вместо drop table логичнее бы писать create table if not exists
действительно, тут новичками и не пахнет. Честно, не тараторь, будто за тобой гонятся, ты же объясняешь, а не бежишь за кем-то/от кого/то.
Что ж так быстро вещаешь то...
так можно и на паузу нажать))
А где "Нормализация", внешние ключи и связанные таблицы - это не нормализация а "библейские заповеди".
+Konstantin Sklyar либо вы невнимательно смотрели / слушали, либо вы неправильно трактуете это понятие, никто и не утверждает что внешние и первичные ключи это нормализация, о ней говорилось перед ними
Спасибо, очень помогло))
ну так жалко что вы любите черный фон... ну вот с маленького ipad так плохо видно... не всегда с собой компьютер...
в линукс консолях по дефолту черный фон
почему не мак? )))
+Георгий Златоуст это история длинною в 5 лет)
Го html 4 ещё раз
Первый урок понятный этот нет (
нормализация - это тема для только-только мидов (ну где-то прям на входе в мида). не стоит удивляться если ниче не понятно
unique - это не "у-ни-кью", а "ю-ниик" с ударением на длинное "и"
привет как доавил файл в базу данних??? делал через соурс но ошибка no conection
на 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;
Что-то ничего не понятно о связях, это не основы по sql, а скорее всего хвастовство.
Мне кажется есть несколько важных ошибок. Может быть в новых версиях немножко по-другому, но у автора явно кое-что не сходится. На mysql когда указываются ключи, нужно вводить их без пробела. Допустим у меня логин root и пароль root. если логин указать через пробел, он его примет, а вот пароль - нет (возможно потому, что после него ещё идут ключи). Поэтому автор якобы вводит пароль в командной строке, а на самом деле потом вводит заново, так как программа думает, что он введёт его скрыто. Правильно воодить БЕЗ пробелов, например в моём случае: mysql -uroot -proot
В случае утилиты mysqldump нужно вводить так же без пробелов
mysqldump -uroot -proot [название схемы] > [имя файла]
И ещё в mysql можно открывать сорсы не только из коммандной строки, но и в терминале программы
source [имя файла]
Информация не усваивается потому что не хватает визуальных примеров
Вообще-то неправильно по поводу слова "реляционный". Вот цитата:
Реляционные базы данных, как мы уже знаем, состоят из таблиц. Каждая таблица состоит из столбцов (их называют полями или атрибутами) и строк (их называют записями или кортежами). Таблицы в реляционных базах данных обладают рядом свойств. Основными являются следующие:
* В таблице не может быть двух одинаковых строк. В математике таблицы, обладающие таким свойством, называют отношениями - по-английски relation, отсюда и название - реляционные.
* Столбцы располагаются в определенном порядке, который создается при создании таблицы. В таблице может не быть ни одной строки, но обязательно должен быть хотя бы один столбец.
* У каждого столбца есть уникальное имя (в пределах таблицы), и все значения в одном столбце имеют один тип (число, текст, дата...).
* На пересечении каждого столбца и строки может находиться только атомарное значение (одно значение, не состоящее из группы значений). Таблицы, удовлетворяющие этому условию, называют нормализованными.
То есть это двумерные таблицы в математике называются отношениями (relations). Отсюда и пошло название "реляционный". Для связей применяется другое английское слово - "relationship".
Зайди в гугл транслейт и переведи слово relation с английского на русский, мистер "я очень люблю поумничать о том, чего не знаю".
найди хорошую книгу по высшей математике или скулю и почитай, что такое отношение. И не умничай тут. (ей же такие люди, лишь бы выпендриться, троли что ли)
Такие заморочки,чтоб написать простую вещь,это не продуктивно!
для детей
красава
unique читается по-другому; если понимаете английскую транскрипцию, то вот она для этого слово : [juː'niːk]
с произнишением других английских слов у Вас тоже есть небольшие проблемы, так что советую посмотреть в словаре, как они звучат (или послушать, как сами носители их произносят), и потренироваться.
Имбицил)
sitys
ничего непонятно 0/10
Зачем ты вообще работаешь на работе с такими знаниями ты можешь зарабатывать миллиона на Хаке людей и различных сайтов