Eu acho que sua pergunta real é "por que não existem linguagens de programação que acompanham as bibliotecas de banco de dados "?
Linguagens de uso geral tratam todas as E / S como uma e a mesma coisa, seja gravando ou lendo de / para um disco, uma webcam, a rede, a tela, um local na memória - é tudo E / S, e é isso que as linguagens de programação se preocupam com.
De fato, além da leitura / gravação no heap and stack, a maioria das linguagens de programação nem sequer realiza IO. Alguns idiomas fornecem recursos nativos para expressar operações de E / S (por exemplo, o print
comando no BASIC), mas a maioria dos idiomas os trata como chamadas de função normais (por exemplo, printf
em C) e permite que as bibliotecas manejem a escrita real.
Alguns idiomas, como o C #, oferecem recursos de idioma para expressar consultas, mas, mesmo assim, são apenas expressões na estrutura de dados mais básica das listas (ou IEnumerable
s, como são chamadas no .NET) que são traduzidas para operações SQL pelas bibliotecas - a própria linguagem ainda está apenas trabalhando com noções muito abstratas de IO.
Quanto ao motivo pelo qual construir um pacote de banco de dados na biblioteca padrão de uma linguagem de programação não é uma boa idéia, é mais provável que nada mais em uma biblioteca padrão normalmente dependa da funcionalidade do banco de dados.