domingo, 8 de abril de 2012

DISTINCT en SQL


En una tabla pueden existir duplicados en los datos de una columna , y solo nos interesa sacar los diferentes valores de la tabla (no queremos sacar aquellas duplicadas).

Vamos a decir que es similar al eliminar duplicados que es posible utilizar en el excel. 

Solo nos va a devolver valores no duplicados. Es decir tras ejecutar la sentencia es imposible que existan duplicados en la columna.

Sintaxis:

SELECT DISTINCT 'columna'
FROM 'tabla'

Ejemplo:

Mostraremos solamente las diferentes edades de las personas de nuestra tabla 'Personas'.

Teniendo en cuenta que nuestra Tabla: 'Personas' esta compuesta por la siguiente información:

nombre apellido edad
Pepe Cuenca 18
Angel Gomez 18
Pedro Rodriguez 32
Maria Lopez 23

Si ejecutamos la siguiente sentencia, solamente obtendremos las edades (no duplicadas que existan en la base de datos en la tabla Personas)

SELECT DISTINCT edad FROM Personas

edad
18
32
23

UPDATE en SQL


Con el Update podremos actualizar una linea anteriormente grabada en la base de datos.

Siguiendo con el mismo ejemplo actualizaremos el apellido del ejemplo anterior (ya que por error no introducimos apellido). Ejemplo anterior con el INSERT

Importante: Deberemos utilizar el where ya que sino todos los registros de la tabla se verán afectados. La idea es escoger un registro de toda la tabla y actualizar solamente una propiedad/columna de ese registro/linea.
Sintaxis:
UPDATE 'tabla' SET columna1=valor1, columna2=valor2,...
WHERE 'columna'='valor'

Con el where "nos enfocamos" en aquellos registros/lineas que queremos actualizar de la 'tabla', y actualizaremos la columna1 y columna2 con unos valores determinados.

Ejemplo:
Actualizaremos solamente el apellido de Marta.

Tabla: 'Personas'
nombre apellido edad
Pepe Cuenca 18
Angel Gomez 58
Pedro Rodriguez 32
Maria
23


UPDATE 'Personas' SET apellido='Lopez'
WHERE 'nombre'='Marta'

Nota: En el ejemplo dado, por simplificarlo, no estamos usando columnas clave como pudieran ser ID (Identificador) de 'Personas'. Un numero unico de la tabla que permite identificar un solo registro sin equívocos. Ya que con el ejemplo de abajo si somos estrictos se actualizarían todos los apellidos de las personas que se llamen 'Marta'

Tras  ejecutar la siguiente sentencia la Tabla 'Personas' se nos quedará de la siguiente forma:

Tabla: 'Personas'
nombre apellido edad
Pepe Cuenca 18
Angel Gomez 58
Pedro Rodriguez 32
Maria Lopez 23

INSERT en SQL


Esta sentencia se utiliza para introducir un nuevo registro en la base de datos, vamos a decir una nueva linea.

Más adelanta mostraremos como existe la opción de eliminar una linea al igual que en este caso añadimos una nueva linea en la tabla.


Sintaxis:

Tendremos dos formas de introducir los datos en la base de datos:

1.- Indicando expresamente los valores en ciertas columnas
INSERT INTO 'tabla' (columna1, columna2, columna3,....)
VALUES (valor1, valor2, valor3,...)

2.- No indicando las columnas, por tanto se considera que como parametro le pasaremos los valores de todas las columnas
INSERT INTO 'tabla'
VALUES (valor1, valor2, valor3,...)

Ejemplo:

Supongamos que tenemos los siguientes datos en nuestra tabla y queremos añadir una nueva linea para añadir a Maria de 23 años.

Tabla: 'Personas'
nombre apellido edad
Pepe Cuenca 18
Angel Gomez 58
Pedro Rodriguez 32


Con un ejemplo del punto 1 de la parte de sistaxis, la introdución de datos de nombre y edad sería algo así:
INSERT INTO Personas (nombre, edad)
VALUES ('Maria', 23)

Quedando la tabla compuesta como:
Tabla: 'Personas'
nombre apellido edad
Pepe Cuenca 18
Angel Gomez 58
Pedro Rodriguez 32
Maria
23

Con un ejemplo del punto 2 de la parte de sistaxis, el insert sería algo así:
INSERT INTO Personas VALUES ('Maria','Lopez', 23)


Quedando la tabla compuesta como:
Tabla: 'Personas'
nombre apellido edad
Pepe Cuenca 18
Angel Gomez 58
Pedro Rodriguez 32
Maria Lopez 23