Manual Ejercicios MySQL

Manual y Ejercicios de MySQL http://www.mysqlya.com.ar/ Nota: Las Respuestas a los Ejercicios se encuentran en la pági

Views 180 Downloads 78 File size 379KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Manual y Ejercicios de MySQL

http://www.mysqlya.com.ar/

Nota: Las Respuestas a los Ejercicios se encuentran en la página arriba mencionada .

1 - Introducción SQL, Structure Query Language (Lenguaje de Consulta Estructurado) es un lenguaje de programacion para trabajar con base de datos relacionales como MySQL, Oracle , etc. MySQL es un interpretador de SQL, es un servidor de base de datos. MySQL permite crear base de datos y tablas, insertar datos, modificarlos, elimin arlos, ordenarlos, hacer consultas y realizar muchas operaciones, etc., resumien do: administrar bases de datos. Ingresando instrucciones en la linea de comandos o embebidas en un lenguaje como PHP nos comunicamos con el servidor. Cada sentencia debe acabar con punto y com a (;). La sensibilidad a mayúsculas y minúsculas, es decir, si hace diferencia entre ellas, depende del sistema operativo, Windows no es sensible, pero Linux si. Por ejemp lo Windows interpreta igualmente las siguientes sentencias: create database administracion; Create DataBase administracion; Pero Linux interpretará como un error la segunda. Se recomienda usar siempre minúsculas. Es más el sitio mysqlya.com.ar está instalado s obre un servidor Linux por lo que todos los ejercicios deberán respetarse mayúsculas y minúsculas.

2 - Show Databases Una base de datos es un conjunto de tablas. Una base de datos tiene un nombre con el cual accederemos a ella. Vamos a trabajar en una base de datos ya creada en el sitio mysqlya.com.ar, llam ada "administracion". Para que el servidor nos muestre las bases de datos existentes, se lo solicitamo s enviando la instrucción: show databases; Nos mostrará los nombres de las bases de datos, debe aparecer en este sitio "admin istracion".

3 - Creación de una tabla y mostrar sus campos (create table - show tables - descr ibe - drop table) Una base de datos almacena sus datos en tablas.

Una tabla es una estructura de datos que organiza los datos en columnas y filas; cada columna es un campo (o atributo) y cada fila, un registro. La intersección d e una columna con una fila, contiene un dato específico, un solo valor. Cada registro contiene un dato por cada columna de la tabla. Cada campo (columna) debe tener un nombre. El nombre del campo hace referencia a la información que almacenará. Cada campo (columna) también debe definir el tipo de dato que almacenará. nombre MarioPerez MariaGarcia DiegoRodriguez

clave Marito Mary z8080

Gráficamente acá tenemos la tabla usuarios, que contiene dos campos llamados:nombre y clave. Luego tenemos tres registros almacenados en esta tabla, el primero alma cena en el campo nombre el valor "MarioPerez" y en el campo clave "Marito", y así sucesivamente con los otros dos registros. Las tablas forman parte de una base de datos. Nosotros trabajaremos con la base de datos llamada "administracion", que ya hemo s creado en el servidor mysqlya.com.ar. Para ver las tablas existentes en una base de datos tipeamos: show tables; Deben aparecer todas las tablas que han creado los visitantes al sitio mysqlya.c om.ar Al crear una tabla debemos resolver qué campos (columnas) tendrá y que tipo de datos almacenarán cada uno de ellos, es decir, su estructura. La tabla debe ser definida con un nombre que la identifique y con el cual accede remos a ella. Creamos una tabla llamada "usuarios", tipeamos: create table usuarios ( nombre varchar(30), clave varchar(10) ); Si intentamos crear una tabla con un nombre ya existente (existe otra tabla con ese nombre), mostrará un mensaje de error indicando que la acción no se realizó porque ya existe una tabla con el mismo nombre. Para ver las tablas existentes en una base de datos tipeamos nuevamente: show tables; Ahora aparece "usuarios" entre otras que ya pueden estar creadas. Cuando se crea una tabla debemos indicar su nombre y definir sus campos con su t ipo de dato. En esta tabla "usuarios" definimos 2 campos:

- nombre: que contendrá una cadena de hasta 30 caracteres de longitud, que almacenará el nombre de usuario y - clave: otra cadena de caracteres de 10 de longitud, que guardará la clave de cada usuario. Cada usuario ocupará un registro de esta tabla, con su respectivo nombre y clave. Para ver la estructura de una tabla usamos el comando "describe" junto al nombre de la tabla: describe usuarios; Aparece lo siguiente: Field Type Null _________________________ nombre varchar(30) YES clave varchar(10) YES Esta es la estructura de la tabla "usuarios"; nos muestra cada campo, su tipo, l o que ocupa en bytes y otros datos como la aceptación de valores nulos etc, que ve remos más adelante en detalle. Para eliminar una tabla usamos "drop table". Tipeamos: drop table usuarios; Si tipeamos nuevamente: drop table usuarios; Aparece un mensaje de error, indicando que no existe, ya que intentamos borrar u na tabla inexistente. Para evitar este mensaje podemos tipear: drop table if exists usuarios; En la sentencia precedente especificamos que elimine la tabla "usuarios" si exis te. Problema : A) Queremos almacenar los datos de nuestros amigos. 1- Elimine la tabla "agenda" si existe: drop table if exists agenda; 2- Cree una tabla llamada "agenda", debe tener los siguientes campos: nombre varchar(20) domicilio varchar(30) y telefono varchar(11) create table agenda( nombre varchar(20), domicilio varchar(30), telefono varchar(11) ); 3- Intente crearla nuevamente. Aparece mensaje de error.

4- Visualice las tablas existentes (show tables). 5- Visualice la estructura de la tabla "agenda" (describe agenda). 6- Elimine la tabla, si existe (drop table, if exists). 7- Intente eliminar la tabla sin la cláusula if exists (drop table agenda). Debe aparecer un mensaje de error cuando no existe la tabla. Segundo Problema : A) Queremos almacenar información referente a nuestros libros. 1- Elimine la tabla "libros", si existe. 2- Cree una tabla llamada "libros". Debe definirse con los siguientes campos: titulo varchar(20), autor varchar(30), y editorial varchar(15) 3- Intente crearla nuevamente. Aparece mensaje de error. 4- Visualice las tablas existentes. 5- Visualice la estructura de la tabla "libros". 6- Elimine la tabla, si existe. 7- Intente eliminar la tabla.

4 - Carga de registros a una tabla y su recuperación (insert into - select) Un registro es una fila de la tabla que contiene los datos propiamente dichos. C ada registro tiene un dato por cada columna. Recordemos como crear la tabla "usuarios": create table usuarios ( nombre varchar(30), clave varchar(10) ); Al ingresar los datos de cada registro debe tenerse en cuenta la cantidad y el o rden de los campos. Ahora vamos a agregar un registro a la tabla: insert into usuarios (nombre, clave) values ('MarioPerez','Marito'); Usamos "insert into". Especificamos los nombres de los campos entre paréntesis y s eparados por comas y luego los valores para cada campo, también entre paréntesis y s eparados por comas. La tabla usuarios ahora la podemos graficar de la siguiente forma: nombre clave

MarioPerez Marito Es importante ingresar los valores en el mismo orden en que se nombran los campo s, si ingresamos los datos en otro orden, no aparece un mensaje de error y los d atos se guardan de modo incorrecto. Note que los datos ingresados, como corresponden a campos de cadenas de caracter es se colocan entre comillas simples. Las comillas simples son OBLIGATORIAS. Para ver los registros de una tabla usamos "select": select nombre,clave from usuarios; Aparece un registro. El comando "select" recupera los registros de una tabla. Luego del comando selec t indicamos los nombres de los campos a rescatar. Problema : Trabaje con la tabla "agenda". 1- Elimine la tabla "agenda", si existe: drop table if exists agenda; 2- Cree una tabla llamada "agenda". Debe tener los siguientes campos: nombre (cadena de 20), domicilio (cadena de 30) y telefono (cadena de 11): create table agenda( nombre varchar(20), domicilio varchar(30), telefono varchar(11) ); 3- Visualice las tablas existentes para verificar la creación de "agenda". (show tables). 4- Visualice la estructura de la tabla "agenda". (describe). 5- Ingrese los siguientes registros: insert into agenda (nombre, domicilio, telefono) values ('Alberto Mores','Colon 123','4234567'); insert into agenda (nombre, domicilio, telefono) values ('Juan Torres','Avellaneda 135','4458787'); 6- Seleccione y mustre todos los registros de la tabla: select nombre, domicilio, telefono from agenda; 7- Elimine la tabla "agenda", si existe: drop table if exists agenda; 8- Intente eliminar la tabla nuevamente, sin especificar "si existe": drop table agenda; Segundo Problema : A) Trabaje con la tabla "libros". 1- Elimine la tabla "libros", si existe. (drop table- if exists). 2- Cree una tabla llamada "libros". Debe definirse con los siguientes campos: titulo (cadena de 20), autor (cadena de 30) y editorial (cadena de 15).

