Manual_Mysql Query Browser

395 views
316 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
395
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
21
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Manual_Mysql Query Browser

  1. 1. UNASAM – FC – INGENIERIA DE SISTEMAS E INFORMATICA 2014 Manual de Comandos MySQL (Parte 2) 1.- Otras formas de insertar registros a una tabla. INSERT INTO categoria (titulo, descripcion) VALUES ('PHP','Categoría dedicada a PHP'), ('MySQL','Categoría dedicada a MySQL'), ('Javascript','Categoría dedicada a Javascript'); 2.- uso del select y sus formas SELECT columnas FROM tablas [WHERE condiciones] [GROUP BY tipo_grupo] [HAVING de dónde] [ORDER BY tipo_orden] [LIMIT tipo_limite]; SELECT SalesOrderID, SUM(LineTotal) AS SubTotal FROM Sales.SalesOrderDetail GROUP BY SalesOrderID HAVING SUM(LineTotal) > 100000.00 ORDER BY SalesOrderID ; SELECT * FROM articulo LIMIT 0,2; 3.- Selecciones en múltiples tablas (INNER JOIN o CROSS JOIN): Supongamos que tenemos una Tabla Mysql llamada “Empresas” y otra tabla “Servicios”. Y nos interesa mostrar en pantalla los servicios que brinda cada empresa, considerando que cada fila de la tabla “Servicios” tiene un valor asociado a la empresa que pertenece. Programación II - Comandos básicos de MySQL (Parte 1) Página 1
  2. 2. UNASAM – FC – INGENIERIA DE SISTEMAS E INFORMATICA 2014 ¿Cómo listar todas las empresas y sus servicios correspondientes? Lo hacemos utilizando INNER JOIN mediante la siguiente Consulta Mysql: select Empresas.Nombre,Servicios.Servicio from Empresas inner join Servicios on Servicios.IdEmpresa=Empresas.Id; Como se puede observar en el resultado, la empresa YouTube queda afuera del listado. El motivo es que no tiene ningún servicio asociado en la tabla SERVICIOS (no existe servicio que tenga IdEmpresa=3). Si quisieramos listar todas las empresas, independientemente que tengan servicios o no, debemos utilizar la Consulta Mysql LEFT JOIN 4.- LEFT JOIN: Consulta Mysql para Unir Tablas Relacionadas La consulta Mysql LEFT JOIN devuelve todas las filas de la tabla citada en la cláusula “FROM” y sus filas vinculadas en la tabla citada dentro de la cláusula “LEFT JOIN” (incluyendo aquellas filas que no tengan filas vinculadas). ¡Vayamos a la práctica! Cuando analizamos el ejemplo de INNER JOIN en Mysql teníamos el siguiente esquema de tablas: Programación II - Comandos básicos de MySQL (Parte 1) Página 2
  3. 3. UNASAM – FC – INGENIERIA DE SISTEMAS E INFORMATICA 2014 Al efectuar un INNER JOIN entre la tabla Empresas y la tabla Servicios, observábamos que la empresa Youtube.com (Id=3) quedaba fuera del listado resultado puesto que no existe ninguna fila en la tabla Servicios con IdEmpresa=3. En el caso del ejemplo, LEFT JOIN nos sirve para listar TODAS las empresas y sus servicios correspondientes. Las empresas que no tienen ningún servicio también formarán parte del resultado. (en el caso de INNER JOIN, las empresas que no tienen servicio quedaban afuera). select Empresas.Nombre,Servicios.Servicio from Empresas left join Servicios on Empresas.Id=Servicios.IdEmpresa; Siguiendo el ejemplo ¿cómo podríamos listar todos los servicios y las empresas que lo brindan, incluyendo los servicios que no son brindados por ninguna empresa? Lo hacemos a través de la consulta Mysql RIGHT JOIN que funciona similar a LEFT JOIN pero en viceversa. Es decir, se listan todas las filas de la tabla Mysql citada en la cláusula “RIGHT JOIN”, incluyendo aquellas que no tienen ninguna fila vinculada en la tabla citada dentro de la cláusula “FROM”. select Empresas.Nombre,Servicios.Servicio from Empresas right join Servicios on Empresas.Id=Servicios.IdEmpresa; 5.- Operador LIKE en MYSQL para buscar filas que contengan un dato Cuando necesitamos buscar filas Mysql que “contengan” determinada información, sin necesidad de coincidir exactamente, utilizamos el operador like con ayuda del operador “%” Nota: El operador “%” actúa cómo comodin, es decir, delante y detrás del mismo puede haber cualquier contenido. select * from Empresas where Actividad like '%Registro de dominios%'; 6.- Otros operadores relacionales (between - in ) Hemos visto los operadores relacionales: = (igual), <> (distinto), > (mayor), < (menor), >= (mayor o igual), <= (menor o igual), is null/is not null (si un valor es NULL o no). Existen otros que simplifican algunas consultas: Para recuperar de nuestra tabla "libros" los registros que tienen precio mayor o igual a 20 y menor o igual a 40, usamos 2 condiciones unidas por el operador lógico "and": select * from libros where precio>=20 and precio<=40; Programación II - Comandos básicos de MySQL (Parte 1) Página 3
  4. 4. UNASAM – FC – INGENIERIA DE SISTEMAS E INFORMATICA 2014 Podemos usar "between": select * from libros where precio between 20 and 40; “between" significa "entre". Averiguamos si el valor de un campo dado (precio) está entre los valores mínimo y máximo especificados (20 y 40 respectivamente). Si agregamos el operador "not" antes de "between" el resultado se invierte. Para recuperar los libros cuyo autor sea 'Paenza' o 'Borges' usamos 2 condiciones: select * from libros where autor='Borges' or autor='Paenza'; Podemos usar "in": select * from libros where autor in('Borges','Paenza'); Con "in" averiguamos si el valor de un campo dado (autor) está incluido en la lista de valores especificada (en este caso, 2 cadenas). Para recuperar los libros cuyo autor no sea 'Paenza' ni 'Borges' usamos: select * from libros where autor<>'Borges' and autor<>'Paenza'; También podemos usar "in" : select * from libros where autor not in ('Borges','Paenza'); 7.- Concatenar dos o más campos en MySQL SELECT CONCAT( `direccion`, ' - ', `ciudad`, '/', `codigopostal`) SELECT Nombre + ' ' + Apellido FROM clientes 8.- Uso del ALTER en MySQL create table alumno ( codalum varchar(10) not null comment 'el codigo e alumno', nomalum varchar(25) not null, apealum varchar(25) not null, codcarr varchar(8) not null, primary key(codalum), foreign key(codcarr) references carrerra(codcarr)) engine=innodb; create table alumno ( codalum varchar(10) not null comment 'el codigo e alumno', nomalum varchar(25) not null, apealum varchar(25) not null, codcarr varchar(8) not null, primary key(codalum), Programación II - Comandos básicos de MySQL (Parte 1) Página 4
  5. 5. UNASAM – FC – INGENIERIA DE SISTEMAS E INFORMATICA 2014 foreign key(codcarr) references carrerra(codcarr)) engine=innodb; Para adicionar una columna se realiza de la siguiente manera alter table alumno add column genero varchar(20) o alter table alumno add column fecnac date not null Si queremos eliminar una columna se procede de la siguiente manera: alter table alumno drop column fecnac Supongamos Que Creamos La Tabla Matricula create table matricula( nommat varchar(10) not null, fecmatr date not null) y ahora queremos adicionarle su clave primaria procederemos de la siguiente manera alter table matricula add primary key(nommat) Adiciono un campo mas alter table matricula add column codalum varchar(10) not null luego creamos una clave foranea alter table matricula add constraint foreign key(codalum) references alumno (codalum); Modificar o cambiar el nombre de una tabla rename table alumno to alumnos Motores e mysql MyISAM y el INNODB 9.- FUNCIONES EN MYSQL Si consideramos que MySQL es rico en lo que respecta a operadores, en lo que se refiere a funciones, podemos considerarlo millonario. MySQL dispone de multitud de funciones. Pero no las explicaremos aquí, ya que este curso incluye una referencia completa. Tan sólo las agruparemos por tipos, e incluiremos los enlaces correspondientes a la documentación de cada una. Programación II - Comandos básicos de MySQL (Parte 1) Página 5
  6. 6. UNASAM – FC – INGENIERIA DE SISTEMAS E INFORMATICA 2014 Funciones de control de flujo Las funciones de esta categoría son: IF IFNULL NULLIF Elección en función de una expresión booleana Elección en función de si el valor de una expresión es NULL Devuelve NULL en función del valor de una expresión 1.- IF() SELECT IF(1<>2,'Es Verdad','Es Mentira'); SELECT IF(2=2,1,2); 2.- IFNULL(expr1, expr2) Esta funcion devuelve expr1, si expr1 es diferente de null, en caso contrario devuelve expr2 select ifnull(4,30) resultado; devuelve 4 select ifnull(null,30) resultado; devuelve 30 3.- NULLIF(expr1,expr2) Esta funcion devuelve null si expr1=expr2 de lo contrario devuelve expr2 select NULLIF(4,4) resultado; Retorna Null select NULLIF(5,4) resultado; Retorna 5 Funciones matemáticas Las funciones de la categoría de matemáticas son: ABS ACOS ASIN ATAN y ATAN2 CEILING y CEIL COS COT CRC32 DEGREES EXP FLOOR LN LOG LOG10 LOG2 MOD o % PI POW o POWER RADIANS Devuelve el valor absoluto Devuelve el arcocoseno Devuelve el arcoseno Devuelven el arcotangente Redondeo hacia arriba Coseno de un ángulo Cotangente de un ángulo Cálculo de comprobación de redundancia cíclica Conversión de grados a radianes Cálculo de potencias de e Redondeo hacia abajo Logaritmo natural Logaritmo en base arbitraria Logaritmo en base 10 Logaritmo en base dos Resto de una división entera Valor del número π Valor de potencias Conversión de radianes a grados Programación II - Comandos básicos de MySQL (Parte 1) Página 6
  7. 7. UNASAM – FC – INGENIERIA DE SISTEMAS E INFORMATICA RAND ROUND SIGN SIN SQRT TAN TRUNCATE 2014 Valores aleatorios Cálculo de redondeos Devuelve el signo Cálculo del seno de un ángulo Cálculo de la raíz cuadrada Cálculo de la tangente de un ángulo Elimina decimales 1.- ABS (num).- Devuelve el valor absoluto de un valor numérico Abs(2) Retorna 2 Abs(-22) Retorna 22 Funciones de cadenas Las funciones para tratamiento de cadenas de caracteres son: ASCII BIN BIT_LENGTH CHAR CHAR_LENGTH o CHARACTER_LENGTH COMPRESS CONCAT CONCAT_WS CONV ELT EXPORT_SET FIELD FIND_IN_SET HEX INSERT INSTR LEFT LENGTH u OCTET_LENGTH LOAD_FILE LOCATE o POSITION LOWER o LCASE LPAD LTRIM MAKE_SET OCT ORD QUOTE REPEAT REPLACE REVERSE RIGHT RPAD RTRIM Valor de código ASCII de un carácter Converión a binario Cálculo de longitud de cadena en bits Convierte de ASCII a carácter Cálculo de longitud de cadena en caracteres Comprime una cadena de caracteres Concatena dos cadenas de caracteres Concatena cadenas con separadores Convierte números entre distintas bases Elección entre varias cadenas Expresiones binarias como conjuntos Busca el índice en listas de cadenas Búsqueda en listas de cadenas Conversión de números a hexadecimal Inserta una cadena en otra Busca una cadena en otra Extraer parte izquierda de una cadena Calcula la longitud de una cadena en bytes Lee un fichero en una cadena Encontrar la posición de una cadena dentro de otra Convierte una cadena a minúsculas Añade caracteres a la izquierda de una cadena Elimina espacios a la izquierda de una cadena Crea un conjunto a partir de una expresión binaria Convierte un número a octal Obtiene el código ASCII, incluso con caracteres multibyte Entrecomilla una cadena Construye una cadena como una repetición de otra Busca una secuencia en una cadena y la sustituye por otra Invierte el orden de los caracteres de una cadena Devuelve la parte derecha de una cadena Inserta caracteres al final de una cadena Elimina caracteres blancos a la derecha de una cadena Programación II - Comandos básicos de MySQL (Parte 1) Página 7
  8. 8. UNASAM – FC – INGENIERIA DE SISTEMAS E INFORMATICA SOUNDEX SOUNDS LIKE SPACE SUBSTRING o MID SUBSTRING_INDEX TRIM UCASE o UPPER UNCOMPRESS UNCOMPRESSED_LENGTH UNHEX 2014 Devuelve la cadena "soundex" para una cadena concreta Compara cadenas según su pronunciación Devuelve cadenas consistentes en espacios Extraer subcadenas de una cadena Extraer subcadenas en función de delimitadores Elimina sufijos y/o prefijos de una cadena. Convierte una cadena a mayúsculas Descomprime una cadena comprimida mediante COMPRESS Calcula la longitud original de una cadena comprimida Convierte una cadena que representa un número hexadecimal a cadena de caracteres Consultar: http://www.aulafacil.com/mysql/curso/Temario.htm http://mysql.conclase.net http://www.es.hscripts.com/tutoriales/mysql/ Programación II - Comandos básicos de MySQL (Parte 1) Página 8

×