Hi rani,
ExecuteSqlCommand and SqlQuery both allow to use Entity Framework to execute raw SQL queries.
Generally, the SqlQuery method is used for actual queries where you expect data to be returned (i.e. SELECT statements) and SqlCommands are going to be more commonly used for non-queries (i.e. Insert, Update and Delete).
The ExecuteSqlCommand() method will return the number of rows affected by the query, whereas SqlQuery returns a value of any type (a collection of entities or objects) for the given query.
Example
SqlQuery
var customers = Context.Customers.SqlQuery("SELECT * FROM Customers").ToList();
ExecuteSqlCommand
var rowsAffected = Context.Database.ExecuteSqlCommand("INSERT INTO Customers (Name) VALUES ('Dharmendra'));