Bueno, para saber si el usuario es válido, basta con un
SELECT * FROM Usaurios WHERE nom="$nom" AND pas="$pas";
Si esta query devuelve 1 registro, es un usuario válido, si devuelve 0 registros es un usuario inválido, y si devuelve más de 1 usuario es porque tenés algo mal ;-)
Una vez que el usuario está logueado, basta con hacer en tu caso puntual 3 querys para encontrar al usuario en la tabla que corresponda. Sin embargo, esto te debería hacer falta solo a la hora de, por ejemplo, actualizar el perfil y nunca para la operación del sistema: sería incorrecto buscar así por ejemplo si es Estudiante o Administrador para saber qué es lo que puede hacer o no, ya que la información de acceso debería estar como parte de los datos de Usuario y no en los del Estudiante.
Si al acceder al sistema cada usuarios puede hacer diferentes cosas, podrías crear una tabla Roles y asociarla a la tabla de Usuarios, para saber qué rol tiene.
Esta es la visión Relacional de la cuestión... la visión del Modelo de software que implemente esto dependerá de si vas a hacer Programación Estructurada o Programación Orientada a Objetos, y en cada caso tendrás uan manera diferente de usar y acceder a los datos.
Saludos cordiales!