A Geographical Information System(GIS) should be able to handle spatial data and non-spatial data in an intergrated manner. Current relational database query languages, which handle alphanumeric data efficiently, do not properly handle spatial data. Therefore, they are not suitable for processing GIS applications. We need a spatial query language that can query spatial data and non-spatial data in an intergrated manner. In this thesis, we first survey the characteristics of spatial queries and the requirements for spatial query languages. We then design and implement a spatial query language for GISs based on these requirements. Our spatial query language (1) extends OQL, the object-oriented query language of the ODMG-93 specification, to support spatial queries as well as OQL's non-spatial queries; (2) defines spatial objects and spatial operators to be used in spatial queries; (3) supports object-oriented concepts. The implementation of our query language fully utilizes spatial scans and spatial joins using a spatial access method.