Empezamos un nuevo curso sobre SQL con Oracle que puede resultar muy interesante para ampliar los conocimientos de SQL que habíamos adquirido anteriormente.
Introducción:
Antes de empezar me gustaría decir que este curso esta basado en Oracle, es decir los ejemplos expuestos y material se han utilizado sobre Oracle. Por otro lado decir que pienso que es interesante saber algo de SQL antes de comenzar con MYSQL, ya que, aunque existen algunos cambios insignificantes, sabiendo manejar SQL sabes manejar MYSQL.Algunas caracteristicas:
-
SQL: Structured query language.
- Permite la comunicación con el sistema gestor de base de datos.
- En su uso se puede especificar que quiere el usuario.
- Permite hacer consulta de datos.
Tipos de datos:
CHAR:
- Tienen una longitud fija.
- Almacena de 1 a 255.
- Si se introduce una cadena de menos longitud que la definida se rellenara con blancos a la derecha hasta quedar completada.
- Si se introduce una cadena de mayor longitud que la fijada nos dará un error.
VARCHAR:
- Almacena cadenas de longitud variable.
- La longitud máxima es de 2000 caracteres.
- Si se introduce una cadena de menor longitud que la que esta definida, se almacena con esa longitud y no se rellenara con blancos ni con ningún otro carácter a la derecha hasta completar la longitud definida.
- Si se introduce una cadena de mayor longitud que la fijada, nos dará un error
NUMBER:
- Se almacenan tanto enteros como decimales.
- Number (precisión, escala)
- Ejemplo:
X=155'862 à Error ya que solo puede tomar 2 decimales
X= 155'86 à Bien
Nota: El rango máximo va de 1 a 38. |
LONG:
- No almacena números de gran tamaño, sino cadenas de caracteres de hasta 2 GB
DATE:
- Almacena la fecha. Se almacena de la siguiente forma:
Siglo/Año/Mes/Día/Hora/Minutos/Segundos
RAW:
- Almacena cadenas de Bytes (gráficos, sonidos )
LONGRAW:
- Como el anterior pero con mayor capacidad.
ROWID:
- Posición interna de cada una de las columnas de las tablas.
- Sentencias de consultas de datos
Select [ALL | Distinct] [expresión_columna1, expresión_columna2, ., | *]
From [nombre1, nombre_tabla1, , nombre_tablan]
{[Where condición]
[Order By expresión_columna [Desc | Asc] ]};
Vamos a explicar como leer la consulta anterior y así seguir la pauta para todas las demás. Cuando ponemos [] significa que debemos la que va dentro debe existir, y si además ponemos | significa que deberemos elegir un valor de los que ponemos y no mas de uno. En cambio si ponemos {} significa que lo que va dentro de las llaves puede ir o no, es decir es opcional y se pondrá según la consulta.
- Alias = El nuevo nombre que se le da a una tabla. Se pondrá entre comillas
- Order By = Ordena ascendentemente (Asc) (valor por defecto) o descendentemente (Desc).
- All = Recupera todas las filas de la tabla aunque estén repetidas.
- Distinct = Solo recupera las filas que son distintas.
- Desc Emple; = Nos da un resumen de la tabla y sus columnas. En este caso de la tabla Emple.
- Not Null= Si aparece en una lista de una columna significa que la columna no puede tener valores nulos.
- Null= Si está nulo.
Varios ejemplos para verlo mas claro:
SELECT JUGADOR_NO, APELLIDO, POSICION, EQUIPO
FROM JUGADORES
WHERE EQUIPO_NO = 'VALENCIA'
ORDER BY APELLIDO;
Este ejemplo mostrar el número de jugador (jugador_no) el apellido (Apellido), la posición en la que juega (Posición), y el equipo (Equipo) al que pertenece.
Seleccionara todos los datos de la tabla jugadores donde (Where) el nombre de equipo (Equipo_No) sea igual que la palabra 'Valencia' y se ordenara (order by) apellido. Notemos también que no pone ni 'Distinct' ni 'All'. Por defecto generara la sentencia con ALL.
SELECT *
FROM JUGADORES
WHERE POSICION = 'DELANTERO'
ORDER BY JUGADOR_NO;
Este ejemplo muestra todos los campos de la tabla jugadores donde (Where) la posición sea igual que 'Delantero' y lo ordena por número de jugador. Al no poner nada se presupone que es ascendentemente (Asc).
SELECT *
FROM JUGADORES
WHERE EQUIPO_NO = 'VALENCIA' AND POSICION = 'DELANTERO'
ORDER BY APELLIDO DESC, JUGADOR_NO ASC;
En este ejemplo selecciona todos los campos de la tabla jugadores donde (Where) el nombre del equipo sea igual a 'Valencia' y la posición de los jugadores sea igual a 'Delantero'. Por ultimo los ordena por 'Apellido' descendentemente y por numero de jugador ascendentemente.
Si quieres profundizar más en el sistema gestor de base de datos Oracle te recomendamos nuestro Tutorial de Oracle.
Agustin Jareño