5
UNIVERSIDAD AUTONOMA DE LOS ANDES “UNIANDES” NOMBRE: MARIA NARANJO NIVEL: VII SISTEMAS AUTOR: Ing. LUIS GUALPA FECHA: 25/01/215

Sql

Embed Size (px)

Citation preview

Page 1: Sql

UNIVERSIDAD AUTONOMA DE LOS ANDES

“UNIANDES”

NOMBRE: MARIA NARANJO

NIVEL: VII SISTEMAS

AUTOR: Ing. LUIS GUALPA

FECHA: 25/01/215

Page 2: Sql

Escribir sentencias SQL SELECT para consultas con operadores de restricción,

proyección y enlace.

La sentencia SELECT se utiliza para recuperar información de la base de datos, y

puede proyectar las columnas seleccionadas, es decir, realizar un filtro sobre la tabla o

tablas originales y recuperar solamente datos de las columnas filtradas

Las cláusulas SELECT, que especifica las columnas o expresiones que vamos a

recuperar, y FROM, que indica la tabla de la que se recuperan, son obligatorias.

SELECT - Lista las columnas a recuperar.

* - Selecciona todas las columnas

DISTINCT - Elimina duplicados

column | expresión - selecciona la columna y/o expresión (pueden ser varias) que se

van a recuperar

alias - Indica la cabecera de cada una de las columnas o expresiones

FROM - La tabla que contiene las columnas

WHERE - Filtro de los registros a visualizar

condition(s) - Lista de condiciones de filtro.

El operador like: este operador se aplica a datos de tipo cadena y se usa para buscar

registros.

Escribir sentencias SELECT para enlaces que incluyen tres o más tablas, auto

enlaces y múltiples enlaces entre tablas.

MySQL permite realizar consultas simultáneas en registros situados en varias tablas.

Para ese menester se usa la siguiente sintaxis:

SELECT tabla1.campo1, tabla2.campo2, ... FROM tabla1, tabla2

En la que, como ves, modificamos un pelín la sintaxis ya que anteponemos el nombre

de la tabla al del campo correspondientes separando ambos nombres por un punto con

lo cual no hay posibilidad de error de identificación del campo incluso cuando campos

de distinta tabla tengan el mismo nombre.

Otra innovación -respecto a los ejemplos anteriores- es que detrás de la cláusula FROM

escribimos los nombres de todas las tablas que está usando SELECT.

A partir de ahí se pueden establecer todo tipo de relaciones para las sentencias WHERE,

ORDER BY y GROUP BY utilizando para ello campos de cualquiera de las tablas sin

otra particularidad más que... poner cuidado al aludir a los campos.. Utilizando siempre

la sintaxis nombre_tabla.nombre_campo.

A modo de ejemplo -he procurado comentarlo línea a línea- aquí tienes un script PHP

que hace una consulta conjunta de las tablas demo4, demodat1, demodat2 y demodat3 y

nos presenta una tabla con los datos personales y las puntuaciones de las tres pruebas así

como las suma de puntos de las tres y además de ordena los resultados -de mayor a

menor- según la suma de las tres puntuaciones.

Page 3: Sql

Entender y ejemplificar el propósito de la cláusula GROUP BY usando el proceso

de evaluación conceptual.

Supongamos por ejemplo una clase de alumnos, usted puede preguntarse: ¿cuantos

alumnos hay?, y la respuesta es un solo dato que hace referencia a un solo grupo que

podemos llamar: alumnos. Ahora dividamos la clase en dos grupos de manera que uno

lo formen las chicas y otro los chicos. Una vez formados los dos grupos puede

preguntarse: ¿cuantos alumnos hay en cada uno?, y la respuesta son dos datos, uno para

cada grupo. El resultado es en realidad una totalización por grupos. Primero usted

establece los grupos por sexo y luego totaliza la cantidad de miembros de cada uno.

Pues bien, el SQL permite agrupar totales mediante la cláusula: GROUP BY.

El número de grupos resultantes dependerá de los distintos valores que existen para ese

campo en el grupo de registros seleccionado.

Cláusula GROUP BY

Tenemos nuestra ya conocida tabla EMPLEADOS:

ejemplo

SELECT S.SNO, S.SNAME, COUNT(SE.PNO)

FROM SUPPLIER S, SELLS SE

WHERE S.SNO = SE.SNO

GROUP BY S.SNO, S.SNAME;

Page 4: Sql

Escribir descripciones en español en sentencias documentadas de SQL.

Escribir las sentencias INSERT, UPDATE y DELETE para modificar las filas de

una tabla.

Las consultas de acción son aquellas que no devuelven ningún registro, son las

encargadas de acciones como añadir y borrar y modificar registros.

Delete

Crea una consulta de eliminación que elimina los registros de una o más de las tablas

listadas en la cláusula FROM que satisfagan la cláusula WHERE. Esta consulta

elimina los registros completos, no es posible eliminar el contenido de algún campo en

concreto. Su sintaxis es:

DELETE Tabla.* FROM Tabla WHERE criterio

DELETE es especialmente útil cuando se desea eliminar varios registros. En una

instrucción DELETE con múltiples tablas, debe incluir el nombre de tabla (Tabla.*). Si

especifica más de una tabla desde la que eliminar registros, todas deben ser tablas de

muchos a uno. Si desea eliminar todos los registros de una tabla, eliminar la propia tabla

es más eficiente que ejecutar una consulta de borrado.

Se puede utilizar DELETE para eliminar registros de una única tabla o desde varios

lados de una relación uno a muchos. Las operaciones de eliminación en cascada en una

consulta únicamente eliminan desde varios lados de una relación. Por ejemplo, en la

relación entre las tablas Clientes y Pedidos, la tabla Pedidos es la parte de muchos por lo

que las operaciones en cascada solo afectaran a la tabla Pedidos. Una consulta de

borrado elimina los registros completos, no únicamente los datos en campos específicos.

Page 5: Sql

Si desea eliminar valores en un campo especificado, crear una consulta de actualización

que cambie los valores a Null.

Una vez que se han eliminado los registros utilizando una consulta de borrado, no puede

deshacer la operación. Si desea saber qué registros se eliminarán, primero examine los

resultados de una consulta de selección que utilice el mismo criterio y después ejecute la

consulta de borrado. Mantenga copias de seguridad de sus datos en todo momento. Si

elimina los registros equivocados podrá recuperarlos desde las copias de seguridad.

DELETE * FROM Empleados WHERE Cargo = 'Vendedor';

crear registro:

//Creamos el registro a insertar como objeto ContentValues

ContentValues nuevoRegistro = new ContentValues();

nuevoRegistro.put("codigo", "6");

nuevoRegistro.put("nombre","usuariopru");

//Insertamos el registro en la base de datos

db.insert("Usuarios", null, nuevoRegistro);

eliminar registro:

//Eliminar un registro con execSQL(), utilizando argumentos

String[] args = new String[]{"usuario1"};

db.execSQL("DELETE FROM Usuarios WHERE nombre=?", args);

//Actualizar dos registros con update(), utilizando argumentos

ContentValues valores = new ContentValues();

valores.put("nombre","usunuevo");