You are on page 1of 33

APRENDIENDO SQL

CON SQL COMMAND


SEGUNDA PARTE

mepgkun@hotmail.com
Lima-Perú 2010
INDICE
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

VOLVER AL INDICE 1
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.

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 :

VOLVER AL INDICE 2
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

VOLVER AL INDICE 3
Introducimos las instrucciones SQL en la ventana de edición de SQL
COMMAND (Ventana superior) y damos clic sobre el botón de ejecutar
comando SQL .
El resultado lo apreciamos en la ventana inferior de SQLCOMMAND.(Ver
imagen de arriba)

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.

VOLVER AL INDICE 4
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.

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.

VOLVER AL INDICE 5
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.

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

VOLVER AL INDICE 6
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.

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

VOLVER AL INDICE 7
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)

VOLVER AL INDICE 8
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.

VOLVER AL INDICE 9
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:

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.

VOLVER AL INDICE 10
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)

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

VOLVER AL INDICE 11
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

VOLVER AL INDICE 12
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)

VOLVER AL INDICE 13
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 :

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).

VOLVER AL INDICE 14
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

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

VOLVER AL INDICE 15
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)

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.

VOLVER AL INDICE 16
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

VOLVER AL INDICE 17
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.

Se logro introducir el registro sin problemas.

VOLVER AL INDICE 18
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.

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.

VOLVER AL INDICE 19
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.

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

VOLVER AL INDICE 20
Ahora vayamos a la segunda consulta :

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.

VOLVER AL INDICE 21
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, tiene una columna VenTot = Ventas Totales otra columna
de Sueldo y otra de Comisiones, con estos datos trabajaremos con las
funciones agregadas.

VOLVER AL INDICE 22
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.

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.

VOLVER AL INDICE 23
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

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.

VOLVER AL INDICE 24
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.

Como podemos apreciar en el resultado, el primer registro de la tabla


TIENDA1, tiene en el campo Apellido a Perez.

VOLVER AL INDICE 25
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.

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.

VOLVER AL INDICE 26
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.

Como apreciamos en el resultado de la consulta el sueldo mas alto de los


trabajadores de la TIENDA1 es de 300 unidades monetarias.

VOLVER AL INDICE 27
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.

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

VOLVER AL INDICE 28
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.

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.

VOLVER AL INDICE 29
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.

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.

VOLVER AL INDICE 30
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.

Del resultado de la consulta, podemos observar que solo dos empresas


superan el nivel de 10000 unidades monetarias.

VOLVER AL INDICE 31
mepgkun@hotmail.com

Lima – Perú 2010

El archivo con la base de datos de la practica puede ser descargada de la


siguiente dirección :

http://www.4shared.com/file/mMhHCgFI/SQL_COMMAND_PRACTICAS2.ht
ml

VOLVER AL INDICE 32