Sei sulla pagina 1di 15

Lista de Comandos MySQL en Consola

Para importar una base de datos primero tenemos que insertar un campo como este pero con sus respectivos valores en el archivo que sea desea importar CREATE DATABASE IF NOT EXISTS articulos; USE articulos; Iniciar sesin en MySQL con cmd
1. 2. 3. 4. 5. c.. para retroceder hasta llegar a la unidad C:\\ cd AppServ, xampp o lo que se tenga cd mysql cd bin mysql uroot p

(la u es de user [usuario] y la p de paswword [contrasea] en este caso el usuario es root y no tiene contrasea al indicarle p solicitas al usuario que te de una contrasea).

Creando una base de datos


1. Create database nombre_bd; 2. use nombre_bd; 3. create table nombre_tabla (id_x int not null primary key auto-increment, Nombre_x varchar(20) not null, apellido_paterno varchar(20) not null, apellido_materno varchar(20), ciudad varchar(20) not null, estado varchar(20) not null, pais varchar(20) not null, sexo enum (hombre,mujer) default hombre ); ENUM y SET:
Sirven para determinar los valores que puede tener un campo de una tabla, es decir, puedes determinar que en un campo solamente pueda contener valores de una lista definida por ti. La principal diferencia es que un campo del tipo ENUM siempre contiene slo un valor de la lista; y un campo del tipo SET puede contener ninguno, uno o varios valores de la lista.

Consultas
1. 2. 3. 4. 5. 6. 7. Show tables from nombre_bd; Show databases; Show columns from nombre_tabla; Describe nombre_tabla; (hace exactamente lo mismo que show columns ) Select * from nombre_tabla;
mysql> SELECT * FROM mascotas WHERE nombre="Kaiser"; select personas2.nombre, telefonos2.numero from personas2, telefonos2 where personas2.id=telefonos2.id; Se usa para realizar consultas entre dos tablas con llave forneas.

Alteraciones y modificaciones de tablas y bases de datos


1. Como cambiar el nombre de una columna a. Alter table nombre_tabla change nombre_actual_de_columna nuevo_nombre_columna varchar(40); b. Nota: si se desea modificar el tipo de dato de una columna hacemos lo mismo slo que en lo anterior slo tipificamos el nuevo tipo de dato que deseamos que sea la columna. 2. Como cambiar el nombre de una tabla a. Alter table nombre_tabla rename nuevo_nombre_tabla; 3. Como eliminar tablas y columnas a. Drop table nombre_tabla; 4. Como borrar una columna de una tabla a. Alter table nombre_tabla drop nombre_columna; 5. Como agregar una columna a una tabla a. Alter table nombre_tabla add nombre_columna tipo_columna(sea int, varchar, float etc.); 6. Como exportar una base de datos con mysqldump a. C:\xampp\mysql\bin> mysqldump uroot c:\\carpeta_destino\\nombre_del_archivo

nombre_bd

>

7. Actualizar datos de una tabla a. mysql> UPDATE nombre_tabla

SET nacimiento="1989-08-31"

WHERE nombre="Kaiser";
8. Insertar datos en una tabla

a. mysql> INSERT INTO mascotas -> VALUES('Pelusa','Diana','Hamster','f','2000-03-30',NULL); i. mysql> insert into ciudad3(nombre) values ('78'); 1. inserta especficamente a una columna el valor definido en este caso a la columna llamada nombre. 9. mysql> DELETE FROM mascotas; borra los datos de una tabla
10. delete from productos where id=8; borra un dato de una tabla

Consultas generales del documento ZOO

Para ver la lista de opciones proporcionadas por mysql, lo invocamos con la opcin 1. --help: a. shell> mysql help 2. Para conectarse al servidor a. shell> mysql -h NombreDelServidor -u NombreDeUsuario p Despus de que nos hemos conectado de manera satisfactoria, podemos desconectarnos en cualquier momento al escribir "quit", "exit", o presionar CONTROL+D.
3. Muestra la versin de MySQL y la fecha actual a. mysql> SELECT VERSION(), CURRENT_DATE; 4. Aqu est otra consulta que demuestra cmo se pueden escribir algunas expresiones matemticas y trigonomtricas: a. mysql> SELECT SIN(PI()/4), (4+1)*5; 5. Aunque hasta este momento se han escrito sentencias sencillas de una sla lnea, es posible escribir ms de una sentencia por lnea, siempre y cuando estn separadas por punto y coma: a. mysql> SELECT VERSION(); SELECT NOW(); 6. Aqu est un ejemplo que muestra un consulta simple escrita en varias lneas: a. mysql> SELECT b. -> USER(), c. -> CURRENT_DATE; 7. Sin embargo si deseamos no terminar de escribir la consulta, podemos hacerlo al escribir \c como se muestra en el siguiente ejemplo:

