Bahasa Query merupakan bahasa khusus yang digunakan untuk melakukan manipulasi dan memberikan pertanyaan (query) yang berhubungan dengan data dalam database. Bahasa query tidak sama dengan bahasa pemograman. Bahasa query tidak memiliki kemampuan untuk menyelesaikan masalah seperti bahasa pemograman pada umunya. Model relasional merupakan model database yang didukung oleh bahasa query. Terdapat dua bahas query matematika yang merupakan bahasa yang mendasari SQL, yakni aljabar relasional dan kalkulus relasional.
1.       Aljabar Relasional
Query dalam aljabar relasional disusun menggunakan beberapa operator. Setiap query menjabarkan langkah demi langkah untuk mendapatkan jawaban dari pertanyaan yang diajukan dalam query. Aljabar relasional dapat dikatakan sebagai kumpulan operasi yang digunakan untuk melakukan manipulasi pada suatu relasi yang telah didefinisikan dalam model relasional. Aljabar relasional, di samping menggunakan nama field (atribut) sebagai acuan dalam melakukan query, juga menggunakan posisi dari field sebagai acuan. Hasil dari oeperator aljabar akan menghasilkan relasi yang baru dengan nama field yang akan ‘inherit’ (turunan) dengan nama field input.
Setiap operator dalam aljabar relasional dapat menggunakan satu atau lebih relasi sebagai argumen atau input dan akan menghasilkan sebuah relasi baru. E. F. Codd mendefinisikan delapan operator aljabar relasional yang kemudian dibagi dua kelompok menjadi :
a.       Operator relasional tradisional : Union, intersection, difference dan cartesian product.
b.      Operasi relasional khusus : select, project, join dan division
2.       Kalkulus Relasional
Selain aljabar relasional, kalkulus relasional merupakan notasi matematika lain yang digunakan untuk melakukan query. Berbeda dengan aljabar relasional yang bersifat prosedural, kalkulus relasional lebih bersifat deklaratif atau non-prosedural. Ada dua tipe kalkulus relasional, yaitu :
a.       Tuple relational calculus (TRC)
b.      Domain relational Calculus (DRC)