USE SPRINGFIELD; /*SELECT * FROM PERSONAJES; SELECT ID_PERSONAJE, DESC_PERSONAJE, ID_FAMILIA, ID_SEXO, ID_MATRIMONIO FROM PERSONAJES; SELECT DISTINCT ID_PERSONAJE, DESC_PERSONAJE, ID_FAMILIA, ID_SEXO, ID_MATRIMONIO, ID_LUGAR_RESIDENCIA, ID_PROFESION, ID_LUGAR_PROFESION FROM PERSONAJES; SELECT DISTINCT DESC_PERSONAJE, ID_FAMILIA, ID_SEXO, ID_MATRIMONIO, ID_LUGAR_RESIDENCIA, ID_PROFESION, ID_LUGAR_PROFESION FROM PERSONAJES; SELECT DISTINCT DESC_PERSONAJE FROM PERSONAJES; SELECT COUNT(DESC_PERSONAJE) TOTAL, COUNT(DISTINCT DESC_PERSONAJE) TOTAL_DISTINTOS FROM PERSONAJES; SELECT DESC_PERSONAJE, COUNT(*) FROM PERSONAJES GROUP BY DESC_PERSONAJE; SELECT DESC_PERSONAJE, COUNT(*) AS TOTAL FROM PERSONAJES GROUP BY DESC_PERSONAJE; SELECT DESC_PERSONAJE, COUNT(*) TOTAL FROM PERSONAJES GROUP BY DESC_PERSONAJE; SELECT DESC_PERSONAJE, COUNT(*) TOTAL FROM PERSONAJES GROUP BY DESC_PERSONAJE ORDER BY TOTAL; SELECT DESC_PERSONAJE, COUNT(*) TOTAL FROM PERSONAJES GROUP BY DESC_PERSONAJE ORDER BY TOTAL ASC; SELECT DESC_PERSONAJE, COUNT(*) TOTAL FROM PERSONAJES GROUP BY DESC_PERSONAJE ORDER BY TOTAL DESC; SELECT DESC_PERSONAJE, COUNT(*) TOTAL FROM PERSONAJES GROUP BY DESC_PERSONAJE HAVING TOTAL>1 ; SELECT COUNT(*) FROM PERSONAJES; SELECT DISTINCT DESC_PERSONAJE, ID_FAMILIA, ID_SEXO, ID_MATRIMONIO, ID_LUGAR_RESIDENCIA, ID_PROFESION, ID_LUGAR_PROFESION FROM PERSONAJES; SELECT COUNT(*) TOTAL, COUNT(DESC_PERSONAJE) TOTAL_PERSONAJE, COUNT(ID_FAMILIA) TOTAL_FAMILIA, COUNT(ID_SEXO) TOTAL_SEXO, COUNT(ID_MATRIMONIO) TOTAL_MATRIMONIO, COUNT(ID_LUGAR_RESIDENCIA) TOTAL_RESIDENCIA , COUNT(ID_PROFESION) TOTAL_PROFESION, COUNT(ID_LUGAR_PROFESION) TOTAL_LUG_PROFESION FROM PERSONAJES; SELECT * FROM PERSONAJES WHERE ID_MATRIMONIO IS NULL; SELECT * FROM PERSONAJES WHERE ID_MATRIMONIO IS NOT NULL; SELECT * FROM PERSONAJES LIMIT 10; SELECT DISTINCT ID_SEXO FROM PERSONAJES; SELECT * FROM PERSONAJES; CREATE TABLE TMP_PERSONAJES_HOMBRES AS SELECT * FROM PERSONAJES WHERE ID_SEXO=1; CREATE TABLE TMP_PERSONAJES_MUJERES AS SELECT * FROM PERSONAJES WHERE ID_SEXO=2; CREATE TABLE TMP_PERSONAJES AS SELECT * FROM TMP_PERSONAJES_HOMBRES UNION ALL SELECT * FROM TMP_PERSONAJES_MUJERES; SELECT * FROM TMP_PERSONAJES; SELECT * FROM PERSONAJES; SELECT PER.ID_PERSONAJE , PER.DESC_PERSONAJE , PER.ID_FAMILIA , PER.ID_SEXO , PER.ID_MATRIMONIO , PER.ID_LUGAR_RESIDENCIA , PER.ID_PROFESION , PER.ID_LUGAR_PROFESION FROM PERSONAJES PER , SEXO SEXO WHERE PER.ID_SEXO=SEXO.ID_SEXO; SELECT PER.ID_PERSONAJE , PER.DESC_PERSONAJE , PER.ID_FAMILIA , PER.ID_SEXO , SEXO.DESC_SEXO , PER.ID_MATRIMONIO , PER.ID_LUGAR_RESIDENCIA , PER.ID_PROFESION , PER.ID_LUGAR_PROFESION FROM PERSONAJES PER INNER JOIN SEXO SEXO ON PER.ID_SEXO=SEXO.ID_SEXO; ALTER TABLE PERSONAJES MODIFY ID_SEXO INT(11) DEFAULT NULL; SELECT PER.ID_PERSONAJE , PER.DESC_PERSONAJE , PER.ID_FAMILIA , ID_SEXO , SEXO.DESC_SEXO , PER.ID_MATRIMONIO , PER.ID_LUGAR_RESIDENCIA , PER.ID_PROFESION , PER.ID_LUGAR_PROFESION FROM PERSONAJES PER INNER JOIN SEXO SEXO ON PER.ID_SEXO=SEXO.ID_SEXO; SELECT PER.ID_PERSONAJE , PER.DESC_PERSONAJE , PER.ID_FAMILIA , FAM.DESC_FAMILIA , PER.ID_SEXO , SEXO.DESC_SEXO , PER.ID_MATRIMONIO , PER.ID_LUGAR_RESIDENCIA , PER.ID_PROFESION , PER.ID_LUGAR_PROFESION FROM PERSONAJES PER INNER JOIN SEXO SEXO ON PER.ID_SEXO=SEXO.ID_SEXO LEFT OUTER JOIN FAMILIAS FAM ON PER.ID_FAMILIA=FAM.ID_FAMILIA; SELECT PER.ID_PERSONAJE , PER.DESC_PERSONAJE , PER.ID_FAMILIA , IFNULL(FAM.DESC_FAMILIA, 'DESCONOCIDO') DESC_FAMILIA , PER.ID_SEXO , SEXO.DESC_SEXO , PER.ID_MATRIMONIO , PER.ID_LUGAR_RESIDENCIA , PER.ID_PROFESION , PER.ID_LUGAR_PROFESION FROM PERSONAJES PER INNER JOIN SEXO SEXO ON PER.ID_SEXO=SEXO.ID_SEXO LEFT OUTER JOIN FAMILIAS FAM ON PER.ID_FAMILIA=FAM.ID_FAMILIA; CREATE VIEW VW_PERSONAJES AS SELECT PER.ID_PERSONAJE , PER.DESC_PERSONAJE , PER.ID_FAMILIA , IFNULL(FAM.DESC_FAMILIA, 'DESCONOCIDO') DESC_FAMILIA , PER.ID_SEXO , SEXO.DESC_SEXO , PER.ID_MATRIMONIO , MAT.DESC_MATRIMONIO , PER.ID_LUGAR_RESIDENCIA , LUG1.DESC_LUGAR DESC_LUGAR_RESIDENCIA , PER.ID_PROFESION , PROF.DESC_PROFESION , PER.ID_LUGAR_PROFESION , LUG2.DESC_LUGAR DESC_LUGAR_PROFESION FROM PERSONAJES PER INNER JOIN SEXO SEXO ON PER.ID_SEXO=SEXO.ID_SEXO LEFT OUTER JOIN FAMILIAS FAM ON PER.ID_FAMILIA=FAM.ID_FAMILIA LEFT OUTER JOIN MATRIMONIOS MAT ON PER.ID_MATRIMONIO=MAT.ID_MATRIMONIO LEFT OUTER JOIN LUGARES LUG1 ON PER.ID_LUGAR_RESIDENCIA=LUG1.ID_LUGAR LEFT OUTER JOIN PROFESIONES PROF ON PER.ID_PROFESION=PROF.ID_PROFESION LEFT OUTER JOIN LUGARES LUG2 ON PER.ID_LUGAR_PROFESION=LUG2.ID_LUGAR ; SELECT * FROM VW_PERSONAJES; SELECT * FROM PERSONAJES A INNER JOIN TMP_PERSONAJES B ON A.ID_PERSONAJE=B.ID_PERSONAJE AND A.DESC_PERSONAJE=B.DESC_PERSONAJE AND A.ID_FAMILIA<=>B.ID_FAMILIA AND A.ID_SEXO=B.ID_SEXO AND A.ID_MATRIMONIO<=>B.ID_MATRIMONIO AND A.ID_LUGAR_RESIDENCIA<=>B.ID_LUGAR_RESIDENCIA AND A.ID_PROFESION<=>B.ID_PROFESION AND A.ID_LUGAR_PROFESION<=>B.ID_LUGAR_PROFESION AND A.FECHA_INSERT=B.FECHA_INSERT AND A.FECHA_MODIFICACION=B.FECHA_MODIFICACION ; SELECT * FROM PERSONAJES A WHERE EXISTS (SELECT * FROM TMP_PERSONAJES B WHERE A.ID_PERSONAJE=B.ID_PERSONAJE AND A.DESC_PERSONAJE=B.DESC_PERSONAJE AND A.ID_FAMILIA<=>B.ID_FAMILIA AND A.ID_SEXO=B.ID_SEXO AND A.ID_MATRIMONIO<=>B.ID_MATRIMONIO AND A.ID_LUGAR_RESIDENCIA<=>B.ID_LUGAR_RESIDENCIA AND A.ID_PROFESION<=>B.ID_PROFESION AND A.ID_LUGAR_PROFESION<=>B.ID_LUGAR_PROFESION AND A.FECHA_INSERT=B.FECHA_INSERT AND A.FECHA_MODIFICACION=B.FECHA_MODIFICACION); SELECT * FROM PERSONAJES A WHERE NOT EXISTS (SELECT * FROM TMP_PERSONAJES B WHERE A.ID_PERSONAJE=B.ID_PERSONAJE AND A.DESC_PERSONAJE=B.DESC_PERSONAJE AND A.ID_FAMILIA<=>B.ID_FAMILIA AND A.ID_SEXO=B.ID_SEXO AND A.ID_MATRIMONIO<=>B.ID_MATRIMONIO AND A.ID_LUGAR_RESIDENCIA<=>B.ID_LUGAR_RESIDENCIA AND A.ID_PROFESION<=>B.ID_PROFESION AND A.ID_LUGAR_PROFESION<=>B.ID_LUGAR_PROFESION AND A.FECHA_INSERT=B.FECHA_INSERT AND A.FECHA_MODIFICACION=B.FECHA_MODIFICACION); SELECT * FROM TMP_PERSONAJES A WHERE NOT EXISTS (SELECT * FROM PERSONAJES B WHERE A.ID_PERSONAJE=B.ID_PERSONAJE AND A.DESC_PERSONAJE=B.DESC_PERSONAJE AND A.ID_FAMILIA<=>B.ID_FAMILIA AND A.ID_SEXO=B.ID_SEXO AND A.ID_MATRIMONIO<=>B.ID_MATRIMONIO AND A.ID_LUGAR_RESIDENCIA<=>B.ID_LUGAR_RESIDENCIA AND A.ID_PROFESION<=>B.ID_PROFESION AND A.ID_LUGAR_PROFESION<=>B.ID_LUGAR_PROFESION AND A.FECHA_INSERT=B.FECHA_INSERT AND A.FECHA_MODIFICACION=B.FECHA_MODIFICACION); */ /* SELECT ID_PERSONAJE, DESC_PERSONAJE, ID_FAMILIA, ID_SEXO, ID_MATRIMONIO, ID_LUGAR_RESIDENCIA, ID_PROFESION, ID_LUGAR_PROFESION, FECHA_INSERT, FECHA_MODIFICACION FROM PERSONAJES A WHERE EXISTS (SELECT * FROM TMP_PERSONAJES B WHERE B.ID_PERSONAJE=A.ID_PERSONAJE AND A.DESC_PERSONAJE=B.DESC_PERSONAJE AND A.ID_FAMILIA<=>B.ID_FAMILIA ); */