Comandos SQL utiles

Anuncio
1.- Sentencia IN
Posiblemente la sentencia a la que mas partida vamos a sacar. Esta sentencia sql sirve para
obtener los registros de una tabla que están contenidos en otra diferente, teniendo en
cuenta que uno de los campos (una clave) tiene que ser en comun. Por ejemplo, tenemos
una tabla con Alumnos de una escuela, y una tabla con Gente que Juega en un equipo de
futbol 11. Lo que queremos averiguar es que alumnos de la clase de 2 B juega en ese
equipo. Es decir, que alumnos están "IN" la tabla de futbol 11, la sentencia podría ser así:
Select *
from Alumnos
where Cod_alumno in (select Cod_alumno from Futbol11).
Recordar poner siempre después de la sentencia IN entre paréntesis el otros Select, y que
los códigos deben tener el mismo formato en las dos tablas.
2.- Sentencias YEAR MONTH DAY
Estas tres sentencias sirven para trabajar con fechas comodamente, si queremos saber los
alumnos que nacieron en el 1981 sería:
Select *
from Alumnos
where year(fecha) = 1981
Para mes sería Month y para día DAY. Recordar que "fecha" debe ser un campo de tipo
Date, y que el comparador es un entero (no poner entre comillas)
3.- Sentencia BETWEEN
Comando para obtener datos entre dos valores, tanto numéricos como de tipo Date o
numerico
Select Nombre
From Alumno
Where fecha between '1/1/1980' and '31/12/1980'
En este caso serías mas efectivo utilizar el comando year(fecha) = 1980
4.- Sentencia LEFT
Este comando nos resulta muy útil cuando queremos recortar un numero determinado de
caracteres en un campo, por ejemplo, tenemos una tabla con un código como este:
001-AAA
002-AAA
003-AAA
Sería bueno eliminar AAA- del código, ya que se repite siempre y no nos interesa, para ello
usamos la función left, que recortara empezando por la izquierda, el comando sería:
Select left(codigo,3)
From tabla
Y el resultado sería:
001
002
003
Si lo queremos es actualizar la tabla con estos cambios pondríamos:
Update tabla
Set codigo = left(codigo,3)
5.- Sentencias MAX, MIN, AVG
Estas sentencias nos sirven para calcular medias, minimas y máximos de datos agrupados
por algun tipo de cualidad. Por ejemplo, tenemos una tabla de futbolistas, con
jugador,equipo y goles, y queremos sacar la media de goles por equipo:
Select equipo, avg(goles)
from jugadores
group by equipo
Observar que para este tipo de consultas sql siempre debemos incluir la sentencia group by
para agrupar los datos.
Tambien podemos combinar estas consultas con la clausula Having, que sirve para filtrar el
resultado o media que obtenemos. En el ejemplo anterior, si quisieramos hacer la misma
consulta, pero solo de los equipos cuya media supere los 20 goles, sería asi;
Select equipo, avg(goles)
from jugadores
group by equipo
having avg(goles) > 20
6.- Sentencia ORDER BY
Se utiliza para ordernar resultados, por defecto los ordenará de menor a mayor, si
quisieramos ordenar al reves añadiriamos "desc". Un ejemplo, ordenar la tabla de jugadores
por goles:
Select Jugador,goles
from jugadores
order by goles
Este resultado nos devolveria los goleadores de menor a mayor, pero lo logico es que nos
interese al reves, por lo que se sería:
Select Jugador,goles
from jugadores
order by goles desc
7.- Sentencia CAST
Se utiliza para convertir valores de un tipo a otro diferente, la forma de utilizarla es
CAST("CAMPO" as TIPO), por ejemplo, si queremos recuperar un Integer en formato de
texto, la consulta sql sería así:
Select CAST(goles as varchar(30))
from jugadores
where id = 100
Este resultado nos devolveria los goleadores de menor a mayor, pero lo logico es que nos
interese al reves, por lo que se sería:
Select Jugador,goles
from jugadores
order by goles desc
Comandos SQL utiles
Creacion de una Tabla (CREATE TABLE)
Importantisimo comando que nos permite, sin la interfaz de los motores de base de datos, generar una
tabla nueva a partir de puro codigo, Su sintaxis a continuación:
Create table (tabla)
(campo1 [default value][restricciones_col]
[, campo2 [default value][restricciones_col] ]
[, campoN [default value][restricciones_col] ]
[restriccion de tabla]
)
Ejemplo:
Create table Cliente
(RutCli number (9),
DigVer varchar(1),
Nombre varchar(5),
ApePat varchar(25),
ApeMat varchar (25)
constraint pk primary key (RutCli))
Alteraciones de Tablas (ALTER TABLE)
Comando que sirve para modificar, eliminar o agregar campos a alguna tabla. Su sintaxis es la
siguiente:
Modificar campo existente:
ALTER TABLE (tabla) ALTER COLUMN (campo) (tipo nuevo)
Ejemplo:
ALTER TABLE Cliente ALTER COLUMN Nombre varchar(25)
Agregar campo:
ALTER TABLE (tabla) ADD COLUMN (campo y tipo)
Ejemplo:
ALTER TABLE Cliente ADD COLUMN ApeTem varchar(25)
Eliminar campo:
ALTER TABLE (tabla) DROP COLUMN (campo)
Ejemplo:
ALTER TABLE Cliente DROP COLUMN ApeTem
Inserción de datos (INSERT)
Su uso permite insertar nuevos registros en una tabla de datos, su sintaxis es la siguiente:
INSERT INTO Tabla (campo1, campo2, ..., campoN)
VALUES (valor1, valor2, ..., valorN)
Ejemplo:
INSERT INTO Cliente (RutCli, DigVer, Nombre, ApePat, ApeMat)
VALUES (1, '9', 'Fulano', 'De', 'Tal')
Existe una alternativa obviando los nombres de campo:
INSERT INTO Cliente VALUES(1, '9', 'Fulano', 'De', 'Tal')
pero no es recomendable ya que hace trabajar de mas al motor de base de datos para rescatar la
informacion de campos para la tabla, y por otro lado, si se realiza una modificacion a la estructura de la
tabla tendriamos que modificar obligatoriamente el programa que use la sentencia para adaptarla al
nuevo campo.
Modificacion de datos (UPDATE)
Su uso permite modificar campos de los registros existentes en una tabla existente, su sintaxis es la
siguiente:
UPDATE Tabla SET campo1 = 'valor1', campo2 = 'valor2', campoN = 'valorN'
WHERE [Condicion]
Ejemplo:
UPDATE Cliente SET Nombre = 'Mengano'
WHERE RutCli = 1
Eliminacion de datos (DELETE)
Permite eliminar registros de una tabla existente, su sintaxis a continuación:
DELETE Tabla
WHERE [Condicion]
Ejemplo:
DELETE Cliente
WHERE RutCli = 1
Eliminación de una tabla (DROP TABLE)
Comando muy delicado que permite (si no existen restricciones como foreing keys o similar), eliminar
una tabla de la base de datos.
Sintaxis:
DROP TABLE Tabla
Ejemplo:
DROP TABLE Cliente
Y esto seria todo para este articulo, la sintaxis podria cambiar un poco dependiendo del motor de base
de datos (Sql, Sybase, MySql, etc), pero en el fondo es la misma idea.
Descargar