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


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

Вход

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



Ноябрь 2017
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
27282930   

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

Опрос

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

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 сюжете(ах)
Кто сейчас на форуме
Сейчас посетителей на форуме: 1, из них зарегистрированных: 0, скрытых: 0 и гостей: 1

Нет

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


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


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

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

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

Admin

avatar
Admin
Краткое описание операторов языка SQL

Работа с операторами SQL
Выбор данных

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

SELECT column-list FROM table-list [WHERE where-clause] [ORDER BY order-by-clause]

Операторы SELECT должны содержать слова SELECT и FROM; другие ключевые слова, такие как WHERE или ORDER BY, являются необязательными.

За ключевым словом SELECT следуют сведения о том, какие именно поля необходимо включить в результирующий набор данных. Звездочка (*) обозначает все поля таблицы, например:

SELECT *

Для выбора одной колонки применяется следующий синтаксис:

SELECT CompanyName Пример выбора нескольких колонок имеет вид:

SELECT CompanyName, ContactName, ContactTitle

Если выбор данных осуществляется из нескольких таблиц и при этом выбираются одноименные поля из разных таблиц, следует ссылаться на имена таблиц для полной идентификации полей, включаемых в результирующий набор данных, например:

SELECT Customers.CompanyName, Shippers.CompanyName

Предложение FROM

Для указания имен таблиц, из которых выбираются записи, применяется ключевое слово FROM, например:

SELECT * FROM Customers

Этот запрос возвратит все поля из таблицы Customers.

Если в результирующем наборе данных нужны только поля CompanyName и ContactName, мы можем ввести следующее предложение SELECT:

SELECT CompanyName, ContactName FROM Customers

Пример запроса к более чем одной таблице приведен ниже:

SELECT Customers.CompanyName, Shippers.CompanyName FROM Customers, Shippers

Предложение WHERE

Для фильтрации результатов, возвращаемых оператором SELECT, можно использовать предложение WHERE, синтаксис которого имеет вид:

WHERE expression1 [{AND | OR} expression2 […]]

Например, вместо получения полного списка продуктов можно ограничиться только теми из них, у которых значение поля CategoryID равно 4:

SELECT * FROM Products WHERE CategoryID = 4

В предложении WHERE можно использовать различные выражения, например:

SELECT * FROM Products WHERE CategoryID = 2 AND SupplierID > 10

или:

SELECT ProductName, UnitPrice FROM Products WHERE CategoryID = 3 OR UnitPrice < 50

или:

SELECT ProductName, UnitPrice FROM Products WHERE Discontinued IS NOT NULL

Выражение ‘IS NOT NULL’ означает, что соответствующая колонка результирующего набора данных не может содержать пустых значений. В предложении WHERE можно использовать один из шести операторов отношений, определенных в SQL. Эти операторы приведены в табл. 1.

Таблица 1
Оператор Описание
< Меньше
<= Меньше или равно
<> Не равно
= Равно
> Больше
>= Больше или равно

Помимо перечисленных выше простых операторов сравнения, можно использовать и специальные операторы сравнения, приведенные в табл. 2.

Таблица 2
Оператор Описание
ALL Применяется совместно с операторами сравнения при сравнении со списком значений
ANY Применяется совместно с операторами сравнения при сравнении со списком значений
BETWEEN Применяется при проверке нахождения значения внутри заданного интервала (включая его границы)
IN Применяется для проверки наличия значения в списке
LIKE Применяется при проверке соответствия значения заданной маске

Приведем несколько примеров применения этих операторов. Для сопоставления данных с маской применяется ключевое слово LIKE:

SELECT CompanyName, ContactName FROM Customers WHERE CompanyName LIKE ‘M%’

В данной маске символ ‘%’ (процент) заменяет любую последовательность символов, а символ ‘_’ (подчеркивание) — один любой символ. Тот же самый результат может быть получен следующим способом:

SELECT CompanyName, ContactName FROM Customers WHERE CompanyName BETWEEN ‘M’ AND ‘N’

В последнем примере мы можем расширить область поиска. В частности, при поиске компаний с именами, начинающимися с букв от A до C, можно выполнить следующий оператор SELECT:

SELECT CompanyName, ContactName FROM Customers WHERE CompanyName BETWEEN ‘A’ AND ‘D’

Используя оператор LIKE, мы можем сузить диапазон поиска, применив более сложную маску для сравнения. Например, чтобы найти компании, содержащие в своем названии подстроку bl, можно применить следующий запрос:

SELECT CompanyName, ContactName FROM Customers WHERE CompanyName LIKE ‘%bl%’

Маска ‘%bl%’ показывает, что до и после искомой подстроки может быть любое количество произвольных символов.

Используя оператор IN, можно задать список значений, в котором должно содержаться значение поля:

SELECT CompanyName, ContactName FROM Customers WHERE CustomerID IN (‘ALFKI’, ‘BERGS’, ‘VINET’)

Операторы AND, OR и NOT

Мы уже рассматривали пример применения оператора AND для логических операций, связанных с требованием, чтобы запись удовлетворяла двум разным критериям. Рассмотрим следующий запрос:

SELECT CompanyName, ContactName FROM Customers WHERE CompanyName LIKE ‘S%’ AND Country = ‘USA’

Результатом выполнения этого запроса будет список заказчиков, находящихся в США, название которых начинается с буквы S.

Оператор OR позволяет выбрать записи, удовлетворяющие хотя бы одному из перечисленных условий, в то время как оператор NOT используется для исключения из набора данных записей, удовлетворяющих данному условию. Например, можно применить оператор OR для поиска всех заказчиков, либо находящихся в Калифорнии, либо имеющих название, начинающееся с буквы S (и при этом находящихся где угодно):

SELECT CompanyName, ContactName FROM Customers WHERE CompanyName LIKE ‘S%’ OR Region=’CA’

В этом случае результирующий набор данных будет содержать записи, в которых значение поля CompanyName удовлетворяет первому условию, плюс все записи, в которых значение поля Region удовлетворяет второму условию.

Теперь рассмотрим пример применения оператора NOT. Для исключения некоторых заказчиков из результирующего набора данных можно использовать запрос вида:

SELECT CompanyName, ContactName FROM Customers WHERE Country NOT IN (‘USA’, ‘UK’)

В результате выполнения этого запроса мы получим список заказчиков из всех стран, кроме США и Великобритании.

Предложение ORDER BY

Предложение ORDER BY (необязательное) применяется для сортировки результирующего набора данных по одной или нескольким колонкам. Для определения порядка сортировки используются ключевые слова ASC (по возрастанию) или DESC (по убыванию). По умолчанию данные сортируются по возрастанию. Синтаксис предложения ORDER BY имеет вид:

ORDER BY column1 [{ASC | DESC}] [, column2 [{ASC | DESC}] [,…]

Например, для сортировки сотрудников по фамилии и затем по имени следует использовать следующий SQL-запрос:

SELECT LastName, FirstName, Title FROM Employees ORDER BY LastName, FirstName

Если сортировка данных требуется в убывающем порядке (например, требуется список продуктов в порядке убывания цен), используется ключевое слово DESC:

SELECT ProductName, UnitPrice FROM Products ORDER BY UnitPrice DESC

Связывание таблиц

Как мы уже убедились, можно создавать запросы, позволяющие извлечь данные из нескольких таблиц. Одна из возможностей сделать это заключается в связывании таблиц по одному или нескольким полям. Обратите внимание на то, что без связывания таблиц в результате запроса получится набор данных, содержащий все возможные комбинации строк каждой из исходных таблиц (известное также как декартово произведение):

SELECT ProductName, CategoryName FROM Products, Categories

в то время как запрос, показанный ниже, приводит к отображению списка продуктов с указанием, к какой категории принадлежит данный продукт:

SELECT ProductName, CategoryName FROM Products, Categories WHERE Products.CategoryID = Categories.CategoryID

Можно сравнить результаты этих двух запросов. В общем случае синтаксис для связывания таблиц имеет вид:

SELECT column-list FROM table1, table2 WHERE table1.column1=table2.column2

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

Существует несколько типов связывания таблиц. Например, следующий оператор SQL осуществляет так называемое внутреннее соединение таблиц (inner join) — в этом случае в результирующем наборе данных содержатся записи, в которых значения в связанных полях совпадают:

SELECT ProductName, CategoryName FROM Products INNER JOIN Categories ON Products.CategoryID = Categories.CategoryID

Так называемые внешние соединения (outer joins) позволяют нам включить в результат запроса все строки из одной таблицы и соответствующие им строки из другой таблицы. Например:

SELECT ProductName, CategoryName FROM Products LEFT OUTER JOIN Categories ON Products.CategoryID = Categories.CategoryID

Это было так называемое левое внешнее соединение (left outer join). Существуют также правые внешние соединения (right outer join), возвращающие все строки из второй (то есть правой) таблицы и соответствующие им строки из другой таблицы:

SELECT ProductName, CategoryName FROM Products RIGHT OUTER JOIN Categories ON Products.CategoryID = Categories.CategoryID

Комбинируя левое и правое внешние соединения, можно получить полное внешнее соединение, возвращающее все данные из обеих таблиц:

SELECT ProductName, CategoryName FROM Products FULL OUTER JOIN Categories ON Products.CategoryID = Categories.CategoryID

Для получения всех комбинаций строк из обеих таблиц (декартова произведения) можно использовать ключевое слово CROSS JOIN без указания связываемых полей:

SELECT ProductName, CategoryName FROM Products CROSS JOIN Categories

Если в запросе используется более трех таблиц, можно иcпользовать вложенные соединения.

Предложение GROUP BY

Для вычисления суммарных значений на основе данных одной или нескольких таблиц можно использовать предложение GROUP BY, имеющее такой синтаксис:

GROUP BY {column1} [, …]

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

SELECT Customers.CustomerID, COUNT (Orders.OrderID) FROM Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID GROUP BY Customers.CustomerID

В приведенном выше примере запроса мы использовали в предложении SELECT агрегатную функцию COUNT, вычисляющую количество значений.

Предложение HAVING

Предложение HAVING имеет назначение, сходное с предложением WHERE, но используется с агрегатными данными. Например:

SELECT Customers.CustomerID, COUNT (Orders.OrderID) FROM Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID GROUP BY Customers.CustomerID HAVING COUNT(Orders.OrderID) >= 10

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

Ключевые слова ALL и DISTINCT

До этого момента мы рассматривали, как извлечь все или заданные колонки из одной или нескольких таблиц. Для управления выводом дублирующихся строк результирующего набора данных можно использовать ключевые слова ALL или DISTINCT в предложении SELECT. Ключевое слово DISTINCT указывает, что строки результирующего набора данных должны быть уникальны, тогда как ключевое слово ALL указывает, что возвращать следует все строки. Например, для извлечения названий стран, в которых имеются заказчики, можно использовать следующий запрос:

SELECT DISTINCT Country FROM Customers

Отметим, что ключевое слово ALL используется по определению. Если в запросе требуется вывести более одной колонки и при этом использовано слово DISTINCT, то результирующий набор данных будет содержать различные строки, но некоторые значения одного и того же поля в разных строках могут совпадать.

Ключевое слово TOP

Ключевое слово TOP может быть использовано для возврата первых n строк или первых n процентов таблицы. Например, запрос:

SELECT TOP 10 * FROM PRODUCTS ORDER BY ProductName

возвращает первые 10 продуктов из таблицы, тогда как запрос:

SELECT TOP 25 PERCENT * FROM PRODUCTS ORDER BY ProductName

вернет первую четверть записей таблицы.

Модификация данных

До сих пор мы изучали операторы SQL для извлечения данных. Помимо этого язык SQL может быть использован для обновления и удаления данных, копирования записей в другие таблицы и выполнения многих других операций. Ниже мы рассмотрим операторы UPDATE, DELETE и INSERT, используемые для решения некоторых из этих задач.

Оператор UPDATE

Для изменения значений в одной или нескольких колонках таблицы применяется оператор UPDATE. Синтакcис этого оператора имеет вид:

UPDATE tableSET column1 = expression1 [, column2 = expression2] [,…] [WHERE criteria]

Выражение в предложении SET может быть константой или результатом вычислений. Например, для повышения цен всех продуктов, стоящих меньше 10 долл., можно выполнить следующий запрос:

UPDATE Products SET UnitPrice = UnitPrice * 1.1 WHERE UnitPrice < 10

Оператор DELETE

Для удаления строк из таблиц следует использовать оператор DELETE, синтаксис которого имеет вид:

DELETE FROM table [WHERE criteria]

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

Например, для удаления из списка всех продуктов, которые больше не поставляются, можно выполнить следующий запрос:

DELETE FROM Products WHERE Discontinued = 1

Отметим, что полезно использовать оператор SELECT с тем же синтаксисом, что и оператор DELETE, чтобы проверить, какие именно записи будут удалены, прежде чем действительно их удалять. Ниже показан оператор SELECT для приведенного выше запроса на удаление данных:

SELECT ProductName FROM Products WHERE Discontinued = 1

Можно использовать в предложении WHERE более сложный критерий для определения того, какие записи должны быть удалены. Предположим, нам нужно удалить из списка клиентов тех из них, кто не имел заказов до определенной даты. Сначала для этого следует выполнить следующий SELECT, чтобы определить, что именно мы удаляем:

SELECT CompanyName FROM Customers WHERE Customers.CustomerID NOT IN (SELECT CustomerID FROM Orders WHERE OrderDate > 01/01/96)

а затем заменить оператор SELECT на оператор DELETE:

DELETE FROM Customers WHERE Customers.CustomerID NOT IN (SELECT CustomerID FROM Orders WHERE OrderDate > 01/01/96)

Замечание. При использовании в операторах SQL даты или времени, а также полей, содержащих такие данные, следует уточнить синтаксис таких предложений в документации из комплекта поставки используемой СУБД.

Оператор INSERT

Для добавления записей в таблицы следует использовать оператор INSERT, синтаксис которого имеет вид:

INSERT [INTO] table ( [column_list] { VALUES ( { DEFAULT | NULL | expression } } [, …] )

Например, для добавления нового клиента в таблицу Customers можно использовать следующий запрос:

INSERT INTO Customers (CustomerID, CompanyName) VALUES (‘XYZFO’, ‘XYZ Deli’)

Модификация метаданных

Существует несколько операторов SQL для управления метаданными, используемых для создания, изменения или удаления баз данных и содержащихся в них объектов (таблиц, представлений и др.). Мы рассмотрим некоторые из них: CREATE TABLE, ALTER TABLE и DROP.

Оператор CREATE TABLE

Для создания новой таблицы необходимо использовать оператор CREATE TABLE, синтаксис которого имеет вид:

CREATE TABLE table ( column1 type1 [(size1)][CONSTRAINT _ column-constraint1] [, column2 type2 [(size2)][CONSTRAINT _ column-constraint2] [, ...]] [CONSTRAINT table-constraint1 _ [,table-constraint2 [, ...]]]);

В этом операторе следует указать имя поля, тип данных для него (тип данных должен поддерживаться данной СУБД), длину (для некоторых типов полей) и, если нужно, серверные ограничения (с применением ключевого слова CONSTRAINT). Например, следующий запрос создает таблицу с именем Simple с четырьмя колонками — LastName, FirstName, EMail и HomePage:

CREATE TABLE Simple (FirstName varchar(50) NOT NULL, LastName varchar(50) NOT NULL, EMail varchar(50), HomePage varchar(255) )

Мы можем расширить эту таблицу добавлением поля PersonID, которое будет использовано как первичный ключ:

CREATE TABLE Simple ( PersonID Integer NOT NULL PRIMARY KEY, FirstName varchar(50) NOT NULL, LastName varchar(50) NOT NULL, EMail varchar(50), HomePage varchar(255) )

и указать, что комбинация полей LastName и FirstName должна быть уникальна:

CREATE TABLE Simple ( PersonID Integer NOT NULL PRIMARY KEY, FirstName varchar(50) NOT NULL, LastName varchar(50) NOT NULL, EMail varchar(50), HomePage varchar(255), CONSTRAINT SimpleConstraint UNIQUE (FirstName, LastName) )

Используя предложение SELECT и ключевое слово INTO, мы можем создавать новые таблицы, основанные на условии, указанном в предложении WHERE. Например:

SELECT * INTO NewOrders FROM Orders WHERE OrderDate > 1/1/97 Этот запрос создаст новую таблицу NewOrders и заполнит ее данными о заказах начиная с 1 января 1997 года.

Оператор ALTER TABLE

Для изменения структуры существующей таблицы можно использовать оператор ALTER TABLE. Применяя его, можно добавить или удалить поле или серверное ограничение. Существует четыре разновидности оператора ALTER TABLE.

Первая разновидность этого оператора используется для добавления колонки к таблице, и ее синтаксис имеет вид:

ALTER TABLE table ADD [COLUMN] column datatype [(size)] [CONSTRAINT sinlge-column-constraint]

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

ALTER TABLE Simple ADD Phone varchar(30)

Вторая разновидность оператора ALTER TABLE применяется для добавления серверных ограничений к таблице, а ее синтаксис имеет вид:

ALTER TABLE table ADD CONSTRAINT constraint

Такие запросы позволяют только добавлять индексы, позволяющие использовать соответствующие поля в качестве первичных или внешних ключей.

Третья разновидность предложения ALTER TABLE применяется для удаления поля из таблицы:

ALTER TABLE table DROP [COLUMN] column

Ключевое слово COLUMN использовать не обязательно. Например:

ALTER TABLE Simple DROP Phone

Обратите внимание на то, что для удаления проиндексированных полей следует сначала удалить индекс. Это можно сделать с помощью четвертой разновидности предложения ALTER TABLE:

ALTER TABLE table DROP CONSTRAINT index

Ниже приведен пример такого запроса:

ALTER TABLE Simple DROP CONSTRAINT PrimaryKey

Оператор DROP

Для удаления таблиц или индексов можно использовать оператор DROP, имеющий две разновидности. Первая из них применяется для удаления таблицы из базы данных:

DROP TABLE table

Вторая разновидность используется для удаления индекса:

DROP INDEX index ON table

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

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

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

 
  •  

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