2012-05-12 4 views
2

Итак, мне не повезло найти какие-либо статьи или сообщения на форуме, которые объяснили мне, как именно язык запросов работает в сочетании с языком программирования общего использования, например C++ или vb. Поэтому я думаю, что это не повредит спросить>. <Смутно о роли языка запросов

В принципе, мне было трудно понять, каковы роли языка запросов (мы будем использовать SQL в качестве примера для языка запросов и VB6 для нормального языка), если я создаю простую базу данных запрос, который заполняет таблицу обычной информацией (имя, фамилия, адрес и т. д.). Я несколько знаю шаги по настройке такой программы, используя объекты ado для подключения и еще много чего, но как мы решаем, какой язык 2 используется для определенных вещей? Vb6 специально обрабатывает основы, такие как циклы, если else, декларации ваших vars, а SQL специально обрабатывает такие вещи, как подключение к базе данных и выполнение поиска, фильтрации и сортировки? Возможно ли выполнить некоторые общие действия vb6 для использования (циклы или условные выражения) в синтаксисе SQL? Любая помощь была бы высоко оценена.

ответ

5

SQL - это язык запроса базы данных. SQL - это ISO standard, а поставщики реляционных баз данных реализуют стандарт ISO, а затем добавляют собственные настройки. Например, в SQL Server он называется T-SQL, а в Oracle он называется PL-SQL.Они оба внедрения стандартов ISO и поэтому каждый из них будет иметь одинаковые запросы для простого выбора, как

select columname from tablename where columnname=1 

Однако, имеют разный синтаксис для строковых функций, функций даты и т.д ....

Стандарт ISO SQL по дизайну не является полным процедурным языком с циклом, подпрограммами и т. д. как на полном процедурном языке, таком как VB.

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

Например, как T-SQL и PL-SQL, может «петля» через запись с использованием различных конструкций на их языке.

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

Базы данных могут работать с процедурными конструкциями, но часто более эффективны с установленным основанием. Разработчик, который не разбирается в этой концепции, может в конечном итоге создать очень неэффективный запрос. Here's an example of this discussion.

В любой ситуации вам нужно весовать про/con, где лучше всего выполнять эту работу.

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

Однако я сохраняю оба варианта в качестве инструмента в панели инструментов. Например, я написал сценарии преобразования данных в SQL, и в этом случае я использовал конструкции цикла в SQL.

+0

Это прояснило мою путаницу. Спасибо дружище. – Garrettchap1

1

Обычно язык программирования выполняется на стороне клиента (сервер приложений тоже), а языки запросов выполняются на сервере db, поэтому в конечном итоге это зависит от того, где вы хотите поместить всю работу. Иногда вы можете поместить много работы на стороне клиента, выполнив все вычисления с помощью языка программирования и в другие моменты, когда вы хотите использовать больше сервера db, и в конечном итоге вы используете язык запросов или даже лучше tsql/psql или что-то еще.

+0

Я думаю, что этот ответ соответствует заданному вопросу * гораздо лучше *, чем остальные. Однако, возможно, исходный вопрос заключался не в том, что действительно было в OP, а в желании узнать ответ на что-то вроде «Что делает SQL?» – Bob77

1

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

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

Для «простого» типа приложений, в котором используется множество данных, но с минимальными или пакетными изменениями, вы хотите перенести большую часть обработки в базу данных, насколько это разумно. Вот что вы не хотите делать:

  1. Используйте запросы для загрузки вещей в массивы, а затем массивные манипуляции на уровне языка. SQL предоставляет объединения для этого.
  2. Загрузите данные в массив и выполните манипуляции и сводки по массиву. SQL предоставляет для этого агрегации.
  3. Сохраните данные в файл, чтобы иметь резервную копию. Базы данных обеспечивают механизмы резервного копирования.

Если данные вписываются в массив или в электронную таблицу Excel, часто бывает достаточно начать работу с данными, хранящимися там. Преимущество базы данных становится более очевидным только тогда, когда вы начинаете расширять потребности (несколько клиентов, безопасность, интеграцию с другими данными).

Это просто руководство и дать вам несколько идей.

1

С точки зрения того, что делать, делайте столько, сколько разумно в SQL (учитывая, что он работает на сервере), как вы можете.

Так, например, не делать вещи, как это (псевдо код)

foreach(row in "Select * from Orders") 
    if (row[CustomerID] = 876) 
    Display(row) 

ли

foreach(row in "Select * from Orders where CustomerId = 876") 
    Display(row) 

Во-первых, это возможные заказы индексируется CustomerID так будет найти все 876s заказ способ быстрее ,

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

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

Здесь вы делаете какую-то обработку. Это правило с исключениями, но основная идея - позволить вашему бэкэнду делать все возможное.

Смежные вопросы