Узнать стоимость написания работы
Оставьте заявку, и в течение 5 минут на почту вам станут поступать предложения!
Реферат

Реферат по предмету "Программирование, Базы данных"


Язык SQL

федеральное агентство по образованию
государственноеобразовательное учреждение высшего профессионального образования
Российский государственный гуманитарныйуниверситет
институт ИНФОРМАЦИОННЫХ  НАУКИ ТЕХНОЛОГИЙ БЕЗОПАСНОСТИ
Факультет информатики
Специальность: прикладная информатика Математическая логикаЯзык SQL
                           Выполнил
Романов А.Н.                                                         
                                                                                Москва 2007
Содержание
Язык запросов SQL                                                                                                                       3         
Основные инструменты                                                                                                               9
Оператор SELECT                                                                                                                         11
Использование имён и вложенныхзапросов                                                                             12
Объединения и внешние соединения                                                                                         13
Математические функции и средстваработы с датами                                                            15       
Группы и агрегатные функции                                                                                                   17
Оператор CASE                                                                                                                             18
Создание таблиц и манипуляции сданными                                                                            20
Язык запросов SQL
Первыми попытками уйти от пост­роения баз данных (БД) на основе физическойструктуры их разме­щения на носителях являлисьиндексные файлы. Они обеспечивали доступ кзапи­санной в них информации посредством индексных ключей, то есть для поискане­ких конкретных записей в файлеисполь­зовалась совокупность указателей. К недо­статкам такого подхода можно отнести, в частности, неоптимальноехранение ин­формации (дублирование, недостаточное структурирование) и значительное время поиска вбольших файлах, не говоря уже о существенныхтребованиях, предъявляемых каппаратному обеспечению.
Одним из решений упомянутых проблем стали иерархические БД. В таких базах элементы строго упорядочены, причем так, что данные одного уровня подчиняются (являетсяподмножеством) данным друго­го,вышестоящего уровня. В такой модели связи могут быть отражены в виде дерева, причем допускаются только односторон­ние — от старших уровней к младшим. Подобная структура все еще напоминает древовидную файловую систему, где ди­ректорииявляются верхними уровнями, а файлы —нижними. Несмотря на то что по сравнениюс индексными файлами это был существенный шаг вперед, иерархические БДнаследовали многочисленные недостаткипредыдущих систем, заключав­шиеся всложности алгоритмов доступа к даннымнижних уровней и повышенных аппаратныхтребованиях.
Иерархические БД не получили широкогораспространения, уступив место новой кон­цепциихранения данных (реляционные БД). Оназаключалась в использовании таб­личногометода хранения и доступа к кон­кретным записям, который используются и в настоящее время.
Прогресс в области сетевых технологий поспособствовал возникновению проблеморганизации доступа к данным, располо­женным на серверах, с удаленных компью­теров— участников сети. Для оптимизации этого процесса и снижения сетевого трафи­каМеждународной организацией по стан­дартизации(ISO) был разработан и внедрен структурированныйязык запросов SQL.
Сразвитием Глобальной сети и ростом объемов обращающейся в ней информации задачи предоставления доступа к последней практически повсеместно сталирешаться с помощью технологий БД в общем и SQLв ча­стности. В настоящее время рядовой пользо­ватель,сам того не зная, активно работает с базами данных, даже просто просматривая веб-странички и форумы, или пользуясь сер­висами электронной почты и ICQ.
            Несмотря на то что иерархические БД еще не канули в лету окончательно, они, какупоми­налось выше, используются крайне редко — в основном при решении неких специализи­рованных задач, вследствие чего неимеет смысла подробноостанавливаться на их уст­ройстве. Гораздо интереснее рассмотреть реляционныеБД.
