Программирование >>  Программный интерфейс приложений 

1 ... 59 60 61 [ 62 ] 63 64 65 ... 264


ш Преобразование типа таблицы. Предположим, что вы перешли на новую версию СУБД MySQL (с 3.22 на 3.23 или выше). Все таблицы базы данных были созданы в формате isam. Их нужно преобразовать в формат MylSAM. Для этого вьшолните следующее:

ALTER TABLE tbl name TYPE = MYISAM

Зачем это делать? Одна из причин была уже описана в разделе Создание и удаление индексов , раньше в этой главе. Она заключается в том, что метод MylSAM лучше проявляет себя при индексировании и позволяет индексировать по столбцам, содержащим пустые значения, и по столбцам типа blob и text. Другой причиной является то, что таблицы формата MylSAM машинно-независимы, и их можно переносить прямым копированием, даже если машины имеют различную аппаратную конфигурацию. Эта тема будет затронута в главе 11, Общее администрирование MySQL .

Получение информации о базах данных и таблицах

Познакомимся с несколькими операторами, позволяющими получить информацию о базах данных и таблицах. Они полезны для отслеживания структуры базы данных, особенно для предварительного просмотра свойств столбцов таблицы перед внесением изменений в их структуру с помощью оператора alter table.

Для получения самой разноплановой информации о базе данных и таблицах можно воспользоваться оператором show.

SHOW

DATABASES

Перечень баз данных на сервере

SHOW

TABLES

Перечень таблиц в текущей базе данных

SHOW

TABLES FROM db name

Перечень таблиц в указанной базе данных

SHOW

COLUMNS FROM tbl name

Отображение информации о столбцах в указанной таблице

SHOW

INDEX FROM tbl name

Отображение информации об индексах в указанной таблице

SHOW

TABLE STATUS

Отображение описательной информации 0 таблицах в текущей базе данных

SHOW

TABLE STATUS FROM db name

Отображение описательной информации 0 таблицах в указанной базе данных

Операторы describe tbl name и explain tbl name являются синонимами оператора show columns from tbl name.



Кроме того, с помощью команды mysqlshow можно получать аналогичную информацию о базе данных и таблицах прямо из оболочки UNIX.

% mysqlshow

Перечень баз данных на сервере

% mysqlshow db

name

Перечень таблиц в указанной базе данных

% mysqlshow db

name tbl name

Отображение информации о столбцах в указанной таблице

% mysqlshow --

tbl name

keys db name

Отображение информации об индексах в указанной таблице

% mysqlshow --

status db name

Отображение описательной информации 0 таблицах в указанной базе данных

Утилита mysqldump также позволяет просматривать структуру таблиц в формате оператора CREATE TABLE. (При сравнении результатов работы этого оператора и оператора SHOW COLUMNS, автор обнаружил, что листинг профаммы mysqldump читается легче и более полно отображает состав индекса.) Но при использовании mysqldump вызывайте его с ключом --по - data, чтобы случайно не получить дамп всей таблицы.

% mysqldump -- по - data db name tbl name

Для команд mysqldump и mysqlshow может понадобиться определить обычные опции, такие, например, как - - host, для подключения к другому серверу.

Выборка записей

Зачем же вводить данные в базу, если не для их выборки и последующей обработки? Для этого и предназначен оператор SELECT. Возможно, это самый популярный оператор языка SQL, но верно и другое. Это самый сложный оператор языка SQL.

Основной синтаксис оператора SELECT выглядит следующим образом.

SELECT selection list

Перечень выбираемых столбцов

FROM table list

Откуда производить выборку

WHERE primary constraint

Каким условиям должен удовлетворять

запрос

GROUP BY grouping columns

Каким образом результаты группируются

ORDER BY sorting columns

Каким образом результаты сортируются

HAVING secondary constraint

Вторичные условия, которым должны

удовлетворять строки

LIMIT count

Диапазон отображаемых строк

Часть 1. Использование СУБД MySQL



в синтаксисе этого оператора является обязательным только слово 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 с

1 i2

c2 1

1 2

с 1

1 3

b 1

1 4 +--

a 1



1 ... 59 60 61 [ 62 ] 63 64 65 ... 264

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика