33
APRENDIENDO SQL CON SQL COMMAND SEGUNDA PARTE [email protected] Lima-Perú 2010

Aprender SQL Con SQL Command Segunda Parte

  • Upload
    mepgkun

  • View
    572

  • Download
    2

Embed Size (px)

DESCRIPTION

APRENDER SQL

Citation preview

Page 1: Aprender SQL Con SQL Command Segunda Parte

APRENDIENDO SQL

CON SQL COMMAND

SEGUNDA PARTE

[email protected]ú 2010

Page 2: Aprender SQL Con SQL Command Segunda Parte

INDICE

CREATE DATABASECREATE TABLECREATE INDEXDROP INDEXDROP TABLEALTER TABLENOT NULLUNIQUEPRIMARY KEYNULLAVG ()COUNT ()FIRST()LAST()MAX()MIN()SUM()GROUP BYHAVING

VOLVER AL INDICE 1

Page 3: Aprender SQL Con SQL Command Segunda Parte

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

Page 4: Aprender SQL Con SQL Command Segunda Parte

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ÑOInt Entero 4 bytes

Smallint Entero corto 2 bytesReal 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 bytesbinary(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 KeyEmpresa 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

Page 5: Aprender SQL Con SQL Command Segunda Parte

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

Page 6: Aprender SQL Con SQL Command Segunda Parte

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 nombreindiceON 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

Page 7: Aprender SQL Con SQL Command Segunda Parte

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

Page 8: Aprender SQL Con SQL Command Segunda Parte

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

Page 9: Aprender SQL Con SQL Command Segunda Parte

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 nombretablaADD nombrecolumna tipodato

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

ALTER TABLE nombretablaDROP COLUMN nombrecolumna

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

ALTER TABLE nombretablaALTER 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

Page 10: Aprender SQL Con SQL Command Segunda Parte

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

Page 11: Aprender SQL Con SQL Command Segunda Parte

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

Page 12: Aprender SQL Con SQL Command Segunda Parte

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 NULLNombre 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 = 1Nombre = JuanApellido = Perez

VOLVER AL INDICE 11

Page 13: Aprender SQL Con SQL Command Segunda Parte

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

Page 14: Aprender SQL Con SQL Command Segunda Parte

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

Page 15: Aprender SQL Con SQL Command Segunda Parte

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

Page 16: Aprender SQL Con SQL Command Segunda Parte

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

Page 17: Aprender SQL Con SQL Command Segunda Parte

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 KEYNombre 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

Page 18: Aprender SQL Con SQL Command Segunda Parte

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

Page 19: Aprender SQL Con SQL Command Segunda Parte

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

Page 20: Aprender SQL Con SQL Command Segunda Parte

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 NULLSi 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

Page 21: Aprender SQL Con SQL Command Segunda Parte

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

Page 22: Aprender SQL Con SQL Command Segunda Parte

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

Page 23: Aprender SQL Con SQL Command Segunda Parte

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 promedioCOUNT() = Retorna el numero de filasFIRST() = Retorna el primer valorLAST() = Retorna el ultimó valorMAX() = Retorna el mayor valorMIN() = Retorna el menor valorSUM() = 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

Page 24: Aprender SQL Con SQL Command Segunda Parte

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

Page 25: Aprender SQL Con SQL Command Segunda Parte

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

Page 26: Aprender SQL Con SQL Command Segunda Parte

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

Page 27: Aprender SQL Con SQL Command Segunda Parte

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

Page 28: Aprender SQL Con SQL Command Segunda Parte

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

Page 29: Aprender SQL Con SQL Command Segunda Parte

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

Page 30: Aprender SQL Con SQL Command Segunda Parte

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

Page 31: Aprender SQL Con SQL Command Segunda Parte

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 nombretablaGROUP 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

Page 32: Aprender SQL Con SQL Command Segunda Parte

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 nombretablaGROUP BY nombrecolumna1HAVING 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

Page 33: Aprender SQL Con SQL Command Segunda Parte

[email protected]

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

VOLVER AL INDICE 32