Está en la página 1de 4

PROGRAMACIN AVANZADA II

Conceptos introductorios de SQL


Creando una base de datos
create database admondb

Seleccionar la base de datos creada


use admondb

Vamos a crear la siguiente tabla


Tbempleados
CREATE TABLE IF NOT EXISTS `tbempleados` (
`DocumentoEmpleado` int(11) NOT NULL,
`Nombres` varchar(30) NOT NULL,
`Apellidos` varchar(30) NOT NULL,
`FechaNacimiento` date NOT NULL,
`Sexo` varchar(1) NOT NULL,
`Cargo` varchar(30) NOT NULL,
`Salario` double NOT NULL,
PRIMARY KEY (`DocumentoEmpleado`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Insertando Registros
INSERT INTO tbempleados VALUES ('52235164', 'Yenny Paola', 'Cantor Bernante', '1982-02-08',
'F', 'Secretaria', '1500000');
INSERT INTO tbempleados VALUES ('28271456', 'Diana', 'Luna Ducuara', '1986-11-15', 'F',
'Asistente Gerencia', '2300000');
INSERT INTO tbempleados VALUES ('78742035', 'Franco', 'Simanca Herrera','1999-1207', 'M', 'Mensajero', '950000');

Modificar un registro
UPDATE `admondb`.`tbempleados` SET `Nombres` = 'Franco
Adrian' WHERE `tbempleados`.`DocumentoEmpleado` = 78742035;

Eliminar un registro
DELETE FROM tbempleados WHERE DocumentoEmpleado = 28271456

Backup de la base de datos


El mtodo ms utilizado para crear copias de seguridad de MySQL se basa en
el uso del comando mysqldump. Este comando se incluye dentro de las
utilidades del propio servidor MySQL, por lo que ya se instal cuando instalaste
MySQL. Para comprobar que dispones de mysqldump, abre una consola de
comandos y ejecuta lo siguiente:

mysqldump --version
Ejecuta el siguiente comando para realizar una copia de seguridad completa de
la base de datos llamada NOMBRE_BASE_DE_DATOS. No olvides reemplazar
TU_USUARIO y TU_CONTRASEA por las credenciales que utilizas para
acceder al servidor de base de datos:
mysqldump --user=TU_USUARIO --password=TU_CONTRASEA NOMBRE_BASE_DE_DATOS >
copia_seguridad.sql

Si por ejemplo el usuario es root, la contrasea tambin es root y la base de


datos se llama acme, el comando que debes ejecutar es el siguiente:
mysqldump --user=root --password=root acme > copia_seguridad.sql

Si por motivos de seguridad no quieres escribir la contrasea como parte del


comando, puedes reemplazar la opcin --password=XX por -p. Al hacerlo,
MySQL te pedir que escribas la contrasea a mano cada vez que realices una
copia de seguridad:
mysqldump --user=root -p acme > copia_seguridad.sql
Enter password: *********

Restore de la base de datos


mysql --user=TU_USUARIO --password=TU_CONTRASEA <
copia_seguridad.sql
Las consultas en SQL
Ingresemos varios registros para poder trabajar un poco mejor las consultas en
SQL

Qu es SQL?
El SQL (Structured Query Language), lenguaje de consulta estructurado, es un
lenguaje surgido de un proyecto de investigacin de IBM para el acceso a
bases de datos relacionales. Actualmente se ha convertido en un estndar de
lenguaje de bases de datos, y la mayora de los sistemas de bases de datos lo
soportan, desde sistemas para ordenadores personales, hasta grandes
ordenadores.

Como su nombre indica, el SQL nos permite realizar consultas a la base de


datos. Pero el nombre se queda corto ya que SQL adems realiza funciones de
definicin, control y gestin de la base de datos. Las sentencias SQL se
clasifican segn su finalidad dando origen a tres lenguajes o mejor dicho
sublenguajes:
DDL (Data Description Language), lenguaje de definicin de datos, incluye
rdenes para definir, modificar o borrar las tablas en las que se almacenan los
datos y de las relaciones entre estas. (Es el que ms varia de un sistema a
otro)
DCL (Data Control Language), lenguaje de control de datos, contiene
elementos tiles para trabajar en un entorno multiusuario, en el que es
importante la proteccin de los datos, la seguridad de las tablas y el
establecimiento de restricciones en el acceso, as como elementos para
coordinar la comparticin de datos por parte de usuarios concurrentes,
asegurando que no interfieren unos con otros.
DML (Data Manipulation Language), lenguaje de manipulacin de datos, nos
permite recuperar los datos almacenados en la base de datos y tambin
incluye rdenes para permitir al usuario actualizar la base de datos aadiendo
nuevos datos, suprimiendo datos antiguos o modificando datos previamente
almacenados.
Vamos a crear otras tablas ms para trabajarlas a lo largo de los ejemplos.
TbOficinas
CREATE TABLE IF NOT EXISTS `tboficinas` (
`Oficina` int(11) NOT NULL AUTO_INCREMENT,
`Ciudad` varchar(30) NOT NULL,
`Region` varchar(30) NOT NULL,
`Direccion` varchar(80) NOT NULL,
`MetaVentas` double NOT NULL,
`Ventas` double NOT NULL,
PRIMARY KEY (`Oficina`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

TbClientes
CREATE TABLE IF NOT EXISTS `tbclientes` (
`CodigoCliente` int(11) NOT NULL,
`Nombres` varchar(60) NOT NULL,
`AsesorAsignado` int(11) NOT NULL,
`LimiteCredito` double NOT NULL,
PRIMARY KEY (`CodigoCliente`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

TbProductos
CREATE TABLE IF NOT EXISTS `tbproductos` (
`CodigoProducto` int(11) NOT NULL,
`CodigoFabricante` int(11) NOT NULL,
`NombreProducto` varchar(60) NOT NULL,
`PrecioUnitario` double NOT NULL,
`Existencias` int(11) NOT NULL,
PRIMARY KEY (`CodigoProducto`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Ingrese los suficientes registros en las diferentes tablas para que las consultas
que usaremos nos arrojen resultados coherentes.
Consultas Simples

select * from tbempleados


Select DocumentoEmpleado,Nombres,Apellidos FROM tbempleados

Alias de Columnas
SELECT CodigoCliente, Nombres AS 'Nombre o Razn Social',AsesorAsignado AS 'Asesor
Asignado', LimiteCredito AS 'Limite de Crdito' FROM `tbclientes`

Columnas Calculadas
Select CodigoProducto,CodigoFabricante,NombreProducto,Existencias,PrecioUnitario,
(Existencias * PrecioUnitario) AS 'Costo Total' FROM tbproductos
SELECT DocumentoEmpleado, Nombres, Apellidos, MONTH(FechaNacimiento) AS 'Mes de
Nacimiento', DAY(FechaNacimiento) AS 'Dia de Nacimiento' FROM `tbempleados`

Ordenacin de filas
SELECT
SELECT
SELECT
SELECT
SELECT

*
*
*
*
*

FROM
FROM
FROM
FROM
FROM

tbempleados ORDER BY DocumentoEmpleado ASC


tbempleados ORDER BY DocumentoEmpleado DESC
tbempleados ORDER BY Nombres ASC
tbclientes ORDER BY LimiteCredito DESC
tbempleados ORDER BY DocumentoEmpleado,Salario ASC

La clusula DISTINCT y ALL


La clusula TOP