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 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. + Universidade Aluno Materia Nota SituaçãoAlberto Calculo10Aprovado LucasBanco de Dados4ReprovadoAndréiaProgramação 7AprovadoLucasCalculo4.9 Reprovado MarianaFisica7AprovadoFernandoCalculo 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").

Categoria:Linguagens de consulta