Является ли SQL языком программирования

Docman80

или это просто компьютерный язык?
Поспорили с коллегами...
спор на форуме

Papazyan

Может быть с научной точки зрения. С практической конечно нет.

Dasar

sql - не является полноценным языком программирования (не эквивалентен машине тьюринга, например, из-за отсутствия возможности сделать бесконечный цикл)
pl/sql - является полноценным языком

Docman80

я, видимо, не различаю sql и его расширения, но есть же while (1)?

Dasar

есть же while (1)?
afaik, в стандарт sql-я оно не входит

PooH

t-sql - да
или ты про ANSI SQL спрашиваешь?

Maurog

сперва следует определиться с понятием "язык программирования", а затем уже его использовать
проще всего сослаться на вики: http://en.wikipedia.org/wiki/Programming_language
с моей точки зрения SQL является языком программирования, т.к. обладает двумя важными качествами: есть синтаксис и есть семантика
например, XML в моем понимании уже не является языком программирования, т.к. семантика отсутствует, определен лишь синтаксис.
SQL действительно не полный по Тьюрингу и страдает слабой выразительностью, однако от этого он не перестает быть языком.
на вики можно найти упоминание о SQL:
Expressive power: The theory of computation classifies languages by the computations they are capable of expressing. All Turing complete languages can implement the same set of algorithms. ANSI/ISO SQL and Charity are examples of languages that are not Turing complete, yet often called programming languages

hprt

Я думаю, просто очень часто смешивают понятия SQL и его расширений. Расширения что T-SQL, что PL/SQL - нормальные языки программирования. Чисто SQL содержит по сути только две части - DML и DDL (на всякий случай, data modification и data definition)

evgen5555

А XPath является языком программирования?

luna89

sql - не является полноценным языком программирования (не эквивалентен машине тьюринга, например, из-за отсутствия возможности сделать бесконечный цикл)
Бесконечные циклы можно делать через with recursive, который входит в стандарт и поддерживается Oracle, DB2, SQL Server и PostgreSQL.

with recursive t(x) as (
select 1 union all
select x+1 from t
)
select * from t

luna89

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

evgen5555

Является ли SQL объединением SQL-pre-1999 и SQL-1999?
Оставить комментарий
Имя или ник:
Комментарий: