Литература назначение языка sql. Операторы манипулирования данными



Download 288,45 Kb.
bet2/3
Sana17.07.2022
Hajmi288,45 Kb.
#812161
TuriЛитература
1   2   3
Bog'liq
Бобур 2


§2. Оператор SELECT

Оператор выборки SELECT выполняет действия, эквивалентные следующим операциям реляционной алгебры: выборка, проекция и соединение.


Простейший SQL-запрос с его использованием выглядит следующим образом:
SELECT col_name FROM tbl
После ключевого слова select следует список столбцов, разделенных запятыми, данные которых будут возвращены в результате запроса. Ключевое слово from, указывает, из какой таблицы (или представления) извлекаются данные.
Результатом запроса select всегда является таблица, которая называется результирующей таблицей. Более того, результаты запроса, выполненного при помощи оператора select, могут быть использованы для создания новой таблицы. Если результаты двух запросов к разным таблицам имеют одинаковый формат, их можно объединить в одну таблицу. Также таблица, полученная в результате запроса, может стать предметом дальнейших запросов.
Для выборки всех столбцов и всех строк таблицы достаточно сделать запрос SELECT * FROM tbl;
Рассмотрим таблицу Product, содержащую сведения о цене на различные виды продукции:



Type_id

Type

Price

1

автовесы

3000

3

Ж/д весы

3500

4

Напольные весы

400

Результатом запроса


SELECT * FROM Product;
будет вся таблица Product.
Выбрать конкретные столбцы таблицы можно с помощью запроса
SELECT col1, col2, … , coln FROM tbl;
Так, результатом запроса
SELECT Type, Price FROM Product;
будет таблица



Type

Price

автовесы

3000

Ж/д весы

3500

Напольные весы

400

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


Для того чтобы выбрать лишь те строки таблицы, которые удовлетворяют некоторым ограничениям, используется специальное ключевое слово where, после которого следует логическое условие. Если запись удовлетворяет такому условию, она попадает в результат. В противном случае такая запись отбрасывается.
Например, выбор тех товаров из таблицы Product, цена которых удовлетворяет условию Price <3200, можно осуществить, используя запрос
SELECT * FROM Product where Price <3200;
Его результат:



Type_id

Type

Price

1

автовесы

3000

4

Напольные весы

400

Условие может быть составным и объединяться при помощи логических операторов NOT , AND, OR, XOR, например: where id_ Price>500 AND Price<3500. Допускается также использование выражений в условии: where Price>(1+1) и строковых констант: where name= 'автовесы'.


Применение конструкции BETWEEN var1 AND var2 позволяет проверить, попадают ли значения какого-либо выражения в интервал от var1 до var2 (включая эти значения):
SELECT * FROM Product where Price BETWEEN 3000 AND 3500;



Type_id

Type

Price

1

автовесы

3000

3

Ж/д весы

3500

Конструкция NOT BETWEEN var1 AND var2 возвращает значения, не входящие в интервал между var1 и var2.


Выражения, находящиеся не в диапазоне, а в списке, возвращает оператор IN:
SELECT * FROM Product where Type_id IN (3, 4);



Type_id

Type

Price

3

Ж/д весы

3500

4

Напольные весы

400

По аналогии с оператором NOT BETWEEN существует оператор NOT IN.


Имена столбцов, указанные в предложении SELECT, можно переименовать. Для этого используется ключевое слово AS, которое, впрочем, можно опустить, т. к. неявно подразумевается. Например, запрос
SELECT Type AS model, Type_id AS num FROM Product where Type_id =3
вернет (имена псевдонимов следует записывать без кавычек):



model

num

Ж/д весы

3

Оператор LIKE предназначен для сравнения строки с образцом:


SELECT * FROM tbl where col_name LIKE 'abc'
Этот запрос возвращает лишь те записи, которые содержат в столбце col_name строковое значение abc.
В образце разрешается использовать два трафаретных символа: "_" и "%". Первый из них заменяет в шаблоне один произвольный символ, а второй – последовательность произвольных символов. Так, 'abc%' соответствует любой строке, начинающейся на abc, 'abc_' – строке из 4-х символов, начинающейся на abc, '%z' – произвольной строке, заканчивающейся на z, и, наконец, '%z%' – последовательности символов, содержащих z.
Найти все записи таблицы Product, в которых значение Type начинается с буквы "a" можно так:
SELECT * FROM Product where Type LIKE 'а%';



Type_id

Type

Price

1

автовесы

3000

Если искомая строка содержит трафаретный символ, то следует задать управляющий символ в предложении ESCAPE. Этот управляющий символ должен использоваться в образце перед трафаретным символом, сообщая о том, что последний следует трактовать как обычный символ. Например, если в некотором поле следует отыскать все значения, содержащие символ "_", то шаблон '%_%' приведет к тому, что будут возвращены все записи из таблицы. В данном случае шаблон следует записать следующим образом:


'%|_%' ESCAPE '|'
Для проверки значения на соответствие строке "20%" можно воспользоваться таким оператором:
LIKE '20#%' ESCAPE '#'
Оператор IS [NOT] NULL позволяет проверить отсутствие (наличие) NULL-значения в полях таблицы. Использование в этих случаях обычных операторов сравнения может привести к неверным результатам, так как сравнение со значением NULL дает результат UNKNOWN (неизвестно). Таким образом, условие отбора должно выглядеть так:
where col_name IS NULL, вместо where col_name=NULL.
Результат выборки по умолчанию возвращает записи, расположенные в том же порядке, в котором они хранятся в базе данных. Если требуется отсортировать записи по одному из столбцов, необходимо применить конструкцию ORDER BY, после которой указывается имя этого столбца:
SELECT * FROM tbl ORDER BY col_name;
В результате этого запроса записи будут возвращены в порядке возрастания значения атрибута col_name.
Сортировку записей можно производить и по нескольким столбцам. Для этого их названия надо указать после ORDER BY через запятую:
SELECT * FROM tbl ORDER BY col_name1, col_name2.
Записи будут отсортированы по полю col_name1; если встречается несколько записей с совпадающим значением в колонке col_name1, то они будут отсортированы по полю col_name2.
Если требуется отсортировать записи в обратном порядке (например, по убыванию даты), требуется указать ORDER BY col_name DESC.
Для прямой сортировки существует ключевое слово ASC, которое принято в качестве значения по умолчанию.
Если результат выборки содержит сотни и тысячи записей, их вывод и обработка занимают значительное время.
Поэтому информацию часто разбивают на страницы и предоставляют ее пользователю порциями. Постраничная навигация используется при помощи ключевого слова limit, за которым следует число выводимых записей. В следующем запросе извлекаются первые 10 записей, при этом одновременно осуществляется обратная сортировка по полю col_name1:
SELECT * FROM tbl ORDER BY col_name1 DESC LIMIT 10
Для того чтобы извлечь следующие 10 записей, используется ключевое слово limit с двумя значениями: первое указывает позицию, начиная с которой необходимо вывести результат, а вторая — количество извлекаемых записей:
SELECT * FROM tbl ORDER BY col_name1 DESC LIMIT 10,10
Для извлечения следующих 10 записей необходимо использовать конструкцию LIMIT 20, 10.


Download 288,45 Kb.

Do'stlaringiz bilan baham:
1   2   3




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish