0% encontró este documento útil (0 votos)
25 vistas

SQL

Este documento describe cómo crear y manipular una base de datos y tablas en MySQL. Inicialmente se crea una base de datos llamada "firstdb" y una tabla llamada "ventas" para almacenar datos de ventas. Luego se usan comandos como INSERT, SELECT, UPDATE y DELETE para agregar, consultar, modificar y eliminar datos de la tabla. También se explican funciones como COUNT, MAX, MIN para analizar los datos almacenados.

Cargado por

luiscorona
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
25 vistas

SQL

Este documento describe cómo crear y manipular una base de datos y tablas en MySQL. Inicialmente se crea una base de datos llamada "firstdb" y una tabla llamada "ventas" para almacenar datos de ventas. Luego se usan comandos como INSERT, SELECT, UPDATE y DELETE para agregar, consultar, modificar y eliminar datos de la tabla. También se explican funciones como COUNT, MAX, MIN para analizar los datos almacenados.

Cargado por

luiscorona
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 8

mysql> CREATE DATABASE firstdb;

Query OK, 1 row affected (0.01 sec)

mysql> GRANT ALL ON firsdb.* to usuario@localhost IDENTIFIED BY 'user';


Query OK, 0 rows affected (0.01 sec)
mysql> exit
Bye

mysql> -u usuario -user guru2b firstdb

mysql>use firstdb

Para crear una tabla, tambien vamos a utilizar el comando CREATE,


pero necesitaremos especificar TABLE en hgar de DATABASE, asi como algunos
elementos adicionales. Introduzca la siguiente instruccion CREATE:

CREATE TABLE ventas( idempleado INT, apellido VARCHAR(1O), nombre VARCHAR(30) ,


comision INT);

SHOW TABLES muestra todas las tablas existentes en la base de datos actual.
En el caso de nuestra tabla f i r s t db solo tenemos una: ventas

show tables;

DESCRIBE cs el comando que mucstra la estructura de la tabla. Para comprobar


que MySQL ha creado la tabla correctamente. escriba lo siguiente:

describe ventas;

Para introducir estos datos en la tabla, se utiliza la instruccion SQL INSERT


para crear un registro, de la siguiente forma:

Inserci�n en la Base de Datos de registros

INSERT INTO ventas(idempleado,apellido,nombre,comision) VALUES(1, 'Rive',


'Soll',10);
INSERT INTO ventas(idempleado,apellido,nombre,comision) VALUES(2, 'luis',
'perez',50);
INSERT INTO ventas(idempleado,apellido,nombre,comision) VALUES(3, 'luis',
'gomez',60);

Esiste otra forma mas sencilla de introducir datos con la instruccion INSERT,
como se muestra en la siguiente secuencia:

INSERT INTO ventas VALUES (4, 'Rivero' , 'Sol ' ,80) ;


INSERT INTO ventas VALUES (5, 'castroo' , 'Soledad ' ,80) ;

Si introduce 10s comandos de esta forma, debe incluir 10s campos en el mismo
orden en el que se define en la base de datos.

Otra forma mas sencilla de utilizar el comando INSERT para introducir 10s
datos de una sola vez consiste en separar 10s registros mediante comas, como se
ilustra a continuacion

INSERT INTO ventas(idempleado,apellido,nombre,comision) VALUES(6, 'Riveros',


'aldo',10),(7, 'Rivera', 'aldo',10);

Este metodo reduce la cantidad de codigo que resulta necesario escribir y el


sewidor procesa la secuencia de manera mas rapida

La operacion de extraer informacion de una tabla resulta sencilla. Para ello,


puede utilizar el potente comando SELECT, como se muestra en el siguiente

SELECT comision FROM ventas WHERE apellido= 'Rive' ;

La instruccion SELECT consta de varias partes. La primera, inmediatamente


despues del comando SELECT, es la lista de campos. Puede recuperar otros
campos, en lugar de recuperar unicamente el campo comision, de la siguiente
forma:

SELECT comision, apellido, nombre FROM ventas WHERE apellido= 'Rive' ;

Tambien puede utilizar el caracter comodin (*) para devolver todos 10s campos,
de la siguiente forma:

SELECT * FROM ventas WHERE apellido= 'Rive' ;

SELECT DISTINCT apellido FROM ventas WHERE apellido= 'Rive' ;

La parte de la instruccion SELECT situada tras el termino WHERE se denomina


clausula WHERE. Esta clausula es muy flexible y contiene una gran cantidad
de condiciones de distinto tipo. Examine el siguiente ejemplo:

SELECT * FROM ventas WHERE comision >10 OR apellido='Rive' AND nombre ='Sol';

La comprension de 10s operadores AND y OR es fundamental para utilizar


SQL correctamente. Las condiciones situadas a ambos lados de la palabra clave
AND deben ser verdad para que el conjunto sea verdadero. En el caso de una
instruction OR basta con que una de las condiciones sea verdadera

Suponga que nuestro jefe nos pide una lista de los empleados cuyo apellido sea Rive
y
cuyo nombre sea Sol o que su comision supere el 10 por ciento. Podriamos construir
la siguiente consults:

SELECT * FROM ventas WHERE apellido= ' Rive ' AND ( nombre='Sol' OR comision>10 );
SELECT * FROM ventas WHERE apellido LIkE 'R%' ;

Fijese en el simbolo %. Se trata de un comodin parecido a1 simbolo *, per0


especificamente diseiiado para su uso dentro de la condicion SELECT. Significa
0 o mas caracteres.

SELECT * FROM ventas WHERE apellido LIkE 'River%' ;

INSERT INTO ventas VALUES (9, ' Rive ' , 'Mongane' ,10) ;
INSERT INTO ventas VALUES (5, 'smit' , 'mike ' ,80) ;

Existe otra clausula util y de uso habitual que permite la ordenacion de 10s
resultados. Una lista alfabetica de empleados resulta de utilidad y puede recurrir
a la clausula ORDER BY para generarla.

SELECT * FROM ventas ORDER BY apellido;

Para ordenar la lista de registros de forma inversa


(en orden descendente), se utiliza la palabra clave DESC.
La siguiente consulta devuelve todos 10s registros segun la comision asignada,
de mayor a menor:

SELECT * FROM ventas ORDER BY comision DESC;

La primera funcion que vamos a analizar es la funcion MAX ( ) . Utilizarenlos


esta funcion para recuperar la comision mas aka asignada a un comercial:

SELECT MAX(comision) from ventas;

Como puede observar por 10s resultados de 10s ejemplos utilizados hasta ahora,
MySQL muestra el numero de filas, como 4 rows i n set. En ocasiones,
solo necesitaremos saber el numero de resultados y no 10s contenidos de 10s
registros. Para ello se utilizara la funcion COUNT( )

SELECT COUNT(apellido) FROM ventas;

Para contar el numero de apellidos distintos que contiene la tabla, se combinan


las instrucciones COUNT ( ) y DISTINCT, de la forma siguiente:

SELECT COUNT(DISTINCT apellido) FROM ventas;

Como recuperar la media, el minimo y el total

Con AVG( ), MIN( ) y SUM( ) Estas funciones se utilizan de la misma forma que MAX (
) . Dentro de 10s
partntesis se incluye el campo con el que se desee trabajar. Por ejemplo, para
obtener la cornision media, se utiliza la siguiente consulta:
mysql> SELECT AVG (comision) FROM ventas;

Y para descubrir la comision mas baja asignada a 10s comerciales, se utiliza la


siguiente consulta:

SELECT MIN(comision) FROM ventas;

SUM ( ) funciona de manera similar. No es muy probable que le encuentre un


uso a la operacion de hallar el total de las comisiones como se muestra en el
ejemplo, per0 le ayudara a hacerse una idea de su funcionamiento.

mysql> SELECT SUM(comision) from ventas;

Para eliminar un registro, MySQL utiliza la instruccion DELETE. Esta instruccion


es parecida a la instruccion SELECT, con la salvedad de que como se
elimina el registro completo no es necesario especificar ninguna columna. Tan
solo necesitamos indicar el nombre de la tabla y la condicion.

DELETE FROM ventas WHERE apellido='smit';


SELECT * FROM ventas;

Al usar la funci�n delete sobre la tabla sin condici�n se eliminarian


todos los registros de la tabla , y no existe procedimiento para deshacer esta
operaci�n.

Supongamos que Sol Rive ha vendido un cargamento inmenso de arena a 10s


habitantes del desierto de Namibia y que en recompensa se le ha aumentado su
comision a un 12 por ciento.

Para reflejar correctamente esta nueva circunstancia, se utiliza la instruccion


UPDATE de la siguiente forma:

UPDATE ventas SET comision= 12 WHERE idempleado=4;


SELECT * FROM ventas;

Sin la cluasula where este somando modificaria el registro de


todas las comisiones a 12

UPDATE ventas SET apellido='Altidore' WHERE idempleado=9;


SELECT * FROM ventas;

Modificar el nombre Soll a Soledad sin emplear el idempleado

INSERT. SELECT, UPDATE y DELETE constituyen las cuatro instrucciones


de uso mas habitual para manipular datos. Estas cuatro instrucciones forman
parte del Lenguaje de manipulacion de datos (DML) de SQL.

Tambien esisten instrucciones para definir la estructura de 10s datos y estas


forman parte del Lenguaje de definicion de datos de SQL (DDL). Ya hemos
visto una (la instruccion CREATE) que se utiliza para crear bases de datos y, tras
cllo, las tablas y las estructuras dentro de las bases de datos. Como en el caso de
10s datos, tambien puede eliminar o modificar las tablas. A continuacion, crearemos
una tabla y la eliminaremos:

CREATE TABLE commission (id INT) ;


SHOW tables;

DROP TABLE commission;


SHOW tables;

CREATE DATABASE temp;


DROP DATABASE temp;

La ultima instruccion DDL, ALTER, permite cambiar la estructura de las


tablas. Puede agregar columnas; modificar definiciones, cambiar el nombre de las
tablas y eliminar columnas.

Agregar un campo para almacenar la edad del vendedor

ALTER TABLE ventas ADD edad int;


DESCRIBE ventas;

ALTER TABLE ventas ADD nacimiento year;


DESCRIBE ventas;

Pero si en lugar de almacenar el a�o se quisiera almacenar en ese campo la fecha de


nacimiento

ALTER TABLE ventas CHANGE nacimiento nacimientoanio DATE;


DESCRIBE ventas;

Tras la clausula CHANGE se incluye el nombre de la antigua columna seguido


del nombre de la nueva columna y de su definicion.

*-*-*-*-*-*-*-**-*-*-*-*-**-*-*-*-*-*-*-*-*

Cambio de nombre de una Tabla

CREATE TABLE cargo (id INT) ;


SHOW tables;

ALTER TABLE cargo ADD ventas int;


DESCRIBE cargo;

ALTER TABLE cargo RENAME puesto;


SHOW tables;

Para eliminar una Columna

ALTER TABLE puesto DROP ventas;


DESCRIBE puesto;

Funciones para el manejo de fechas

SELECT nacimientoanio FROM ventas;

Para cargar los valores de nacimiento

UPDATE ventas set nacimientoanio='1977-12-18' where idempleado=1;


UPDATE ventas set nacimientoanio='1978-12-18' where idempleado=2;
UPDATE ventas set nacimientoanio='1979-12-18' where idempleado=4;
UPDATE ventas set nacimientoanio='1980-12-18' where idempleado=5;
UPDATE ventas set nacimientoanio='1981-12-18' where idempleado=6;
UPDATE ventas set nacimientoanio='1982-12-18' where idempleado=7;
UPDATE ventas set nacimientoanio='1983-12-18' where idempleado=9;

SELECT * FROM ventas;

Para obtener la fecha y hora del sistema se puede emplear las funciones
NOW() y

SELECT NOW();
El cual puede ser almacenado en un campo tipo DATETIME

ALTER TABLE puesto ADD time DATETIME;


DESCRIBE puesto;
INSERT INTO puesto values (1, NOW());
SELECT * FROM puesto;

Para recuperar valores espec�ficos de los campos de tipo DATE

SELECT YEAR(nacimientoanio) from ventas;


SELECT DAYOFMONTH(nacimientoanio) from ventas;
SELECT MONTH(nacimientoanio) from ventas;

Trabajo con Varias tablas

CREATE TABLE customer ( id int, nombre varchar (30) , apellido varchar (40) ) ;

CREATE TABLE sales ( code int, salesrep int, customer int, value int ) ;

INSERT INTO customer (id, nombre, apellido) VALUES (1,'Yvonne','Clegg'),


(2,'Juan','Perez'), (3,'Wiston','Powers'), (4, 'Patricia', 'Mankunku') ;

INSERT INTO sales (code, salesrep, customer, value ) VALUES (1,1,1,2000),


(2,4,3,250), (4,1,4,450);

SELECT salesrep,customer,value,nombre,apellido
FROM sales , ventas WHERE code=1 AND
ventas.idempleado=sales.salesrep;

La primera parte de la consulta, tras el comando SELECT, incluye los campos


que deseamos recuperar. La operacion resulta bastante sencilla ya que todo consiste
en indicar loss campos que deseamos de las dos tablas.

La segunda parte, tras FROM, indica a MySQL que tablas utilizar.

La tercera parte, tras WHERE, contiene la condition code=l, que devuelve


el primer registro de la tabla de ventas. La siguiente parte es la seccion que
convierte a esta consulta en un vinculo.
Recuperar todas las ventas realizadas por Sol Rive

SELECT code,customer ,value FROM sales, ventas WHERE nombre= 'Soll' AND apellido=
'Rive ' AND sales.salesrep = ventas.idempleado;

También podría gustarte