This paper addresses the problem of data integration in a P2P environment, where each peer stores schema of its local data, mappings between the schemas, and some schema constraints. The goal of the integration is to answer queries formulated against a chosen peer. The answer consists of data stored in the queried peer as well as data of its direct and indirect partners. We focus on defining and using mappings, schema constraints, query propagation across the P2P system, and query reformulation in such scenario. The main focus is the exploitation of constraints for merging results from different peers to derive more complex information, and utilizing constraint knowledge to query propagation and the merging strategy. We show how the discussed method has been implemented in SixP2P system.