a. b. c. d.

mysql> SELECT -> USER(), -> \c mysql>

8. S u p o n gamos que deseamos tener una base de datos llamada "zoologico" (ntese que no se est acentuando la palabra) a la cual slo nosotros tengamos acceso, para ello el administrador necesita ejecutar un comando como el siguiente: a. mysql> GRANT ALL on zoologico.* TO MiNombreUsuario@MiComputadora 1. -> IDENTIFIED BY 'MiContrasea';

Cargando datos en una tabla

Despus de haber creado la tabla, ahora podemos incorporar algunos datos en ella, para lo cual haremos uso de las sentencias INSERT y LOAD DATA. Supongamos que los registros de nuestras mascotas pueden ser descritos por los datos mostrados en la siguiente tabla.

Una vez que ya tenemos los datos creados preferentemente en un archivo Excel los copiamos y los pegamos en un acrchivo .txt para mayor comodidad y lo guardamos. 1. Para cargar el contenido del archivo en la tabla mascotas, usaremos el siguiente comando: a. mysql> LOAD DATA LOCAL INFILE "nombre_archivo.txt" INTO TABLE nombre_tabla;
2. Para importar una base de datos a. C:\xampp\mysql\bin>mysql uroot < c:\\xampp\\Trabajos\\centro_educativo" 3. Para importar los datos desde una tabla hacia un bloc de notas a. SELECT * FROM estudiante INTO OUTFILE "G:\\algo.txt" FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\n\r'; 4. Para importar una base de datos creando una carpeta primero en xampp\\data\\ a. C:\xampp\mysql\bin>mysql -uroot educa < "G:\\educa.sql";

2do Parcial
Claves primarias Se puede definir usando la palabra key o PRIMARY KEY Ejemplo: CREATE TABLE Ciudad3(nombre char(30) not null primary key, poblacion int null default 5000);

Comentarios Podemos aadir un comentario a cada columna, Este comentario sirve como informacin adicional sobre alguna caracteristica de la columna. Ejemplo: CREATE TABLE Ciudad6(clave int not null auto_increment primary key comment 'clave principal', nombre char(50),

poblacion int null default 5000);

ndices Tenemos 3 tipos de ndices, el primero corresponde a las calves primarias (PRIMARY KEY KEY).

Claves primarias compuestas Ejemplo: CREATE TABLE mitabla1( id1 char(2) not null; id2 char(2) not null; texto char(30), primary key (id1,id2));

El segundo tipo corresponde a los ndices. Para definir estos ndices se usa indistintamente las opciones KEY INDEX Ejemplo: CREATE TABLE mitabla2( id int, nombre char(30), INDEX (nombre));

Los ndices INDEX sirven para aceleramiento de bsquedas en una base de datos. Tambin podemos crear un ndice sobre parte de una columna. Ejemplo: CREATE TABLE mitabla4( Id int,

nombre char(19); INDEX (nombre (4)));

Claves nicas El tercero permite definir ndices con claves nicas sobre una columna. La diferencia entre un ndice nico y uno normal es que en los nicos no se permitir la insercin de filas con claves repetidas, con excepcin del valor null que s se puede repetir. Ejemplo: CREATE TABLE mitabla5( Id int, Nombre char(19), Unique (nombre));

Claves forneas Para poder definir claves forneas es necesario usar tabas de tipo InnoDB. Ejemplo:

CREATE TABLE personas2( Id int not null auto_increment primary key, Nombre varchar(40), Fecha DATE)ENGINE=InnoDB;

Create table telefonos2( Numero char(12), id int not null, Key (Id), Foreign Key (Id) References personas2 (Id) ON DELETE CASCADE ON UPDATE CASCADE) engine=InnoDB;

