Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Начало работы с MySQL




1) Запустить командную строку,выбрав в системном меню Пуск – Программы – MySQL – MySQL Server 6.0 – MySQL Command Line Client.

Открывшееся окно выглядеть так, как это показано на рис. 1.

Рис.1

 

2) На предложение ввести пароль нажмите клавишу <Enter>. После того как появилось приглашение mysql> выглядеть так, как показано на рис.2.

 

Рис.2

 

 

Построение простых запросов

 

FROM

n Выбрать все данные из таблицы поставщиков (ключевые слова SELECTFROM …):

SELECT *

FROM P; -- получим новую таблицу.

n В результате получим новую таблицу, содержащую полную копию данных из исходной таблицы P.

 

WHERE

 

n Выбрать все строки из таблицы поставщиков, удовлетворяющих некоторому условию (ключевое слово WHERE …):

 

SELECT *

FROM P

WHERE P.PNUM > 2; -- выбрать все строки, удовлетворяющих условию

n В качестве условия в разделе WHERE можно использовать сложные логические выражения, использующие поля таблиц, константы, сравнения (>, <, = и т.д.), скобки, союзы AND и OR, отрицание NOT.

GROUP BY

Упорядочение результатов запроса (ключевое слово ORDER BY …):

Использовать GROUP BY имеет смысл только вместе с одной из аналитических групповых функций

MAX() - максимальное значение в колонке

MIN()- минимальное значение в колонке

COUNT() - количество значений в колонке

SUM() - сумма всех значений в колонке

AVG() - среднее значение

SELECT

PD.PNUM, --выбранная колонка.

SUM(PD.VOLUME) AS SM --сумма всех значений в колонке.

FROM PD --получим новую таблицу.

GROUP BY PD.DNUM; --упорядочить результата запроса.

Этот запрос будет выполняться следующим образом.

· Сначала строки исходной таблицы будут сгруппированы так, чтобы в каждую группу попали строки с одинаковыми значениями DNUM.

· Потом внутри каждой группы будет просуммировано поле VOLUME.

· От каждой группы в результирующую таблицу будет включено по одной строке.

Исходная таблица PD

 

Результат после группировки:

 

HAVING

 

n Получить номера деталей, суммарное поставляемое количество которых превосходит 400 (ключевое слово HAVING …):

SELECT

PD.DNUM,

SUM(PD.VOLUME) AS SM

GROUP BY PD.DNUM

HAVING SUM(PD.VOLUME) > 400; -- отбор групп.

 

В результате получим следующую таблицу из исходной таблицы PD:

Замечание. В одном запросе могут встретиться как условия отбора строк в разделе WHERE, так и условия отбора групп в разделе HAVING. Условия отбора групп нельзя перенести из раздела HAVING в раздел WHERE. Аналогично и условия отбора строк нельзя перенести из раздела WHERE в раздел HAVING, за исключением условий, включающих поля из списка группировки GROUP BY.

 

4.4 Выполнение операций с несколькими таблицами

SELECT

Оператор SELECT позволяет выбирать значения полей из нескольких таблиц.

SELECT -- оператор выбирает требуемые таблицы.

P.PNUM,

P.PNAME,

PD.DNUM,

PD.VOLUME

FROM P, PD

WHERE P.PNUM = PD.PNUM;

 

Исходные таблицы P и PD:

 

 

В результате получим новую таблицу, в которой строки с данными о поставщиках соединены со строками с данными о поставках деталей:

Замечание. Соединяемые таблицы перечислены в разделе FROM оператора, условие соединения приведено в разделе WHERE. Раздел WHERE, помимо условия соединения таблиц, может также содержать и условия отбора строк.

 

 

UNION

n Получить имена поставщиков, имеющих статус, больший 3 или поставляющих хотя бы одну деталь номер 2 (объединение двух подзапросов - ключевое слово UNION):

 

SELECT P.PNAME

FROM P

WHERE P.STATUS > 3

UNION -- результат после объединения

SELECT P.PNAME

FROM P, PD

WHERE P.PNUM = PD.PNUM AND

PD.DNUM = 2;

n Результирующие таблицы объединяемых запросов должны быть совместимы, т.е. иметь одинаковое количество столбцов и одинаковые типы столбцов в порядке их перечисления.

n Не требуется, чтобы объединяемые таблицы имели бы одинаковые имена колонок.

n Это отличает операцию объединения запросов в SQL от операции объединения в реляционной алгебре.

n Наименования колонок в результирующем запросе будут автоматически взяты из результата первого запроса в объединении.

 

 

NATURAL JOIN

Естественное соединение таблиц (ключевое слово NATURAL JOIN):

SELECT

P.PNUM,

P.PNAME,

PD.DNUM,

PD.VOLUME

FROM P NATURAL JOIN PD; --соединение таблицы P и PD;

Замечание. В разделе FROM не указано, по каким полям производится соединение. NATURAL JOIN автоматически соединяет по всем одинаковым полям в таблицах.

В результате после соединения таблицы P и PD:

 

OUTER JOIN

LEFT OUTER JOIN (можно использовать просто LEFT JOIN)

 

SELECT *
FROM `user`
LEFT OUTER JOIN `article` ON `article`.`ID_user` = `user`.`ID_user`

 

 

 

 

INNER JOIN

Этот тип объединения позволяет извлекать строки, которые обязательно присутсвуют во всех объединяемых таблицах.

В простейшем случае (без указания условий отбора), выборка вернёт т.н. декартово произведение, в котором каждая строка одной таблицы будет сопоставлена с каждой строкой другой таблицы:

mysql> SELECT * FROM nomenclature INNER JOIN description;+----+-----------+----+---------------------+| id | name | id | description |+----+-----------+----+---------------------+| 1 | Книга | 1 | Замечательная книга || 2 | Табуретка | 1 | Замечательная книга || 3 | Карандаш | 1 | Замечательная книга || 1 | Книга | 3 | Красный карандаш || 2 | Табуретка | 3 | Красный карандаш || 3 | Карандаш | 3 | Красный карандаш || 1 | Книга | 5 | Зелёная машинка || 2 | Табуретка | 5 | Зелёная машинка || 3 | Карандаш | 5 | Зелёная машинка |+----+-----------+----+---------------------+9 rows in set (0.00 sec)

 

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...