П. Г. Демидова А. В. Зафиевский А. А. Короткин А. Н. Лататуев Базы данных Учебное пособие


Download 1.32 Mb.
Pdf ko'rish
bet35/94
Sana15.06.2023
Hajmi1.32 Mb.
#1487605
1   ...   31   32   33   34   35   36   37   38   ...   94
Bog'liq
Базы данных

3.4.2. Вывод отдельных столбцов 
Очень часто строки таблицы достаточно велики и не помеща-
ются в одной строке экрана. Чтобы просмотреть не все, а только 
некоторые столбцы таблицы, надо указать имена этих столбцов в 
качестве результирующих: 
SELECT nsb,fam,im,ot,grp FROM Stud. 
Порядок столбцов в итоговой таблице определяется порядком 
столбцов в операторе SELECT, а не порядком в описании исходной 
таблицы. Так, если мы хотим вначале выводить номер группы, то 
оператор SELECT можно записать следующим образом: 
SELECT grp,nsb,fam,im,ot FROM Stud. 
Уменьшение количества выводимых столбцов может приве-
сти к появлению в итоговой таблице дублирующихся строк. На-
пример, если, желая вывести список городов, в которых прожи-
вают студенты, мы введем запрос 
SELECT gor FROM Stud, 
то получим таблицу с одним столбцом, количество строк в кото-
рой будет таким же, как в исходной таблице, а поскольку коли-


55 
чество городов проживания студентов гораздо меньше, чем са-
мих студентов, то большинство наименований городов будет по-
вторяться. Чтобы исключить повторяющиеся строки, следует ис-
пользовать ключевое слово DISTINCT: 
SELECT DISTINCT gor FROM Stud. 
Выполнение запроса с исключением повторяющихся строк 
происходит медленнее, чем без ключевого слова DISTINCT, по-
этому если нет оснований полагать, что в итоговой таблице будут 
повторяющиеся строки (а чаще всего так и бывает), то лучше это 
ключевое слово не использовать. 
3.4.3. Вычисляемые столбцы 
В некоторых случаях является желательным выводить в ито-
говой таблице не только столбцы, содержащие информацию, не-
посредственно хранящуюся в базе данных, но и столбцы, содер-
жащие значения, вычисляемые по значениям в других столбцах, 
либо содержащие постоянную информацию. Примерами могут 
являться столбцы, содержащие стоимость товара, вычисляемую 
как результат произведения количества товара на стоимость 
единицы товара, или столбцы, содержащие во всех строках теку-
щую дату или слова «Итого», «Всего», «Сумма» и т. д. 
SQL предоставляет возможность формирования таких столб-
цов, для чего достаточно просто записать в операторе SELECT 
вместо имени столбца соответствующее выражение, например: 
SELECT quantity, cost, quantity*cost FROM current . 
Допускаются и более сложные варианты; так, например, в 
системе SQL Server оператор 
SELECT 'Время: '+CONVERT(char(30),CURRENT_TIMESTAMP) 
выдаст преобразованные к строке длиной 30 символов текущие 
дату и время, дополненные префиксом «Время:». 
В этом примере хотя результат представляет собой один-
единственный элемент строкового типа, он все равно рассмат-
ривается как таблица из одного столбца и одной строки. 
В общем случае для построения арифметического выражения 
можно обычным образом использовать числовые константы, име-
на столбцов, знаки арифметических действий и круглые скобки. 
Сложнее обстоит дело со строковыми выражениями. В мини-
мальном варианте стандарт SQL допускает лишь использование 
простейших констант типа 'Всего' или '10.12.1947', однако в 


56 
каждой системе управления базами данных имеются расширения, 
позволяющие конструировать достаточно сложные выражения 
строкового типа. Пример для SQL Server приведен выше. 
Особенностью вычисляемых столбцов является то, что имя 
заголовка такого столбца либо пусто, либо присваивается систе-
мой. В то же время в ряде случаев необходимо присвоить столб-
цу то или иное конкретное имя. Для этого достаточно соответ-
ствующее выражение дополнить фразой AS <имя> : 
SELECT quantity, cost, quantity*cost AS total FROM current. 
Фразу AS можно применять не только для вычисляемых 
столбцов, но и во всех других случаях, когда необходимо изме-
нить имя столбца. Чаще всего это требуется сделать в случае при-
менения операций объединения, пересечения или разности таб-
лиц, поскольку в этих случаях структуры таблиц (включая имена 
столбцов) должны быть одинаковы. 

Download 1.32 Mb.

Do'stlaringiz bilan baham:
1   ...   31   32   33   34   35   36   37   38   ...   94




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