Доступ к готовым решениям

Переход в группу "Пользователь"

300.00
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

FAQ Команды MySQL

Alex_Bardakov

Изучающий
Пользователь
Регистрация
18 Фев 2015
Сообщения
542
Лучшие ответы
0
Репутация
106
Статья была взята из тех. Документации к MySQL

Консоль MySQL позволяет вводить как инструкции SQL, так и служебные команды MySQL, предназначеные для администрирования и использования таблиц в базах данных MySQL. К основным командам относятся SHOW, USE и CREATE.
Рассмотрим каждую из них отдельно.
SHOW
Материал взят из документации к MySql и СУБД


Эта команда предназначена для просмотра доступных баз данных и таблиц в конкретных базах данных. Для просмотра списка баз данных необходимо ввести такую команду:
PHP:
SHOW DATABASES;
Если, например, существуют две базы данных — mysql и test (эти две базы как правило создаются автоматически при инсталляции сервера), то MySQL ответит примерно так:
PHP:
+----------+|Database|+----------+| mysql    || test     |+----------+
Для просмотра списка таблиц используется эта же команда в таком виде:
PHP:
SHOW TABLES;
Эта команда выдаст список таблиц в текущей базе данных:
PHP:
+-----------------+|Tablesin mysql |+-----------------+| test            || mysql           |+-----------------+
Замечание: вы можете работать только с одной базой данных в одно и то же время, поэтому в приведенном выше примере нет нужды указывать название базы данных, список таблиц которой стоит вывести, поскольку производится поиск в активной на данный момент базе.
CREATE

Эта команда позволяет создавать новые базы данных. Как было сказано выше, по умолчанию сервер создает две базы данных — mysql и test. Для удобства стоит создавать новую базу данных для каждой отдельной задачи, потому что легче работать с набором таблиц, которые связаны между собой (даже если эта связь только смысловая). Создадим новую базу данных при помощи этой команды:
PHP:
CREATE DATABASE staff
После этой операции будет создана новая база данных не содержащая никаких таблиц, а команда SHOW DATABASES выдаст следующее:
PHP:
+----------+|Database|+----------+| mysql    || test     || staff    |+----------+
USE

Как уже было сказано выше, в один и тот же момент только одна база данных может быть активна. Команда USE служит для выбора этой активной базы. Для перехода к некоторой базе данных необходимо выполнить следующую операцию:
PHP:
USE staff
Стоит отметить, что при создании новой базы данных (см. выше), новая база не становится активной автоматически — для ее использования необходимо сделать это самостоятельно.
SQL

Нижеследующее ознакомит вас с методами извлечения и занесения данных в таблицы при помощи языка SQL.
Просмотр данных
Наипростейшей командой является следующая:
PHP:
SELECT * FROM mysql;
Эта команда подразумевает, что в активной базе данных существует таблица mysql, из которой она просто извлекает все данные и выводит их на экран.
Замечание: На SQL-команды распространяется одно ограничение, которое не имеет отношения к командам MySQL — инструкции SQL обязательно должны заканчиваться точкой с запятой. Это позволяет вводит многострочные запросы к бызе данных, что не требуется для MySQL-команд, которые как правило лаконичные и короткие.
Как вы уже наверное поняли, команда SELECT служит для просмотра данных таблиц. Ее упрощенный синтаксис таков:
PHP:
SELECT <списокполей> FROM <списокназванийтаблиц>[WHERE <списокусловий>][ORDER BY <списокполей>];
В списке поля может быть как один элемент, так и несколько; кроме того возможно указание символа «*» (), который говорит, что следует показать все поля таблицы.
Часть WHERE … является необязательной и позволяет выбрать из таблицы строки, удовлетворяющие определенному(ым) условию(ям). Раздел ORDER BY … служит для сортировки полученных данных по определенным полям.
Вот пример более сложного запроса, демонстрирующий сказанное выше. Допустим таблица staff содержит информацию о сотрудниках некоторой организации. Этот запрос находит записи о тех из них, кто работает больше двух лет и кого не зовут Иваном.
PHP:
SELECT name, project, works_sinceFROM staffWHEREname >'Иван' ANDworks_since '1998-04-26';
Рассмотрим этот запрос
Первая строка велит MySQL показать содержимое только полей name, project и works_since. Вторая строка указывает на таблицу, в которой следует искать эти данные. Оставшаяся часть запроса указывает критерии выбора — имя не должно быть ‘Иван’, а дата быть более ранней, чем 26-е апреля 1998-го года. Вот пример вывода после такой операции:
PHP:
+----------+--------------+-------------+| name     | project      | works_since |+----------+--------------+-------------+|Fred|Secret data  |1997-01-01||Jonathan|Blue apples  |1997-06-01|+----------+--------------+-------------+
Для показа данных одного поля может использоваться такой запрос:
PHP:
SELECT project FROM staff ORDER BY project;
+-------------+| project     |+-------------+|Blue apples ||Blue apples ||Cornichons||Secret data ||Secret data ||Secret data |+-------------+
Как видите, этот запрос просто выбирает значения из нужного поля из каждой строки и выводит их, заодно сортируя по (единственному) полю project, поэтому в результатах встречаются повторения. Для устранения их используется инструкция DISTINCT:
PHP:
SELECT DISTINCT project FROM staff ORDER BY project;
+-------------+| project     |+-------------+|Blue apples ||Cornichons||Secret data |+-------------+
SQL позволяет производить некоторые вычисления и получать некоторую описательную информацию при помощи агрегатных функций. Среди этих функций — COUNT, SUM, MAX, MIN и AVG:
COUNT — вычисляет количество найденых строк;
SUM — находит сумму значений в найденых строках;
MAX — находит найбольшее среди найденых значений;
MIN — находит наименьшее среди найденых значений;
AVG — находит среднее значение от найденых .
Используются эти функции как элементы списка таблиц в запросе с аргументом — названием поля. Вот несколько примеров.
PHP:
SELECT COUNT (project) FROM staff;SELECT MAX (projects_done) FROM staff;SELECT AVG (project_done) FROM staff
Эти запросы находят количество выполняемых проектов, наибольшее количество проектов, выполняемое одним человеком и среднее количество проектов, в которых участвуют работники соответственно.
SQL также располагает средствами работы с регулярными выражениями (работе с которыми в Perl вы можете ознакомиться, прочтя соответствующую статью на нашем сайте).
Для сравнения значения с регулярным выражением используется оператор LIKE, а для конструирования простеших выражений — символы ‘_’ (произвольный символ) и ‘%’ (произвольное количество произвольных символов). Пример. Этот запрос находит все имена, которые начинаются с ‘Jo’:
PHP:
SELECT name FROM staffWHERE name LIKE 'Jo%n';
+----------+| name     |+----------+|Jonathan||John|+----------+
MySQL также позволяет производить более развитое сравнение с шаблоном при помощи оператора REGEXP и средств построения шаблона теми же методами, что используются в Perl (см. Регулярные выражения в Perl).
PHP:
SELECT name, project FROM staffWHERE project REGEXP "[bB]";
Этот запрос выведет все строки, в которых название проекта содержит букву ‘b’ вне зависимости от регистра.
И последнее по порядку, но не по значению — использование более чем одной таблицы. Особенность заключается в том, что используемые таблицы могут иметь общие поля, которыми они связаны.
Для того, чтобы точно указывать, о поле какой таблицы идет речь, используется запись типа staff.project, где перед точкой стоит название таблицы, а после нее — название поля. Второй вариант — назначения псевдонимов (алиасов) таблицам для большего удобства. Для этого в списке таблиц название каждой таблицы указывается вместе с псевдонимом — например stuff x, projects y.
PHP:
SELECT x.name, x.project, x.descriptionFROM staff x, projects xWHEREx.project = x.project_name;
В этом примере объединяются таблицы staff и projects, причем выводятся имя сотрудника, проект над которым он работает и описание этого проекта.
PHP:
+----------+-------------+------------------------------+| name     | project     | description                  |+----------+-------------+------------------------------||Jonathan|Blue apples |Worldwide apple distribution ||Fred|Secret data |Secret data                  ||John|Secret data |Secret data                  |+----------+-------------+------------------------------+
Объединив все это в один запрос получим следующее:
PHP:
SELECT DISTINCT y.project_name, y.description, COUNT(x.name), FROM staff x, projects yWHEREy.project_name = x.project ANDy.project_name >'Secret data' ANDy.project_name LIKE "Wo__d%"ORDER BYproject_name;
PHP:
+--------------+--------------------------+-------------+| project_name | description              | COUNT(name)|+--------------+--------------------------+-------------+|Blue apples  |Worldwide apple delivery |3|+--------------+--------------------------+-------------+
Этот запрос показывает названия проектов, описания их и количество сотрудников, которые заняты в них для тех проектов, которые не являются секретными и описания которых начинаются с ‘Wo’, следом за которыми идут еще два символа, после чего — ‘d’ и дальше что угодно, и сортирует единственное значение по полю project_name.
Редактирование данных

Редактирование данных — это добавление, удаление и изменение их. Для выполнения этих операций используются команды INSERT, DELETE и UPDATE соответственно.
Команда INSERT служит для вставки строк в таблицы. Вот как может выглядеть такой запрос:
PHP:
INSERT INTO staff VALUES ("Robert","1980-05-07","2000-04-26","$100","Secret data");
Возможна также вставка отдельных значений. В таком случае необходимо указать, в какие поля стоит вставлять данные, причем оставшиеся поля будут незаполнены — при выполнении запросов SELECT они будут представлены как NULL — специальное начение, означающее, что данное отсутствует.
PHP:
INSERT INTO staff(name, date_of_birth) VALUES ("Jack","1977-07-29");SELECT * FROM staffWHERE name ="Jack";
PHP:
+------+---------------+-------------+---------+---------+| name | date_of_birth | works_since | project | sallary |+------+---------------+-------------+---------+---------+|Jack|1997-07-29| NULL        | NULL    | NULL    |+------+---------------+-------------+---------+---------+
Удаление данных производится командой DELETE. Для этого нужно указать таблицу и (необязательно) условия, которым должны удовлетворять строки, которые следует удалить. Если условия опущены, эта команда, как и SELECT, проделает эту операцию надо всеми строками — то есть очистит таблицу.
PHP:
DELETE FROM staffWHEREname ="Jack";
Изменение данных производится при помощи команды UPDATE. Необходимо указать, значения каких полей следует изменить, а также (опять же необязательно) условия, которым должны удовлетворять строки, которые следует обновить.
PHP:
UPDATE staffSETworks_since ="2000-04-26"sallary ="$200"project ="Secret data"WHEREname ="Jack";
Этот запрос устанавливает дату принятия на работу, зарплату и название проекта всем Джекам, которые находятся в базе данных.
Это небольшая часть языка SQL, необходимая для работы с MySQL, в частности при программировании для Web. Для более полной информации обратитесь к официальным спецификациям SQL или к документации MySQL.
Примечание для тех, кто знаком со стандартом ANSI SQL 92: на данный момент MySQL поддерживает укороченную версию этого стандарта, в которую не входит выполнения подзапросов а также некоторые другие функции.
 
Последнее редактирование:
Сверху Снизу