En una base de datos puedes almacenar una imagen. Generalmente lo harías en un campo binario, ahí depende del gestor de base de datos que uses el tipo de campo que necesitarás. No te concreto más, porque realmente guardar el archivo de la imagen en binario no es la manera aconsejada de almacenar una imagen en la base de datos. Esto haría que la base de datos creciese innecesariamente, es mejor que el almacenamiento de archivos quede en el sistema de archivos del servidor.
Lo que se suele hacer en verdad es lo siguiente:
- En tu tabla creas un campo de tipo "string" para guardar la imagen
- En ese campo almacenas simplemente el nombre de archivo de la imagen, o la ruta donde está la imagen en el servidor
De modo que, si los usuarios envían una imagen y la quieres almacenar en la base de datos lo que haces es guardar la imagen como un archivo en el servidor. Una vez que la has guardado, tienes el nombre de archivo y/o carpeta donde la has dejado. Entonces en la base de datos lo que haces es guardar simplemente la cadena de la ruta de la imagen.
Para recuperarla es muy sencillo, porque simplemente tienes que usar la cadena de la ruta donde está la imagen, para meterla en una etiqueta <img> o hacer que esa imagen se envíe para descarga o lo que necesites. Es decir, ya depende de tu aplicación, con la ruta harás lo que necesites para usar la imagen que tienes en el disco del servidor.