QUEL
Este artigo não cita fontes confiáveis. (Agosto de 2020) |
A QUEL é uma antiga linguagem de consulta para bancos de dados relacionais.
A QUEL é muito similar à SQL, mas ela é mais fácil de usar e tem uma escrita mais simples. Ela foi criada como parte do desenvolvimento do Ingres, na Universidade de Berkeley, Califórnia, baseada nas sugestões da linguagem não implementada de E. F. Codd. A QUEL foi usada por um curto período nos programas baseado dos códigos do Ingres, mais notadamente o Informix.
Diferença entre QUEL e SQL
[editar | editar código-fonte]De muitas formas, a QUEL é similar ao SQL. Uma diferença é que as declarações da QUEL são definidas com tuplas variáveis, onde podem ser usadas limitando as entradas ou retornando os resultados.
Aluno | Materia | Nota | Situação |
---|---|---|---|
Alberto | Calculo | 10 | Aprovado |
Lucas | Banco de Dados | 4 | Reprovado |
Andréia | Programação | 7 | Aprovado |
Lucas | Calculo | 4.9 | Reprovado |
Mariana | Fisica | 7 | Aprovado |
Fernando | Calculo | 5 | Aprovado |
Um exemplo baseado nos dados acima é mostrado. Queremos pesquisar os nomes de todos os alunos que foram aprovados nas matérias.
range of busca is universidade retrieve nome = busca.Aluno where busca.nota >= 5
Nesta busca, nome é o nome da tupla a ser mostrada. Neste caso, todas as linhas contendo nota>=5 serão mostradas. Fazendo o mesmo exemplo em SQL percebemos o quanto elas são parecidas:
select busca.Aluno as nome from universidade as busca where busca.nota >= 5
Vamos considerar agora um exemplo para criar a tabela universidade, inserir uma linha de informação, e acessar e modificar uma informação dentro dela. Em QUEL temos:
create universidade (Aluno = c20, Materia = c15, Nota = i2, Situação = c10) append to universidade(Aluno = "Mariana", Materia = "Fisica", Nota = 7, Situação = "Aprovada")
range of P is universidade retrieve (busca.all) where P.materia = "fisica print P
range of P is universidade replace universidade(Nota = p.Nota + 1) print P
Abaixo está a mesma declaração em SQL:
create table universidade (Aluno char(20), Materia char(15), Nota int, Situação char(10) insert universidade (Aluno, Materia, Nota, Situação), values ("Mariana", "Fisica", 7, "Aprovada")
select from universidade as p where p.Materia = "Fisica"
update universidade set Nota = Nota + 1
Note que cada comando em QUEL usa uma sintaxe única, porém em SQL, cada comando similar como INSERT e UPDATE usa estilos completamente diferentes.
Outra vantagem da QUEL foi construir um sistema interno para movimentar uma grande massa de dados para fora do banco de dados. Considere o comando:
copy universidade(Aluno=c0, comma=d1, Materia=c0, comma=d1, Nota=c0, comma=d1, situação=c0, nl=d1) into "/estudantes.txt"
que cria uma vírgula como delimitador de campo para cada registro na tabela universidade. O d1 indica um delimitador, ao invés de um tipo de dados. Modificando o into para from revertemos o processo. Comandos similares estão disponíveis em muitos sistemas SQL, mas geralmente como ferramentas externas, ao invés de serem internos à linguagem SQL. Isso os torna indisponíveis para as "stored procedures" ("funções armazenadas").