mysql - цитировать числа или нет?

Например - я создаю базу данных и таблицу из 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 как строки?

Является ли такое поведение стандартным для разных СУБД?

Спасибо!

45
задан Stann 21 July 2011 в 19:58
поделиться