Этот урок набрал набрал достаточно большое количество
комментариев и дальнейшее его комментирование отключено.
Если вы хотели убедиться в правильности выполнения ДЗ или у вас возник вопрос по уроку,
посмотрите ранее добавленные комментарии, кликнув по кнопке ниже. Скорее всего вы найдете там то, что искали.
Если это не помогло - задайте вопрос в чате в телеграме - https://t.me/php_zone
на что-то должен опираться данный курс?)просто я прошел курс по HTML,php для начинающих,и в продвинутом курсе наткнулся на MySQL.Что-то ничего не понятно
У меня валятся ошибки в MySQL ввожу команду:
GRANT priv_type [(column1, column2, column3)]
ON database.[table]
TO 'user@host' IDENTIFIED BY 'new_password';
получаю
1064 - У вас ошибка в запросе. Изучите документацию по используемой версии MySQL на предмет корректного синтаксиса около '[(column1, column2, column3)]
ON database.[table]
TO 'user@host' IDENTIFIED BY' на строке 1
ввожу
GRANT ALL PRIVILEGES ON users.* TO superuser@localhost IDENTIFIED BY '12345';
Получаю
1064 - У вас ошибка в запросе. Изучите документацию по используемой версии MySQL на предмет корректного синтаксиса около 'IDENTIFIED BY '12345'' на строке 1
Не совсем понял зачем нам нужен INSERT INTO TABLE COLUMNS если любой столбец аналогично мы можем добавить в таблицу через ALTER TABLE ADD, или это для добавления нескольких столбцов сразу ? Спасибо за курс SQL.
CREATE TABLE `news` (
`id` INT NOT NULL AUTO_INCREMENT ,
`author_id` INT NOT NULL ,
`author_name` VARCHAR(255) NOT NULL ,
`title` VARCHAR(255) NOT NULL ,
`content` TEXT NOT NULL ,
`date` DATETIME NOT NULL ,
PRIMARY KEY (`id`),
UNIQUE (`author_id`,`author_name`)
);
Артем, спасибо большое за курс, очень все доступно изложено, информация разжеванная Вами заходит отлично, даже для такого нулевого новичка как я.
Обратите внимание, в разделе 'Создание таблиц' наверное опечатка. В примере фигурируют id, email, name. А в предложении ниже, сразу после примера, уже указан year вместо email: В нашем примере id, name, year - это имена столбцов.
Не подумайте, я не придираюсь, уверенна это опечатка, обратила Ваше внимание лишь для того, чтоб при возможности устранили чтоб не путаться.
CREATE TABLE `news` (
`id` INT NOT NULL AUTO_INCREMENT ,
`author_id` INT NOT NULL ,
`title` VARCHAR(255) NOT NULL ,
`text` TEXT NOT NULL ,
`pub_date` DATE NOT NULL ,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
А чего все поля КАПСом-то? Для новостей лучше сделать первичным ключом числовой идентификатор. К ним будет обращение выполняться на сайте и в админке через него, и тайтл совсем не удобный вариант для этого.
CREATE TABLE `news` (
`id` INT NOT NULL AUTO_INCREMENT ,
`user_id` INT NOT NULL ,
`title` VARCHAR(255) NOT NULL ,
`text` TEXT NOT NULL ,
`date` DATETIME NOT NULL ,
PRIMARY KEY(`id`)
) ENGINE = InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `news` (
`id_news` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`author_id` INT UNSIGNED NOT NULL REFERENCES `users`(`id`),
`title` VARCHAR(150) NOT NULL UNIQUE,
`content` TEXT NOT NULL,
`news_date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE `news` (
`id` INT NOT NULL AUTO_INCREMENT ,
`id_author` INT NOT NULL ,
`title_news` VARCHAR(255) NOT NULL ,
`text_news` TEXT NOT NULL ,
`date_news` DATE NOT NULL ,
PRIMARY KEY (`id`),
UNIQUE (`title_news`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Создавал с помощью панели phpMyAdmin
предпросмотр SQL показал:
CREATE TABLE `my_db`.`news` (
`news` INT NOT NULL AUTO_INCREMENT ,
`id` INT NOT NULL ,
`title` VARCHAR(255) NOT NULL ,
`text` TEXT NOT NULL ,
`date` DATE NOT NULL ,
UNIQUE (`news`)
) ENGINE = InnoDB DEFAULT CHARSET=utf8;
Я считаю, что news(идентификатор новости) и id(id автора) лучше задавать целыми числами.
Я заблуждаюсь?
Мне кажется вручную дольше и менее наглядно. Принцип написание мне понятен.
К тому что целые числа никаких вопросов нет. Вопрос в том, почему поле с первичным ключём называется news, а какое-то левое - id? Я думал в уроке довольно явно показано что id - это идентификатор сущности в таблице.
CREATE TABLE `my_db`.`news` (
`id` INT NOT NULL AUTO_INCREMENT ,
`author` INT NOT NULL ,
`title` VARCHAR(255) NOT NULL ,
`text` TEXT NOT NULL ,
`date` DATE NOT NULL ,
UNIQUE (`id`)
) ENGINE = InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `my_db`.`news` (
`id` INT NOT NULL AUTO_INCREMENT ,
`author_id` INT NOT NULL ,
`title` VARCHAR(255) NOT NULL ,
`text` TEXT NOT NULL ,
`date` DATE NOT NULL ,
UNIQUE (`id`)
) ENGINE = InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `news` (
`id` INT NOT NULL AUTO_INCREMENT ,
`articleName` VARCHAR(255) NOT NULL ,
`text` TEXT NOT NULL ,
`date` DATE NOT NULL ,
PRIMARY KEY (`id`),
UNIQUE (`articleName`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `news` (
`id` INT NOT NULL AUTO_INCREMENT ,
`author_id` INT NOT NULL ,
`article_name` VARCHAR(255) NOT NULL ,
`text` TEXT NOT NULL ,
`date` DATE NOT NULL ,
PRIMARY KEY (`id`),
UNIQUE (`article_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `news` (
`id` INT NOT NULL AUTO_INCREMENT,
`author_id` INT NOT NULL,
`title` VARCHAR(255) NOT NULL,
`text` TEXT NOT NULL,
`YEAR` DATE NOT NULL,
PRIMARY KEY (`id`)
) ENGINE = INNODB DEFAULT CHARSET=utf8;
CREATE TABLE News (
id INT NOT NULL AUTO_INCREMENT,
autor_id INT NOT NULL,
title VARCHAR(255) NOT NULL,
text TEXT NOT NULL,
date DATE NOT NULL,
PRIMARY KEY(id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `news` (
`id` INT NOT NULL AUTO_INCREMENT ,
`author_id` INT NOT NULL ,
`title` VARCHAR(255) NOT NULL ,
`text` TEXT NOT NULL ,
`date` DATE NOT NULL ,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `news` (
`id` INT NOT NULL AUTO_INCREMENT,
`author` VARCHAR(255) NOT NULL,
`title` VARCHAR(255) NOT NULL,
`text` TEXT NOT NULL,
`data` DATE NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8;
CREATE TABLE `news` (
`id_news` INT NOT NULL AUTO_INCREMENT ,
`id_author` INT NOT NULL,
`title_news` VARCHAR(255) NOT NULL,
`text_news` TEXT(64) NOT NULL,
`date_news` DATE NOT NULL,
PRIMARY KEY (`id_news`)
) ENGINE=INNODB DEFAULT CHARSET=utf8;
id_news - зачем приписка _news везде? Это и так понятно по названию таблицы.
id_author - лучше author_id. Сначала указываем имя таблицы, по которой делаем связь, затем имя столбца.
Исправил командами через командную строку,
НО
команды, приведенные в уроке не работают:
Вот так не сработало:
ALTER TABLE имя_таблицы RENAME COLUMN старое_имя_столбца TO новое_имя_столбца; - пишет что не хватает какой-то запятой
Сработало вот так
ALTER TABLE news CHANGE date_newsdate DATE NOT NULL
CREATE TABLE `news` (
`news_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`author_id` INT NOT NULL UNIQUE ,
`title` VARCHAR(50) NOT NULL ,
`text` TEXT NOT NULL ,
`date` DATETIME NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `news` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`author_id` INT NOT NULL ,
`title` VARCHAR(50) NOT NULL ,
`text` TEXT NOT NULL ,
`date` DATETIME NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `news` (
`id` INT NOT NULL AUTO_INCREMENT,
`author_id` INT NOT NULL,
`name` VARCHAR(255) NOT NULL,
`text` TEXT NOT NULL,
`date` DATETIME NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8;
CREATE TABLE 'news' (
'id' INT NOT NULL AUTO_INCERMENT,
'news_name' VARCHAR(255) NOT NULL,
'news_text' LONGTEXT NOT NULL,
'data of publication' DATE NOT NULL,
PRIMARY KEY (`id`),
UNIQUE (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Зачем везде приписка news? Это и так понятно по названию таблицы. Нужно убрать.
data of publication - должны быть подчеркивания вместо пробелов. И не data, а date. Data - это данные. Рекомендую пользоваться на первых порах google translate, если нет уверенных знаний в английском)
Добрый день. При создании таблицы использую кавычки ' ( буква Э) - sql выдает синтаксическую ошибку.Но когда копирую ваши кавычки и вставляю в свою таблицу -все ок. Что не так с моими кавычками?
Подскажите, пожалуйста, почему на уроке мы задаём имя таблицы и название полей в кавычках, а в OpenServer это считается ошибкой и нужно писать без?
И еще один вопрос) Я имя своего профиля поменял на нормальное, а в комментариях пока ещё вижу своё старое имя. Подскажите, мне уже ни как не избавиться от ошибочно внесенного имени?)))
CREATE TABLE `news` (
`id` INT NOT NULL AUTO_INCREMENT ,
`creator_id` INT NOT NULL ,
`title` VARCHAR(255) NOT NULL ,
`text` MEDIUMBLOB NOT NULL ,
`create_date` DATE NOT NULL ,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `news` (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`author` VARCHAR(55) NOT NULL,
`title` VARCHAR(255) NOT NULL,
`content` TEXT NOT NULL,
`date` DATETIME NOT NULL,
UNIQUE (`title`)
)
CREATE TABLE `news`(
`id` INT NOT NULL AUTO_INCREMENT,
`author_id` INT NOT NULL,
`name_publ` VARCHAR(500) NOT NULL,
`text` TEXT NOT NULL,
`date_publ` DATE NOT NULL,
PRIMARY KEY(`id`),
UNIQUE(`name_publ`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8;
DESCRIBE news;
CREATE table news ( id int auto_increment, id_author varchar(255) not null, news_title varchar(255) not null, news_text text not null, create_date date not null,
primary key (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Нужно оформить код в комментарии (в редакторе комментариев самая первая кнопка).
Нажмите на карандашик и поправьте ваш комментарий, пожалуйста. А потом ответьте мне на этот комментарий. После этого проверю вашу домашнюю работу и отвечу на вопросы.
Задание 1. Таблица news для хранения новостей
CREATE TABLE `news` (
`id` int auto_increment,
`id_author` varchar(255) not null,
`news_title` varchar(255) not null,
`news_text` text not null,
`create_date` date not null,
primary key (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE news ( id INT NOT NULL AUTO_INCREMENT , name VARCHAR(255) NOT NULL , text TEXT NOT NULL ,
PRIMARY KEY (id),
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Нужно оформить код в комментарии (в редакторе комментариев самая первая кнопка).
Нажмите на карандашик и поправьте ваш комментарий, пожалуйста. А потом ответьте мне на этот комментарий. После этого проверю вашу домашнюю работу и отвечу на вопросы.
CREATE TABLE `news` (
`id` INT NOT NULL AUTO_INCREMENT ,
`author_id` INT NOT NULL ,
`title` VARCHAR(255) NOT NULL ,
`text` TEXT NOT NULL ,
`date` DATE NOT NULL ,
PRIMARY KEY (`id`) ,
UNIQUE (`author_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `news` (
`id` INT NOT NULL AUTO_INCREMENT ,
`author_id` INT NOT NULL ,
`title` VARCHAR(255) NOT NULL ,
`text` TEXT NOT NULL ,
`data` DATETIME NOT NULL ,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE news( idINT NOT NULL AUTO_INCREMENT, Avtor_id INT NOT NULL, Nazv VARCHAR(255) NOT NULL, Text BLOB(2000) NOT NULL, Date DATE NOT NULL,
PRIMARY KEY (id),
UNIQUE (id))
ENGINE=InnoDB DEFAULT CHARSET=utf8;```
пишите здесь ваш код
Нужно оформить код в комментарии (в редакторе комментариев самая первая кнопка).
Нажмите на карандашик и поправьте ваш комментарий, пожалуйста. А потом ответьте мне на этот комментарий. После этого проверю вашу домашнюю работу и отвечу на вопросы.
CREATE TABLE news (
id INT NOT NULL AUTO_INCREMENT,
Avtor_id INT NOT NULL,
Nazv VARCHAR ( 255 ) NOT NULL,
Text BLOB ( 2000 ) NOT NULL,
Date
DATE NOT NULL,
PRIMARY KEY ( id ),
UNIQUE ( id )) ENGINE = INNODB DEFAULT CHARSET = utf8
CREATE TABLE `news` (
`id` INT NOT NULL AUTO_INCREMENT ,
`id_writer` INT NOT NULL ,
`name` VARCHAR(255) NOT NULL ,
`text` MEDIUMTEXT NOT NULL ,
`date` DATE NOT NULL ,
PRIMARY KEY (`id`) ,
UNIQUE (`name`)
) ENGINE=INNODB DEFAULT CHARSET=UTF8;
Вот сделал, а можно посмотреть код, с помощью которого я уже создал таблицу?
CREATE TABLE `news`(
`news_id` INT NOT NULL AUTO_INCREMENT,
`auth_id` INT NOT NULL ,
`name_news` VARCHAR(255) NOT NULL,
`text_news` VARCHAR(255) NOT NULL,
`date_news` DATETIME NOT NULL,
PRIMARY KEY(`news_id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8;
CREATE TABLE `news` (
`id` INT NOT NULL AUTO_INCREMENT ,
`title` VARCHAR(255) NOT NULL ,
`text` VARCHAR(255) NOT NULL ,
`id_author`INT NOT NULL,
`data` DATE NOT NULL,
PRIMARY KEY (`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
И такой вопрос, всегда при входе в вкладку "SQL" в поле "Выполнить SQL-запрос(ы) к таблице" такая строка "SELECT * FROM "users" WHERE 1". Так и должно быть всегда или она как убирается? для чего она?
Спасибо=)
Пожалуйста :D
Спасибо за урок! На сколько актуально уметь работать с помощью этих команд? Ведь все это можно сделать в админ-интерфейсе.
Если вы разработчик, то вам нужно будет писать код, вызывающий эти команды.
на что-то должен опираться данный курс?)просто я прошел курс по HTML,php для начинающих,и в продвинутом курсе наткнулся на MySQL.Что-то ничего не понятно
Что именно непонятно? Этот курс не требует какой-либо предварительной подготовки.
Спасибо,уже разобрался)До этого в php долго залипал,мозги перегрелись,тупанул))
Хорошо) Делайте перерывы
При добавлении данные пишет #1366 - Incorrect string value: '\xD0\x90\xD0\xBB\xD0\xB5...' for column 'name' at row 1
Всё норм,дальше по уроку сделал норм кодировку и всё зашло)
Отлично)
У меня валятся ошибки в MySQL ввожу команду:
GRANT priv_type [(column1, column2, column3)]
ON database.[table]
TO 'user@host' IDENTIFIED BY 'new_password';
получаю
1064 - У вас ошибка в запросе. Изучите документацию по используемой версии MySQL на предмет корректного синтаксиса около '[(column1, column2, column3)]
ON database.[table]
TO 'user@host' IDENTIFIED BY' на строке 1
ввожу
GRANT ALL PRIVILEGES ON users.* TO superuser@localhost IDENTIFIED BY '12345';
Получаю
1064 - У вас ошибка в запросе. Изучите документацию по используемой версии MySQL на предмет корректного синтаксиса около 'IDENTIFIED BY '12345'' на строке 1
Артем, что не так, подскажи пожалуйста?
Ну так данные-то свои надо подставить в запрос! Колонки, бд, данные юзера
Не совсем понял зачем нам нужен INSERT INTO TABLE COLUMNS если любой столбец аналогично мы можем добавить в таблицу через ALTER TABLE ADD, или это для добавления нескольких столбцов сразу ? Спасибо за курс SQL.
Это для добавления записей в таблицу. ALTER - для изменения структуры таблицы
Спасибо за урок.
Написал такой запрос
Ок, только имя автора здесь хранить не нужно, для этого у нас есть табличка users
Артем, спасибо большое за курс, очень все доступно изложено, информация разжеванная Вами заходит отлично, даже для такого нулевого новичка как я.
Обратите внимание, в разделе 'Создание таблиц' наверное опечатка. В примере фигурируют
id
,email
,name
. А в предложении ниже, сразу после примера, уже указанyear
вместоemail
:В нашем примере id, name, year - это имена столбцов.
Не подумайте, я не придираюсь, уверенна это опечатка, обратила Ваше внимание лишь для того, чтоб при возможности устранили чтоб не путаться.
Спасибо! Исправил
Отлично!
А чего все поля КАПСом-то? Для новостей лучше сделать первичным ключом числовой идентификатор. К ним будет обращение выполняться на сайте и в админке через него, и тайтл совсем не удобный вариант для этого.
Поле text лучше смотрелось.
Это для чего? Почему именно в таком сочетании?
В принципе можно оставить только user_id... )
И тогда каждый пользователь сможет добавить только одну статью. Для чего это ограничение?
Воу, исправил... В след. раз постараюсь быть внимательнее)
Теперь норм!
id_news, news_date - не нужно добавлять _news, табличка так называется, и без того понятно, чьи это id и дата публикации.
Привычнее author_id.
Не нужно добавлять к именам полей постфикс _news. Табличка так называется, и так понятно к чему это поле относится.
Вроде при переименовании столбца надо тип данных указывать в конце, иначе ошибку выдает, по крайней мере, у меня
Спасибо за замечание, обновил команду.
По-моему, не обновил. Команда без типа данных
Я обновил саму команду, для rename не требуется тип
Создавал с помощью панели phpMyAdmin
предпросмотр SQL показал:
Почему так? И почему вручную не составил запрос?
Я считаю, что
news
(идентификатор новости) иid
(id автора) лучше задавать целыми числами.Я заблуждаюсь?
Мне кажется вручную дольше и менее наглядно. Принцип написание мне понятен.
К тому что целые числа никаких вопросов нет. Вопрос в том, почему поле с первичным ключём называется news, а какое-то левое - id? Я думал в уроке довольно явно показано что id - это идентификатор сущности в таблице.
если я правильно понял нужно сделать вот так:
Гораздо лучше, только author_id нужно сделать.
исправил:
спасибо
Теперь ок
id автора потеряли
колонки именуются через подчеркивания, а не camelCase-ом
Исправил
Теперь отлично
Отлично!
CREATE TABLE News (
id INT NOT NULL AUTO_INCREMENT,
autor_id INT NOT NULL,
title VARCHAR(255) NOT NULL,
text TEXT NOT NULL,
date DATE NOT NULL,
PRIMARY KEY(id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
Всё отлично, только таблицу нужно назвать с маленькой буквы
Зачем везде приписка news? Это и так понятно по названию таблицы. Нужно убрать. Отсутствует id автора
Подправил
Теперь отлично
Д/З
Супер
Всё отлично, только вместо
author
нужно написатьauthor_id
, так как это ключ другой таблицыПоняла.
id_news - зачем приписка _news везде? Это и так понятно по названию таблицы.
id_author - лучше author_id. Сначала указываем имя таблицы, по которой делаем связь, затем имя столбца.
Исправил командами через командную строку,
НО
команды, приведенные в уроке не работают:
Вот так не сработало:
ALTER TABLE имя_таблицы RENAME COLUMN старое_имя_столбца TO новое_имя_столбца; - пишет что не хватает какой-то запятой
Сработало вот так
ALTER TABLE
news
CHANGEdate_news
date
DATE NOT NULLКоманда появилась в MySQL 8
Зачем везде приписка news? Это и так понятно по названию таблицы. Нужно убрать.
Не avtor_id, а author_id, привыкайте использовать английские выражения.
В качестве ПК должен быть ID.
Спасибо большое за урок
news_id - зачем добавили news? Так таблица называется, и так понятно, для чего это поле.
Один человек может написать только одну статью? Зачем такое ограничение?
Разобралась с UNIQUE, это ограничение не нужно
Отлично!
Скажите, пж, а зачем при создании таблицы указывать кодировку, если мы ее указали при создании самой БД?
Приветствую. Ответ в документации https://dev.mysql.com/doc/refman/8.0/en/charset-table.html
Отлично
Запрос падает с ошибкой.
Почему все поля кроме id - nullable?
Почему имена столбцов и таблицы с большой буквы? Да и вообще всех слов, почему всё пляшет? Приведите к единому формату.
Для чего к полям добавили префикс News_? Это таблица новостей, и без него понятно.
Зачем везде приписка news? Это и так понятно по названию таблицы. Нужно убрать.
data of publication - должны быть подчеркивания вместо пробелов. И не data, а date. Data - это данные. Рекомендую пользоваться на первых порах google translate, если нет уверенных знаний в английском)
Добрый день. При создании таблицы использую кавычки ' ( буква Э) - sql выдает синтаксическую ошибку.Но когда копирую ваши кавычки и вставляю в свою таблицу -все ок. Что не так с моими кавычками?
Это наклонные кавычки, рядом с тильдой обычно расположены
Все , разобралась со своими кавычками. Я нажимала букву Э , а надо было Ё.Нужная кавычка была под буквой Ё.Спасибо всем кто помог)
Подскажите, пожалуйста, почему на уроке мы задаём имя таблицы и название полей в кавычках, а в OpenServer это считается ошибкой и нужно писать без?
И еще один вопрос) Я имя своего профиля поменял на нормальное, а в комментариях пока ещё вижу своё старое имя. Подскажите, мне уже ни как не избавиться от ошибочно внесенного имени?)))
А где в опенсервере вы нашли редактор SQL-запросов?)
Имя в комментариях обновляется со временем.
Здесь, принскрин во вложении, опенсервер ругается на кавычки
А тут, где в названиях полей нет кавычек, опенсервис не выдает ошибку и создаёт таблицу
Это не опенсервер, это phpMyAdmin)
У вас не те кавычки используются. Нужны ` а у вас '
Спасибо большое за комментарий! Понял свою ошибку)
Зачем везде приписка news? То, что поле относится к новостям понятно по названию таблицы. Приписку _news нужно убрать.
Спасибо, на будущее буду убирать!)
Добрый день! Спасибо!
Нужно оформлять код в комментарии (в редакторе комментариев самая первая кнопка).
В остальном всё хорошо
Нужно сохранять id автора, будьте повнимательнее
Отлично! Можно просто name, даже нужно. И с датой тоже. Потому что и так понятно к чему эти поля относятся - табличка называется news
Спасибо!
CREATE table
news
(id
int auto_increment,id_author
varchar(255) not null,news_title
varchar(255) not null,news_text
text not null,create_date
date not null,primary key (
id
)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Нужно оформить код в комментарии (в редакторе комментариев самая первая кнопка).
Нажмите на карандашик и поправьте ваш комментарий, пожалуйста. А потом ответьте мне на этот комментарий. После этого проверю вашу домашнюю работу и отвечу на вопросы.
Для чего префикс news?
Ага)
CREATE TABLE
news
(id
INT NOT NULL AUTO_INCREMENT ,name
VARCHAR(255) NOT NULL ,text
TEXT NOT NULL ,PRIMARY KEY (
id
),) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Нужно оформить код в комментарии (в редакторе комментариев самая первая кнопка).
Нажмите на карандашик и поправьте ваш комментарий, пожалуйста. А потом ответьте мне на этот комментарий. После этого проверю вашу домашнюю работу и отвечу на вопросы.
Задание 1. Создать таблицу news.
Для чего сделали ограничение чтобы у одного автора могла быть только одна статья?
Понял свою ошибку, спасибо за поправку)
Пожалуйста
Отлично
CREATE TABLE
news
(id
INT NOT NULL AUTO_INCREMENT,Avtor_id
INT NOT NULL,Nazv
VARCHAR(255) NOT NULL,Text
BLOB(2000) NOT NULL,Date
DATE NOT NULL,PRIMARY KEY (
id
),UNIQUE (
id
))ENGINE=InnoDB DEFAULT CHARSET=utf8;```
пишите здесь ваш код
Нужно оформить код в комментарии (в редакторе комментариев самая первая кнопка).
Нажмите на карандашик и поправьте ваш комментарий, пожалуйста. А потом ответьте мне на этот комментарий. После этого проверю вашу домашнюю работу и отвечу на вопросы.
Почему имена столбцов с большой буквы?
Зачем разнесли на 2 строки?
Используйте английский язык для нейминга, вот так:
не пишут
id_writer нужно заменить на writer_id, сначала пишется к чему id относится
authorid - разделяйте слова с помощью подчеркушек - author_id
Вот сделал, а можно посмотреть код, с помощью которого я уже создал таблицу?
И такой вопрос, всегда при входе в вкладку "SQL" в поле "Выполнить SQL-запрос(ы) к таблице" такая строка "SELECT * FROM "users" WHERE 1". Так и должно быть всегда или она как убирается? для чего она?
Просто дефолтный запрос для выборки данных
Артем, привет, сейчас по дефолту кодировка utf8mb4_general_ci?
Привет! Да