How is Stochastic Gradient Descent used like Mini Batch gradient descent?
But in some cases they use Stochastic Gradient Descent and they define
  a batch size for training, I am confused about that?


If you defining a batch size, then you are performing mini-batch gradient descent.

Stochastic Gradient Descent ( SGD ) and Mini Batch Gradient Descent are often used interchangeably in many places. The idea is that if the batch size is 1, then its totally SGD. 

If the batch size is equal to the number of samples in the dataset, then its Batch Gradient Descent.


  Also, what about Adam, AdaDelta, AdaGrad, are they all mini-batch
  gradient descent? or not?


Adam, Adadelta and AdaGrad are all different in which we update the parameters.  The main concept of GD is the calculation of gradient of the loss function which is fundamental to all the above optimizers.

The difference is where on how much samples from a dataset are the gradients of the loss function calculated.
After the gradients are calculated, the different optimizers mentioned use modified methods to update the parameters using the calculated gradients.

Finally,


  SGD, Mini batch/Batch GD are methods determining on how much samples are gradients calculated.
  AdaGrad, Adadelta etc. update the parameters differently based on
  calculated gradients.