Итак,данные в таких базах размещены во взаимосвязанных таблицах, строки которыхназываются записями, а столбцы — полями. Приэтом данные в ячейках одного поля долж­ны
быть одинакового типа. Вкаждой таблице, как правило, имеются специальныеполя, кото­рые позволяют однозначно идентифицировать ту или иную запись — они называются пер­вичнымиключами или первичными индекса­ми. Такиеполя помогают отличать одну запись отдругой, даже если все остальные поля не­скольких таких записей абсолютно идентичны. Например, представьте, что вы разрабатываете справочник сотрудников своей организации, и при этом каждая запись хранит данные об од­ном сотруднике, а их выборка осуществляется по полю «Фамилия». Может оказаться так, что в организации работает несколько человек с одинаковой фамилией. Чтобы отличить эти за­писи друг от друга, применяются первичные индексные поля. Чаще всего за тип данных первичного ключа берется целочисленное зна­чение счетчика — в таком случае при добав­ленииновой записи в таблицу значения этого полязаполняются автоматически. Однако не запрещается использовать в качестве первич­ногоключа поле, имеющее, к примеру, сим­вольный тип данных, хотя подобные ситуации возникают крайне редко.
Помимозадачи идентификации записей первичные индексы также часто используют­ся длясвязывания между собой данных из разных таблиц. Кроме первичных индексов существуют и вторичные индексы, которые обеспечиваютмеханизм быстрого поиска и доступа к данным таблицы. Чтобы получить ответ назапрос к таблице, не имеющей ин­дексного поля, SQL-серверу придется скани­ровать полностью всю таблицу,считывая строки целиком.Очевидно, что такой подход прибольших объемах информации слишком расточителен с точки зрения затрат аппарат­ных ресурсов. Тем не менее необходимопо­мнить, что с увеличением количества индек­сов растет и объем базы данных.
По признаку метода доступа БД делятсяна локальные, сетевые ираспределенные.
К локальным базам доступ возможентолько с того компьютера, на котором они расположены. Сетевые базы призваны обеспечитьработу с данными с других компьюте­ровпосредством локальной сети или Интернета. Распределенные БД — это, по сути,подвид сетевых баз с той лишь разни­цей, что различные части информации на­ходятсяна множестве разных компьютеров.
Насегодняшний день основным видом являетсявторой тип БД — сетевые базы. Именно ониприменяются в Интернете для организации доступа пользователей к ин­формации сайтов, форумов, гостевых книг и каталогов товаров.
Такие БД делятся на файл-серверные и клиент-серверные. В файл-серверной мо­делипри подключении СУБД клиента к удаленной базе все данные скачиваются на локальный компьютер, а после их обработ­ки или изменения снова закачиваются на сервердля обновления в полном составе. Таким образом, происходит весьма интен­сивный информационный обмен с серве­ром,что чрезвычайно нагружает сеть. Кро­ме того, в такой модели весьма сложно организовать одновременную работу не­сколькихпользователей, поэтому в настоя­щее время она используется редко и толь­ко для простых баз. Клиент-серверная модельорганизована совершенно иначе. Системауправления такой базой состоит издвух частей — клиента и сервера. Кли­ентская часть программы посылаетзапро­сы с помощью языка запросов SQL,
сервер­ная частьобрабатывает их и отправляет обратно только те данные, которые были нужны пользователю. Информация об из­менении этих данных возвращается на сер-
вер, который обрабатывает ее ификсирует в общей базе.Нагрузка на сеть при такой организацииработы минимальна, а органи­зацию одновременной работы нескольких пользователей берет на себя сервер.
Целью любойСУБД являться предоставление пользователю простых механизмов доступа и манипулирования данными.Существует много различных методов ее достижения, одним из которых являетсяязык SQL. Расши­фрованнаяи переведенная на русский язык эта аббревиатура будет выглядеть как Струк­турированный Язык Запросов.
Стандарт языка SQL. определяется Аме­риканским национальным институтомстан­дартов (ANSI) и Международной органи­зацией постандартизации (ISO). Однако некоторые производители БД вносят в язык свои изменения идополнения. Например, компания Огас1есоздала язык PL/SQL, кото­рыйявляется процедурным расширением оригинальногоSQL.
Однако истандартный SQLможет исполь­зоваться в двух различныхвариантах — интерактивном и вложенном.Первый пред­ставляется собойотдельный программный модуль на SQL,который сам выполняет за­просы и отображаетрезультаты работы. Второй — этовнедрение элементов SQLв другойязык высокого уровня, например С или Delphi. В этом случае основная про­грамма самостоятельно формируетзапросы для сервера SQL, а потом использует ре­зультатывыборок из базы, не предъявляя их пользователю в чистом виде.
В целом же SQL— это язык, ориентиро­ванный на работу с реляционными базами    данных. Егоиспользование позволяет на по­рядок сократить объем работ, который пона­добился бы в случае созданияприложений, использующих БД на универсальном языке программирования, например на том жеС.
Действительно,чтобы сформировать ре­ляционнуюбазу данных на С, нужно было бы описать как минимум один объект (дву­мерный массив), называемый в SQL.табли­цей, который должен иметь возможность менятьразмер для вмещения любого необ­ходимогочисла строк. Затем пришлось бы создавать процедуры для помещения зна­чений в такую таблицу, а также поиска и извлечения этих значений. Это непросто даже напервый взгляд. Так, если бы вы захотели найти все строки в таблице «TAB», в которых значения некоего поля «num» равно 5, то необходимо было бывыполнить по шагам весьмасложную про­цедуру.
Грамотный листинг программы, реализую­щий такой алгоритм на С исоблюдающий все подобающиепроверки займет, пожалуй, всю эту страницу. В случае же использования SQLдостаточно написать вот такой запрос:
SELECT *
FROM tab
WHERE num = 5
Дело в том, чтокоманды SQLмогут ра­ботать со всеми записями таблицы как с единым объектом. Необходимость органи­зации циклов и проверок значений вруч­ную отпадает.
Упомянутый в примере оператор SELECTявляется основным и наиболее часто ис­пользуемымдля выборки данных из таб­лиц. Все обращения к таблицам происхо­дят в видезапросов, которые состоят из таких же операторов, — меняются только условия поиска.
В настоящеевремя трудно найти язык программированиявысокого уровня, кото­рыйбы не поддерживал работу с SQL. Для этих целей разработчиками различных компиляторов предусмотрены специаль­ные библиотеки компонентов, которыеобеспечивают связь между приложения­ми, написанными на их языке, и сервера­миSQL, в результате чего данные, которые будут выбираться из базы, можно исполь­зовать в клиентской программеобработки по своему усмотрению.
Сразупредупредим, что SQLServer2000 возможно установить только на сервер­ные версии операционной системы Windows— 2000 Serverи 2003 Server. Попытки инсталляции ее на пользовательские версии ОС, такие как WindowsХР Professional, если только речь не идет о клиентскойчасти, не увенчаются успехом. Если же вы непременно хотите пользо­ваться языком запросов, работая под пользовательской ОС, существует MSDE— это урезанная версия SQLServer, которая входит в дистрибутив МSOffice2003.
После запуска инсталлятора скомпакт-диска в двух первых окнах мастера уста­новки необходимо последовательновы­брать пункты «Components» и «InstallDatabaseServer». Результатом этих дейст­вий станет появление окна спредложением указать расположение будущегосервера. Здесь возможны следующие варианты: «LocalComputer» — локальный компьютер, «Remotecomputer» — удаленный компью­тер в вашейсети, «VirtualServer» — вирту­альный серверсети. Этот выбор зависит только от конкретнойзадачи, которую вы решаете в данныймомент.
Если вывыбрали компьютер, где до этого уже существовала некая версия SQLServer, тов следующем окне будет доступен пункт «Upgrade, removeoraddcomponentstoanexistinginstanceofSQLServer» — добавле­ние, изменение и удалениесуществующих компонентовсервера. Иначе здесь можно будетвыбрать лишь «CreateanewinstanceofSQLServerorinstallClientTolls» — со­здать новый экземпляр SQL-сервера или ус­тановить клиентскую часть. Кстати, этопо-
следнее «или» способствует появлениюеще одного ветвления в дереве вариантов установки. Следующее окно «InstallationDefinition» предоставляет на выбор пункты: «ClientToolsOnly» — поставить клиентскую часть, которая используется дляорганиза­ции доступа к серверу с клиентскихмашин; «ServerandClientTools» — серверную и клиентскую части, атакже «Connectivityonly» — только драйверы для присоедине­ния к базе. Последний тип установки при­меняется исключительно на клиентскихма­шинах, которые должны работать с базами данных, то есть утилиты для работы ссер­вером, подобные EnterpriseManadger, ин­сталлироваться не будут. Поскольку мы устанавливаем именно сервер — здесь следует выбрать второй вариант.
Ввод имени («InstanceName») в следу­ющем окне недолжен вызвать затрудне­ний. Поумолчанию оно будет идентично NETBIOS-имени вашей машины. Если тре­буется его изменить, придется снять га­лочку в пункте «Default», после чего мож­но будет ввести другое название.
Из предложенныхдалее вариантов уста­новки «Typical», «Minimum» и «Custom» полезно использовать именно последний вариант. При этомвыбирать что-то из спискапредложенных компонентов не придется — пунктов, отмеченных здесь по умолчанию, более чем достаточно дляначала работы сервера.
ОднакопараметрамзапускасервисовSQL Server вследующемокнестоитуделитьбо­леепристальноевнимание: «Auto start SQL Service» — всесервисыстартуютавтомати­чески; «Customizethe setting for each Service» — каждомусервисуназначитьсвоипараметрызапуска. Если вы выберете второй вариант, то в левой части окна на панели «Services» станут доступны элемен­ты «SQLServer» и «SQLServerAgent». При выборе любого из них вправой части окна на панели «ServiceSetting» можно будет настроить параметры запуска, выбраводин из трех стандартных вариантов: отключено, автоили вручную.
На этомнастройки самого сервера факти­чески завершены, осталось только указать параметры учетных записей,авторизации и режималицензирования. Итак, «UsetheLocalSystemaccount» — использовать учетную запись локальной системы, «UseaDomainUseraccount» — использовать доменную учетную запись. Выбор целиком зависит от вашихпредпочтений.
Дляуказания метода авторизации (AuthenticationMode) необходимо вы­брать: «WindowsAuthenticationMode» — использоватьавторизацию WindowsNT или«MixedMode (Windows Authentication and SQL Server Authentication)» — использо­ватьсмешаннуюавторизациюWindowsNTи SQL-сервера). При использовании второ­го метода не забудьте указать парольучетной записиадминистратора «sа»,которая создается по умолчанию.
И, наконец, последнее окно мастера «ChooseLicensingMode» посвящено выбору режима лицензирования, который зависитот условий, на которых вы приобрели дан­ную версию SQL Server2000.
Основныеинструменты
Наиболее часто используемой утилитой для работы с SQLServerявляется EnterpriseManager. Этот инструмент создавался с це­лью облегчения выполнения наиболее сложных административных задач, сочетая простоту работы с высокой функциональ­ностью. Среди них такие какуправление системой безопасности, создание баз дан­ных и ее объектов, создание и восстановле­ние резервных копий, запуск и установка служб, атакже конфигурирование связан­ных иудаленных серверов.
Например, создание новой базыданных с помощью EnterpriseManagerсводится к нескольким кликам мыши и вводу имени БД. В левой части экрана утилиты необхо­димо выбрать тот SQLServer, на котором она будет размещена, и нажать правой кнопкой мыши на папке Database, после че­го в контекстном меню выбрать пункт «NewDatabase». В появившемся окне «DatabaseProperties» в поле «Name» необходимо впи­сатьназвание базы и нажать кнопку «ОК». Описаниеэтого процесса заняло больше времени,чем он длился бы на деле.
Созданиетаблиц происходит совершен­ноаналогично: клик сначала правой кнопкой мыши на значке «Table», затем левой — на пункте «NewTable» в контек­стном меню. Выше был приведен пример алгоритма выборки из базы данных для классического языка высокого уровня. Просто представьте, сколько времени и сил заняло бы описание на нем такойструктуры как БД с несколькими взаимо­связанными таблицами.
Как бы хорошо не была настроена база данных, всегда существует вероятность потери информации по независящим от администратора причинам. Для сведения подобных потерь к разумному минимуму EnterpriseManagerсодержит инструмент резервного копирования БД.
Чтобы выполнить резервное копирова­ниебазы вручную, нужно щелкнуть правой кнопкой мыши по названию базы и выбрать «Все задачи • > BackupDatabase». Далее в появившемся окне надо нажать кнопку «Аdd'», после чего выбрать каталог для со­хранения и в поле «Filename» ввести имя файла, в котором будет содержаться база. Имя этого файла с названием базы может быть никак не связано. После подтвержде­ния намерения остается только дожидаться конца процесса копирования.
Для того чтобы восстановитьданные из ранее сохраненного файла,необходимо иметь на SQLServerбазу данных с названи­ем,идентичным имени родительской базы. Другими словами, если вы сохранялиБД как Data_Base, то для восстановления дан­ных необходимо создать на серверебазу с таким же названием (не путать с именем файла резервной копии).
Для восстановления информации изфайла нужно нажатьправой кнопкой мыши на базу, предназначенную для приема данных и вы­брать «Все задачи – RestoreDatabase». Да­лее в
последовательно сменяющих друг дру­га окнах нужно выбрать пункты «FromDevise», «SelectDevise» и «Аdd» и указать ката­лог, в котором расположен резервныйфайл.
 Вторая по важности и частоте использо­вания утилита после EnterpriseManagerэто QueryAnalyzer. Она предназначена для выполнения, отладки и анализа запросов.Окно «QueryAnalizer» разделенона три части. Слева находится браузер объектов (ObjectBrowser), с помо­щью которого можно посмотреть списоквсех объектов, расположенных в любой базе дан­ных сервера, а также переченьвсех функций и типов данных. Правая часть разделена на верхнюю и нижнюю, при этом верхняяполо­вина является полемдля ввода запросов, а нижняяиспользуется для вывода результатов их работы и отладочной информации.
