mysql клиент (CLI).

Наиболее популярная клиентская программа для работы с MySQL –  mysql, простейший SQL shell.

Рассмотрим примеры ее использования.

Стандартная форма запуска:

shell> mysql -u<username> -p<password>

-u<имя пользователя> (или –username=<имя пользователя>). После ключа -u может стоять или отсутствовать пробел.

-p<пароль> (или –password=<пароль>) После ключа -p также может быть пробел. Если ввести ключ -p, не указав пароль, то пароль нужно будет ввести в отдельном приглашении.

Запуск с SQL выражением:

shell> mysql -u<username> -p<password> -e “<statement>”

Запуск с дополнительным файлом параметров:

shell> mysql –defaults-file=file_name . . .

Перенаправить вывод в файл:

shell> mysql . . . -e “<statement>” > file_name

Выполнить SQL команды, содержащиеся в файле file_name.sql:

shell> mysql . . .  < file_name.sql

Опция Safe Updates.

Удобная опция для начинающих пользователей. Защищает от случайного выполнения таких потенциально опасных команд, как UPDATE и DELETE, выполненных без условий WHERE или LIMIT по всей таблице. Кроме того данная опция ограничивает вывод команды SELECT.

Чтобы использовать эту опцию, необходимо добавить –safe-updates при запуске клиента mysql:

shell> mysql . . . –safe-updates

После этого выполнить UPDATE или DELETE будет возможно только, если в конструкции WHERE будет задаваться какое-то условие по полю таблицы, на которое создан констрейнт, либо задано ограничение с помощью конструкции LIMIT.

Например:

UPDATE table1 SET not_key_col=val WHERE key_col=val;
UPDATE table1 SET not_key_col=val LIMIT 1;

В противном случае мы получим ошибку:

You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column. To disable safe mode, toggle the option …

Кроме того данная опция ограничивает:
– максимальное количество строк при выборке из  одной таблицы (команда SELECT) значением 1000 строк;
– не позволит сделать выборку (SELECT) из нескольких таблиц, если запрос должен вернуть более 1 000 000 строк.

 

Leave a Reply

Your email address will not be published. Required fields are marked *