sábado, 11 de abril de 2015

Sentencia Select



Sentencia select

select [ distinct]  | * | expresion[ as alias] | nombrecolumna[, ...]
from nombretabla [, ...]
[ where condicion]
[ group by expresion[, ...] ]
[ having condicion[, ...] ]
[ order by expresion[ asc | desc ]

Seleccionar todo

select * from tablename;

EL asterisco * significa que queremos todas las columnas de la tabla.

A continuación podemos ver el resultado de la petición: 

select * from categoria;

La sentencia select se utiliza para seleccionar datos de una base de datos.



Seleccionar columnas

select nombrecolumna1,nombrecolumna2 as alias
from nombretabla;

En el siguiente ejemplo pedimos la identificación, nombre y contacto de todos los proveedores. 

A continuación podemos ver el resultado de la petición, 

select proveedorid, nombreprov, contacto from proveedores;


Selección condicionada

La sentencia where se usa para extraer sólo los registros que cumplan con una condición. Funciona como un filtro.

Sintaxis de la sentencia SQL WHERE

SELECT * | nombrecolumna | expresion as alias
FROM nombretabla
WHERE nombrecolumna operador valor;


Ejemplo de la sentencia SQL WHERE

En este ejemplo, estamos pidiendo todos los registros de la tabla productos que tengan existencias mayores a 100. Conseguiremos los resultados que cumplan esa condición.

A continuación podemos ver el resultado de la petición, 

select * from productos where existencia > 100;





Resultados ordenados

La claúsula ORDER BY se utiliza para ordenar los resultados a través de una o más columnas.

La claúsula ORDER BY ordena los registros de manera ascendente por defecto. Para hacerlo de manera descendente, se puede utilizar la claúsula DESC.

Sintaxis de la claúsula SQL ORDER BY

select nombrecolumna ,...,| * | expresion as alias
from nombretabla
order by nombrecolumna, nombrecolumna asc|desc;


Ejemplo de la claúsula ORDER BY

En este ejemplo ordenamos la tabla productos en orden alfabético utilizando la descripción:

select * 
from productos
order by descripcion asc;


Selección condicionada multiple or / and

La sentencia where se usa para extraer sólo los registros que cumplan con una condición. Funciona como un filtro.

Sintaxis de la sentencia SQL WHERE

SELECT * | nombrecolumna | expresion as alias
FROM nombretabla
WHERE nombrecolumna operador valor or | and nombrecolumna operador valor;

En este ejemplo, estamos pidiendo todos los registros de la tabla productos que tengan existencias mayores a 100 pero que sean menores de o iguale que 300. Conseguiremos los resultados que cumplan esa condición.

A continuación podemos ver el resultado de la petición, 


select * from productos where existencia > 100 and categoriaid=100;


select * from productos where existencia > 100 or categoriaid=100;




Selección condicionada a una lista de valores

La sentencia where se usa para extraer sólo los registros que cumplan con una condición dada por una lista de valores. Funciona como un filtro.

Sintaxis de la sentencia SQL WHERE

SELECT * | nombrecolumna | expresion as alias
FROM nombretabla
WHERE nombrecolumna operador valor or | and nombrecolumna operador valor;

En este ejemplo, estamos pidiendo todos los registros de la tabla productos que tengan existencias mayores a 400, 90 o 40;.

A continuación podemos ver el resultado de la petición, 


select * from productos where existencia in (400, 90, 40);


Selección condicionada a un rango


La sentencia where se usa para extraer sólo los registros que cumplan con una rango de valores. Funciona como un filtro.

Sintaxis de la sentencia SQL WHERE

SELECT * | nombrecolumna | expresion as alias
FROM nombretabla
WHERE nombrecolumna between valor and valor;

En este ejemplo, estamos pidiendo todos los registros de la tabla productos que tengan existencias 40 y 100.

A continuación podemos ver el resultado de la petición, 


select * from productos where existencia between 40 and 100;




Selección condicionada a un patrón



La sentencia where se usa para extraer sólo los registros que cumplan con un patrón. 

Sintaxis de la sentencia SQL WHERE

SELECT * | nombrecolumna | expresion as alias
FROM nombretabla
WHERE nombrecolumna like {patron};

LIKE le permite hacer una búsqueda basada en un patrón en vez de especificar exactamente lo que se desea.

{patrón} generalmente consiste en comodines. Aquí hay algunos ejemplos:

Comodín      _     el underscore representa 1 caracter.
Comodín      %     representa muchos caracteres.


  • 'A_Z': Toda línea que comience con 'A', otro carácter y termine con 'Z'. Por ejemplo, 'ABZ' y 'A2Z' deberían satisfacer la condición, mientras 'AKKZ' no debería (debido a que hay dos caracteres entre A y Z en vez de uno).
  • 'ABC%': Todas las líneas que comienzan con 'ABC'. Por ejemplo, 'ABCD' y 'ABCABC' ambas deberían satisfacer la condición.
  • '%XYZ': Todas las líneas que terminan con 'XYZ'. Por ejemplo, 'WXYZ' y 'ZZXYZ' ambas deberían satisfacer la condición.
  • '%AN%': : Todas las líneas que contienen el patrón 'AN' en cualquier lado. Por ejemplo, 'LOS ANGELES' y 'SAN FRANCISCO' ambos deberían satisfacer la condición.




En este ejemplo, estamos pidiendo todos los registros de la tabla productos que su nombre comience por 'Sal'.

A continuación podemos ver el resultado de la petición, 





select * from productos where descripcion like 'Sal%';


En este ejemplo, estamos pidiendo todos los registros de la tabla productos que su nombre tenga 'll' en alguna parte.

A continuación podemos ver el resultado de la petición, 





select * from productos where descripcion like '%ll%';




Resultados ordenados por ?


Si necesitamos enumerar el resultado en un orden particular utilizamos la clausula order by. Esto podría ser en orden ascendente, en orden descendente, o podría basarse en valores numéricos o de texto.

Sintaxis de la sentencia SQL WHERE

select * | nombrecolumna | expresion as alias
from  nombretabla
where condicion 
order by nombrecolumna;

En este ejemplo, estamos pidiendo todos los registros de la tabla productos que tengan existencias 40 y 100 ordenadas por la descripción.

A continuación podemos ver el resultado de la petición, 


select * 
from productos 
where existencia between 40 and 100 
order by descripcion;







Scripts - Base de Datos Pedidos



Los scripts SQL contienen descripciones de las instrucciones utilizadas para crear una base de datos y sus objetos. Puede generar scripts a partir de los objetos de una base de datos existente y agregar dichos objetos a otra base de datos mediante la ejecución de los scripts en esa base de datos. De ese modo, se vuelve a crear la estructura completa de la base de datos y todos sus objetos.

El esquema para los objetos generados puede guardarse en un solo archivo de scripts SQL o en varios archivos que contengan los esquemas de cada objeto. También puede guardar el esquema generado para un solo objeto, o un grupo de objetos, en uno o varios archivos de scripts SQL.

¿Cómo se escribe un script?

Como un archivo de texto plano, o sea sin negritas, ni subrayados, nada de eso. Por ejemplo, puedes usar el Bloc de Notas para escribirlo. Por convención, la extensión de los archivos de script es .SQL pero puedes usar cualquier extensión que quieras o inclusive no usar extensión, es lo mismo. Sin embargo, para que te sea fácil entenderte con las demás personas es recomendable que uses la extensión .SQL

¿Qué se puede escribir en un archivo de script?

Cualquier comando que puedes escribir en tu motor SQL, por ejemplo puedes crear bases de datos, crear tablas, crear Primary Keys, crear índices, crear stored procedures, crear triggers, insertar filas, borrar filas, actualizar filas, etc.

También puedes escribir el comando COMMIT.

Aunque puedes tenerlos en un solo script, para evitarte problemas de integridad de los datos lo aconsejable es que escribas scripts separados para los comandos DDL (los que crean y modifican los objetos de la Base de Datos: CREATE, ALTER, DROP) y los comandos DML (los que manipulan a esos objetos: INSERT, UPDATE, DELETE, etc.)

Lo recomendable es que uses varios scripts, cada uno de ellos especializado en una tarea.

¿Para qué sirven los  scripts?
  • Para tener documentados los cambios que se realizaron a la Base de Datos. Cada vez que se realiza un cambio se puede escribir un comentario que nos indique la fecha, el autor y el motivo del cambio.
  • Para copiar bases de datos (en forma total o parcial) de una computadora a otra computadora.
  • Para poder mirar como está compuesta una Base de Datos y si está todo bien o si hay algún error.
  • Para tener un backup de la Base de Datos (puede ser total, aunque generalmente sólo de los metadatos). Esto nos permitirá recuperarla si hay algún problema.
  • Si documentamos los cambios a la Base de Datos, especificando claramente la fecha, el autor, y el motivo del cambio más adelante nos será muy fácil entender qué se hizo y por qué se hizo.


¿Cómo se escriben los comentarios en un script?

Dos guiones seguidos: — (mi comentario)
Por ejemplo: — este es otro comentario en el script

¿Cuál es el orden que se debe seguir para crear scripts?

drop table, create table agregando las llaves primarias (primary key) y la restricción not null, después los foreign key para relacionar las tablas y por último, insert into para alimentar la base.

jueves, 9 de abril de 2015

miércoles, 8 de abril de 2015

Actividad 3





Cree las tablas del modelo en el orden adecuado teniendo en cuenta las llaves primarias, llaves foráneas (integridad referencial), campos not null, tipo de datos, tamaño del campo y el rol dueño de la tabla. 


Resuelva los ejercicios a continación en base al modelo entidad - relación.

1. Agregar el campo email a la tabla cliente.
2. Aplicar la restricción UNIQUE al campo email en la tabla de cliente.  
3. Aplicar la restricción DEFAULT al campo existencias de la tabla producto con el número 0.
4. Aplicar la restricción CHECK al campo cantidadvendida, para que no tome valores negativos.
5. Renombre la columna fecnac de la tabla de empleado por fnacemp.
6. Renombre la tabla productos por producto. 
7. Elimine las tablas de modelo en el orden lògico.