При отладкехранимых процедур весьма удобнавозможность трассировки их вы­полнения: для этого необходимо кликнуть на нужной процедуре правой кнопкой мыши и в появившимся контекстном меню выбрать пункт «Debug».
Помимовыполнения процедур и запросов в QueryAnalyzerпредусмотрена возможность оценки скорости работы. Эту функциюмож­но включить, еслиоткрыть меню «Query» и выбрать в нем, соответственно, пункты «DisplayEstimated», «ExecutionPlan» или «DisplayExecutionPlan».
Оператор SELECT
         Основной оператор языка SQL, предназначенный для выборки данных,- SELECT:
SELECT * FROM Table 1
Звёздочка означает все столбцы, а Table1 – имя таблицы, из которой мы этистолбцы хотим извлечь. Практическуюцен­ность оператору SELECTпридает ключевое слово WHERE, позволяющее выводить ис­ключительно те строки таблицы,которые соответствуютусловию. Предположим, у насесть таблица с информацией о персона­ле (Employees), где указаны имя работника (Name) и его заработная плата (Salary). Если нам нужно увидеть данные обо всех работ­никах, получающих заработную платуболее 30 000 рублей, мыформулируем запрос:
SELECT Name FROM Employees WHERE Salary > 30000
На практикесуществует необходимость за­прашивать информацию одновременно из нескольких таблиц. Предположим, что у нас есть таблица Agentsс информацией о торговых агентах: идентификационныйномер (Agent_id), имя (Name) и дата рож­дения (Birth_Date). Есть еще одна табли­ца — Contacts, где содержатся данные о контрактах, заключенных агентами: идентификационный номер клиента (Client_id),номер агента (Agent_id),да­та заключения контракта (CDate) и сум­ма сделки (Gross_Income).
Предположим, необходимо премировать агентов, заключавших с начала года кон­тракты на сумму более 500 000 рублей. Запрос к базе данных будет выглядеть так:
SELECT Name, Bitth_Date FROM Agents, Contacts WHEREAgents.Agent_id = Contracts.Agent_id AND Contracts.CDate >`31.12.2004` ANDCONTRACTS.Gross_Income > 500000
Условия WHEREсвязывает друг с другом две таблицы через номер агента,отбрасы­вает старые достижения и выбирает значи­тельные контракты. Логический оператор ANDпозволяет задавать несколько условий.Запись . применяется для того, чтобы раз­личать столбцы с одним и тем женазвани­ем из разныхтаблиц.
Поскольку один агент может заключитьне­сколько больших контрактов, его данные могут быть несколько раз продублированы. Чтобы избежатьэтого, необходимо исполь­зоватьключевое слово DISTINCT:
SELECTDISTINCT Name, Birth_Day From …
Использованиеимен и вложенных запросов
В SQL-конструкциях назначение новых имен применяется, чтобы сохранить длядальнейших операцийрезультаты, возвра­щаемые запросами ивстроенными функ­циями, и сделать текстзапроса более ком­пактным за счетсокращений. Для демонстрации эффектов переназна­чения имен, возьмем, кпримеру, таблицу Roomsс информацией о жилых комнатах вмногоквартирном доме со следующими столбцами: идентификатор комнаты (Room_id), тип (Room_type), длина (Length) и ширина (Width). Предположим, мы хотим получить информацию о жилой площади всех спален игостиных в доме. Дляэтогоформулируемзапрос:
SELECTRoom_Type, Length * Width AS
Living_Space
FROM Rooms
WHERERoom_Type = `ГостинаяOR Room_Type =`Спальня`
В результирующей таблице не будетдан­ных о длине и ширине, зато появитсястолбец с информацией о площади, ко­тораябыла вычислена непосредственно приисполнении запроса
Второй вариантприменения ключевого слова ASможно проиллюстрировать на примере о торговых агентах изпредыду­щей заметки, который теперь будет вы­глядетьтак:
SELECT DISTINCT Name, Birth_Date
FROM Agents AS A1, Contracts AS C1
WHERE A1.Agent_id = C1.Agent_id AND C1.CDate
>`31.12.2004` AND C1.Gross_Income > 500000
Дав с помощью ключевого слова АSтабли­цам Agentsи Contactsсокращенные име­на, мы сделали текст болеекомпактным. Запрос можно сделать многоступенчатым, тогда результат вложенного запроса ста­нетисходными данными. Тотже самый пример с агентами можно выполнить ввиде вложенного запроса:
SELECT Name, Birth_Day
FROM Agents
WHERE Agent_id IN(SELECT Agent_id
                        FROM Contracts
                        WHERE CDate >`31.12.2004` AND
Gross_Income >500000
В данном случае предикат INпоследова­тельно проверяет, имеется ли среди ре­зультатоввложенного запроса по базе кон­трактов идентификатор каждого из аген­тов. Если он есть, то в результирующую таблицу головногозапроса добавляются его данные (для противоположного резуль­тата можно использовать предикат NOTIN). В большинстве случаев предпочти­тельнее вместо вложенных запросов при­менять соединение таблиц по общим столбцам (...WHERE Agents.Ag_Num= Contracts.Ag_Num...), однако иногда быва­ет, что все-таки без вложений необойтись.
Объединенияи внешние соединения
Выше мы вос­пользовались оператором ORдля выборки данных о спальнях и гостиных. Можнопой­ти другим путем ииспользовать оператор UNIONдля объединения двух запросов:
(SELECT Room_Type, Length1 * Width1 AS
Living_Space FROM Rooms WHERE Room_Type =
`Гостиная`)   UNION(SELECT Room_Type, Length1 *
Width1 AS Living_Space FROM Rooms WHERE
Room_Type = `Спальня`)
Оператор UNIONстроит на основе двух таблиц третью, куда попадают строки,ко­торые есть либо в первой исходной, либо во второй, либо в обеих вместе; строки-дубликаты при этом удаляются. Иногда для подобных целей удобнеепользоваться оператором OR, однако если условия объе­диняемых подзапросов сложные, UNIONдля их составления подходит больше. Суть такого инструмента как внешнеесо­единение можно пояснить на следующем примере. Допустим, нам необходимо сде­латьвыборку по контрактам, заключенным агентами в июне 2005 года. Мы можем вос­пользоваться для этого такимзапросом:
SELECT Name, CDate, Gross_Income
FROM Agents AS A1, Contracts AS C1
WHERE A1.Agent_id = C1.Agent_id ANDC1.CDate
BETWEEN `01.06.2005`AND`30.06.2005`
Он, разумеется, выдаст правильныерезуль­таты, однаконаличие имени агента после обработки запроса зависит от того, заклю­чил ли он сделку в этот период. Еслинеоб­ходимо, чтобы в результирующей таблице всегда присутствовали все агенты,необхо­димо использовать так называемое левое внешнее соединение (LEFTOUTERJOIN). Его смысл состоит в том, что все строки таб­лицы, указанной слева от оператора LEFTOUTERJOIN, попадают в таблицу-результат, а из таблицы справа берутся толькодан­ные, которыесоответствуют условию:
SELECT Name, CDate, Gross_Income
FROM Agents LEFT OUTER JOINContracts ON
Agents.Agent_id = Contracts.Agent_id
AND Contracts.CDate BETWEEN`01.06.2005` AND
`30.06.2005`
Каждый агент из таблицы Agentsзаписан­ной слева от LEFTOUTERJOIN, попадет в результат запроса, даже если емунельзя будет подобратьсоответствующих строк из правойтаблицы (поскольку не все агенты заключали контракты в июне 2005 года). Необходимо обратить внимание, что вместо ключевого слова WHEREздесь используется слово ON. Если использовать слово WHERE, результат будет тот же самый, что и с обыч­ным запросом. Следует также помнить,что синтаксис левого внешнего соединения мо­жет сильно различаться в разных системах.
Математическиефункции и средства работы с датами
Поскольку SQLориентирован на выборку данных, а нена управление вычисления­ми, егоматематический инструментарий довольноограничен. Впрочем, перечень доступныхфункций в продуктах различ­ных разработчиков может варьироваться. Как правило, в большинстве реализаций присутствуют следующие функции: POWER(возведение в степень), SQRT(квад­ратный корень), АВS(модуль), LNи LOG10 (натуральныйи десятичный логарифмы), ЕХР(экспоненциальная функция). Функ­ция ROUND(х, р) округляет число х до р десятичных знаков, TRUNCATE(х, р) — усекает. Функции FLOOR(х) и CEILING(х) возвращают ближайшие к нецелому х це­лые


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат Привлечение инвестиций российскими компаниями путем первичного публичного размещения акций
Реферат Спорт и олпорно-двигательный аппарат
Реферат Организация бухгалтерского учета расчетных операций
Реферат Аудит уставного капитала 3
Реферат Виды аудита 3
Реферат Психологическая готовность к обучению детей с задержкой психического развития
Реферат Учет затрат по местам формирования и центрам ответственности
Реферат Измерения параметров электромагнитных волн на сверхвысоких частотах
Реферат Проанализируйте рекламную кампанию вашей фирмы
Реферат Ч Диккенс в оценке западного литературоведения
Реферат Бухгалтерский учет в коммерческих организациях
Реферат Учет ценных бумаг облигаций
Реферат Основы изготовления торта в школе
Реферат Розрахунок електромагнітних процесів у системах електропостачання
Реферат Бухгалтерский учет фирмы