
- •Типы данных столбцов
- •Пример:
- •То автоматически генерируется уникальный id (то же, если поле id вообще не указывать в команде вставки).
- •Обычно, следует выполнять select для set-столбца, используя оператор like или функцию find_in_set():
- •Но и такая форма также работает:
- •'Yyyy-mm-dd',yy-mm-dd' Например '98-12-31', "98.12.31', '98/12/31'
- •Describe messy # Описать таблицу 'messy'
- •Например, drop table people, animals, plants удалит эти три таблицы. Drop table oh_no, help_me, dont_do_it # Удалить таблицы 'oh_no', 'help_me' и 'dont_do_it'
- •Например, можно указать следующее:
- •Но нельзя указать:
- •Например:
- •Быстрая загрузка данных
- •Синтаксис оператора truncate
- •Примеры:
- •(Например, select name from people; select mydata.People.Name from people ).
- •Подзапросы -- Язык sql разрешает использовать в других операторах языка dml подзапросы, которые являются внутренними запросами, определяемыми оператором select.
- •Применение подзапросов в операторах изменения данных
- •Демонстрируется использование mysql в качестве несложного калькулятора:
- •Проверка таблицы при помощи команды describe:
- •Выборка всех данных
- •Выборка определенных строк. Выборка с условием Из таблицы можно выбрать и только нужные строки, если надо проверить правильность внесенных в дату рождения собаки Bowser изменений:
- •В условиях может указываться любой из столбцов:
- •Условия можно и комбинировать, например для того, чтобы выделить всех собак женского пола:
- •В предыдущем запросе использован оператор and. Существует еще и оператор or:
- •Операторы and и or можно использовать совместно.
- •Выборка определенных столбцов Достаточно просто перечислить имена нужных столбцов, разделив их запятыми.
- •Получить имена владельцев животных можно с помощью следующего запроса:
- •Сократить количество выводимых строк можно, воспользовавшись ключевым словом distinct - тогда будут выводиться только уникальные записи:
- •При помощи выражения where можно комбинировать выбор строк и столбцов. Например для того, чтобы загрузить даты рождения только кошек и собак, можно воспользоваться следующим запросом:
- •Сортировка строк Для этого используется выражение order by.
- •Предположим, нужно узнать, в каком возрасте животные давали приплод:
- •В этом запросе мы указываем псевдонимы имен таблицы, для обращения к столбцам и определения, к какой из таблиц относится каждая ссылка на столбец.
- •Сортировку можно проводить по нескольким столбцам сразу.
- •Отсортировать результаты по возрасту также можно при помощи выражения order by:
- •Этот запрос подсчитывает, сколько различных дней входит в данную комбинацию год/месяц, автоматически исключая дублирующиеся значения.
Синтаксис оператора truncate
TRUNCATE TABLE table_name
TRUNCATE TABLE имеет следующие отличия от DELETE FROM ...:
Эта операция удаляет и воссоздает таблицу, что намного быстрее, чем поочередное удаление строк.
Операция является нетранзакционной; если одновременно выполняется транзакция или активная блокировка таблицы, то можно получить ошибку.
Не возвращает количество удаленных строк.
Пока существует корректный файл table_name.frm, таблицу можно воссоздать с его с помощью, даже если файлы данных или индексов повреждены.
TRUNCATE является расширением Oracle SQL.
mysqlimport, импорт данных из текстовых файлов
Можно также загружать файлы данных, используя утилиту mysqlimport. Эта утилита выполняет загрузку файлов путем посылки на сервер команд LOAD DATA INFILE. Опция --local заставляет mysqlimport читать файлы данных с клиентского хоста. Можно указать параметр --compress, чтобы получить лучшую производительность при работе через медленные сети, если и клиент, и сервер поддерживают протокол сжатия данных.
Утилита mysqlimport обеспечивает интерфейс командной строки для SQL-оператора LOAD DATA INFILE. Большинство параметров mysqlimport полностью соответствует аналогичным параметрам для оператора LOAD DATA INFILE.
mysqlimport [параметры] database textfile1 [textfile2 ...]
Для каждого текстового файла, указанного в командной строке, mysqlimport удаляет расширение в каждом имени файла и использует его, чтобы определить, в какую таблицу занести содержимое. Например, файлы с именами patient.txt, patient.text и patient должны быть все занесены в таблицу с именем patient.
Утилита mysqlimport поддерживает следующие опции:
-c, --columns=... список разделенных запятыми имен полей. Данный список полей используется для создания соответствующей команды LOAD DATA INFILE, которая затем посылается в MySQL.
-#, --debug[=option_string] Отслеживать прохождение программы (для отладки).
-d, --delete Удалить данные из таблицы перед импортированием текстового файла.
--fields-terminated-by=... , --fields-enclosed-by=... , --fields-optionally-enclosed-by=... , --fields-escaped-by=... , --lines-terminated-by=... Эти опции аналогичны соответствующим операторам для LOAD DATA INFILE.
-h host_name, --host=host_name Импортировать данные в MySQL-сервер на указанном хосте. Значение хоста по умолчанию - localhost.
-l, --lock-tables Заблокировать все таблицы для записи перед обработкой любых текстовых файлов. Это обеспечивает синхронизацию всех таблиц на сервере.
-L, --local Читать входящие файлы из клиента. По умолчанию предполагается, что текстовые файлы расположены на сервере при подсоединении к localhost (значение хоста по умолчанию).
-pyour_pass, --password[=your_pass] Используемый пароль при подключении к серверу. Если аргумент =your_pass не введен, mysqlimport предложит ввести пароль.
-P port_num, --port=port_num Номер порта TCP/IP, используемого для подсоединения к хосту.
-r, --replace и --ignore управляют обработкой поступающих на вход записей, которые дублируют имеющиеся записи по значениям уникальных ключей. Если задано значение --replace, новые строки заменяют существующие с тем же самым значением уникального ключа. Если задано значение --ignore, входные строки, которые дублируют существующую строку по значению уникального ключа, пропускаются. Если же ни одна из опций не задана, то при обнаружении ключа-дубликата возникает ошибка и остаток текстового файла игнорируется.
-s, --silent Режим молчания. Выводить только сообщения об ошибках.
-u user_name, --user=user_name Имя пользователя MySQL-сервера, используемое при подсоединении к серверу.
-v, --verbose Расширенный режим вывода. Вывод более детальной информации о работе программы.