|
Программирование >> Программный интерфейс приложений
ш Преобразование типа таблицы. Предположим, что вы перешли на новую версию СУБД MySQL (с 3.22 на 3.23 или выше). Все таблицы базы данных были созданы в формате isam. Их нужно преобразовать в формат MylSAM. Для этого вьшолните следующее: ALTER TABLE tbl name TYPE = MYISAM Зачем это делать? Одна из причин была уже описана в разделе Создание и удаление индексов , раньше в этой главе. Она заключается в том, что метод MylSAM лучше проявляет себя при индексировании и позволяет индексировать по столбцам, содержащим пустые значения, и по столбцам типа blob и text. Другой причиной является то, что таблицы формата MylSAM машинно-независимы, и их можно переносить прямым копированием, даже если машины имеют различную аппаратную конфигурацию. Эта тема будет затронута в главе 11, Общее администрирование MySQL . Получение информации о базах данных и таблицах Познакомимся с несколькими операторами, позволяющими получить информацию о базах данных и таблицах. Они полезны для отслеживания структуры базы данных, особенно для предварительного просмотра свойств столбцов таблицы перед внесением изменений в их структуру с помощью оператора alter table. Для получения самой разноплановой информации о базе данных и таблицах можно воспользоваться оператором show.
Операторы describe tbl name и explain tbl name являются синонимами оператора show columns from tbl name. Кроме того, с помощью команды mysqlshow можно получать аналогичную информацию о базе данных и таблицах прямо из оболочки UNIX.
Утилита mysqldump также позволяет просматривать структуру таблиц в формате оператора CREATE TABLE. (При сравнении результатов работы этого оператора и оператора SHOW COLUMNS, автор обнаружил, что листинг профаммы mysqldump читается легче и более полно отображает состав индекса.) Но при использовании mysqldump вызывайте его с ключом --по - data, чтобы случайно не получить дамп всей таблицы. % mysqldump -- по - data db name tbl name Для команд mysqldump и mysqlshow может понадобиться определить обычные опции, такие, например, как - - host, для подключения к другому серверу. Выборка записей Зачем же вводить данные в базу, если не для их выборки и последующей обработки? Для этого и предназначен оператор SELECT. Возможно, это самый популярный оператор языка SQL, но верно и другое. Это самый сложный оператор языка SQL. Основной синтаксис оператора SELECT выглядит следующим образом.
в синтаксисе этого оператора является обязательным только слово select и columnlist, определяющее перечень выбираемых столбцов. Для некоторых баз данных слово from тоже является обязательным. О СУБД MySQL этого сказать нельзя. Это позволяет вычислять выражения, не обращаясь к таблицам: SELECT SQRT(PGW(3,2)+PGW(4,2)) В главе 1, Знакомство с СУБД MySQL и SQL , при рассмотрении синтаксиса оператора select упор был сделан в основном на списке выборки, предложениях where, group by, order by, having и limit. В этой главе мы сконцентрируем основное внимание на наиболее сложном аспекте оператора select - на объединении: т.е. какие типы объединения поддерживает СУБД MySQL, что они делают и как они определяются. Это поможет научиться эффективнее использовать СУБД MySQL потому, что самой серьезной задачей при написании сложного запроса выборки является определение правильного варианта объединения таблиц. Далее в этой главе читатель может просмотреть раздел Разные решения . Там вы найдете решения некоторых проблем, многие из которых требуют применения всех возможностей оператора select. Основной нюанс, с которым часто сталкиваются при разработке запросов SQL, заключается в том, что при возникновении проблемы не всегда можно легко найти ее решение. Но после того, как выход найден, его можно использовать для решения подобных проблем в будущем. Оператор select как раз и является оператором такого типа. Для эффективной работы с ним накопленный опыт играет существенную роль, просто из-за того, что все пути эффективного использования его вам известны. По мере накопления опыта читателю будет проше находить пути решения новых задач. Вы уже будете ловить себя на мысли, что это просто решается с помощью конструкции left join или это объединение ограничено общей парой ключевых столбцов. (Я, конечно, не беру на себя полной ответственности утверждать, что будет именно так. Но мысль о том, что опыт, накопленный в ходе практической работы, пригодится вам в будущем, будет вам утешительна.) В трех последующих разделах мы рассмотрим использование всех форм объединения, которые поддерживает СУБД MySQL. В примерах будут использованы две небольшие таблицы. table tl table t2 +-+-+ 1 I a 2 I b 3 I с
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |