Consultas, Condicionales y Operaciones Matemáticas en Mysql
Clase 20 de 23 • Curso de SQL y MySQL 2016
Contenido del curso
Jesus Marenco Dario
Abiel Magu
John Carlos Espitia Rivera
Dani Checa Martínez
Mario Alberto Martinez Flores
J. Carlos Salgado
Ant Aleksiev
Christian roas
Juan Ricardo Martin Guio Martin
Camilo Ruiz
Edgar Omar Soto Escamilla
Marcelo Fontana
Blanca Segura Garcia
Víctor Rueda
Leonel Rosales
John Carlos Espitia Rivera
ESTHER Núñez
Francisco Méndez
José Miguel Dueñas Torres
Enrique Tecayehuatl
Ricardo Azpeitia P.
Enrique Tecayehuatl
Ricardo Azpeitia P.
Josue Alejandro Torres Gonzalez
Luis Abdel Rangel Castro
Hinder Adrian Alvarez Perlaza
Hinder Adrian Alvarez Perlaza
Raul Montoya G
Erick Neftalí Sarmiento Cortes
Mario Alberto Martinez Flores
Pedro Alberto De La Cruz Hernandez
es recomendable usar group by con datos numericos ya que si tenemos un campo de tipo varchar y en ese campo existe un espacio que no percibimos el group by no tomara en cuenta este o estos datos y por ende la consulta no sera 100% exacta y eso es imperdonable en una aplicacion en uso
Porque a veces usas JOIN con LEFT y en ocaciones NO, cual es su funcion el LEFT???
Es un juego de intersección de conjuntos, basado en la teoría de conjuntos y la aplicación se explica as:
Complementando un poco la respuesta a la pregunta del compañero, y según la documentación de MySQL:
"In MySQL, JOIN, CROSS JOIN, and INNER JOIN are syntactic equivalents (they can replace each other). In standard SQL, they are not equivalent. INNER JOIN is used with an ON clause, CROSS JOIN is used otherwise."
Buen curso! Me sirvió para repasar lo que aprendí en la universidad, y sumarle un poco mas ya que nunca antes use el if dentro de las consultas.
if ( condicion, (then)excute, (else)execute)
si ( condicion, (entonces) has esto, (sino) has esto otro)
¿alguien tiene el sql donde estan las tablas para que lo haga en mi maquina?
SELECT
p.publisher_id as pid,
p.nombre,
SUM(b.price * b.copies) AS total
FROM books AS b
JOIN publishers AS p
ON b.publisher_id = p.publisher_id
GROUP by pid
16:20
Retorna cada titulo, con su precio por unidad, editorial, cantidad de copias y el costo total.
select p.publisher_id as pid, p.name as editorial, b.title, b.price, b.copies, sum(b.price*b.copies) as total from publishers as p join books as b on p.publisher_id = b.publisher_id group by b.title order by pid;
Retorna cada titulo, con su precio por unidad, editorial, cantidad de copias y el costo total, agregando el filtro de que los libros menores de 15 ya se vendieron.
select p.publisher_id as pid, p.name as editorial, b.title, b.price, if(b.price<15,b.copies=0,b.copies) as copias_disponibles, sum(if(b.price<15, b.price*0,b.price*b.copies )) as total from publishers as p join books as b on p.publisher_id = b.publisher_id group by b.title order by pid;
Que buena manera de explicar, gracias por tan buena clase.
En el caso de usar IF en una consulta:
SELECT IF(condicion, exec_si, exec_no) FROM table
Como se podria realizar un “or” o un “and” en la condición del IF?
En ese caso sería conveniente utilizar la sentencia CASE
select *
if (condicion1 and condicion2, exec_si, exec_no)
from table
No se si es eso lo que preguntas.
Una clase para sacarse el sombrero ... gracias. Dónde está el material, especialmente los "queries"? Me es dificil copiar y seguir la clase. Deseo practicar. Además, cuando uno lo pone en pausa, para poder copiar dice "video no disponible" ... Les agradecería una respuesta ...
Cambia de servidor “A” o “B” en el ícono de engrane
En una base de datos con tablas relacionadas físicamente, ¿qué recomiendan?
Relacionar las tablas directamente de id a id
ó
Usar una tabla para centralizar la relacion asi como lo hicieron en el ejemplo con la tabla action
Yo usualmente hago esa aplicación de tabla intermedia en casos de muchos a muchos y si se hace necesario almacenar más datos de la relación si se aplico la tabla de la forma cómo lo hizo @BECO pero en caso normal solo dejo las claves primarias en la tabla intermedia
wow, me encanto esta clase. ¿Dónde puedo conseguir más ejercicios para practicar lo que vimos hoy?
en las clases diferidas quedó grabado cuando cayo el stream
Una clase maravillosa, es increíble lo que se puede hacer con Mysql, muy buena la explicación.
¿Cuando puede una tabla llevar un Id que sea autoincrementable?
Si, preferiblemente siempre.
En el ejemplo de count o sea que ¿tenemos que usar GROUP BY siempre?
No necesariamente, puedes usar count sin el group by. Solo toma en cuenta que si lo haces de esta manera contara todas las filas.
Ejemplo: select count(*) from table.
Tenia unas dudas, pero leyendo las notas de los compañeros de aclararon varias =)! Muchas gracias!
En SQL Server no se puede hacer esto:
select e.nombre
,e.editor_id
,sum(l.existencia) as existencia
,avg(l.precio * l.existencia) as precio_promedio
,sum(l.precio * l.existencia) as total
from libro as l
inner join editor as e
on l.editor_id = e.editor_id
group by e.nombre
order by e.nombre;
select e.nombre
,e.editor_id
,sum(l.existencia) as existencia
,avg(l.precio * l.existencia) as precio_promedio
,sum(l.precio * l.existencia) as total
from libro as l
inner join editor as e
on l.editor_id = e.editor_id
group by e.editor_id
order by e.nombre;
Column ‘XXXX’ is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Todas las columnas que no se operan con sum, avg, etc deben de incluirse en el group by. Me gusto mucho que en MySQL si puede lograrse este tipo de agrupación.
Quedan muchas sentencias por ver y por profundizar, como por ejemplo el uso del Having y las subqueries en el inicio de la consulta y en el apartado del Having.
De todos modos muchas gracias por haber realizado este curso, me motivó a repasar Bases de Datos : ’ )
12:52
Puedo usar el sublime text para escribir el código?
No es código, son sentencias SQL y debes tener instalada la base de datos MySql para desde la linea de comandos hacer las consultas y ver los resultados ,tanto en linux como en windows es muy fácil de instalar .
Si usaras un editor para escribir el código antes de pasarlo a la consola. Te recomiendo Atom en el puedes escribir el codigo sql guardando el archivo como .sql, no he usado sql en sublime text pero imagino que igual se puede como en atom.