Select (sql)


Примеры[править | править вики-текст]


Download 46.98 Kb.
bet3/3
Sana08.01.2022
Hajmi46.98 Kb.
#242453
1   2   3
Bog'liq
msql

Примеры[править | править вики-текст]


Таблица «T»

Запрос

Результат

C1

C2

1

a

2

b



SELECT * FROM T;

C1

C2

1

a

2

b



C1

C2

1

a

2

b



SELECT C1 FROM T;

C1

1

2



C1

C2

1

a

2

b



SELECT * FROM T WHERE C1 = 1;

C1

C2

1

a



C1

C2

1

a

2

b



SELECT * FROM T ORDER BY C1 DESC;

C1

C2

2

b

1

a



Для таблицы T запрос

SELECT * FROM T;

вернёт все столбцы всех строк данной таблицы. Для той же таблицы запрос



SELECT C1 FROM T;

вернёт значения столбца C1 всех строк таблицы— в терминах реляционной алгебрыможно сказать, что была выполнена проекция. Для той же таблицы запрос



SELECT * FROM T WHERE C1 = 1;

вернёт значения всех столбцов всех строк таблицы, у которых значение поля C1 равно '1'— в терминах реляционной алгебры можно сказать, что была выполненавыборка, так как присутствует ключевое слово WHERE. Последний запрос



SELECT * FROM T ORDER BY C1 DESC;

вернёт те же строки, что и первый, однако результат будет отсортирован в обратном порядке (Z-A) из-за использования ключевого слова ORDER BY с полем C1 в качестве поля сортировки. Этот запрос не содержит ключевого слова WHERE, поэтому он вернёт всё, что есть в таблице. Несколько элементов ORDER BY могут быть указаны разделённые запятыми [напр. ORDER BY C1 ASC, C2 DESC] для более точной сортировки.


Отбирает все строки где поле column_name равен одному из перечисленных значений value1,value2,…



SELECT *

FROM TABLE_NAME

WHERE column_name IN (value1,value2,...)

Ограничение возвращаемых строк[править | править вики-текст]


Согласно ISO SQL:2003 возвращаемый набор данных может быть ограничен с помощью:

  • курсоров, или

  • введением оконных функций в оператор SELECT

Оконная функция ROW_NUMBER()[править | править вики-текст]


Существуют различные оконные функцииROW_NUMBER() OVER может быть использована для простого ограничения числа возвращаемых строк. Например, для возврата не более десяти строк:

SELECT * FROM (

SELECT

ROW_NUMBER() OVER (ORDER BY KEY ASC) AS rownumber,

COLUMNS

FROM tablename

) AS foo



WHERE rownumber <= 10

ROW_NUMBER может быть недетерминированным: если key не уникален, каждый раз при выполнении запроса возможно присвоение разных номеров строкам, у которых key совпадает. Когда key уникален, каждая строка будет всегда получать уникальный номер строки.


Оконная функция RANK()[править | править вики-текст]


Функция RANK() OVER работает почти так же, как ROW_NUMBER, но может вернуть более чем n строк при определённых условиях. Например, для получения top-10 самых молодых людей:

SELECT * FROM (

SELECT

RANK() OVER (ORDER BY age ASC) AS ranking,

person_id,

person_name,

age

FROM person

) AS foo



WHERE ranking <= 10

Данный код может вернуть более чем 10 строк. Например, если есть два человека с одинаковым возрастом, он вернёт 11 строк.


Нестандартный синтаксис[править | править вики-текст]


Не все СУБД поддерживают вышеуказанные оконные функции. При этом многие имеют нестандартный синтаксис для решения тех же задач. Ниже представлены варианты простого ограничения выборки для различных СУБД:

Производитель/СУБД

Синтаксис ограничения

DB2

(Поддерживает стандарт, начиная с DB2 Version 6)




SELECT * FROM [T] FETCH FIRST 10 ROWS ONLY

Firebird

SELECT FIRST 10 * FROM [T]

Informix

SELECT FIRST 10 * FROM [T]

Interbase

SELECT * FROM [T] ROWS 10

Microsoft

(Поддерживает стандарт, начиная с SQL Server 2005)




Также SELECT TOP 10 [PERCENT] * FROM T ORDER BY col

MySQL

SELECT * FROM T LIMIT 10

SQLite

SELECT * FROM T LIMIT 10

PostgreSQL

(Поддерживает стандарт, начиная с PostgreSQL 8.4)




SELECT * FROM T LIMIT 10

Oracle

(Поддерживает стандарт, начиная с Oracle8i)




Также SELECT * from T WHERE ROWNUM <= 10





Для улучшения этой статьи желательно?:






[скрыть]  SQL

Версии

SQL-86 • SQL-89 • SQL-92 • SQL:1999 • SQL:2003 • SQL:2006 • SQL:2008 • SQL:2011

Ключевые слова

As • Case • Create • Delete • From • Having • Insert • Join • Merge • Null • Order by • Prepare • Select • Truncate • Union • Update • Where • With

Related

Эдгар Кодд • Реляционная база данных

Части ISO/IEC SQL

Framework • Foundation • Call-Level Interface • Persistent Stored Modules • Management of External Data • Object Language Bindings • Information and Definition Schemas • SQL Routines and Types for the Java Programming Language • XML-Related Specifications



[скрыть]  Базы данных

Концепции

Модель данных • Реляционная (модель • алгебра • Нормальная форма • Ссылочная целостность • БД • СУБД) • Иерархическая модель •Сетевая (модель • СУБД) • Объектно-ориентированная (БД • СУБД) • Транзакция • Журнализация • Секционирование

Объекты

Отношение (таблица) • Представление • Хранимая процедура • Триггер • Курсор • Индекс

Ключи

Потенциальный • Первичный • Внешний • Естественный • Суррогатный (искусственный) • Суперключ

SQL

SELECT • INSERT • UPDATE • MERGE • DELETE • TRUNCATE • JOIN • UNION • INTERSECT • EXCEPT • CREATE • ALTER • DROP • GRANT • COMMIT •ROLLBACK

СУБД

IMS • DB2 • Informix • Oracle Database • Microsoft SQL Server • Adaptive Server Enterprise • Teradata Database • Firebird • PostgreSQL • MySQL • SQLite •Microsoft Access • Visual FoxPro • ЛИНТЕР • CouchDB • MongoDB • Caché

Компоненты

Язык запросов • Оптимизатор запросов • План выполнения запроса • ODBC • ADO • ADO.NET • JDBC

Категории: 

  • Ключевые слова SQL

  • Статьи с примерами кода SQL

Download 46.98 Kb.

Do'stlaringiz bilan baham:
1   2   3




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling