Inicio » Informática profesional. » Novedades 2008 » Curso de ASP NET Avanzado » 3.- Lenguaje de manipulación de datos (DML).

Curso de ASP NET Avanzado

Cursos Relacionados:

3.- Lenguaje de manipulación de datos (DML).

Como ya hemos comentado el lenguaje de manipulación de datos que permite gestionar la información de las bases de datos. Las sentencias principales de este lenguaje son:

  • SELECT
  • INSERT
  • UPDATE
  • DELETE

En esta unidad comenzaremos explicando la sentencia INSERT que nos permite añadir registros a nuestras tablas, de modo que luego podamos realizar nuestros ejemplos de la sentencia SELECT con los registros que vamos a añadir.


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de ASP NET Avanzado y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


Insertando registros.

La sentencia INSERT se utiliza para añadir nuevos registros a las tablas. Su sintaxis es la siguiente:

INSERT INTO nombre_tabla
(columna1, columna2,..., columnaN)
VALUES (valor1, valor2, ..., valorN)

En la sintaxis vemos que introducimos el nombre de la tabla en la que vamos a añadir las siguientes valores para las columnas que especificamos entre paréntesis. La lista de valores que vamos a introducir se colocan entre paréntesis después de la sentencia VALUES. El orden debe corresponder con el de las columnas. En caso de introducir un valor no válido en alguna de las columnas se produce un error y el registro no se añade.

Vamos a añadir dos vehículos a nuestra tabla Vehículos:

En la segunda sentencia no hemos introducido las columnas en las que vamos a incluir los datos, ya que si vamos a añadir valores para todas las columnas de un registro, no es necesario indicar las columnas.

Observa que los valores de cadena se introducen con comilla simple y no dobles.

Debes recordar que si una columna es autoincremental no debemos especificar el valor aquí tampoco.

Si todo ha ido correctamente, SQL Server nos indica el número de columnas que se han visto afectadas:

Vamos a añadir los registros para nuestro ejemplo:

Oficinas y Empleados:

Reservas:


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de ASP NET Avanzado y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


Recuperación de registros.

La sentencia SELECT permite obtener la información almacenada en nuestras tablas. Su sintaxis general es la siguiente:

SELECT <columnas> FROM tablas

Después de la sentencia SELECT se introducen el nombre de las columnas a las que queremos acceder, en caso de estar consultando varias tablas se introduce primero el nombre de la tabla a la que pertenece la columna y se separa con un punto del nombre de la columna:

nombre_tabla.nombre_columna

Si vamos a acceder a todas las columnas de la tabla se utiliza el operador *.

Seguido de la cláusula FROM se introducen el nombre de las tablas a las que vamos a acceder separándolas con una coma.

Si por ejemplo queremos recoger todos los registros de nuestra tabla empleados:

Y si nos interesa únicamente los nombres y apellidos de nuestros empleados:


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de ASP NET Avanzado y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


Filas duplicadas.

Una consulta que incluye una clave primaria, los resultados obtenidos serán único, pero si tenemos el caso de que una consulta no incluye una clave primara puede darse el caso de obtener filas repetidas.

Si por ejemplo listamos el campo codOficina de la tabla empleados obtenemos:

Si añadimos la cláusula DISTINCT, evitamos la duplicación de resultados:


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de ASP NET Avanzado y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


Ordenando los resultados.

Tenemos la posibilidad de ordenar los resultados que obtenemos mediante la cláusula ORDER BY. Además podemos indicar si deseamos que se ordene de modo ascendente (ASC) o descendente (DESC). Por defecto se ordena en modo ascendente.

Si deseamos ordenar por más de un campo, podemos separas las expresiones de ordenación por comas. En el siguiente ejemplo mostramos el salario y el nombre del empleado, ordenados en orden descendente por salario y en caso de coincidir por orden ascendente del nombre. Observa la posición de las filas 6 y 7 como han quedado ordenadas al coincidir el salario:


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de ASP NET Avanzado y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


Renombras columnas.

Mediante la cláusula AS, podemos utilizar en la salida de columnas de resultado, nombre distintos a los reales dados en las tablas. Lo que hacemos es dar un alías para distinguir una determinada columna con un nombre modificado.

SELECT nombre_columna AS 'Nuevo_nombre' FROM tabla

En el siguiente ejemplo renombramos la columna nombre con Empleado, observa como en la zona de resultados se modifica:


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de ASP NET Avanzado y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


Columnas calculadas.

Con SQL podemos utilizar columnas que son el resultado de una serie de operaciones. En el siguiente ejemplo, duplicamos el salario de los empleados y le damos el nombre de Salario2:

También podemos realizar operaciones entre columnas. En este ejemplo unimos el nombre del empleado y su apellido mediante un guión:


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de ASP NET Avanzado y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


Consultas con condiciones.

La cláusula WHERE permite introducir una serie de condiciones sobre los valores de los campos de los registros, para recoger sólo aquellos registros que cumplan esa condición. Estas condiciones suelen denominarse contrastes de comparación. Tenemos los siguientes contrastes de comparación:

Contraste de comparación: Descripción:
Contraste de comparación

Comparan el valor de una expresión con el valor de otra.

Contrastes de rango Comprueba si el valor se encuentra entre unos límites.
Contrastes de pertenencia a un grupo. Comprueba si el valor de una expresión pertenece a un determinado grupo.
Contrastes de correspondencia de patrón. Comprueba si los datos cumplen con un patrón dado.
Contrastes de valor nulo. Comprueba si alguna de las columnas contiene el valor nulo.

Contraste de comparación.

Con estas condiciones SQL compara los valores dados entre dos expresiones para cada registro.

Los operadores de comparación que tenemos a nuestra disposición son:

Operador: Descripción:
=

Compara si los valores son iguales.

< Compara si una expresión es menor que otra.
> Compara si una expresión es mayor que otra.
<= Compara si una expresión es menor o igual que otra.
>= Compara si una expresión es mayor o igual que otra.
<> Compara si las dos expresiones son distintas.

La sintaxis es la siguiente:

SELECT <columnas> FROM <tablas> WHERE expresion1 operador expresion2

En el siguiente ejemplo se muestran todos los empleados que superen un salario mayor o igual que 1200:

Contrastes de rango.

El contraste de rango comprueba si un valor se encuentra entre dos valores determinados. Para realizar esta comparación contamos con la cláusula Between...AND

Como ejemplo vamos a mostrar aquellos empleados nacidos entre el 1 de enero de 1960 y el 31 de diciembre de 1969:

Contraste de pertenencia a un grupo.

Este tipo de condición comprueba si el valor de una determinada expresión aparece en una lista de valores determinada. Para esta tarea utilizaremos la cláusula IN

En el siguiente ejemplo mostramos aquellos empleados que tengan un salario que coincida con la siguiente lista de valores: {1000, 1200}

Contraste de correspondencia con patrón.

Este tipo de consultas devuelve los registros para el que el valor de una columna de texto se corresponde con una expresión dada. La cláusula LIKE, permite este tipo de comparaciones, y utiliza el operador % como comodín. El símbolo % se sustituye por cualquier conjunto de caracteres.

En el siguiente ejemplo mostramos aquellos trabajadores que comiencen por la letra R:

Ahora modificamos la consulta para mostrar aquellos empleados donde su apellido aparezca la letra R, sin importar donde:

Otro comodín que utiliza la cláusula LIKE es el guión bajo '_' que representa la posición de un carácter. El símbolo % permite cualquier número de caracteres, y toma como coincidencia la ausencia de caracteres, en cambio el símbolo '_' permite sólo un único carácter coincidente.

En el siguiente ejemplo se obtienen los registros de la tabla Empleados cuyo campo Apellidos contenga una cadena donde la segunda letra sea una 'a':

Contrastes de valor nulo.

La cláusula IS NULL devuelve aquellos registros que tienen una columna determinada con valor nulo, para la operación opuesta tenemos la cláusula IS NOT NULL. En el siguiente ejemplo se muestra aquellos empleados que no tienen un valor nulo en campo codOficina, es decir aquellos empleados que tienen asignada una oficina (en este caso todos).

Contrastes compuestos.

Es muy frecuente el uso de consultas que requieren más de una condición de búsqueda. Los operadores AND, OR y NOT, pueden combinarse para unir condiciones que utilicen las reglas de la lógicas para obtener un único resultado.

En el siguiente ejemplo se muestran aquellos empleados que tengan un salario superior a 1200 y hayan nacido antes de la fecha '01/01/1970':


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de ASP NET Avanzado y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


Combinación de consultas.

Mediante la cláusula UNION podemos unir los resultados de dos o más tablas en una única tabla. En el siguiente ejemplo mostramos en una única tabla los salarios de los empleados y los kilómetros realizados en las reservas de vehículos:

Puedes ver que toma como nombre de columna el de la primera consulta, en este caso salario.

Por defecto este tipo de consultas elimina los valores duplicados, para evitar esto podemos añadir el operador ALL a la cláusula UNION como ves en el siguiente ejemplo:

Condiciones para utilizar el operador UNION:

  • Las consultas que se utilicen con el con UNION deben tener el mismo número de expresiones.
  • Las columnas devueltas como resultado de las consultas utilizadas con el operador UNION deben ser del mismo tipo de datos, o tener la posibilidad de convertir los tipos de datos de modo implícito o explícito.
  • Las columnas del conjunto de resultados de una consulta debe coincidir con el orden de otra, ya que el operador UNION compara por orden.
  • Los nombres de columna de la tabla que obtenemos de UNION se toman de la primera consulta individual.

Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de ASP NET Avanzado y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


Si desea obtener un acceso sin restricciones a los contenidos del curso de ASP NET Avanzado y disfrutar de todas las herramientas del aula virtual (Videos explicativos streaming, acceso a los foros, chat, ejercicios resueltos, la ayuda del tutor, audioconferencia, estudio de grabación, test y actividades de autoevaluación, etc...) puede inscribirse completamente gratis y comenzar a realizar de forma inmediata el curso.