powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите решить задачку
17 сообщений из 17, страница 1 из 1
Помогите решить задачку
    #39787554
Lugner32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет))
Помогите решить задачку. Третий день ломаю голову.

Создайте таблицу books для хранения данных о книгах. В таблице должны быть следующие поля:

id – идентификатор, целое положительное.
name – название, строка длиной не более 100 символов.
description – описание книги длиной не более 1000 символов.
isbn – международный стандартный книжный номер. 10 или 13 знаков.
Добавьте 3 записи так, чтобы получалась таблица ниже:

Имя таблицы
id name description isbn
1 MySQL 5 Хорошая книга. 5941579284
2 Изучаем SQL Полезная книга. 5932860510
3 Изучаем Python. 4-е издание Подробная книга о Python. 9785932861592

Пытался многое но последнее так:

CREATE TABLE books (
id INT UNSIGNED,
name VARCHAR(100),
description TEXT(1000),
isbn BIGINT
);
INSERT INTO books(id, name, description, isbn)
VALUES (1, 'MySQL 5', 'Хорошая книга', 5941579284),
(2, 'Изучаем SQL', 'Полезная книга', 5932860510),
(3,'Изучаем Python. 4-е издание', 'Подробная книга о Python.', 9785932861592);

Что я не так делаю?
...
Рейтинг: 0 / 0
Помогите решить задачку
    #39787563
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какие основания считать, что "задачка" решена неверно?
...
Рейтинг: 0 / 0
Помогите решить задачку
    #39787591
Lugner32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,
Выдаёт ошибку вот такую
Wrong tables created

Affected rows: 0
Affected rows: 3
...
Рейтинг: 0 / 0
Помогите решить задачку
    #39787596
Lugner32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

Это задача из онлайн курса на сайте Stepik
...
Рейтинг: 0 / 0
Помогите решить задачку
    #39787635
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю как другие, но у меня лично нет никакого желания догадываться, что там себе придумал составитель вопросов на этом вашем онлайн-курсе.

Попробуй сделать ID первичным ключом (и, возможно, автоинкрементом). Если в такой форме ответ будет принят, и задание формулируется ТОЧНО ТАК, как ты указал в вопросе, и нет никаких общих для всех вопросов установок на этот счёт - можешь смело ткнуть автора мордой в то, что он [censored], и его вариант ответа, который считается правильным, не соответствует тексту вопроса.
...
Рейтинг: 0 / 0
Помогите решить задачку
    #39787638
Lugner32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina, ok понял. То есть по факту SQL запрос составлен верно? Задам автору вопрос. Правда он не быстро отвечает. Ну подождём. Помимо этой у меня впереди ещё 178задач))) эта одна зависла пока из 82 решённых. Спасибо
...
Рейтинг: 0 / 0
Помогите решить задачку
    #39787662
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я помню, у поля типа TEXT не задаётся длина.
И зачем тут вообще TEXT? Обычного VARCHAR достаточно.
...
Рейтинг: 0 / 0
Помогите решить задачку
    #39787668
Lugner32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,
VARCHAR(1000) объясняли в курсе на уроке что это не совсем корректно. И надо заменять на TEXT
...
Рейтинг: 0 / 0
Помогите решить задачку
    #39787684
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lugner32VARCHAR(1000) объясняли в курсе на уроке что это не совсем корректно.Любопытно узнать обоснование. Но больше похоже на глупость.
...
Рейтинг: 0 / 0
Помогите решить задачку
    #39787702
Lugner32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft, ну типа можно конечно но лучше использовать тип TEXT.
Цитирую препода: можно задать и VARCHAR (10000) но с точки зрения культуры кода, такая запись выглядит некрасиво. Так как говорит о том что вы не сильно задумывались при выборе типа. Для длинных текстов лучше использовать тип TEXT”.

Ну я же только учусь и склонен делать по образу и подобию как рассказывает преподаватель :-).
Вот.А сюда обратился за помощью как к людям с опытом и бОльшими знаниями чем я)))
...
Рейтинг: 0 / 0
Помогите решить задачку
    #39787706
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftНасколько я помню, у поля типа TEXT не задаётся длина.У поля TEXT длина может не задаваться. Но может и задаваться. Вот у VARCHAR длина задаваться обязана.

miksoftОбычного VARCHAR достаточно.Нет. Запросто можно нарваться на ограничение длины записи.
miksoftЛюбопытно узнать обоснование. Но больше похоже на глупость.Ограничение на длину записи.
https://dev.mysql.com/doc/refman/8.0/en/column-count-limit.html The internal representation of a MySQL table has a maximum row size limit of 65,535 bytes, even if the storage engine is capable of supporting larger rows. BLOB and TEXT columns only contribute 9 to 12 bytes toward the row size limit because their contents are stored separately from the rest of the row.

The maximum row size for an InnoDB table, which applies to data stored locally within a database page, is slightly less than half a page for 4KB, 8KB, 16KB, and 32KB innodb_page_size settings. For example, the maximum row size is slightly less than 8KB for the default 16KB InnoDB page size. For 64KB pages, the maximum row size is slightly less than 16KB
...
Рейтинг: 0 / 0
Помогите решить задачку
    #39787708
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так что, например, при innodb_page_size=4K поле VARCHAR(1000) в структуру тупо не влезет.
...
Рейтинг: 0 / 0
Помогите решить задачку
    #39787712
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lugner32,

Надеюсь, попутно вам объяснили чем различаются эти типы данных, в частности, с точки зрения физического хранения и индексирования. Чтобы вы могли самостоятельно сделать выбор, а не пользоваться культом карго.
...
Рейтинг: 0 / 0
Помогите решить задачку
    #39787720
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaОграничение на длину записитам ключевое слово locally. Но есть ещё off-page.
...
Рейтинг: 0 / 0
Помогите решить задачку
    #39787724
Lugner32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft, особо не говорили об этом. Просто сказано было что для более длинных данных нужно использовать TEXT, MRDIUMTEXT, LONGTEXT и разница лишь в допустимом количестве символов
...
Рейтинг: 0 / 0
Помогите решить задачку
    #39787740
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaНо может и задаваться.не вижу такого в синтаксисе
...
Рейтинг: 0 / 0
Помогите решить задачку
    #39787821
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftне вижу такого в синтаксисеВпрямую это, по-моему, нигде не описывается. Но работает так: на основании указанной максимальной длины выбирается подходящий тип (tinytext, text, mediumtext, longtext), а сам указатель максимальной длины удаляется. Поведение легко проверить, создав таблицу с несколькими полями TEXT с разной длиной, после чего посмотреть SHOW CREATE TABLE созданной таблицы.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите решить задачку
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]