Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > ЧАВО


Автор: GoodBoy 4.11.2004, 16:19
  • http://forum.vingrad.ru/index.php?showtopic=33673&view=findpost&p=249325
  • http://forum.vingrad.ru/index.php?showtopic=33673&view=findpost&p=249391

Автор: GoodBoy 4.11.2004, 16:38
Вот здесь находится MySQL 4.1 - Generally Available (GA) release (recommended)
http://dev.mysql.com/downloads/mysql/4.1.html
Выбираете нужную Вам ОС и качаете инсталляцию.

Автор: GoodBoy 4.11.2004, 17:50
Справочное руководство по MySQL:
  • http://dev.mysql.com/doc/mysql/en/
  • http://dev.mysql.com/doc/mysql/ru/
  • http://dev.mysql.com/get/Downloads/Manual/manual.zip/from/pick
  • http://dev.mysql.com/get/Downloads/Manual/manual.ru.zip/from/pick

Автор: Ignat 27.7.2006, 09:43
Кодировки.

В последнее время часто возникает вопрос, связанный с кодировками. Что-то куда-то неправильно вносится, неправильно отображается.
Как правило, все решение сводится к установке в переменных окружения кодировки, в которой работает MySQL.
Код

-- Например, работая из коммандной строки DOS:
mysql> SET NAMES cp866;

-- из ПО, которое отображает в windows-1251:
mysql> SET NAMES cp1251;


Естественно, не надо забывать про кодировку таблиц. Если вы планируете хранить в полях таблицы русскоязычные символы, то лучше выставить кодировку cp1251 либо utf8.

Код

CREATE TABLE `table`(

.....

) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
 

Автор: Ignat 9.8.2006, 10:41
Cинтаксис запросов.
Точнее, камни преткновения в синтаксисе.

1. Имена полей и таблиц:
Все имена рекомендуется брать в обратные апострофы "`", это необходимо во избежание конфликта имён и ключевых слов.
Например, если поле называется "set", то запросе

Код

SELECT set FROM simple_table;


есть синтаксическая ошибка, в то время как, запрос:

Код

SELECT `set` FROM `simple_table`;


синтаксически корректен. Конечно, в голову не придет называть поле ключевым словом, однако предугадать развитие MySQL мы не в силах и запрос вполне правильный в одной версии, в последствии может оказаться ошибочным.

Код

SELECT trigger FROM simple_table;


Этот запрос так замечательно работающий на 4-ой версии, при апгрейде до 5-ой перестанет работать - "trigger" стало зарезервированным словом. Поэтому следует всегда заключать имена в апострофы.


2. JOIN  и имена таблиц.

Зачастую, программисты предпочитают опускать имена таблиц, если имя поля недвусмысленно указывает на конкретное поле в конкретной таблице.

Код

SELECT `category`, `item` FROM
`first` AS `a`
LEFT JOIN
`second` AS `b`
USING ( `some_column` );


Глядя на запрос, вы можете сказать, в какой таблице находится поле `category`? Я - нет =) А если запрос из семи таблиц? А вдруг при модификации БД поле `item` окажется в двух таблицах?
В запросе возникнет неоднозначность имени, о чем сервер не преминет напомнить возвратом ошибки. Таким образом этот запрос должен выглядеть так:

Код

SELECT `a`.`category`, `b`.`item` FROM
`first` AS `a`
LEFT JOIN
`second` AS `b`
USING ( `some_column` );



3. Регистр
Исторически сложилось, что ключевые слова SQL пишут в верхнем регистре, а имена в нижнем. Такой подход очень удобен для чтения запросов.

Код

Update `Tablename` Set `Field` = 'Value';


Не смотря на абсолютно верную запись, запрос воспринимается плохо - возникает необходимость акцентировать свое внимание на кавычках. А запрос

Код

UPDATE `tablename` SET `field` = 'Value';


хорошо читабелен даже без подсветки.



PS Тема синтаксиса будет рассматриваться еще.
PPS Об ошибках и неточностях, пожалуйста пишите в ПМ.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)