Sunteți pe pagina 1din 33

APRENDIENDO SQL

CON SQL COMMAND

SEGUNDA PARTE

mepgkun@hotmail.com Lima-Perú 2010

APRENDIENDO SQL CON SQL COMMAND SEGUNDA PARTE mepgkun@hotmail.com Lima-Perú 2010
APRENDIENDO SQL CON SQL COMMAND SEGUNDA PARTE mepgkun@hotmail.com Lima-Perú 2010

CREATE DATABASE CREATE TABLE CREATE INDEX DROP INDEX DROP TABLE ALTER TABLE NOT NULL UNIQUE PRIMARY KEY NULL AVG () COUNT () FIRST() LAST() MAX() MIN() SUM() GROUP BY HAVING

INDICE

Declaración CREATE DATABASE

La declaración CREATE DATABASE es utilizada para crear base de datos

Sintaxis de CREATE DATABASE :

CREATE DATABASE nombrebasededatos

Para crear una base de datos en SQL COMMAND vamos al menú y damos clic sobre Archivo/Nueva Base de datos (o usamos la combinación de teclas Ctrl+N . Esto apertura el explorador de Windows en donde seleccionamos la carpeta y el nombre de la base de datos, vamos a poner de nombre EMPRESAXYZ a la base que vamos a crear.

a poner de nombre EMPRESAXYZ a la base que vamos a crear. En la imagen de

En la imagen de arriba podemos apreciar que SQL COMMAND a creado la base de datos EMPRESAXYZ. Una vez creada la base de datos, podemos agregarle tablas.

Declaración CREATE TABLE

La declaración CREATE TABLE es usada para crear tablas en la base de datos.

Sintaxis de CREATE TABLE :

CREATE TABLE nombretabla

(

nombrecolumna1 tipodato1, nombrecolumna2 tipodato2, )

Antes de continuar con la creación del ejemplo es bueno tener en cuenta que SQL COMMAND soporta los siguientes tipos de datos :

SQL IDENTIFI.

DESCRIPCION

TAMAÑO

Int

Entero

4

bytes

Smallint

Entero corto

2

bytes

Real

Numero de coma flotante

4

bytes

char(n)

Alfanumérico de long. fija

1 byte por carac.

varchar

Alfanum. De long. variable

1 byte por carac.

money

Moneda

8

bytes

datetime

Fecha y hora

8

bytes

binary(n)

Campo binario long. fija

n bytes usados

varbinary(n)

Campo binario de long.varia.

N bytes como max.

text

Campo para texto largo

Maximo 268 car.

Vamos a crear en la base de datos EMPRESAXYZ, la tabla PROVEEDORES, la cual tendra la siguiente estructura :

Id Int Primary Key Empresa char(70) Direccion char(70) Distrito char(30) Telf1 char(20) Telf2 char(20) Fax char(20) Email char(50) Web char(50) Producto char(50) Fecha Datetime

Introducimos las instrucciones SQL en la ventana de edición de SQL COMMAND (Ventana superior) y

Introducimos las instrucciones SQL en la ventana de edición de SQL COMMAND (Ventana superior) y damos clic sobre el botón de ejecutar

. El resultado lo apreciamos en la ventana inferior de SQLCOMMAND.(Ver imagen de arriba)

comando SQL

inferior de SQLCOMMAND.(Ver imagen de arriba) comando SQL Este sera el sistema que emplearemos para trabajar
inferior de SQLCOMMAND.(Ver imagen de arriba) comando SQL Este sera el sistema que emplearemos para trabajar

Este sera el sistema que emplearemos para trabajar con SQL COMMAND, primero tipeamos el código en la ventana de edición(Ventana superior) , luego damos clic sobre el icono Ejecutar comando SQL, y veremos en la ventana inferior el resultado en la base de datos.

Declaración CREATE INDEX

La declaración CREATE INDEX es utilizada para crear indices en las tablas. Los indices permiten a la aplicación de la base de datos encontrar los datos mas rápidamente, sin tener que leer toda la tabla. El usuario no puede ver los indices.

El actualizar una tabla con indices toma mas tiempo que actualizar una tabla sin ellos, pues los indices también necesitan actualizarse. Deberíamos crear indices solamente sobre columnas y tablas que sean frecuentemente usadas.

Sintaxis de CREATE INDEX :

CREATE INDEX nombreindice ON nombretabla (nombrecolumna)

Ejemplo :

Vamos a crear un indice en la tabla PROVEEDORES, en la columna Empresa.

un indice en la tabla PROVEEDORES, en la columna Empresa. En la imagen de arriba en

En la imagen de arriba en la ventana superior, podemos observar el codigo para crear el indice INDEXEMPRESA en la tabla PROVEEDORES, en la columna Empresa. En la parte inferior de la imagen podemos verificar el indice creado.

Declaración DROP INDEX

La declaración DROP INDEX es utilizada para borrar un indice en una tabla.

Sintaxis de DROP INDEX :

DROP INDEX nombreindice ON nombretabla

Ejemplo : Vamos a borrar el indice creado con la sentencia CREATE INDEX de nombre INDEXEMPRESA de la tabla PROVEEDORES, columna Empresa.

INDEXEMPRESA de la tabla PROVEEDORES, columna Empresa. En la imagen de arriba en la parte superior

En la imagen de arriba en la parte superior podemos observar el código utilizado y en la parte inferior, podemos constatar (luego de hacer clic sobre el botón Ejecutar comando SQL) que el indice INDEXEMPRESA ha sido borrado de la tabla.

Declaracion DROP TABLE

La declaración DROP TABLE es usada para borrar una tabla de la base de datos.

Sintaxis DROP TABLE :

DROP TABLE nombretabla

Ejemplo : Para ver como actuá esta declaración vamos primero a crear una nueva tabla en la base de datos EMPRESAXYZ, a la cual llamaremos PRUEBE, luego aplicaremos la declaración DROP TABLE para borrarla.

luego aplicaremos la declaración DROP TABLE para borrarla. En la primera imagen de arriba hemos colocado
luego aplicaremos la declaración DROP TABLE para borrarla. En la primera imagen de arriba hemos colocado

En la primera imagen de arriba hemos colocado el código en el editor SQL de

SQL COMMAND para crear la tabla PRUEBA, luego de lo cual hacemos clic sobre el icono Ejecutar comando SQL, podemos apreciar en la parte inferior de la primera imagen la tabla creada. En la segunda imagen colocamos el código para borrar la tabla, luego de lo cual hacemos clic sobre el botón Ejecutar comando SQL, podemos apreciar en la parte inferior de la segunda imagen que la tabla PRUEBA ha sido borrada.

Declaracion ALTER TABLE

La declaración ALTER TABLE es usada para agregar, borrar o modificar columnas de una tabla .

Sintaxis de ALTER TABLE :

Para agregar una columna a la tabla usaremos la siguiente sintaxis :

ALTER TABLE nombretabla ADD nombrecolumna tipodato

Para borrar una columna en una tabla usaremos la siguiente sintaxis :

ALTER TABLE nombretabla DROP COLUMN nombrecolumna

Para cambiar el tipo de dato a una columna de una tabla la sintaxis sera la siguiente :

ALTER TABLE nombretabla ALTER COLUMN nombrecolumna tipodato

Ejemplo : Para el ejemplo vamos a crear una tabla que denominaremos PRUEBA2. La estructura inicial de la tabla sera la siguiente :

Id

Int,

Nombre char(30) Apellido char(30) Fecha char(30) Tipo binary(2)

En la imagen de arriba podemos apreciar en la parte superior el código para crear

En la imagen de arriba podemos apreciar en la parte superior el código para crear la tabla prueba, mientras que en la parte inferior observamos la estructura de la tabla creada en SQL COMMAND.

Deseamos ahora borrar la columna Tipo ,para ello utilizaremos la declaración DROP COLUMN.

COMMAND. Deseamos ahora borrar la columna Tipo ,para ello utilizaremos la declaración DROP COLUMN. VOLVER AL

En la imagen de arriba en la parte superior vemos el código SQL utilizado, en la parte inferior vemos el resultado del código, la columna Tipo ha sido borrada.

Deseamos ahora modificar el tipo de dato de la columna Fecha de char a Datetime, para lo cual procedemos como sigue:

de char a Datetime, para lo cual procedemos como sigue: En la imagen de arriba en

En la imagen de arriba en la parte superior vemos el código SQL empleado para realizar el cambio de tipo de dato a la columna Fecha , luego de tipeado el código, hacemos clic sobre el botón Ejecutar comando SQL, y apreciamos en la parte inferior de la imagen el resultado , en donde apreciamos que la columna Fecha es ahora del tipo Datetime.

Para terminar borraremos la tabla PRUEBA2 usando el siguiente comando SQL :

DROP TABLE PRUEBA2

Lo que permite dejar a la base de datos EMPRESAXYZ, como en un principio.

Restricción NOT NULL

La restricción NOT NULL, obliga a una columna a no aceptar valores nulos, esto obliga a que todos los campos de la columna tengan valores. Esto significa que no podemos insertar un nuevo registro, o actualizar uno sin agregar un valor en esta columna. Por defecto una columna de una tabla puede tener valores nulos.

Ejemplo : Vamos a crear una tabla PRUEBA3 con la siguiente estructura :

Id Int NOT NULL Nombre char(30) Apellido char(30)

: Id Int NOT NULL Nombre char(30) Apellido char(30) La característica especial de la tabla es

La característica especial de la tabla es que la columna Id no podrá tener un valor nulo. Luego de creada la tabla tal como apreciamos en la imagen de arriba, vamos ahora a insertar un registro a la tabla. Id = 1 Nombre = Juan Apellido = Perez

Como apreciamos en la imagen de arriba, hemos agregado un registro a la tabla PRUEBA3

Como apreciamos en la imagen de arriba, hemos agregado un registro a la tabla PRUEBA3 (Usando SQL COMMAND). Ahora intentemos agregar otro registro pero sin la columna Id.

Nombre = Jaime

Apellido = Garcia

Ahora intentemos agregar otro registro pero sin la columna Id. Nombre = Jaime Apellido = Garcia

Al intentar ingresar un registro sin el campo Id el cual esta restringuido con NOT NULL, ha hecho que SQL COMMAND no acepte el comando, indicándonos que el campo Id no puede ser un campo nulo.

Finalmente borramos la Tabla PRUEBA3

DROP TABLE PRUEBA3

Con lo que volvemos a su estado inicial la base de datos EMPRESAXYZ.

Restricción UNIQUE

La restricción UNIQUE, identifica de manera única cada registro en una tabla de una base de datos. Las restricciones UNIQUE y PRIMARY KEY sirven para evitar duplicar registros en una tabla. Podemos tener muchas restricciones UNIQUE en la tabla, sin embargo solo podemos tener una PRIMARY KEY en una tabla.

Ejemplo : Primero crearemos una tabla PRUEBA3 con la siguiente estructura:

Id Int NOT NULL UNIQUE, Nombre char(30) Apellido char(30)

tabla PRUEBA3 con la siguiente estructura: Id Int NOT NULL UNIQUE, Nombre char(30) Apellido char(30) VOLVER

En la imagen de arriba apreciamos la tabla PRUEBA3 creada. El código para crearla se tipeo en la ventana superior y el resultado lo apreciamos en la ventana inferior. La columna Id ha sido creado con las restricción NOT NULL , tiene que tener obligatoriamente un valor y con la restricción UNIQUE, el valor de cada registro debe ser único. Agregamos un registro a la tabla :

registro debe ser único. Agregamos un registro a la tabla : Esta todo bien, no hemos

Esta todo bien, no hemos tenido problema al agregar el registro, ahora intentemos agregar un nuevo registro con el mismo Id del registro anterior

(1).

el registro, ahora intentemos agregar un nuevo registro con el mismo Id del registro anterior (1).

Al ejecutar el comando en SQL COMMAND, este nos enviá un aviso de que no ha sido posible ejecutar el comando por la existencia de datos duplicados. Ahora modifiquemos el Id de 1 a 2 y volvamos a intentar ejecutar el comando

el Id de 1 a 2 y volvamos a intentar ejecutar el comando Como vemos ahora

Como vemos ahora no ha existido ningún problema y hemos podido insertar el nuevo registro en la tabla PRUEBA3.

Finalmente volvemos a borrar la tabla PRUEBA3

DROP TABLE PRUEBA3

Restricción PRIMARY KEY

La restricción PRIMARY KEY identifica de manera única cada registro en una tabla de una base de datos, una columna con una PRIMARY KEY, no puede

contener valores nulos. Las tablas deberían tener una clave primaria (PRIMARY KEY) pero pueden tener solo una.

Ejemplo : Crearemos una tabla llamado PRUEBA3, que tenga la siguiente estructura :

Id Int PRIMARY KEY Nombre char(30) Apellido char(30)

: Id Int PRIMARY KEY Nombre char(30) Apellido char(30) Como observamos en la imagen de arriba,

Como observamos en la imagen de arriba, no hemos tenido ningún problema para crear nuestra tabla PRUEBA3, la cual incluye en la columna Id una clave primaria (o principal) (PRIMARY KEY).

Ahora tratemos de introducir un registro, el cual contendrá solo las columnas Nombre y Apellido dejando en blanco la columna Id.

Como podemos apreciar arriba, al tratar de introducir el registro sin la columna Id, SQL

Como podemos apreciar arriba, al tratar de introducir el registro sin la columna Id, SQL COMMAND nos indica de que un campo con clave principal no puede contener un valor nulo.

Luego introduzcamos un registro en la tabla

Id =1

Nombre= Jaime

Apellido = Garcia

Creado el comando se logra introducir este primer registro sin ningún problema.

Ahora intentemos introducir un nuevo registro

Id= 1

Nombre = Luis

Apellido = Ochoa

Al tratar de introducir el nuevo registro,al momento de trata de ejecutar el comando, nos

Al tratar de introducir el nuevo registro,al momento de trata de ejecutar el comando, nos sale un aviso de error, pues estamos tratando de introducir un registro con igual Id que el anterior, y esto no es posible ya que Id es una columna de clave principal. Modifiquemos el Id de 1 a 2 y ejecutemos nuevamente el comando.

el Id de 1 a 2 y ejecutemos nuevamente el comando. Se logro introducir el registro

Se logro introducir el registro sin problemas.

Hemos comprobado en SQL COMMAND, las características de la restricción PRIMARY KEY, es decir que no permite un registro nulo en la columna restringida ni permite duplicar un registro.

Declaración NULL Si una columna en una tabla es opcional, podemos insertar un nuevo registro o actualizar los existentes sin agregar un valor a esta columna. Esto quiere decir que el campo puede ser guardado con un valor NULL. Por defecto cualquier columna de cualquier tabla puede contener valores nulos, es decir un campo de una columna vació, sin datos. Es importante no confundir un valor nulo con cero, no son equivalentes.

Ejemplo : Para ver un ejemplo con NULL, aperturaremos la base de datos EMPRESA ABC, con la cual estuvimos trabajando en la primera parte del tutorial.

cual estuvimos trabajando en la primera parte del tutorial. La declaración NULL, puede ser de dos

La declaración NULL, puede ser de dos tipos : IS NULL y IS NOT NULL , veamos ambas :

La tabla CLIENTES de la base de datos EMPRESA ABC, tiene una columna en la cual se incluye el corroe electrónico de las empresas que son nuestros clientes. Mediante IS NULL y IS NOT NULL , vamos a listar primero todas las empresas de las cuales no tenemos su dirección electrónica y luego un listado de todas las empresas de las cuales si tenemos su dirección electrónica.

Arriba apreciamos la primera consulta aquí indicamos que usaremos la tabla CLIENTES y buscaremos en

Arriba apreciamos la primera consulta aquí indicamos que usaremos la tabla CLIENTES y buscaremos en la columna web aquellos registros que sean nulos.(Ver ventana de edición). Ejecutado el comando SQL se nos apertura el explorador con el listado solicitado.

SQL se nos apertura el explorador con el listado solicitado. El listado de arriba por razon

El listado de arriba por razon de espacio, no muestra todo los datos.

Ahora vayamos a la segunda consulta :

Ahora vayamos a la segunda consulta : Aquí estamos indicando que de la tabla CLIENTES, seleccionemos

Aquí estamos indicando que de la tabla CLIENTES, seleccionemos de la columna Web, todos los registros que no sean nulos. Al ejecutar la consulta, se apertura el explorador, mostrando el listado con el resultado de la consulta.

la consulta, se apertura el explorador, mostrando el listado con el resultado de la consulta. VOLVER

Funciones Agregadas

Las funciones agregadas retornan un valor simple, calculado desde los valores de las columnas. Las funciones agregadas mas útiles son :

AVG() = Retorna el valor promedio COUNT() = Retorna el numero de filas FIRST() = Retorna el primer valor LAST() = Retorna el ultimó valor MAX() = Retorna el mayor valor MIN() = Retorna el menor valor SUM() = Retorna la suma

Para trabajar con las funciones agregada utilizaremos la tabla TIENDA1 de la base de datos EMPRESA ABC.

la tabla TIENDA1 de la base de datos EMPRESA ABC. La tabla TIENDA1, tiene una columna

La tabla TIENDA1, tiene una columna VenTot = Ventas Totales otra columna de Sueldo y otra de Comisiones, con estos datos trabajaremos con las funciones agregadas.

Funcion AVG ()

La función AVG() retorna el valor promedio de una columna numérica

Sintaxis de la función AVG()

SELECT AVG(nombrecolumna) AS nombreconsulta FROM nombretabla

Ejemplo : Deseamos obtener las ventas promedio de nuestra tienda 1.

: Deseamos obtener las ventas promedio de nuestra tienda 1. Para ello introducimos los comandos necesarios
: Deseamos obtener las ventas promedio de nuestra tienda 1. Para ello introducimos los comandos necesarios

Para ello introducimos los comandos necesarios en el editor (ver imágenes de arriba) y al hacer clic sobre Ejecutar comando SQL , se nos apertura el explorador con un recuadro que muestra el promedio.

Función COUNT ()

La función COUNT retorna el numero de valores (valores nulos no serán contados) de una columna especifica.

Sintaxis de COUNT ()

SELECT COUNT (Nombrecolumna) AS nombreconsulta FROM nombretabla1

Ejemplo : Deseamos saber el numero de registros de nuestra tabla TIENDA1

saber el numero de registros de nuestra tabla TIENDA1 En las imágenes de arriba vemos la
saber el numero de registros de nuestra tabla TIENDA1 En las imágenes de arriba vemos la

En las imágenes de arriba vemos la introducción del código en el editor, luego vemos el resultado de la consulta en el explorador. El resultado que arroja la consulta es que TIENDA1 tiene 4 registros.

Función FIRST ()

La función FIRST () retorna el primer valor de la columna seleccionada

Sintaxis de FIRST () :

SELECT FIRST(nombrecolumna) FROM nombretabla

ejemplo : Vamos a crear un comando SQL para poder ver el Apellido del primer registro de nuestra tabla TIENDA1.

el Apellido del primer registro de nuestra tabla TIENDA1. Como podemos apreciar en el resultado, el
el Apellido del primer registro de nuestra tabla TIENDA1. Como podemos apreciar en el resultado, el

Como podemos apreciar en el resultado, el primer registro de la tabla TIENDA1, tiene en el campo Apellido a Perez.

Función LAST ()

La función LAST , retorna el ultimo valor de la columna seleccionada.

Sintaxis de LAST :

SELECT LAST ( nombrecolumna) FROM nombretabla

Ejemplo : Usaremos la función LAST para ver en la columna Apellido el ultimo del registro de la tabla TIENDA1.

columna Apellido el ultimo del registro de la tabla TIENDA1. Como podemos apreciar en la respuesta
columna Apellido el ultimo del registro de la tabla TIENDA1. Como podemos apreciar en la respuesta

Como podemos apreciar en la respuesta de la consulta de la función LAST el ultimo registro de la columna Apellido de la tabla TIENDA1 es Montoya.

Función MAX ()

La función MAX , retorna el valor mas alto de una columna seleccionada.

Sintaxis de MAX :

SELECT MAX (nombrecolumna) FROM nombretabla

Ejemplo : De la tabla TIENDA1, vamos a buscar en la columna SUELDO, el sueldo mas alto del grupo de trabajadores.

SUELDO, el sueldo mas alto del grupo de trabajadores. Como apreciamos en el resultado de la
SUELDO, el sueldo mas alto del grupo de trabajadores. Como apreciamos en el resultado de la

Como apreciamos en el resultado de la consulta el sueldo mas alto de los trabajadores de la TIENDA1 es de 300 unidades monetarias.

Función MIN ()

La función MIN retorna el menos valor de una columna seleccionada.

Sintaxis de MIN() :

SELECT MIN (nombrecolumna) FROM nombretabla

Ejemplo : De la tabla TIENDA1, vamos a buscar en la columna SUELDO, el sueldo mas bajo del grupo de trabajadores.

SUELDO, el sueldo mas bajo del grupo de trabajadores. Del resultado de la consulta podemos ver
SUELDO, el sueldo mas bajo del grupo de trabajadores. Del resultado de la consulta podemos ver

Del resultado de la consulta podemos ver que el sueldo mas bajo del grupo de trabajadores de la TIENDA1 es de 280 unidades monetarias.

Función SUM ()

La función SUM , retorna la suma total de una columna numérica.

Sintaxis SUM :

SELECT SUM (nombrecolumna) AS nombreconsulta FROM nombretabla

Ejemplo : De la tabla TIENDA1 , vamos a buscar la suma total de las comisiones ganadas por los vendedores.

la suma total de las comisiones ganadas por los vendedores. Del resultado de la consulta podemos
la suma total de las comisiones ganadas por los vendedores. Del resultado de la consulta podemos

Del resultado de la consulta podemos ver que la suma total de las comisiones ganadas por los trabajadores de la TIENDA1 es de 1,400 unidades monetarias.

La declaración GROUP BY

La declaración GROUP BY es usada en conjunción con una función agregada para agrupar el resultado por una o mas columnas.

Sintaxis GROUP BY :

SELECT nombrecolumna1, función agregada(nombrecolumna2) FROM nombretabla GROUP BY nombre columna1

Ejemplo : Vamos a utilizar la tabla COMPRAS, lo que deseamos averiguar es el total de compras efectuado por la compañía del 24 al 26 de Marzo 2010, agrupados por compañía proveedora.

24 al 26 de Marzo 2010, agrupados por compañía proveedora. Luego de tipeado el código y
24 al 26 de Marzo 2010, agrupados por compañía proveedora. Luego de tipeado el código y

Luego de tipeado el código y ejecutada la consulta, podemos ver el resultado, en el cual se aprecia las compras totales que nuestra compañía ha efectuado a los proveedores en esos tres días.

La clausula HAVING

La clausula HAVING fue agregada a SQL porque la sentencia WHERE no puede ser usada con funciones agregadas

Sintaxis de HAVING :

SELECT nombrecolumna1, SUM (nombrecolumna2) FROM nombretabla GROUP BY nombrecolumna1 HAVING SUM(nombrecolumna2) valoroperador

Ejemplo : Del ejemplo anterior, queremos un listado de los proveedores a los cuales hemos comprado mas de 10000 unidades monetarias.

los cuales hemos comprado mas de 10000 unidades monetarias. Del resultado de la consulta, podemos observar
los cuales hemos comprado mas de 10000 unidades monetarias. Del resultado de la consulta, podemos observar

Del resultado de la consulta, podemos observar que solo dos empresas superan el nivel de 10000 unidades monetarias.

Lima – Perú 2010

mepgkun@hotmail.com Lima – Perú 2010 El archivo con la base de datos de la practica puede

El archivo con la base de datos de la practica puede ser descargada de la siguiente dirección :

ml