Hi Dileep - with AQL, you don't need to understand the underlying table structure where the data resides. So a business analyst that understands that there's this object called Requisition and that object has LineItems can simply write an AQL to retrieve information on the Req number, the Requester, the cost and who the supplier is:
SELECT this, UniqueName, Requester.Name, TotalCost, LineItems.Supplier
FROM Requisition
AQL will take care of the joins from the other tables like User (requester), Supplier and LineItems through Java. To achieve this in SQL, you'd need to understand how all this relates. Much more technical.
Note that AQL automatically adds INCLUDE ACTIVE, therefore if you need to access inactive records, you need to explicitly add INCLUDE INACTIVE. It also adds restricts the query to a partition, but this can be overridden as well.