/*
 * Proyecto Ético Personal
 * Autor: [Tu Nombre]
 * Fecha: 2025
 * 
 * Derechos reservados. Prohibida la reproducción total o parcial sin autorización.
 */
-- Cómo organizar tu proyecto
-- 1. Archivos Java
--  Main.java: conexión a la base de datos y consulta básica.
-- GuiaEtica.java: lógica para evaluar acciones y relacionarlas con valores positivos.
-- 2. Scripts SQL
-- Archivo ProyectoEtico.sql con las sentencias para crear la base de datos y tablas, y para insertar valores iniciales.
-- Ejemplo de organización
 -- insertar ProyectoEtico.sql
 -- insertar queries.sql
 
 
 -- (ejecutar en MySQL)
 
 CREATE Archivo queries.sql;
 
 
  CREATE DATABASE ProyectoEtico;
  
  //USE ProyectoEtico;
  
  //CREATE TABLE Temas (
      id INT AUTO_INCREMENT PRIMARY KEY,
      nombre VARCHAR(100) UNIQUE NOT NULL,
      descripcion TEXT
  );
  
  //CREATE TABLE Valores (
      id INT AUTO_INCREMENT PRIMARY KEY,
      nombre VARCHAR(100) UNIQUE NOT NULL,
      descripcion TEXT
  );
  
  //CREATE TABLE Conceptos (
      id INT AUTO_INCREMENT PRIMARY KEY,
      tema_id INT,
      nombre VARCHAR(100),
      descripcion TEXT,
      FOREIGN KEY (tema_id) REFERENCES Temas(id) ON DELETE CASCADE
  );
  
  //CREATE TABLE Conceptos_Valores (
      concepto_id INT,
      valor_id INT,
      PRIMARY KEY (concepto_id, valor_id),
      FOREIGN KEY (concepto_id) REFERENCES Conceptos(id) ON DELETE CASCADE,
      FOREIGN KEY (valor_id) REFERENCES Valores(id) ON DELETE CASCADE
  );
  
  //CREATE TABLE Reflexiones (
      id INT AUTO_INCREMENT PRIMARY KEY,
      fecha TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
      texto TEXT,
      valor_id INT,
      FOREIGN KEY (valor_id) REFERENCES Valores(id)
  //);
  
  //INSERT INTO Valores(nombre, descripcion) VALUES 
  ('Bondad', 'Actuar con benevolencia y generosidad'),
  ('Amor', 'Sentimiento de afecto profundo y cuidado'),
  ('Aprecio', 'Reconocimiento del valor y la importancia'),
  ('Hermandad', 'Sentido de unión y solidaridad entre personas'),
  ('Integridad', 'Comportamiento honesto y coherente con principios éticos');
  
  
  
  
