关系数据库的数据操纵语言包括数据查询语句和数据更新语句两类。数据查询是数据更新的前提,数据更新是在数据查询的基础上完成对数据的增加、删除和修改操作。所以,查询是更复杂的操作,也是数据库语言的主要研究对象,而且有理论基础的也只有关系查询语言,查询语言的理论也称为关系运算理论。
  关系查询语言分为抽象的查询语言和具体系统中的实际语言。具体系统中实现的查询语言是以抽象的查询语言为理论基础,实际查询语言不同对应的关系运算理论也不同,其理论基础也有区别。
  各种关系查询语言都属于非过程化语言,但不同语言非过程化程度不同。抽象的查询语言通常称为关系运算。关系运算分为关系代数和关系演算:
● 关系代数语言:用对关系的运算来表达查询,是以集合操作为基础的运算,查询表达式中需要指明操作的先后顺序。
● 关系演算语言:用谓词来表达查询,是以谓词演算为基础的运算。它的非过程化较强,只需描述所需信息的特性,操作顺序仅限于量词的顺序。关系演算语言又分为:元组关系演算(谓词变元的基本对象是元组变量)和域关系演算(谓词变元的基本对象是域变量)。
  在当前的关系数据库系统中,具体实现的语言包括:
● SQL:介于关系代数和关系演算之间,由IBM公司在研制System R时提出的。
● QUEL:基于E.F.Codd提出的元组关系演算语言ALPHA,在INGRES上实现。
● QBE:基于域关系演算,由IBM公司研制。
  关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式,它是用关系的运算来表达查询要求的。关系代数也是关系理论及SQL语言的基础。
  关系代数的运算对象是关系,运算的结果也是关系。关系代数用到的运算符包括:集合运算符、逻辑运算符、比较运算符和专门的关系运算符,如下所示。
  集合运算符:并(∪)、交(∩)、差(-);
  逻辑运算符:与(∧)、或(∨)、非();
  比较运算符:大于(>)、等于(=)、小于(<)、不等()、大于等于()、小于等于();
  专门的关系运算符:广义笛卡尔积( )、选择( )、投影( )、连接()、除(÷)。
  关系代数的运算按运算符可分为两类,两种运算在功能上是等价的:
● 传统的集合运算:并、交、差和广义笛卡尔积等。集合运算把关系看作元组的集合,从水平(行)方向进行运算,广义笛卡儿积是把两个关系的元组以所有可能的方式组成对。
● 专门的关系运算:选择、投影、连接和除等。既从行又从列的方向进行运算。"选择"会删除某些行;"投影"会删除某些列;各种连接运算是从两个关系的元组中有选择的组成对构成一个新关系。