3- Visualice las tablas existentes. (show tables). 4- Visualice la estructura de la tabla "libros". (describe). 5- Ingrese los siguientes registros: 'El aleph','Borges','Planeta'; 'Martin Fierro','Jose Hernandez','Emece'; 'Aprenda PHP','Mario Molina','Emece'; 6- Muestre todos los registros. (select).

5 - Típos de datos básicos de un campo de una tabla. Ya explicamos que al crear una tabla debemos resolver qué campos (columnas) tendrá y que tipo de datos almacenará cada uno de ellos, es decir, su estructura. Estos so n algunos tipos de datos básicos: - varchar: se usa para almacenar cadenas de caracteres. Una cadena es una secuen cia de caracteres. Se coloca entre comillas (simples): 'Hola'. El tipo "varchar" define una cadena de longitud variable en la cual determinamos el máximo de carac teres. Puede guardar hasta 255 caracteres. Para almacenar cadenas de hasta 30 ca racteres, definimos un campo de tipo varchar(30). Si asignamos una cadena de car acteres de mayor longitud que la definida, la cadena se corta. Por ejemplo, si d efinimos un campo de tipo varchar(10) y le asignamos la cadena 'Buenas tardes', se almacenará 'Buenas tar' ajustándose a la longitud de 10 caracteres. - integer: se usa para guardar valores numéricos enteros, de -2000000000 a 2000000 000 aprox. Definimos campos de este tipo cuando queremos representar, por ejempl o, cantidades. - float: se usa para almacenar valores numéricos decimales. Se utiliza como separa dor el punto (.). Definimos campos de este tipo para precios, por ejemplo.

Antes de crear una tabla debemos pensar en sus campos y optar por el tipo de dat o adecuado para cada uno de ellos. Por ejemplo, si en un campo almacenaremos númer os enteros, el tipo "float" sería una mala elección; si vamos a guardar precios, el tipo "float" es correcto, no así "integer" que no tiene decimales. Problema : Un videoclub que alquila películas en video almacena la información de sus películas e n una tabla llamada "peliculas"; para cada película necesita los siguientes datos: -nombre, cadena de caracteres de 20 de longitud, -actor, cadena de caracteres de 20 de longitud, -duración, valor numérico entero. -cantidad de copias: valor entero. 1- Elimine la tabla, si existe: drop table if exists peliculas; 2- Cree la tabla eligiendo el tipo de dato adecuado para cada campo: create table peliculas( nombre varchar(20), actor varchar(20), duracion integer,

cantidad integer ); 3- Vea la estructura de la tabla: describe peliculas; 4- Ingrese los siguientes registros: insert into peliculas (nombre, actor, duracion, cantidad) values ('Mision imposible','Tom Cruise',120,3); insert into peliculas (nombre, actor, duracion, cantidad) values ('Mision imposible 2','Tom Cruise',180,2); insert into peliculas (nombre, actor, duracion, cantidad) values ('Mujer bonita','Julia R.',90,3); insert into peliculas (nombre, actor, duracion, cantidad) values ('Elsa y Fred','China Zorrilla',90,2); 5- Muestre todos los registros: select * from peliculas; Segundo Problema: Una empresa almacena los datos de sus empleados en una tabla "empleados" que gua rda los siguientes datos: nombre, documento, sexo, domicilio, sueldobasico. 1- Elimine la tabla, si existe: drop table if exists empleados; 2- Cree la tabla eligiendo el tipo de dato adecuado para cada campo: create table empleados( nombre varchar(20), documento varchar(8), sexo varchar(1), domicilio varchar(30), sueldobasico float ); 3- Vea la estructura de la tabla: describe empleados; 4- Ingrese algunos registros: insert into empleados (nombre, documento, sexo, domicilio, sueldobasico) values ('Juan Perez','22345678','m','Sarmiento 123',300); insert into empleados (nombre, documento, sexo, domicilio, sueldobasico) values ('Ana Acosta','24345678','f','Colon 134',500); insert into empleados (nombre, documento, sexo, domicilio, sueldobasico) values ('Marcos Torres','27345678','m','Urquiza 479',800); 5- Seleccione todos los registros: select * from empleados;

6 - Recuperación de algunos campos (select) Hemos aprendido cómo ver todos los registros de una tabla: select * from libros; El comando "select" recupera los registros de una tabla. Con el asterisco (*) in

dicamos que seleccione todos los campos de la tabla que nombramos. Podemos especificar el nombre de los campos que queremos ver separándolos por coma s: select titulo,autor,editorial from libros; En la sentencia anterior la consulta mostrará sólo los campos "titulo", "autor" y "e ditorial". En la siguiente sentencia, veremos los campos correspondientes al títul o y precio de todos los libros: select titulo,precio from libros; Para ver solamente la editorial y la cantidad de libros tipeamos: select editorial,cantidad from libros; Problema : Un videoclub que alquila películas en video almacena la información de sus películas e n alquiler en una tabla llamada "peliculas". 1- Elimine la tabla, si existe: drop table if exists peliculas; 2- Cree la tabla: create table peliculas( titulo varchar(20), actor varchar(20), duracion integer, cantidad integer ); 3- Vea la estructura de la tabla: describe peliculas; 4- Ingrese los siguientes registros: insert into peliculas (titulo, actor, duracion, cantidad) values ('Mision imposible','Tom Cruise',120,3); insert into peliculas (titulo, actor, duracion, cantidad) values ('Mision imposible 2','Tom Cruise',180,2); insert into peliculas (titulo, actor, duracion, cantidad) values ('Mujer bonita','Julia R.',90,3); insert into peliculas (titulo, actor, duracion, cantidad) values ('Elsa y Fred','China Zorrilla',90,2); 5- Realice un "select" mostrando solamente el título y actor de todas las películas: select titulo,actor from peliculas; 6- Muestre el título y duración de todas las peliculas. 7- Muestre el título y la cantidad de copias. Segundo Problema :

A- Una empresa almacena los datos de sus empleados en una tabla llamada "emplead os". 1- Elimine la tabla, si existe: drop table if exists empleados; 2- Cree la tabla: create table empleados( nombre varchar(20), documento varchar(8), sexo varchar(1), domicilio varchar(30), sueldobasico float ); 3- Vea la estructura de la tabla: describe empleados; 4- Ingrese algunos registros: insert into empleados (nombre, documento, sexo, domicilio, sueldobasico) values ('Juan Perez','22345678','m','Sarmiento 123',300); insert into empleados (nombre, documento, sexo, domicilio, sueldobasico) values ('Ana Acosta','24345678','f','Colon 134',500); insert into empleados (nombre, documento, sexo, domicilio, sueldobasico) values ('Marcos Torres','27345678','m','Urquiza 479',800); 5- Muestre todos los datos de los empleados. 6- Muestre el nombre y documento de los empleados. 7- Realice un "select" mostrando el nombre, documento y sueldo básico de todos los empleados. Tercer Problema : B) Un comercio que vende artículos de computación registra la información de sus productos en la tabla llamada "articulos". 1- Elimine la tabla si existe: drop table if exists articulos; 2- Cree la tabla "articulos" con los campos necesarios para almacenar los siguie ntes datos: - código del artículo: entero, - nombre del artículo: 20 caracteres de longitud, - descripción: 30 caracteres de longitud, - precio: float. 3- Vea la estructura de la tabla (describe). 4- Ingrese algunos registros: insert into articulos (codigo, nombre, descripcion, precio) values (1,'impresora','Epson Stylus C45',400.80); insert into articulos (codigo, nombre, descripcion, precio) values (2,'impresora','Epson Stylus C85',500); insert into articulos (codigo, nombre, descripcion, precio) values (3,'monitor','Samsung 14',800);

5- Muestre todos los campos de todos los registros. 6- Muestre sólo el nombre, descripción y precio.

7 - Recuperación de registros específicos (select - where) Hemos aprendido cómo ver todos los registros de una tabla: select nombre, clave from usuarios; El comando "select" recupera los registros de una tabla. Detallando los nombres de los campos separados por comas, indicamos que seleccione todos los campos de la tabla que nombramos. Existe una cláusula, "where" que es opcional, con ella podemos especificar condici ones para la consulta "select". Es decir, podemos recuperar algunos registros, sól o los que cumplan con ciertas condiciones indicadas con la cláusula "where". Por e jemplo, queremos ver el usuario cuyo nombre es "MarioPerez", para ello utilizamo s "where" y luego de ella, la condición: select nombre, clave from usuarios where nombre='MarioPerez'; Para las condiciones se utilizan operadores relacionales (tema que trataremos más adelante en detalle). El signo igual(=) es un operador relacional. Para la sigui ente selección de registros especificamos una condición que solicita los usuarios cu ya clave es igual a 'bocajunior': select nombre, clave from usuarios where clave='bocajunior'; Si ningún registro cumple la condición establecida con el "where", no aparecerá ningún r egistro. Problema : Trabajamos con nuestra tabla "agenda". 1- Eliminamos "agenda", si existe: drop table if exists agenda; 2- Creamos la tabla, con los siguientes campos: nombre (cadena de 20), domicilio (cadena de 30) y telefono (cadena de 11). 3- Visualice la estructura de la tabla "agenda".(describe). 4- Ingrese los siguientes registros: 'Alberto Mores','Colon 123','4234567', 'Juan Torres','Avellaneda 135','4458787', 'Mariana Lopez','Urquiza 333','4545454', 'Fernando Lopez','Urquiza 333','4545454'. 5- Seleccione todos los registros de la tabla. (select). 6- Seleccione el registro cuyo nombre sea 'Juan Torres'. 7- Seleccione el registro cuyo domicilio sea 'Colon 123'. 8- Muestre los datos de quienes tengan el teléfono '4545454'.

9- Elimine la tabla "agenda". Segundo Problema : A) Trabaje con la tabla "libros". 1- Elimine la tabla si existe. (drop table- if exists), 2- Cree la tabla "libros". Debe tener la siguiente estructura: create table libros ( titulo varchar(20), autor varchar(30), editorial varchar(15) ); 3- Visualice la estructura de la tabla "libros". 4- Ingrese los siguientes registros: 'El aleph','Borges','Planeta'; 'Martin Fierro','Jose Hernandez','Emece'; 'Aprenda PHP','Mario Molina','Emece'; 'Cervantes','Borges','Paidos'; 5- Muestre todos los registros. (select). 6- Seleccione los registros cuyo autor sea 'Borges'. 7- Seleccione los registros cuya editorial sea 'Emece'. 8- Seleccione los libros cuyo titulo sea 'Martin Fierro'. 9- Elimine la tabla "libros". Tercer Problema : B) Un comercio que vende artículos de computación registra los datos de sus artículos en una tabla llamada "articulos". 1- Elimine la tabla si existe. 2- Cree la tabla "articulos" con la siguiente estructura: create table articulos( codigo integer, nombre varchar(20), descripcion varchar(30), precio float ); 3- Vea la estructura de la tabla (describe). 4- Ingrese algunos registros: insert into articulos (codigo, nombre, descripcion, values (1,'impresora','Epson Stylus C45',400.80); insert into articulos (codigo, nombre, descripcion, values (2,'impresora','Epson Stylus C85',500); insert into articulos (codigo, nombre, descripcion, values (3,'monitor','Samsung 14',800); insert into articulos (codigo, nombre, descripcion, values (4,'teclado','ingles Biswal',100);

precio) precio) precio) precio)

insert into articulos (codigo, nombre, descripcion, precio) values (5,'teclado','español Biswal',90); 5- Seleccione todos los datos de los registros cuyo nombre sea "impresora". 6- Muestre sólo el código, descripción y precio de los teclados.

8 - Operadores Relacionales = < >= Hemos aprendido a especificar condiciones de igualdad para seleccionar registros de una tabla; por ejemplo: select titulo,autor,editorial from libros where autor='Borges'; Utilizamos el operador relacional de igualdad. Los operadores relacionales vinculan un campo con un valor para que MySQL compar e cada registro (el campo especificado) con el valor dado. Los operadores relacionales son los siguientes: =

> < >= 20; También, los libros cuyo precio sea menor o igual a 30: select titulo,autor,editorial,precio from libros where precio=500; 8- Seleccione los artículos cuya cantidad sea menor a 30: select nombre,descripcion, precio,cantidad from articulos where cantidad