Например, я создаю базу данных и таблицу из cli и вставляю некоторые данные:
CREATE DATABASE testdb CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
USE testdb;
CREATE TABLE test (id INT, str VARCHAR(100)) TYPE=innodb CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
INSERT INTO test VALUES (9, 'some string');
Теперь я могу это сделать, и эти примеры работают (так что кавычки ничего не влияют):
SELECT * FROM test WHERE id = '9';
INSERT INTO test VALUES ('11', 'some string');
Итак, в этих примерах я выбрал строку с помощью строки , которая фактически хранится как INT в mysql, а затем я вставлял строку в столбце, который является INT.
Я не совсем понимаю, почему это работает так, как это работает здесь. Почему строка разрешена для вставки в столбец INT?
Можно ли вставить все типы данных Mysql в виде строк?
Является ли это стандартом поведения для разных РСУБД?
спасибо!