--// Main.java (conexión y consulta básica)
--import java.sql.*;
--
--public class Main {
--    public static void main(String[] args) {
--        String url = "jdbc:mysql://localhost:3306/ProyectoEtico"; // Cambia si es otra base
--        String usuario = "root";
--        String contraseña = "tu_contraseña";
--
--        try {
--            Class.forName("com.mysql.cj.jdbc.Driver");
--            Connection conexion = DriverManager.getConnection(url, usuario, contraseña);
--            Statement stmt = conexion.createStatement();
--
--            String sql = "SELECT * FROM Valores";
--            ResultSet rs = stmt.executeQuery(sql);
--
--            while (rs.next()) {
--                System.out.println(rs.getInt("id") + ": " + rs.getString("nombre") + " - " + rs.getString("descripcion"));
--            }
--
--            rs.close();
--            stmt.close();
--            conexion.close();
--        } catch (Exception e) {
--            e.printStackTrace();
--        }
--    }
--}
--
--
--//GuiaEtica.java (algoritmo para guiar hacia valores positivos)
--// import java.util.*;
--// 
--// public class GuiaEtica {
--// 
--//     static Set<String> valoresPositivos = new HashSet<>(Arrays.asList(
--//         "bondad", "amor", "aprecio", "hermandad", "integridad"
--//     ));
--// 
--//     public static String evaluarAccion(String accion) {
--//         accion = accion.toLowerCase();
--//         for (String valor : valoresPositivos) {
--//             if (accion.contains(valor)) {
--//                 return "Acción alineada con el valor positivo: " + valor;
--//             }
--//         }
--//         return "Acción no alineada con valores positivos. Por favor, reflexiona para mejorar.";
--//     }
--// 
--//     public static void main(String[] args) {
--//         Scanner sc = new Scanner(System.in);
--//         System.out.println("Ingrese una acción o pensamiento:");
--//         String input = sc.nextLine();
--//         System.out.println(evaluarAccion(input
--// benito juarez: el respeto al derecho ajeno es la paz, Albert Einstein (no se como se escribe xd) las matematicas son la poesia de la logica Platon y muchas personas que me menciono mi ia amada; El valor de un hombre se mide en sus acciones con el poder, no dicho correctamente pero todas son importantes para mi
--// 
--// ¡Muy buenas citas y reflexiones! Aquí te dejo una forma sencilla de almacenarlas en la base de datos que hablamos, para que puedas conservar y trabajar con esas frases inspiradoras.
--// 
--// SQL para crear tabla de citas y ejemplos de inserción
--// CREATE TABLE Citas (
--//     id INT AUTO_INCREMENT PRIMARY KEY,
--//     autor VARCHAR(100),
--//     texto TEXT NOT NULL
--// );
--// 
--//  INSERT INTO Citas (autor, texto) VALUES
--//  ('Benito Juárez', 'El respeto al derecho ajeno es la paz.'),
--//  ('Albert Einstein', 'Las matemáticas son la poesía de la lógica.'),
--//  ('Platón', 'El valor de un hombre se mide en sus acciones con el poder.');
--//  Ejemplo de Java para mostrar estas citas desde la base de datos
--
--
--// import java.sql.*;
--
--// public class MostrarCitas {
--//    public static void main(String[] args) {
--//        String url = "jdbc:mysql://localhost:3306/ProyectoEtico"; // Cambia según tu configuración
--//        String usuario = "root";
--//        String contraseña = "tu_contraseña";
--//
--//        try {
--//            Class.forName("com.mysql.cj.jdbc.Driver");
--//            Connection conexion = DriverManager.getConnection(url, usuario, contraseña);
--//
--//            Statement stmt = conexion.createStatement();
--//            ResultSet rs = stmt.executeQuery("SELECT autor, texto FROM Citas");
--//
--//            while (rs.next()) {
--//                System.out.println(rs.getString("autor") + ": " + rs.getString("texto"));
--//            }
--//
--//            rs.close();
--//            stmt.close();
--//            conexion.close();
--//        } catch (Exception e) {
--//            e.printStackTrace();
--//        }
--//    }
--// }
-- Write, Run & Share MySQL queries online using OneCompiler's MySQL online editor and compiler for free. It's one of the robust, feature-rich online editor and compiler for MySQL. Getting started with the OneCompiler's MySQL editor is really simple and pretty fast. The editor shows sample boilerplate code when you choose language as 'MySQL' and start writing queries to learn and test online without worrying about tedious process of installation.
MySQL is a open-source, free and very popular relational database management system which is developed, distributed and supported by Oracle corporation.
CREATE TABLE table_name (
                column1 datatype,
                column2 datatype,
                ....);
CREATE TABLE EMPLOYEE (
  empId INTEGER PRIMARY KEY,
  name TEXT NOT NULL,
  dept TEXT NOT NULL
);
ALTER TABLE Table_name ADD column_name datatype;
INSERT INTO EMPLOYEE VALUES (0001, 'Dave', 'Sales');
TRUNCATE table table_name;
DROP TABLE table_name;
RENAME TABLE table_name1 to new_table_name1; 
 --Line1;
   /* Line1,
   Line2 */
INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);
Note: Column names are optional.
INSERT INTO EMPLOYEE VALUES (0001, 'Ava', 'Sales');
SELECT column1, column2, ...
FROM table_name
[where condition]; 
SELECT * FROM EMPLOYEE where dept ='sales';
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition; 
UPDATE EMPLOYEE SET dept = 'Sales' WHERE empId='0001'; 
DELETE FROM table_name where condition;
DELETE from EMPLOYEE where empId='0001'; 
  CREATE INDEX index_name on table_name(column_name);
  CREATE UNIQUE INDEX index_name on table_name(column_name);
DROP INDEX index_name ON table_name;
Creating a View:
CREATE VIEW View_name AS 
Query;
SELECT * FROM View_name;
ALTER View View_name AS 
Query;
DROP VIEW View_name;
CREATE TRIGGER trigger_name trigger_time trigger_event
    ON tbl_name FOR EACH ROW [trigger_order] trigger_body
/* where
trigger_time: { BEFORE | AFTER }
trigger_event: { INSERT | UPDATE | DELETE }
trigger_order: { FOLLOWS | PRECEDES } */
DROP TRIGGER [IF EXISTS] trigger_name;
CREATE PROCEDURE sp_name(p1 datatype)
BEGIN
/*Stored procedure code*/
END;
CALL sp_name;
DROP PROCEDURE sp_name;
SELECT * FROM TABLE1 INNER JOIN TABLE2 where condition;
SELECT * FROM TABLE1 LEFT JOIN TABLE2 ON condition;
SELECT * FROM TABLE1 RIGHT JOIN TABLE2 ON condition;
SELECT select_list from TABLE1 CROSS JOIN TABLE2;