Para poder establecer la clave fornea en las tablas es necesario manejar el enginne=InnoDB; NO SE LE DEBE DE PONER LO DE ON DELETE CASCADE ON UPDATE CASCADE A MENOS QUE TE LO INDIQUE EL DOCUMENTO O EL MAESTRO KEY es lo mismo que PRIMARY KEY

Para borrar en cascada 1. mysql> rom personas2 where id=1; personas2 es la tabla padre y se borrara tambin de la tabla telefonos2 que es la tabla hija.

Consultas SQL

1. Muestra toda la informacin sobre los cursos cuya tarifa sea menor que 150 a. Select * from curso where ctarifa < 150; 2. Obtener todas las filas en las que el nombre del curso es superior o igual alfabticamente a RACIONALISMO. a. Select * from curso where cnombre <=Racionalismo;

3. Obtener el nombre del curso y la descripcin de todos los cursos cuyo nombre comience por la palabra ES o ESZ a. Select cnombre, con, cdesep from curso where cnombre BETWEEN ES and ESZ; 4. Obtener el nmero de curso y tarifa de todos los cursos de tarifa menor que 50 o mayor que 400 a. Seelct cno,ctarifa from curso where ctarifa NOT BETWEEN 50 and 400;

5. Obtener toda la informacin disponibles sobre cualquier curso que tenga una tarifa coincidente con algn nmero del conjunto { 12,50,75,90,100,500 } a. Select * from curso where ctarifa IN ( 12,50,75,90,100,500 )

6. Obtener toda la informacin sobre cualquier curso que tenga una descripcin que comience con la cadena PARA a. Select * from curso where cdescp LIKE PARA%;

7. Visualizar los nombres, numero de ayudantes y nmero de departe para todos los miembros de la facultad para las que se saben si tienen o no ayudantes. a. Select fnombre, fnumdep, fdept from claustro where fnumdep 15 NOT NULL

8. Selecciona toda la informacin sobre los cursos de tres crditos ofrecidos por el departamento de filosofa a. Select * from curso where cred=3 and cdept=PHIL; 9. Obtener toda la informacin sobre cualquier curso que tenga una tarifa entre 100 y 500, ambos inclusive. a. Select * from curso where (ctarifa > = 100) and (ctarifa <=500)

10. Visualizar los salarios de todo el personal y del claustro de la facultad en una nica tabla a. Select esueldo from personal UNION select fsueldo from claustro

11. Visualizar la informacin de las tablas curso y departamento para la que los valores de CDEPT en curso coinciden con los valores de DEPT en departamento a. Select * from curso, departamento where cedpt =dept;

12. Para cada curso con una tarifa mayor que 100 se visualiza el nombre del curso y su tarifa junto con el nmero facultativo del jefe de departamento que ofrece el curso. a. Select cnombre, ctarifa, dchfno, from curso, departamento where cdept=dept and ctarifa > 100;

Clase del da 4 de marzo

Manipulacin de datos y consultas multitabla Instert into personas2 (nombre, fecha) Values (Fulanito, 1956-12-19), (Menganito,1975-10-15), (Fulanita,1985-03-17), (Fusganita,1976-08-25);

Instert into telefonos2 (id, numero) Values (1, 123456789), (1,145654854), (1,152452545), (2,254254254), (4,456545654), (4,441415414); Producto Cartesiano El producto cartesiano de dos tablas son todas las combinaciones de todas las filas de las dos tablas ejemplo: Select * from personas2, telefonos2;

Composicin (JOIN) Se trata de un producto cartesiano restringido, las tuplas que se emparejan deban cumplir una determinada condicin. En el lgebra relacional y en el SQL se trabaja con varios tipos de composiciones.

Composiciones internas

Todas las consultas bsicas se denominan composiciones internas. Para hacia una composicin interna se parte de un producto cartesiano y se eliminan aquellas tuplas que no cumplen la condicin de la composicin. Las composiciones internas cumplen la sig. Sintaxis: Referencia_tabla, referencia_tabla Referencia_tabla [INNER/CROSS ] Join referencia_tabla[ COndicion ] La condicin puede ser ON expresin_condicional / using(Lista_columnas) La coma y JOIN son equivalentes, y las palabras INNER y CROSS son opcionales.

La condicin en la clusula ON puede ser cualquier expresin vlida para una clusula WHERE de hecho, en la mayora de los casos, son equivalentes. La Clausula USING nos permite usar una lista de atributos que deben ser iguales en las dos tablas a componer. Ejemplo_ Select * from personas2, telefonos2 where personas2.id=telefonos2.id; La consulta anterior es equivalente a las consultas siguientes: 1) 2) 3) 4) 5) Select * from personas2 join telefonos2 on (personas2.id=telefonos2.id); Select * from personas2 join telefonos2 where (personas2.id = telfonos.id); Select * from personas2 inner join telefonos2 on (personas2.id=telefonos2.id); Select * from personas2 cross join telefonos2 on (personas2.id=telefonos2.id); Select * from personas2 join telefonos2 using(id);

Composicin interna natural Consiste en una proyeccin sobre un producto cartesiano restringido. Es decir, slo elegimos determinadas columnas de ambas tablas, en lugar de seleccionar todas. Ejemplos: Select personas2.id, nombre, fecha, numero from personas2, telefonos2 where personas2.id=telefonos2.id; Como la columna id entre ambas tablas estamos obligados a usar el nombre completo para esta columna. En este caso hemos optado por personas2.id, pero hubiese sido igual usar telefonos2.id.

Tambin podemos definir Alias para las tablas, y conseguir una consulta ms compacta. Ejemplo: Select t1.id, nombre, fecha, numero from personas2 as t1, telefonos2 as t2 where t1.id=t2.id; Por supuesto podemos usar JOIN y ON en lugar de la coma y WHERE Select t1.id, nombre, fecha, numero from personas2 as t1 join telefonos2.id as t2 on t1.id = t2.id; Tenemos una sintaxis alternativa mucho mejor para hacer composiciones naturales Select * from personas2 natural join telefonos2; Composiciones externas Al contrario de las composiciones internas, las externas no proceden de un producto cartesiano. Por lo tanto, en estas pueden aparecer tuplas que no aparecen en el producto cartesiano. Para hacer una composicin externa se toman las tuplas de una de las tablas una a una y se combinan con las tuplas de la otra. Como norma general se usa un ndice para localizar las tuplas de la segunda tabla que cumplen con la condicin, para cada tupla encontrada se aade una fila a la tabla de salida. Si no existe ninguna tupla en la segunda tabla que cumpla las condiciones, se combina la tupla de la primera con una nula de la segunda. Ejemplo: Select * from personas2 left join telfonos using(id); La sintaxis para composiciones externas son: Referencia_tabla left [outer] Join referencia_tabla [ join_condition] Referencia_tabla Natural left [OUTER] Join referencia_tabla Referencia_tabla right[outer] join referencia_tabla[condicion] Referencia_tabla natural right [outer] join referencia_tabla

3er Parcial
Comandos para Stored Procedures DELIMITER// Se indica para que al poner un ; no se termine el proceso sino hasta que se indique con // Crea un procedimiento de select * from Create procedure P1() select * from t; Insertar multiples registros en un SP mysql> Create procedure P2() insert into t (s1) values (3),(7),(9);//

IN Realizar un parmetro de entrada de tipo int mysql> create procedure p5(p INT) SET @x=p// la x es el nombre de la variable mysql> call P5(1234)// Out Create procedure P6(out p int) Set p= -5 // MySQL > Call P6(@y) Select @y Create procedure P7() Begin Set @a=5; Set @b=5; Insert into t values (@a); Select S1 * @a from t where S1 >=@b; End; //

Create procedure P8() Begin Declare a int; Declare b int; Set a=5; Set b=5; Insert into t values (a); Select S1 * a from t where S1>b; End; // Create procedure P9 () Begin Declare x1 char(5) default Salida; Begin Declare x1 char(5) default Entrada; Select x1; End; Select x1; End // IF-THEN-ELSE Create Procedure P10(IN paramater +1 int) Begin Declare variable1 int; Set variable1=parameter+1; If variable1=0 then Insert into t values(17); End if; If variable1=1 then Update t set S1+1;

Else Update t set S1=S1+2; End if; End //

Create procedure P11() Begin Declare a int; Declare b int; Set a = 7; Set b = 5; Create procedure P12(parameter1 int, parameter2 int) Begin Declare a int; Declare b int; set a=parameter1; set b=parameter2; If a>b then select a; else Select b; end if; end;//