Comandos MySQL

Requisitos para trabajar en MySQL:
 
Lo primero que debemos de hacer es ejecutar el panel de control del XAMPP.
Inicializamos los servidores: Apache y MySQL
 
Iniciamos el CMD e ingresamos a la carpeta del XAMPP mediante la siguiente linea de comando:
        cd\xampp\mysql\bin
De esta forma ingresamos a la carpeta del XAMPP
En la linea de comando ingresamos lo siguiente: mysql -uroot -p
le damos enter y nos pedira un password, el cual dejaremos en blanco y le damos nuevamente enter.
 
luego ingresamos la siguiente línea de comando: show databases y le damos enter.
De esta forma podemos visualizar las bases de datos creadas hasta el momento.
 
Para crear una Base de Datos usamos el comando "create", la sintaxis es la siguiente: create database nombre de la BD;
para este ejemplo usaremos la siguiente línea: create database biblioteca;
ejecutamos nuevamente el comando "Show databases" y allí aparecerá la base de datos que acabamos de crear.
 
Ahora procedemos a crear las tablas que contendrá nuestra Base de Datos.
Para crear una tabla usamos el comando "create", la sintaxis es la siguiente: 
create table nombre tabla;
(campo1 tipo(tamaño) requerido o no si es clave,
campo2 tipo(tamaño) requerido o no si es clave,
campoN tipo(tamaño) requerido o no si es clave);
 
para este ejemplo usaremos la siguiente línea:
        create table libro
        (cod_lib char(10) not null primary key,
        nom_lib char(40) not null);

Si queremos verificar si la tabla fue creada ingresamos el siguiente comando para visualizar las tblas de la base de datos: show tables;

Y si queremos verificar los campos de la tabla usamos el siguiente comando: "describe tabla;". En este ejemplo usamos describe libro;

Ahora crearemos una nueva tabla llamada autor, veremos su descripción y mostraremos las tablas creadas en nuestra BD.

Ahora vamos a crear una nueva tabla relacional entre las dos anteriores, para esto vamos a usar claves foraneas.

Para nuestra base de datos ejemplo, ingresaremos el siguiente código:

        mysql> create table lib_aut
            -> (cod_lib char(10) not null,
            -> cod_aut char(10) not null,
            -> foreign key(cod_lib) references libro(cod_lib) on delete cascade on update cascade,
            -> foreign key(cod_aut) references autor(cod_aut) on delete cascade on update cascade);
 
El comando "on delete cascade", sirve para que en el momento en que eliminemos un registro de esta tabla, también se elimine lo relacionado con ese registro, en la tabla a la que hacemos referencia.
El comando "on update cascade", hace casi la misma función, ya que este solo actualiza la información.
 
----------------
 
COPIAS DE SEGURIDAD
Lo primero que debemos hacer es salirnos de mysql, por medio del comando exit.
 
Comandos para hacer una copia de seguridad
mysqldump -B -uroot -p nombreBD>unidad:\nuevonombre.sql (puede guardarse con el mismo nombre o con uno nuevo)
(-B)  es para guardar carpetas si existen.
(>) se usa para decir que la envíe o guarde en determinado directorio.
 
Para nuestro ejemplo:
        mysqldump -B -uroot -p biblioteca>d:\biblioteca.sql
 
------------------
AGREGAR CAMPOS (Adicionar) A UNA TABLA
Comando add
La sintaxis para adherir campos es la siguiente:
        alter table [nombre tabla] add campo tipo requerido o no;
 
Para nuestro ejemplo quedaría así:
        alter table libro add valor_lib int(7) not null;
--> con esta línea insertamos un campo al final, si necesitamos insertarla después de un campo específico, usamos la siguiente línea:
        alter table libro add editorial char(20) not null after nom_lib;
 
 
Si el campo a insertar lo requiero al principio de la tabla, se usa la siguiente línea:
        alter table libro add tomo_lib char(2) not null first;
 
ELIMINAR CAMPOS DE UNA TABLA
Comando drop
La sintaxis para eliminar campos es la siguiente:
        alter table [nombre tabla] drop [campo a eliminar];
Para este ejemplo:
        alter table libro drop tomo_lib;
 

 

MODIFICAR EL TAMAÑO DE UN CAMPO
Comando modify
La sintaxis para modificar el tamaño de un campo es la siguiente:
        alter table [nombre tabla] modify [nombre campo] tipo [nuevo tamaño] requerido o no;
Para este ejemplo:
        alter table libro modify nom_lib char(50) not null;
 
 
CAMBIAR NOMBRE DE UN CAMPO
Comando change
La sintaxis para cambiar el nombre de un campo es la siguiente:
        alter table [nombre tabla] change [nombre campo] [nuevo nombre] tipo[tamaño] requerido o no;
Para este ejemplo:
        alter table libro change valor_lib precio_lib int(7) not null;

ELIMINAR CLAVE PRIMARIA
Comando drop
La sintaxis para eliminar una clave primaria es la siguiente:
        alter table [nombre tabla] drop primary key;
Para este ejemplo:
        alter table editorial drop primary key;
DEFINIR OTRA CLAVE PRIMARIA
Comando modify
La sintaxis para definir un campo como clave primaria es la siguiente:
        alter table [nombre tabla] modify [nombre campo] tipo(tamaño) requerido o no primary key;
Para este ejemplo:
        alter table editorial modify nombre char(20) not null primary key;
RENOMBRAR O CAMBIAR NOMBRE DE UNA TABLA
Comando rename
La sintaxis para cambiar el nombre de una tabla es la siguiente:
        alter table [nombre tabla] rename to [nuevo nombre];
Para este ejemplo:
        alter table editorial rename to editorial_libro;
ELIMINAR UNA TABLA
Comando drop
La sintaxis para eliminar una tabla es la siguiente:
        drop table [nombre tabla];
Para este ejemplo:
        drop table editorial_libro;

ELIMINAR UNA BASE DE DATOS
Comando drop
La sintaxis para eliminar una base de datos es la siguiente:
        drop database [nombre db];
Para este ejemplo:
        drop database prueba;

 

INSERTAR INFORMACIÓN A LOS CAMPOS DE UNA TABLA
Comando insert
La sintaxis para insertar información en los campos de una tabla es la siguiente:
        insert into nombre tabla (campo1, campo2,...campoN) values (valorcampo1, valorcampo2,...valorcampoN);
           NOTA: Si el valor del campo a insertar es tipo texto, va dentro de comillas sencillas ( '  ' )
Para este ejemplo:
        insert into libro(cod_lib,nom_lib,editorial,precio_lib)
           values('00001','Lo que el viento se llevo','Norma',40000);
 
VISUALIZAR LA INFORMACIÓN
Comando select
La sintaxis para visualizar los datos de una tabla es la siguiente:
        select * from nombre tabla;
        NOTA: Con el * mostramos toda la información, si solo requerimos la de un campo específico, ponemos el campo después de Select.
Para este ejemplo:
        Select * from libro;
        Select nom_lib from libro;
 
 
Para este ejemplo ingresamos en total 10 registros.

 

ACTUALIZAR O CORREGIR INFORMACIÓN EN UN REGISTRO
Comando update
La sintaxis para actualizar o corregir información de un campo es la siguiente:
        update nombre tabla set campo=(nueva informacion) condición;

Ahora ingresaremos un nuevo campo en la tabla Libro -> (cant) y luego le insertamos información.

La sintaxis para este ejemplo es:

        alter table libro add cant int(3) not null;

        update libro set cant=1 where cod_lib='00001';

....

VISUALIZAR DATOS O INFORMACIÓN

Analizar

  1. Leer (Entendió)
  2. Saber que va a visualizar
  3. Sobre que tabla o tablas va a utilizar el comando
  4. Condiciones (Saber cuales son)
  5. Comando y sintaxis para resolverlo

 

Con los condicionales, podemos hacer diferentes consultas en nuestra base de datos.

Relacionales:

        >,>=,<,<=,<>,=

Boolenaos:

        and, or

Especiales:

        Like, Between, In

Para este ejemplo haremos las siguientes consultas:

Mostrar los libros con precio mayor a $45000

        mysql> select * from libro where cod_lib in('00001','00003','00006');

Mostrar los libros con precio mayor a $45000 y con cantidad superior a 3.

        select * from libro where precio_lib>45000 and cant>3;

......

Uso del condicional LIKE

Se usa especialmente para filtrar caracteres, ejemplo:

Like'%a' --> me mostrará todos los registros que en determinado campo los datos terminen en a.

Like'a%' --> me mostrará todos los registros que en determinado campo los datos comiencen por a.

Like'%a%' --> me mostrará todos los registros que en determinado campo los datos contengan una a.

para este ejemplo:

        select * from libro where nom_lib like'%a';

Uso del condicional IN

comando in: este condicional especial reemplaza al or, cuando se requieren consultas muy largas, de esta forma disminuimos la sintaxis de la consulta.

        select * from libro where cod_lib in('00001','00003','00006');

Uso del condicional BETWEEN

Este condicional nos permite hacer consultas entre dos rangos sin la necesidad de utilizar el condicional AND.

Para este ejemplo haremos la consulta de las dos formas, con el AND y con el BETWEEN.

        select * from libro where precio_lib>=45000 and precio_lib<=62000;

        select * from libro where precio_lib between 45000 and 62000;

 

Funciones para calculos

Sintaxis

Select función(valor) 'texto' from tabla;

Las funciones pueden ser (sum, max, min, avg)

para este caso

        update libro set total=cant*precio_lib;

Ahora usaremos diferentes funciones para hacer consultas:

        select count(nom_lib) 'cantidad de Resgistros' from libro;

        select max(precio_lib) 'Libro mas caro' from libro;

        select nom_lib,precio_lib, max(precio_lib) 'Libro mas costoso' from libro;

        select avg(cant) 'Promedio de libros en la biblioteca' from libro;

.................

ORDENAR DATOS
Comando order by
La sintaxis para ordenar datos de una tabla es la siguiente:
        select * from nombre tabla condicion order by campo a ordenar tipo de ordenado;
Si no indicamos el tipo de ordenado, el toma ascendente por defecto, para hacerlo de forma descendente agregamos al final (desc).

La sintaxis para este ejemplo es:

        select * from autor order by nombre_aut;

podemos llevar la consulta a un archivo de excel agregando la siguiente sintaxis a la linea de comando:

        into outfile 'ubicacion:\nombrearchivo.xlsx';

para este ejercicio la linea de comando queda asi:

        select * from autor order by nombre_aut into outfile 'd:\ordenautasc.xls';

Ejercicio:

Ordenar la tabla libro de forma ascendente, por los campos editorial y nombre del libro, visualizando solo los siguientes datos:

Codigo del libro, nombre del libro y la editorial.

 

CONSULTAS RELACIONALES
ANAlisis
  1. Qué debemos mostrar (tablas)
  2. Qué tablas se ven afectadas
  3. Condiciones en particular (lògicas) --> Realmente exista
  4. Cómo se relaciona una tabla con la otra
  5. Comando que da la solución
Ejercicio: Visualizar autor(es) del libro, lo que el viento se llevo.
  1. Tablas
  2. (libro,autor,lib_aut)
  3. nom_lib='lo que el viento se llevo'
  4. libro.cod_lib=lib_aut.cod_lib and lib_aut.cod_lib=autor.cod_aut
  5. Select
select libro.cod_lib,libro.nom_lib,lib_aut.cod_lib,lib_aut.cod_aut,autor.nombre_aut from libro,lib_aut,autor where libro.nom_lib='lo que el viento se llevo' and libro.cod_lib=lib_aut.cod_lib and lib_aut.cod_aut=autor.cod_aut;
 
Si queremos visualizar los libros con sus respectivo(s) autor(es), usamos la siguiente línea de comando:
select libro.cod_lib,libro.nom_lib,lib_aut.cod_lib,lib_aut.cod_aut,autor.nombre_aut from libro,lib_aut,autor where libro.cod_lib=lib_aut.cod_lib and lib_aut.cod_aut=autor.cod_aut;
 
------------
Ejercicio: Usando ANAlisis
Visualizar los libros con cada uno de sus autores.
1- Tablas
2- (libro,autor,lib_aut)
3- No hay condiciones en particular
4- libro.cod_lib=lib_aut.cod_lib
     lib_aut.cod_aut=autor.cod_aut
5- select *
 
Solución:
select libro.nom_lib,autor.nombre_aut from libro,lib_aut,autor where libro.cod_lib=lib_aut.cod_lib and lib_aut.cod_aut=autor.cod_aut;

 

.................................