WEB - ПРОГРАММИРОВАНИЕ & СОФТ ДЛЯ ФОРЕКС
WEB - ПРОГРАММИРОВАНИЕ & СОФТ ДЛЯ ФОРЕКС


Софт и программы анализа рынка форекс. Программы позволяют проводить анализ рынка форекс, строить торговые модели и выстраивать экстраполяцию цены. На этом сайте Вы можете бесплатно скачать программы, которые помогут Вам.

Вход

Забыли пароль?



Октябрь 2017
ПнВтСрЧтПтСбВс
      1
2345678
9101112131415
16171819202122
23242526272829
3031     

Календарь Календарь

Опрос

Пользуетесь ли Вы специальными программами для анализа рынка форекс?

46% 46% [ 55 ]
18% 18% [ 21 ]
11% 11% [ 13 ]
26% 26% [ 31 ]

Всего проголосовало : 120

Социальные закладки
Социальные закладки Digg  Социальные закладки Delicious  Социальные закладки Reddit  Социальные закладки Stumbleupon  Социальные закладки Slashdot  Социальные закладки Yahoo  Социальные закладки Google  Социальные закладки Blinklist  Социальные закладки Blogmarks  Социальные закладки Technorati  

Поместите адрес форума ФОРЕКС. ПРОГРАММЫ ДЛЯ АНАЛИЗА РЫНКА на вашем сайте социальных закладок (social bookmarking)

Поместите адрес форума WEB - ПРОГРАММИРОВАНИЕ & СОФТ ДЛЯ ФОРЕКС на вашем сайте социальных закладок (social bookmarking)

Последние темы
» индикатор Linear Regression Curve
Пт Янв 09, 2015 5:40 am автор niksamm

» Конкурс на форуме Roboforex
Вт Янв 06, 2015 10:00 pm автор Avsinth

» Конкурс на демо счетах от компании Roboforex
Пн Янв 05, 2015 10:04 pm автор roboreal

» Подскажите веб-студию для создания сайта?
Ср Окт 15, 2014 9:49 pm автор FiveStars

»  Real Time Quotes Downloader 1.4 - программа получения котировок
Сб Сен 13, 2014 5:00 pm автор vazkattat

» Invest-System автоматическая программа для Forex
Пт Май 23, 2014 5:30 pm автор mick541

» Приложение AutoGraf 4.
Пт Апр 04, 2014 10:30 pm автор Alyona_AG

»  FxRealTrade
Вт Фев 18, 2014 9:01 pm автор promoterxx

» Love box теперь для компьютера
Сб Фев 08, 2014 12:29 am автор Нурсултан

» Скачать бесплатно индикатор Zoomer Pro
Вт Дек 17, 2013 1:41 pm автор Evgark

» Бесплатная программа - Учет сделок на форекс
Вс Ноя 17, 2013 8:13 pm автор antonbergov

» TirelessRobot
Вс Окт 20, 2013 4:20 pm автор nika88

» Как начать проводить игру Денежный поток в своем городе?
Ср Окт 02, 2013 2:57 pm автор Vitamen

» MACD на зыке RULANG
Пн Сен 23, 2013 7:57 pm автор АлександрЯ

» TirelessRobot
Ср Сен 18, 2013 7:19 pm автор monika777

» Пользуетесь ли Вы специальными программами для анализа рынка форекс
Вс Сен 01, 2013 6:41 pm автор Rstone

» Как заработать на рынке Forex?
Вс Сен 01, 2013 6:34 pm автор Rstone

» Как не потерять заработанное и куда грамотно вложить свои деньги - бесплатный вебинар
Пт Авг 16, 2013 3:18 pm автор Vitamen

» ForexClock - форекс-часы с аналитикой
Пт Июл 19, 2013 11:21 pm автор dolgicky

» Сам себе Антикризисный Управляющий - бесплатный вебинар
Вт Июл 09, 2013 4:57 pm автор Vitamen

» Как написать свою первую книгу чтобы повысить уровень продаж? - бесплатный вебинар
Вт Июл 09, 2013 4:26 pm автор Vitamen

» Поиск: новые программы скачать бесплатно
Вс Июл 07, 2013 10:30 pm автор Rostik

» Онлайн-тренинг - Защити свои деньги! От инфляции, мошенников и глупых инвестиций
Сб Май 04, 2013 12:28 am автор Vitamen

» Скачать программу для создания советников и индикаторов МТ4 и МТ5.
Пн Апр 22, 2013 12:01 am автор Kasper_68

» программа для создания советника
Сб Апр 20, 2013 3:20 pm автор maksad

» Как пенсионеру получать 13-ю пенсию в размере 12 000 рублей в год в течение 10 лет?
Вт Апр 02, 2013 8:08 pm автор Vitamen

» Первый этап создания информационной системы управления (ИСУ) для предприятия
Чт Мар 28, 2013 5:59 pm автор Admin

» Forex Tester - это профессиональная программа (тренажер), предназначенная для обучения трейдеров и приобретения ими необходимых навыков для успешной работы на рынке Forex. Она воспроизводит изменения валютных курсов за любой выбранный период с регулируемо
Ср Фев 20, 2013 1:11 pm автор ipmiha

» СКРИПТ, ЧАСТИЧНО ЗАКРЫВАЮЩИЙ СДЕЛКУ НА ФОРЕКС
Пт Фев 15, 2013 10:16 am автор nikol

» Автоматическая и ручная торговая система для рынка Forex
Чт Ноя 15, 2012 12:37 pm автор Борис2233

»  OmniTrader - программа технического анализа
Пн Окт 22, 2012 11:37 pm автор xxx1988

»  Investor's Dream 1.99.1 - программа торговой системы Билла Вильямса
Сб Сен 15, 2012 7:32 am автор seva1seva1

» СПИСОК ПРОГРАММ ДЛЯ ФОРЕКС
Сб Авг 25, 2012 4:20 pm автор telecserega

» Forex Market Hours - расписание торговых сессий на форекс
Сб Авг 25, 2012 4:17 pm автор telecserega

» Поиск по сайту
Сб Авг 04, 2012 11:59 pm автор Admin

» Считаете ли Вы, что скачивание файлов на этом сайте необходимо сделать платным ?
Пт Июл 27, 2012 8:58 am автор vodoley

»  Tradeguider 2.2.1.5 RT - программа - торговая система
Пн Май 28, 2012 4:00 pm автор godok

»  ASCTrend for Omega Prosuite 3.51 - готовая торговая система трейдера
Пн Май 28, 2012 3:40 am автор ПавелСевер

» PHP: Получить список баз данных сервера
Вт Апр 10, 2012 11:10 pm автор Admin

» MySQL очень быстрый, многопоточный, многопользовательский и поддерживающий SQL (Structured Query Language) сервер баз данных.
Пн Апр 09, 2012 2:19 am автор Admin

» Данное учебное пособие предназначено для изучения основ языка SQL - стандартного языка манипулирования данными в СУБД, реализующих реляционную модель данных. Описывается синтаксис наиболее употребимых операторов языка SQL, приводятся примеры. Обучающимся
Пн Апр 09, 2012 2:17 am автор Admin

» SELECT применяется для извлечения строк, выбранных из одной или нескольких таблиц. Выражение select_expression задает столбцы, в которых необходимо проводить выборку. Кроме того, оператор SELECT можно использовать для извлечения строк, вычисленных без ссы
Пн Апр 09, 2012 2:12 am автор Admin

» Выбор данных представляет собой наиболее часто встречающуюся операцию, выполняемую с помощью SQL. Оператор SELECT — один из самых важных операторов этого языка, применяемый для выбора данных. Синтаксис этого оператора имеет следующий вид:
Пн Апр 09, 2012 2:09 am автор Admin

» Первая страница на PHP Создайте файл с именем hello.php в корневом каталоге веб-сервера (DOCUMENT_ROOT) и запишите в него следующее
Пн Апр 09, 2012 2:06 am автор Admin

» "Как реализовать следующее: есть два HTML списка select, нужно динамически с помощью Javascript заполнить второй список по значению, выбранному в первом? И если я таких селектов связанных захочу много, а не два?" - эти вопросы были вчера заданы мне по ась
Пн Апр 09, 2012 1:39 am автор Admin

» Устанавливает форму курсора, когда он находится в пределах элемента. Вид курсора зависит от операционной системы и установленных параметров.
Пн Апр 09, 2012 1:31 am автор Admin

» CSS: color
Пн Апр 09, 2012 1:29 am автор Admin

» Универсальное свойство border позволяет одновременно установить толщину, стиль и цвет границы вокруг элемента. Значения могут идти в любом порядке, разделяясь пробелом, браузер сам определит, какое из них соответствует нужному свойству. Для установки гран
Пн Апр 09, 2012 1:25 am автор Admin

» Универсальное свойство background позволяет установить одновременно до пяти характеристик фона. Значения могут идти в любом порядке, браузер сам определит, какое из них соответствует нужному свойству. Для подробного ознакомления смотрите информацию о кажд
Пн Апр 09, 2012 1:22 am автор Admin

» Универсальное свойство, позволяющее одновременно задать стиль маркера, его положение, а также изображение, которое будет использоваться в качестве маркера. Для подробного ознакомления смотрите информацию о каждом свойстве list-style-type, list-style-posit
Пн Апр 09, 2012 1:18 am автор Admin

» Поле <textarea> представляет собой элемент формы для создания области, в которую можно вводить несколько строк текста. В отличие от тега <input> в текстовом поле допустимо делать переносы строк, они сохраняются при отправке данных на сервер.
Пн Апр 09, 2012 1:13 am автор Admin

» Таблица «безопасных» HTML цветов
Пн Апр 09, 2012 12:48 am автор Admin

» Подсказки, которые отображаются обычно серым цветом внутри INPUT или TEXTAREA, довольно распространнены сейчас. Это удобный способ показать пользователю, что необходимо вводить в данное поле.
Пн Апр 09, 2012 12:36 am автор Admin

» Тег <nobr> уведомляет браузер отображать текст без переносов. Если этого тега в коде документа нет, а также имеются переводы строки, они игнорируются и текст выравнивается по левому краю окна браузера или родительского элемента. При этом браузер переводы
Пн Апр 09, 2012 12:29 am автор Admin

» Тег <a> является одним из важных элементов HTML и предназначен для создания ссылок. В зависимости от присутствия атрибутов name или href тег <a> устанавливает ссылку или якорь. Якорем называется закладка внутри страницы, которую можно указать в качестве ц
Пн Апр 09, 2012 12:27 am автор Admin

» HTML предлагает шесть заголовков разного уровня, которые показывают относительную важность секции, расположенной после заголовка. Так, тег <h1> представляет собой наиболее важный заголовок первого уровня, а тег <h6> служит для обозначения заголовка ше<H1>
Пн Апр 09, 2012 12:22 am автор Admin

» Список базовых тегов HTML
Пн Апр 09, 2012 12:14 am автор Admin

» Составление структурной схемы интернет - приложения
Вс Апр 08, 2012 11:39 pm автор Admin

» Этапы создания интернет - приложения
Вс Апр 08, 2012 11:36 pm автор Admin

»  Metastock 9.0 - программа технического анализа
Сб Мар 31, 2012 3:02 pm автор Яков 2

» ОПИСАНИЕ ПРОГРАММЫ AUTOCHARTIST
Пт Мар 30, 2012 2:45 pm автор vitaly363

» Metastock Pro 11.0 for eSignal torrent скачать
Вт Мар 13, 2012 7:50 pm автор Евг750

» ИНФОРМАЦИОННЫЕ СИСТЕМЫ И СТРАТЕГИИ
Ср Мар 07, 2012 9:13 am автор Admin

»  СТРАТЕГИИ ФОРЕКС
Ср Мар 07, 2012 9:10 am автор Admin

» Форекс - системы и стратегии
Ср Мар 07, 2012 9:08 am автор Admin

» Автоматическая и ручная торговая система для рынка Forex
Вт Мар 06, 2012 3:35 pm автор Борис2233

» УРОВНИ МЮРРЕЯ ФОРЕКС
Чт Фев 23, 2012 12:59 pm автор Eucharis

» Скачать гениратор советников и индикаторов MT4 и MT5.
Вт Фев 21, 2012 3:55 pm автор 2wsxcde

» Forex EA Generator
Вс Фев 19, 2012 12:53 pm автор 2wsxcde

» ИНФОРМАЦИОННЫЕ СИСТЕМЫ УПРАВЕНИЯ ПРЕДПРИЯТИЕМ
Ср Фев 08, 2012 10:01 pm автор Admin

» Пособие для начинающего трейдера [2011г.]
Пт Янв 20, 2012 5:55 pm автор leviafan

» Re: Cоздания советников и индикоторов МТ4
Чт Янв 19, 2012 9:01 pm автор 2wsxcde

» Re: Программы для создания советников и индикоторов МТ4 и МТ5.
Чт Янв 19, 2012 8:57 pm автор 2wsxcde

» КАК СДЕЛАТЬ СОВЕТНИКА. ПРОГРАММА FOREX OPTIMIZER
Сб Янв 14, 2012 2:59 pm автор Konstantin Pavlov

» Скачать гениратор советников и индикаторов MT4 и MT5.
Ср Янв 11, 2012 7:05 pm автор 2wsxcde

» скачать Forex Optimizer TT Версия 2.7
Вс Янв 08, 2012 10:20 am автор kavota

» FAM Generator
Вс Ноя 27, 2011 4:29 pm автор nord77

» СКАЧАТЬ СБОРНИК ФОРЕКС СИСТЕМ
Вс Ноя 20, 2011 4:37 pm автор UNISOFT

» НОВЫЕ ПРОГРАММЫ ДЛЯ ФОРЕКС (FOREX)
Чт Ноя 17, 2011 11:20 pm автор aleksas1

» Как правильно выбрать и купить систему форекс?
Чт Окт 27, 2011 3:15 pm автор Foxter

» ЮРИДИЧЕСКОЕ АГЕНТСТВО ДЛЯ ТРЕЙДЕРОВ ФОРЕКС
Пн Окт 10, 2011 9:31 pm автор Admin

» http://invest-system.net/partner/29005
Пт Сен 30, 2011 6:39 pm автор masadoje

» СКАЧАТЬ ФОРЕКС ТЕСТЕР (FOREX TESTER)
Ср Сен 28, 2011 9:18 pm автор AVB

» Торговля и склад. УСУ-Универсальная Система Учета
Пт Сен 23, 2011 9:09 pm автор Гость

» Сборник лучших готовых трендовых форекс систем. Их собрано более 15.
Сб Сен 17, 2011 10:41 pm автор UNISOFT

» ФОРЕКС. ПРОГРАММЫ ТЕХНИЧЕСКОГО АНАЛИЗА
Вт Сен 06, 2011 3:18 pm автор UNISOFT

» ФОРЕКС. ТОРГОВЫЕ СИСТЕМЫ И СТРАТЕГИИ
Вт Сен 06, 2011 3:17 pm автор UNISOFT

» ПРОГРАММЫ (СОФТ, ПО) ФОРЕКС
Вт Сен 06, 2011 2:49 pm автор UNISOFT

» ВОПРОСЫ ПО РАЗРАБОТКЕ И РАБОТЕ ПРОГРАММЫ "ARCHIMED"
Пт Авг 19, 2011 4:46 pm автор Admin

» Что искали посетители форекс форума
Пт Авг 12, 2011 7:21 pm автор Admin

» ОПИСАНИЕ ТОРГОВОЙ СИСТЕМЫ ДЛЯ ФОРЕКС - ЭЛЕМЕНТ
Пт Авг 05, 2011 8:34 pm автор Гость

» Программы для работы на рынке форекс (forex)
Пт Авг 05, 2011 8:32 pm автор Гость

» ПРОГРАММЫ И ТЕРМИНАЛЫ НА ФОРЕКС
Пт Авг 05, 2011 8:31 pm автор Гость

» ПРОГРАММЫ ДЛЯ ФОРЕКС
Пт Авг 05, 2011 8:24 pm автор Гость

» Forex программы для технического анализа Forex
Чт Авг 04, 2011 8:29 pm автор Maksim

» World Market Times - часы мировых торговых сессий FOREX
Ср Авг 03, 2011 9:38 pm автор Никита Сергеевич

» pokoje goscinne sopot
Чт Июл 28, 2011 7:45 am автор Гость

»  MESA 2002 - программа анализа циклов рынка
Пн Июн 20, 2011 8:30 pm автор Admin

» 100% рабочий ключ NOD32 до 2012г
Пн Июн 20, 2011 8:30 pm автор Admin

Самые активные пользователи
Admin
 
СОФТ ER
 
Alyona_AG
 
UNISOFT
 
Foxter
 
Scriptong
 
2wsxcde
 
ARCHIMED
 
vilis
 
valera606
 

Устанавливает форму курсора, когда он находится в пределах элемента. Вид курсора зависит от операционной системы и установленных параметров.

Пн Апр 09, 2012 1:31 am автор Admin

CSS: cursor

Краткая информация

Значение по умолчанию auto
Наследуется Да
Применяется Ко всем элементам

Версии CSS

CSS 1 CSS 2 CSS 2.1 CSS 3

Описание

Устанавливает форму курсора, когда он находится в пределах элемента. Вид курсора зависит от операционной системы и установленных параметров.

Прежде чем воспользоваться возможностью …

[ Полное чтение ]

Комментарии: 0

CSS: color

Пн Апр 09, 2012 1:29 am автор Admin

CSS: color

Краткая информация

Значение по умолчанию Зависит от настроек браузера, обычно черный цвет
Наследуется Да
Применяется Ко всем элементам

Версии CSS

CSS 1 CSS 2 CSS 2.1 CSS 3

Описание

Определяет цвет текста элемента.
Синтаксис

color: цвет | inherit
Значения

См. цвет

inherit
Наследует значение родителя.

Пример

XHTML 1.0CSS 2.1IE 9Cr 15Op 11Sa 5Fx 8
Код:



[ Полное чтение ]

Комментарии: 0

Универсальное свойство border позволяет одновременно установить толщину, стиль и цвет границы вокруг элемента. Значения могут идти в любом порядке, разделяясь пробелом, браузер сам определит, какое из них соответствует нужному свойству. Для установки гран

Пн Апр 09, 2012 1:25 am автор Admin

CSS: border

Краткая информация

Значение по умолчанию Зависит от использования
Наследуется Нет
Применяется Ко всем элементам

Версии CSS

CSS 1 CSS 2 CSS 2.1 CSS 3

Описание

Универсальное свойство border позволяет одновременно установить толщину, стиль и цвет границы вокруг элемента. Значения могут идти в любом порядке, разделяясь …

[ Полное чтение ]

Комментарии: 0

Универсальное свойство background позволяет установить одновременно до пяти характеристик фона. Значения могут идти в любом порядке, браузер сам определит, какое из них соответствует нужному свойству. Для подробного ознакомления смотрите информацию о кажд

Пн Апр 09, 2012 1:22 am автор Admin

CSS: background

Краткая информация

Значение по умолчанию transparent || none || repeat || scroll || 0% 0%

Наследуется Нет
Применяется Ко всем элементам

Ссылка на спецификацию http://программы для валютного рынка форекс и бирж.w3.org/TR/CSS21/colors.html#propdef-background

Версии CSS

CSS 1 CSS 2 CSS 2.1 CSS 3

Описание

Универсальное свойство background позволяет установить …

[ Полное чтение ]

Комментарии: 0

Универсальное свойство, позволяющее одновременно задать стиль маркера, его положение, а также изображение, которое будет использоваться в качестве маркера. Для подробного ознакомления смотрите информацию о каждом свойстве list-style-type, list-style-posit

Пн Апр 09, 2012 1:18 am автор Admin

CSS: list-style

Описание

Универсальное свойство, позволяющее одновременно задать стиль маркера, его положение, а также изображение, которое будет использоваться в качестве маркера. Для подробного ознакомления смотрите информацию о каждом свойстве list-style-type, list-style-position и list-style-image отдельно.
Синтаксис

list-style: list-style-type || list-style-position || …

[ Полное чтение ]

Комментарии: 0

Статистика
Всего зарегистрированных пользователей: 4498
Последний зарегистрированный пользователь: elisesmu

Наши пользователи оставили сообщений: 645 в 386 сюжете(ах)
Кто сейчас на форуме
Сейчас посетителей на форуме: 2, из них зарегистрированных: 0, скрытых: 0 и гостей: 2

Нет

[ Посмотреть весь список ]


Больше всего посетителей (88) здесь было Сб Июл 29, 2017 11:52 pm
loc


Вы не подключены. Войдите или зарегистрируйтесь

Данное учебное пособие предназначено для изучения основ языка SQL - стандартного языка манипулирования данными в СУБД, реализующих реляционную модель данных. Описывается синтаксис наиболее употребимых операторов языка SQL, приводятся примеры. Обучающимся

Предыдущая тема Следующая тема Перейти вниз  Сообщение [Страница 1 из 1]

Admin

avatar
Admin
Основы языка SQL

Федорук В.Г.
fedoruk@wwwcdl.bmstu.ru

АННОТАЦИЯ

Данное учебное пособие предназначено для изучения основ языка SQL - стандартного языка манипулирования данными в СУБД, реализующих реляционную модель данных. Описывается синтаксис наиболее употребимых операторов языка SQL, приводятся примеры. Обучающимся дается возможность в интерактивном режиме проверить свои знания.
Учебная база данных реализована в среде СУБД mySQL, средства доступа к ней встроены в учебное пособие.

Содержание

Краткие сведения из теории
Основы синтаксиса языка SQL
Учебная база данных
Типы данных языка SQL
Манипулирование таблицами

Создание таблицы
Модификация таблицы
Удаление таблицы

Добавление строк в таблицу
Выборка данных из таблиц

Описание столбцов результирующей таблицы
Описание критерия выборки содержимого строк результирующей таблицы
Упорядочивание и группирование строк результирующей таблицы
Выборка из нескольких таблиц

Манипулирование строками таблиц

Удаление строк
Модификация строк

Литература
Упражнения

Краткие сведения из теории


Язык SQL (Structured Query Language - структурированный язык запросов) представляет собой стандартный высокоуровневый язык описания данных и манипулирования ими в системах управления базами данных (СУБД), построенных на основе реляционной модели данных [1].

Язык SQL был разработан фирмой IBM в конце 70-х годов. Первый международный стандарт языка был принят международной стандартизирующей организацией ISO в 1989 г. [2], а новый (более полный) - в 1992 г. [3]. В настоящее время все производители реляционных СУБД поддерживают с различной степенью соответствия стандарт SQL92.

Единственной структурой представления данных (как прикладных, так и системных) в реляционной базе данных (БД) является двумерная таблица. Любая таблица может рассматриваться как одна из форм представления теоретико-множественного понятия отношение (relation), отсюда название модели данных - ?реляционная?.
В реляционной модели данных таблица обладает следующими основными свойствами:

идентифицуруется уникальным именем;
имеет конечное (как правило, постоянное) ненулевое количество столбцов;
имеет конечное (возможно, нулевое) число строк;
столбцы таблицы идентифицируются своими уникальными именами и номерами;
содержимое всех ячеек столбца принадлежит одному типу данных (т.е. столбцы однородны), содержимым ячейки столбца не может быть таблица;
строки таблицы не имеют какой-либо упорядоченности и идентифицируются только своим содержимым (т.е. понятие ?номер строки? не определено);
в общем случае ячейки таблицы могут оставаться ?пустыми? (т.е. не содержать какого-либо значения), такое их состояние обозначается как NULL.

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

На содержимое таблиц допустимо накладывать ограничения в виде:

требования уникальности содержимого каждой ячейки какого-либо столбца и/или совокупности ячеек в строке, относящихся к нескольким столбцам;
запрета для какого-либо столбца (столбцов) иметь ?пустые? (NULL) ячейки.

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

Основными операциями над таблицами являются следующие.

Проекция - построение новой таблицы из исходной путем включения в нее избранных столбцов исходной таблицы.
Ограничение - построение новой таблицы из исходной путем включения в нее тех строк исходной таблицы, которые отвечают некоторому критерию в виде логического условия (ограничения).
Объединение - построение новой таблицы из 2-ух или более исходных путем включения в нее всех строк исходных таблиц (при условии, конечно, что они подобны).
Декартово произведение - построение новой таблицы из 2-ух или более исходных путем включения в нее строк, образованных всеми возможными вариантами конкатенации (слияния) строк исходных таблиц. Количество строк новой таблицы определяется как произведение количеств строк всех исходных таблиц.

Пречисленные выше 4 операции создают базис, на основе которого может быть построено большинство (но не все) практически полезных запросов на извлечение информации из реляционной БД.
Примечание. Набор операций будет полным, если дополнить его операциями пересечения и вычитания. Однако в данном пособии реализация этих операций в языке SQL не рассматривается.

Кроме перечисленных выше в языке SQL реализованы операции модификации содержимого строк таблицы и пополнения таблицы новыми строками (что теоретически может рассматриваться как операция объединения), а также операции управления таблицами.
Рассмотренные выше операции над таблицами реляционной БД обладая функциональной полнотой, будучи реализованы на практике в своем ?чистом? каноническом виде, как правило, крайне неэкономичны (в первую очередь это относится к комбинации операций ограничения и декартового произведения). Разработчики реальных реляционных СУБД прибегают ко всевозможным приемам и ?ухищрениям? для минизации вычислительных затрат (в первую очередь, машинного времени) при выполнении этих операций. Общим способом, нашедшим отражение в языке SQL, повышения эффективности выполнения запросов в реляционных СУБД являются импользование ключей индексов.

Индексом называется скрытая от пользователя вспомогательная управляющая структура, обеспечивающая прямой (или ?квази?-прямой) метод доступа к строкам таблицы, позволяющий исключить последовательный просмотр всех строк таблицы для обнаружения отвечающих некоторому критерию поиска. Индексы неявным образом (скрытно от пользователя) автоматически создаются для всех ключей таблицы.

В настоящее время наибольшее распространение получили реляционные SQL СУБД двух групп:

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

Наиболее известными СУБД первой группы являются:

Sybase SQLserver фирмы Sybase, Inc.;
Oracle фирмы Oracle Corporation;
Ingres фирмы Computer Associates International;
Informix фирмы Informix Corporation.

К наиболее популярным СУБД второй группы относятся:

PostgreSQL организации PostgreSQL;
microSQL фирмы Hughes Technologies Pty. Ltd.;
mySQL фирмы T.C.X DataKonsult AB.

В данном учебном пособии практические упражнения, которые может выполнить обучающийся после изучения основ языка SQL, реализуются средствами СУБД mySQL.

Все перечисленные выше СУБД построены по принципу ?клиент-сервер?, как это показано на рисунке ниже.
SQL-сервер реализует собственно хранение данных и манипулирование ими. Он принимает запросы на языке SQL от своих клиентов, выполняет их и возвращает результаты (чаще всего в виде вновь построенных таблиц) клиентам. Для общения с клиентами используется специальный протокол (как правило, реализованный в виде протокола прикладного уровня стека сетевых протоколов TCP/IP).
Клиентскую часть СУБД составляют клиенты трех основных типов.

Интерактивные клиенты, обеспечивающие пользователю-человеку возможность общения с SQL-сервером непосредственно с помощью языка SQL.
ИПП-клиенты, обеспечивающие интерфейс прикладного программирования (ИПП) прикладным программам, использующим средства SQL-сервера. Такой ИПП может быть средством общения прикладной программы с SQL-сервером на языке SQL или набором стандартных функций доступа к реляционной SQL БД без формирования символьных строк запросов (например, стандартный интерфейс ODBC).
программы для валютного рынка форекс и бирж-клиенты, встраиваемые в World Wide Web-сервера и обеспечивающие доступ к информационным возможностям SQL-сервера пользователям сети Internet по протоколу http (протоколу передачи гипертекстовых документов).

Именно программы для валютного рынка форекс и бирж-клиент СУБД mySQL используется в учебном пособии для выполнения практических упражнений.

Основы синтаксиса языка SQL
?Программа? на языке SQL представляет собой простую линейную последовательность операторов языка SQL. Язык SQL в своем ?чистом? виде операторов управления порядком выполнения запросов к БД (типа циклов, ветвлений, переходов) не имеет.
Операторы языка SQL строятся с применением:

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

Все ключевые слова, имена функций и, как правило, имена таблиц и столбцов представляются 7-мибитными символами кодировки ASCII (иначе говоря - латинскими буквами).
В языке SQL не делается различия между прописными (большими) и строчными (маленькими) буквами, т.е., например, строки ?SELECT?, ?Select?, ?select? представляют собой одно и то же ключевое слово.
Для конструирования имен таблиц и их столбцов допустимо использовать буквы, цифры и знак ?_? (подчеркивание), но первым символом имени обязательно должна быть буква.
Запрещено использование ключевых слов и имен функций в качестве идентификаторов таблиц и имен столбцов. Полный список ключевых слов и имен функций (а он весьма обширен) можно найти в документации на конкретную СУБД.
Оператор начинается с ключевого слова-глагола (например, ?CREATE? - создать, ?UPDATE? - обновить, ?SELECT? - выбрать и т.п.) и заканчивается знаком ?;? (точка с запятой). Оператор записывается в свободном формате и может занимать несколько строк. Допустимыми разделителями лексических единиц в операторе являются:

один или несколько пробелов,
один или несколько символов табуляции,
один или несколько символов ?новая строка?.

При описании операторов языка SQL в учебном пособии используются следующие соглашения.

Прописными (большими) буквами (напрмер, SELECT, FROM, WHERE) набраны зарезервированные слова.
Курсивом (например, имя_табл, сложн_условие) набраны переменные (нетерминальные символы), подлежащие замене в реальном операторе конструкцией из терминальных символов (идентификаторов, знаков операций, имен функций и т.п.).
В квадратные скобки (?[...]?) заключается необязательная часть оператора, которую можно опустить при создании реального оператора (сами квадратные скобки в текст оператора не включаются).
Вертикальная черта (?|?) означает возможность выбора (?или?) из двух или нескольких вариантов синтаксической конструкции (сама вертикальная черта в текст оператора не включается). Подчеркнутый вариант (например, в ?[ ALL | DISTINCT }?) является умолчательным.
Последовательность символов ?, ...? обозначает возможность повторения произвольное количество раз (в том числе и нулевое) предшествующей запятой конструкции. Символ ?,? включается в реальный оператор в качестве разделителя перед каждым повторением конструкции.

К сожалению, разработчики реальных СУБД неаккуратно обращаются с требованиями стандартов языка SQL в части комментариев. Поэтому комментарии при использовании в различных СУБД в текстах ?программ? на языке SQL могут помечаться следующими способами:

от двойного минуса (?--?) до конца строки;
от символа ?#? до конца строки;
между последовательностями ?/*? и ?*/? (стиль комментариев языка СИ).


Учебная база данных
В качестве примера в учебном пособии рассматривается БД, содержащая информацию, используемую для решения двумерной (плоской) задачи анализа напряженно-деформированного состояния механического объекта методом конечных элементов [4].

Метод конечных элементов (МКЭ) - универсальный метод решения краевых задач (систем дифференциальных уравнений в частных производных с краевыми условиями), к которым относится и задача анализа (моделирования) напряженно-деформированного состояния плоских механических объектов. Одним из основных этапов метода является этап разбиения ?тела? моделируемого объекта на элементарные участки, называемые конечными элементами (КЭ). Для плоских объектов чаще всего такие КЭ представляют собой треугольники. Пример покрытия объекта (типа рычага) сеткой конечных элементов представлен ниже.

В дальнейшем МКЭ обеспечивает нахождение численных значений фазовых переменных , характеризующих состояние объекта (в нашем случае напряжений поля сил и деформаций), в вершинах таких треугольников, называемых узлами (nodes).

Для идентификации узлов и КЭ их помечают номерами (числами из натурального ряда 1...). Задача ручного разбиения двумерного (а тем более трехмерного) объекта на КЭ является трудоемкой и нетривиальной, поэтому в реальных промышленных системах анализа, реализующих МКЭ, существует, как правило, несколько автоматических процедур покрытия исследуемой области сеткой КЭ. Однако сгенерированная любым способом (автоматически/вручную/комбинированно) сетка КЭ нуждается в проверке некоторым набором правил ее корректности, обеспечивающих минимальность вычислительных затрат и точность получаемых результатов.

Требуется, например, чтобы форма треугольных КЭ как можно теснее приближалась к равносторонней (это влияет на точность получаемого решения). Для уменьшения вычислительных затрат желательно иметь минимальную разность идентификаторов вершин для каждого КЭ.

В задачах исследования поведения механических объектов под воздействием внешних факторов с каждым КЭ связан набор свойств материала, покрываемого КЭ, в состав которого входят, например, плотность (density) среды, модуль Юнга (elastic module), коэффициент Пуассона (Poisson's coefficient), прочность (strength) и др.

Задачей МКЭ является исследование поведения объектов (в нашем примере механических) при различных граничных условиях (воздействиях внешней среды), в состав которых входят:

произвольно направленная сила;
произвольно направленный момент сил;
?заделка?, жестко фиксирующая положение узла сетки по линейным координатам и углу вращения;
шарнир, позволяющий узлу свободно ?вращаться? относительно его фиксируемого положения по линейным координатам;
?каток?, дающий узлу возможность свободно перемещаться по оси x или y.

Описанная выше информация является предметом хранения и манипулирования в учебной БД, используемой в данном пособии. Основу БД составляют четыре таблицы:

таблица ?nodes?, содержащая информацию об узлах КЭ-сетки (идентификатор, x- и y-координаты);
таблица ?elements?, содержащая информацию обо всех КЭ, составляющих сетку (номер КЭ, идентификаторы трех вершин, наименование материала);
таблица ?materials?, содержащая информацию о свойствах различных конструкционных материалов (наименование, плотность, модуль Юнга, коэффициент Пуассона, прочность);
таблица ?loadings?, содержащая информацию о граничных условиях решаемой задачи (вид условия, его ?направление?, номер узла приложения, числовое значение).

Типы данных языка SQL
Типы данных, используемые в языке SQL для хранения информации в столбцах таблиц БД, весьма разнообразны. К сожалению, производители конкретных реляционных СУБД считают своим долгом ?улучшить? множество типов данных, регламентируемых стандартом, реализуя свои собственные версии и расширения.
Автором учебного пособия в качестве базовых предлагается считать следующие типы данных:

INT[(len)] - целое число длиной 4 байта, представляемое при выводе максимально len цифрами;
SMALLINT[(len)] - целое число длиной 2 байта, представляемое при выводе максимально len цифрами;
FLOAT[(len,dec)] - действительное число, представляемое при выводе максимально len символами с dec цифрами после десятичной точки;
CHAR(size) - строка символов фиксированной длины размером size символов;
VARCHAR(size) - строка символов переменной длины максимальным размером до size символов;
BLOB (Binary Large OBject) - массив произвольных (двоичных) байтов (максимальный размер зависит от реализации, обычно это 65535 байт); этот тип данных может использоваться, например, для хранения изображений;
DATE - астрономическая дата;
TIME - астрономическое время.

Символьные константы (типа CHAR и VARCHAR) записываются как последовательности символов, заключенные в одиночные апострофы, например ?brass? (латунь).
Десятичные константы (типа FLOAT) могут записываться в ?научной? нотации как последовательности следующих компонент:

знак числа;
десятичное число с точкой;
символ ?е?;
знак (?+? или ?-?) показателя степени;
целое число, играющее роль показателя степени числа 10.

Например, десятичное число -0,123 может быть записано как -12.3е-2.

Отличие типов данных CHAR и VARCHAR заключается в том, что для хранения в таблице строк символов типа CHAR используется точно size байт (хотя содержание хранимых строк может быть значительно короче), в то время как для строк типа VARCHAR незанятые символами строк (?пустые?) байты в таблице не хранятся.
Подчеркнем, что величины len и dec (в отличие от size) не влияют на размер хранения данных в таблице, а только форматируют вывод данных из таблицы.

Примечание. Тип данных BLOB поддерживается непосредственно не всеми СУБД, однако каждая из них предлагает его аналог (например, BINARY или IMAGE).

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

Манипулирование таблицами
Для создания, изменения и удаления таблиц в SQL БД используются операторы CREATE TABLE, ALTER TABLE и DROP TABLE.
Создание таблицы
Создание таблицы в БД реализуется оператором CREATE TABLE, имеющим следующий синтаксис

CREATE TABLE имя_табл (с_спецификация, ...);

где с_спецификация имеет разнообразный синтаксис. Здесь же рассматриваются наиболее часто используемые ее формы.

Описание столбца таблицы

имя_столбца тип_данных [NULL]

где имя_столбца - имя столбца таблицы, а тип_данных - спецификация одного из типов данных, рассмотренных в разделе ?Типы данных языка SQL?. Необязательное ключевое слово NULL означает, что ячейкам данного столбца разрешено быть пустыми (т.е. не содержать какого-либо значения).

Описание столбца таблицы

имя_столбца тип_данных NOT NULL [DEFAULT по_умолч] [PRIMARY KEY]

где конструкция NOT NULL запрещает иметь в таблице пустые ячейки в данном столбце. Конструкция PRIMARY KEY указывает, что содержимое столбца будет играть роль первичного ключа для создаваемой таблицы. Конструкция DEFAULT по_умолч переопределяет имеющееся для столбцов каждого типа данных значение ?по умолчанию? (например, 0 для числовых типов), используемое при добавлении в таблицу оператором INSERT INTO строк, не содержащих значений в этом столбце.

Описание первичного ключа

PRIMARY KEY имя_ключа (имя_столбца, ...)

Эта спецификация позволяет задать первичный ключ для таблицы в виде композиции содержимого нескольких столбцов.

Описание вторичного ключа

KEY имя_ключа (имя_столбца, ...)

Примеры
Ниже приводятся примеры использования оператора CREATE TABLE для создания четырех таблиц учебной БД.

CREATE TABLE nodes (

id SMALLINT NOT NULL PRIMARY KEY, # номер узла

x FLOAT NOT NULL, # x-координата

y FLOAT NOT NULL); # y-координата



CREATE TABLE elements (

id SMALLINT NOT NULL PRIMARY KEY, # номер КЭ

n1 SMALLINT NOT NULL, # номер первой вершины

n2 SMALLINT NOT NULL, # номер второй вершины

n3 SMALLINT NOT NULL, # номер третьей вершины

props CHAR(12) NOT NULL DEFAULT 'steel');

Столбец props таблицы elements предназначен для хранения названия материала КЭ и не может содержать ?пустых? полей, его значением ?по умолчанию? является строка символов ?steel? (сталь).

CREATE TABLE materials (

name CHAR(12) NOT NULL PRIMARY KEY, # название материала

density FLOAT NOT NULL, # плотность

elastics FLOAT NOT NULL, # модуль Юнга

poisson FLOAT NOT NULL, # к-т Пуассона

strength FLOAT NOT NULL); # прочность



CREATE TABLE loadings (

type CHAR(1) NOT NULL, # тип граничного условия

direction CHAR(1), # направление действия

node SMALLINT NOT NULL, # номер узла приложения

value FLOAT, # числовое значение

KEY key_node (node) ); # вторичный ключ

В таблице граничных условий loadings поля столбцов direction и value могут быть пустыми (иметь значение NULL), поскольку не все виды нагрузок имеют направление действия и/или величину.
Номер узла node приложения граничного условия определяется как ключ поиска в таблице, т.к. типичный запрос на поиск в таблице loadings - это запрос на определение граничных условий для конкретного узла. Однако этот ключ не может быть первичным, поскольку к одному узлу допустимо приложение нескольких граничных условий (например, момент внешних сил в шарнире).
Следует отметить, что в этой таблице первичный ключ может быть сконструирован только составным из столбцов type, direction и node.

Модификация таблицы
Модификация существующей таблицы в БД реализуется оператором ALTER TABLE, имеющим следующий синтаксис

ALTER TABLE имя_табл м_специкация [,м_спецификация ...]

где м_спецификация имеет различные формы. Ниже рассматриваюся наиболее часто используемые.

Добавление нового столбца

ADD COLUMN с_спецификация

где с_спецификация - описание добавляемого столбца в том виде, как оно используется для создания таблицы оператором CREATE TABLE.

Удаление первичного ключа для таблицы

DROP PRIMARY KEY

Изменение/удаление значения ?по умолчанию?

ALTER COLUMN имя_столбца SET по_умолч

или

ALTER COLUMN имя_столбца DROP DEFAULT

Пример
Предположим в нашей задаче моделирования состояния плоского механического объекта возникла необходимость учесть дополнительно тепловые эффекты. Для этого, в частности, необходимо иметь сведения о теплофизических параметрах материала объекта (теплоемкости и теплопроводности). Включение дополнительных сведений в таблицу materials требует ее расширения двумя новыми столбцами, что можно реализовать таким оператором языка SQL:

ALTER TABLE materials
ADD COLUMN capacity FLOAT NOT NULL, # теплоемкость
ADD COLUMN conductivity FLOAT NOT NULL; # теплопроводность

Удаление таблицы
Удаление одной или сразу нескольких таблиц из БД реализуется оператором DROP TABLE, имеющим следующий простой синтаксис

DROP TABLE имя_табл, ...

Подчеркнем, что оператор DROP TABLE удаляет не только все содержимое таблицы, но и само описание таблицы из БД. Если требуется удалить только содержимое таблицы, то необходимо использовать оператор DELETE FROM.
Добавление строк в таблицу
Для добавления строк в таблицу SQL базы данных используется оператор INSERT INTO. Основные его синтаксические формы описываются ниже.

Добавление строки перечислением значений всех ее ячеек

INSERT INTO имя_табл VALUES (знач, ...);

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

Добавление строки с использованием списка имен столбцов

INSERT INTO имя_табл (имя_столбца, ...) VALUES (знач, ...);

Здесь списки имен столбцов и значений ячеек добавляемой строки должны быть согласованы, хотя нет никаких требований к их порядку. Допустимо опускать в списках информацию о некоторых ячейках строки, при этом
ячейки, соответствующие столбцам со спецификацией NULL в операторе CREATE TABLE, будут пустыми;
ячейки, соответствующие столбцам со спецификацией NOT NULL в операторе CREATE TABLE, заполняются значениями ?по умолчанию?.

Добавление строк по результатам запроса к БД

INSERT INTO имя_табл [(имя_столбца, ...)] SELECT ...

Такой оператор дает возможность добавить в таблицу 0, 1 или сразу несколько новых строк, полученных в результате запроса к базе данных, реализуемого оператором SELECT.

Пример
Добавление информации о новом узле КЭ-сетки в таблицу nodes:

INSERT INTO nodes VALUES (25, 6.3, 1.Cool;

Отметим, что добавление новой строки будет удачным только в том случае, если узла с таким же идентификатором в таблице nodes еще нет - дело в том, что столбец id этой таблицы объявлен первичным ключом и, следоваательно, значения всех его ячеек должны быть уникальны.

Пример
Добавление информации о новом КЭ в таблицу elements:

INSERT INTO elements
(n1, n2, n3, id) VALUES
(14, 25, 18, 46);

В результате в таблице elements появится новая строка, содержащая в поле props значение ?steel?, как умолчательное значение, определенное при создании таблицы.

Пример
Включение в таблицу materials сведений о новом материале:

INSERT INTO materials VALUES (
'wood', 0.6, 2.0, 0.12, 50);

Пример
Добавление в таблицу граничных условий loadings информации об ориентированном горизонтально ?катке? в узле 2:

INSERT INTO loadings VALUES (
'r', 'x', 2, NULL);

Выборка данных из таблиц
Для извлечения данных, содержащихся в таблицах SQL БД, используется оператор SELECT, имеющий в общем случае сложный и многовариантный синтаксис. В данном учебном пособии рассматриваются только несложные и наиболее часто используемые примеры конструкций оператора SELECT.
Упрощенно оператор SELECT выглядит следующим образом:

SELECT [ALL | DISTINCT] в_выражение, ...

FROM имя_табл [син_табл], ...

[WHERE сложн_условие]

[GROUP BY полн_имя_столбца|ном_столбца, ...]

[ORDER BY полн_имя_столбца|ном_столбца [ASC|DESC], ...]

[HAVING сложн_условие];

Результатом работы оператора является выводимая на стандартный вывод (экран дисплея) вновь построенная таблица, для которой

количество и смысл (семантика) столбцов определяется списком элементов в_выражение;
содержимое строк определяется содержимым исходных таблиц из списка FROM и критерием выборки, задаваемым сложн_условие.

При описании синтаксиса оператора SELECT использованы следующие обозначения:

син_табл - необязательный синоним имени таблицы, используемый для сокращения длины записи выражений и условий в операторе SELECT.
полн_имя_столбца - полное имя столбца в виде

[имя_табл|син_табл.]имя_столбца

Конкретизирующий таблицу префикс в имени столбца необходим только для различения столбцов, имеющих одинаковое имя в разных таблицах из списка FROM.
ном_столбца - номер столбца результирующей таблицы.

Описание столбцов результирующей таблицы

1. Специальным (и часто используемым) видом в_выражение является символ ?*?, имеющий смысл ?все столбцы таблиц из списка FROM?.
Пример
Вывод всего содержимого таблицы materials.

SELECT * FROM materials;

+--------------+---------+----------+---------+----------+
| name | density | elastics | poisson | strength |
+--------------+---------+----------+---------+----------+
| steel | 7.80 | 200.00 | 0.25 | 1000.00 |
| aluminium | 2.70 | 65.00 | 0.34 | 600.00 |
| concrete | 5.60 | 25.00 | 0.12 | 300.00 |
| duraluminium | 2.80 | 70.00 | 0.31 | 700.00 |
| titanium | 4.50 | 116.00 | 0.32 | 950.00 |
| brass | 8.50 | 93.00 | 0.37 | 300.00 |
+--------------+---------+----------+---------+----------+

2. Простым (и также часто используемым) случаем в_выражение является полное имя столбца одной из таблиц списка FROM.
Пример
Пусть необходимо определить идентификаторы всех узлов КЭ-сетки, к которым приложено какое-либо граничное условие, при этом необходимо знать тип приложенного условия. Эта задача может быть решена с помощью следующего оператора:

SELECT node, type FROM loadings;

+------+------+
| node | type |
+------+------+
| 1 | r |
| 2 | r |
| 3 | r |
| 14 | h |
| 27 | f |
| 27 | f |
+------+------+

Полученная результирующая таблица содержит дублирующие строки для узла 27. Избежать этого можно, добавив в оператор ключевое слово DISTINCT, запрещающее включение в итоговую таблицу одинаковых строк.

SELECT DISTINCT node, type FROM loadings;

+------+------+
| node | type |
+------+------+
| 1 | r |
| 2 | r |
| 3 | r |
| 14 | h |
| 27 | f |
+------+------+

3. В общем случае в_выражение может представлять собой сложное скобочное выражение над содержимым столбцов таблицы, использующее арифметические, строковые, логические операции и функции. Наиболее часто используемые функции описаны ниже в таблицах 1, 2, 3.
Пример
Используемая нами таблица свойств материалов materials содержит в своих столбцах density и elastics значащие разряды чисел, выражающих, соответственно, плотность и модуль Юнга каждого материала. Для получения реальных значений этих свойств в системе единиц измерения СИ (кг/м3 и Па) необходимо домножить их на масштабные коэффициенты, что реализуется следующим оператором

SELECT name, density*1000, elastics*1e+9 FROM materials;

+--------------+--------------+-----------------+
| name | density*1000 | elastics*1e+9 |
+--------------+--------------+-----------------+
| steel | 7800.00 | 200000000000.00 |
| aluminium | 2700.00 | 65000000000.00 |
| concrete | 5600.00 | 25000000000.00 |
| duraluminium | 2800.00 | 70000000000.00 |
| titanium | 4500.00 | 116000000000.00 |
| brass | 8500.00 | 93000000000.00 |
+--------------+--------------+-----------------+

Таблица 1. Арифметические функции

Синтаксис Возвращаемое значение
ABS(x) абсолютное значение x
SQRT(x) квадратный корень от x
MAX(x, y, ...) значение наибольшего элемента из списка x, y, ...
MIN(x,y, ...) значение наименьшего элемента из списка x, y, ...
Примечание. x, y - числа или выражения, имеющие числовой результат.
Таблица 2. Строковые функции

Синтаксис Возвращаемое значение
LEFT(s,n) первые n символов строки s
RIGHT(s.n) последние n символов строки s
SUBSTRING(s, m, n) строка, получаемая копированием n символов из строки s, начиная с m-ого символа строки s
LCASE(s) строка, полученная из s преобразованием всех букв в строчные
UCASE(s) строка, полученная из s преобразованием всех букв в прописные
CONCAT(s1, s2, ...) строка, полученная конкатенацией (слиянием) строк s1, s2, ...
LENGTH(s) длина строки s
Примечание. s, s1,s2 - строки или выражения, имеющие результат в виде строки. n, m - числа или выражения, имеющие числовой результат.
Таблица 3. Операторы и функции, возвращающие логическое значение (1 - ?истина?, 0 - ?ложь?)

Синтаксис Возвращаемое значение
x = y
x ?? y
x ? y
x ? y
x ?= y
x ?= y 1 (?истина?) или 0 (?ложь?) в зависимости от результата операции сравнения (соответственно, ?равно?, ?не равно?, ?больше?, ?меньше?, ?не больше?, ?не меньше?)
NOT l 1, если l=0
0, если l=1
l1 AND l2 результат логической операции ?И? над l1 и l2
l1 OR l2 результат логической операции ?ИЛИ? над l1 и l2
BETWEEN (x, y z) результат выполнения логического выражения (x?=y AND x?=z)
ISNULL (v) 1, если v имеет значение ?пусто? (NULL)
0, в противном случае
IFNULL (v1, v2) v1, если v1 не ?пусто?
v2, в противном случае
s LIKE образец 1, при удачном сопоставлении строки s с образец
0, в противном случае
s NOT LIKE образец 0, при удачном сопоставлении строки s с образец
1, в противном случае
Примечание. x, y, z - числа или выражения, имеющие числовой результат. l, l1, l2 - логические константы (1 или 0) или логические выражения. s - строка или выражение, имеющее результат в виде строки. v, v1, v2 - переменные или выражения.
образец - константа в виде строки символов, возможно, содержащая метасимволы ?%? и ?_?. В образец метасимвол ?_? сопоставим с любым одиночным символом строки s, метасимвол ?%? - с любой цепочкой символов любой ( в том числе нулевой) длины.

Пример
Пусть необходимо при выводе информации о плотности материалов из таблицы materials идентифицировать материалы, имеющие в своем составе алюминий (правильнее, имеющие в своем названии упоминание об алюминии). Эта задача может быть решена с помощью следующего оператора.

SELECT name, name LIKE '%alu%', density FROM materials;

+--------------+-------------------+---------+
| name | name LIKE '%alu%' | density |
+--------------+-------------------+---------+
| steel | 0 | 7.80 |
| aluminium | 1 | 2.70 |
| concrete | 0 | 5.60 |
| duraluminium | 1 | 2.80 |
| titanium | 0 | 4.50 |
| brass | 0 | 8.50 |
+--------------+-------------------+---------+

Пример
Пусть необходимо для каждого конечного элемента определить наибольшее значение разности идентификаторов узлов, являющихся вершинами этого конечного элемента. Данная задача может быть решена следующим оператором

SELECT id, n1, n2, n3, MAX(ABS(n1-n2),ABS(n1-n3),ABS(n2-n3))

FROM elements;

+----+----+----+----+---------------------------------------+
| id | n1 | n2 | n3 | MAX(ABS(n1-n2),ABS(n1-n3),ABS(n2-n3)) |
+----+----+----+----+---------------------------------------+
| 29 | 24 | 26 | 25 | 2 |
| 30 | 24 | 25 | 23 | 2 |
| 31 | 22 | 26 | 24 | 4 |
| 1 | 2 | 3 | 5 | &nbs
p; 3 |
| 2 | 1 | 2 | 4 | &nbs
p; 3 |
| 3 | 2 | 5 | 4 | &nbs
p; 3 |
| 4 | 4 | 5 | 6 | &nbs
p; 2 |
| 25 | 24 | 23 | 21 | 3 |
| 20 | 20 | 19 | 17 | 3 |
| 21 | 21 | 19 | 20 | 2 |
| 22 | 21 | 23 | 19 | 4 |
| 12 | 12 | 14 | 13 | 2 |
| 13 | 12 | 15 | 14 | 3 |
| 14 | 13 | 14 | 18 | 5 |
| 26 | 28 | 27 | 22 | 6 |
| 7 | 7 | 8 | 9 | &nbs
p; 2 |
| 8 | 8 | 10 | 9 | 2
|
| 9 | 9 | 10 | 11 | 2 |
| 10 | 10 | 12 | 11 | 2 |
| 11 | 11 | 12 | 13 | 2 |
| 16 | 16 | 17 | 14 | 3 |
| 17 | 18 | 17 | 14 | 4 |
| 18 | 16 | 20 | 17 | 4 |
| 19 | 19 | 18 | 17 | 2 |
| 15 | 15 | 16 | 14 | 2 |
| 27 | 27 | 29 | 26 | 3 |
| 28 | 22 | 27 | 26 | 5 |
| 5 | 5 | 7 | 6 | &nbs
p; 2 |
| 6 | 5 | 8 | 7 | &nbs
p; 3 |
| 23 | 20 | 22 | 21 | 2 |
| 24 | 24 | 21 | 22 | 3 |
+----+----+----+----+---------------------------------------+

4. В общем случае в_выражение допускает использование агрегативных (называемых также групповыми) функций, принимающих в качестве своего единственного аргумента значения всех ячеек указанного столбца результирующей таблицы. Основные такие функции представлены в таблице 4. Таблица 4. Агрегативные функции

Синтаксис Возвращаемое значение
SUM(x) сумма значений столбца x результирующей таблицы
MAX(x) наибольшее значение из всех значений ячеек столбца x
MIN(x) наименьшее значение из всех значений ячеек столбца x
AVG(x) среднее значение для всех значений ячеек столбца x
COUNT(x) общее количество ячеек в столбце x
Примечание. Функции MAX(...) и MIN(...) с одним аргументом являются агрегативными функциями, они же с двумя и более аргументами - обычные функции (см. таблицу 1).

Пример
Для отыскания наибольшего значения модуля Юнга для материалов, имеющихся в таблице materials, можно использовать следующий оператор

SELECT MAX(elastics) FROM materials;

+---------------+
| MAX(elastics) |
+---------------+
| 200.00 |
+---------------+

Пример
Следующий оператор SELECT позволяет определить общее количество конечных элементов в КЭ-сетке из нашего примера.

SELECT COUNT(*) FROM elements;

+----------+
| COUNT(*) |
+----------+
| 31 |
+----------+

Описание критерия выборки содержимого строк результирующей матрицы
В качестве критерия выбора информации из таблиц списка FROM оператора SELECT выступает сложн_условие, записываемое после ключевого слова WHERE и имеющее следующий вид:

прост_условие

или

прост_условие AND сложн_условие

или

прост_условие OR сложн_условие

Типичными вариантами прост_условие являются следующие.

Сравнение

полн_имя_столбца @ полн_имя_столбца_или_константа

где @ - один из операторов сравнения: ? (?больше?), ? (?меньше?), ?= (? не меньше?), ?= (?не больше?), = (?равно?), ?? (?не равно?), а полное_имя_столбца - имя столбца, конкретизированное при необходимости именем или синонимом имени таблицы, как это было описано выше.

Сопоставление с образцом

полн_имя_столбца [NOT] LIKE образец

где образец имеет вид, описанный в таблице 3.

Проверка на ?пустое? значение в ячейке стодбца

полн_имя_столбца IS [NOT] NULL

При конструировании сложн_условие допустимо использование круглых скобок для управления порядком вычисления условий.

Примечание. Обратите внимание, что синтаксис сложн_условие существенно ?беднее? синтаксиса в_выражение. Дело в том, что сложн_условие используется (в том числе и на физическом уровне организации БД) на этапе выборки из исходной (возможно, очень большой) таблицы (таблиц) необходимых строк в результирующую. Для сокращения времени прямого доступа к строкам таблиц они (таблицы) снабжаются ключами и индексами. Реальный эффект от использования ключей и индексов может быть достигнут только при условии, что запросы на поиск в таблицах используют в качестве критерия поиска только значения ячеек столбцов в ?чистом? виде, а не в виде их комбинации в сложном выражении.
Конструкция же в_выражение применяется, по сути дела, к значениям столбцов уже результирующей таблицы, поэтому сложность в_выражение на эффективность выполнения запроса практически никакого влияния не оказывает.

Пример
Для определения координат местоположения узла 11 может использоваться следующий оператор:

SELECT * FROM nodes WHERE id = 11;

+----+--------+--------+
| id | x | y |
+----+--------+--------+
| 11 | -35.00 | -10.00 |
+----+--------+--------+

Пример
Пусть необходимо определить идентификаторы всех конеч

Посмотреть профиль http://forexsoft.gip-gip.com

Предыдущая тема Следующая тема Вернуться к началу  Сообщение [Страница 1 из 1]

Права доступа к этому форуму:
Вы не можете отвечать на сообщения

 
  •  

Создать форум на Forum2x2 | © PunBB | Бесплатный форум поддержки | Контакты | Сообщить о нарушении | Создать блог