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

1 ... 20 21 22 [ 23 ] 24 25 26 ... 264


mysql> SELECT last name, first name, state FROM president -> ORDER BY state DESC, last name ASC;

( last name

first name

1 state 1

1 Arthur

Chester

1 VT 1

1 Coolridge

Calvin

1 VT 1

1 Harrison

William H.

1 VA 1

1 Jefferson

Thomas

1 VA 1

1 Madison

James

1 VA 1

1 Monroe

James

1 VA 1

1 Taylor

Zachary

1 VA 1

1 Tyler

John

1 VA 1

1 Washington

George

1 VA 1

1 Wilson

Woodrow

1 VA 1

1 Eisenhover

Dwight D.

1 TX 1

1 Johnson

Lyndon B.

1 TX 1

Ограничение количества строк результатов запроса

Предложение limit предназначено для ограничения количества строк, выводимых запросом. Этот элемент синтаксиса очень полезен в комбинации с предложением order by. СУБД MySQL позволяет офа-ничить вывод первыми п сфоками. Следующий запрос возвращает пять имен президентов, которым посчастливилось родиться первыми.

mysql> SELECT last naiiie, first naiiie, birth FROM president -> ORDER BY birth LIMIT 5;

-+--

1 la3t name

i first name

i birth

1 Washington

1 George

1 1732-02-

1 Adams

1 John

i 1735-10-

1 Jefferson

1 Thomas

1 1743-04-

i Madison

1 Jame s

1 1751-03-

1 Monroe

1 James

1 1758-04-

Изменив порядок сортировки на сортировку по убыванию order by birth desc, пользователь получит список пяти самых молодых президентов. Предложение limit может помочь выбрать записи из середины выборки. Для этого необходимо указать два значения. Первое значение - это начальная запись результирующего набора, а второе значение - количество сфок, которые будут возвращены. (Первая строка имеет номер О, а не L) Этот запрос аналогичен предыдущему, но с той лишь разницей, что он возвращает пять сфок начиная с одиннадцатой.

mysql> SELECT last name, first name, birth FROM president -> ORDER BY birth LIMIT 10, 5;

last name I first name birth

I Tyler

i John

I 1790-03-29 I



1 Buchanan

1 James

1 1791-

-04-

1 Pork

I James K.

1 1795-

-11-

1 Fillmore

1 Millard

1 1800-01-

1 Pierce

1 Franklin

1 1804-

-11-

-2 3

В версиях СУБД MySQL начиная с версии 3.23.2 появилась возможность задавать порядок сортировки результата в соответствии с формулой. Например, для того, чтобы выбрать произвольную строку из таблицы president, воспользуйтесь order by rand о вместс с limit.

mysql> SELECT last name, first name FROM president -> ORDER BY RAND О LIMIT 1 ;

+-+-+

I last name first name +-+-+

McKinkey

William

Подсчет и присвоение имен выводимым значениям столбцов таблиц

Все предыдущие запросы генерировали результат посредством выборки значений из таблицы. СУБД MySQL также позволяет производить подсчет значений из выводимых столбцов. Последующий запрос оценивает простое выражение (константа) и более сложное выражение, включающее несколько арифметических операций и пару вызовов функний.

mysql> SELECT 17, FORMAT(SQRT(3*3*4*4),О);

17 I FORMAT(SQRT(3*3*4*4),0)

Выражения могут заключать ссылки на столбцы таблиц.

mysql> SELECT CONCAT {f irst name, ,last name) , CONCAT(city, , , state) FROM president;

i CONCAT(first name,

,last name)

1 CONCAT (city, , ,

state)

1 George Washington

1 Wakefield, VA

1 John Adams

1 Braintree, MA

1 Thomas Jefferson

Albermarle County,

1 James Madison

i Port Convay, VA

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

Выражение, по которому вычисляется результат, отображается в щап-ке. Отсюда и большая длина столбца (это хорошо видно на предьщущем примере.) Преодолеть это неудобство помогает конструкция as name, присваивающая столбцу псевдоним. В результате можно получить более понятный результат.



mysql> SELECT CONCAT(first name, ,last name) AS Нгше, -> CONCAT(city, , , state) AS Birthplace -> FROM president;

Name

I George Washington

i John Adams

I Thomas Jefferson

I James Madison

Birthplace

I Wakefield, VA

I Braintree, MA

I Albermarle County, VA

I Port Convay, VA

Если столбец содержит пробелы, их необходимо заьслючать в кавычки.

mysql> SELECT CONCAT(first name, ,last naiiie) AS President Name , -> CONCAT {city, , , state) AS Place of Birth ->FPCH president;

1 President Name

1 Place of Birth

1 George Washington

1 Wakefield, VA

i John Adams

1 Braintree, MA

1 Thomas Jefferson

1 Albermarle County, VA

1 James Madison

1 Port Convay, VA

Работа с датами

Принципиальный момент, о котором надо всегда помнить, - формат представления дат в СУБД MySQL таков, что год представляется первым. Так, дата 27 июля 1999 года представляется записью 1999-07-27 . Она не может быть представлена записями 07-27-1999 или 27-07-1999 . Хотя это может быть более удобно.

СУБД MySQL позволяет производить с датами следующие действия.

Сортировка по дате. (Это мы уже видели.)

Выбор по определенной дате или диапазону дат.

Вьщеление фрагментов даты (год, месяц или день).

Вычисление разницы между датами.

Вычисление относительной даты. Вот несколько примеров таких операций.

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

mysql> SELECT * FROM event WHERE date = 1999-10-01;

-+--

1 date

1 type

event id I

1 1999-10-01



1 ... 20 21 22 [ 23 ] 24 25 26 ... 264

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