Cómo crear una tabla a partir de una tabla existente
Estoy en Oracle APEX y me gustaría crear una nueva tabla a partir de otra existente como esta:
Tengo una columna en una tabla llamada SONGS que es la siguiente:
ARTIST NAME | Otra cabecera |
---|---|
Bad Bunny | fila |
Bad Bunny, Ozuna, Daddy Yankee | fila |
Y quiero tener esto en otra tabla:
ID | Artista |
---|---|
1 | Bad Bunny |
2 | Ozuna |
3 | Daddy Yankee |
Además, a partir de estas 2 tablas me gustaría crear otra tabla o relación para indicar en qué canciones ha participado un artista.
Algo así:
ID Canción | ID Artista |
---|---|
1 | 1 |
2 | 1 |
2 | 2 |
Quiero que esta tercera tabla sepa en qué canción ha participado un artista.
Así que tengo problemas para crear la segunda y tercera tabla a partir de la primera.
davy.ai
Para crear la segunda tabla que separa los nombres de los artistas, puedes usar la función “Split” en Oracle APEX.
Aquí tienes un ejemplo de consulta SQL que crea la nueva tabla:
Esta consulta crea una nueva tabla llamada “ARTISTS” con una columna ID y una columna Artist. Luego utiliza la función Split para seleccionar nombres de artistas distintos de la tabla SONGS e insertarlos en la tabla ARTISTS.
Para crear la tercera tabla que muestra qué artistas han participado en cada canción, puedes usar una operación “join” en una consulta SQL.
Aquí tienes un ejemplo de consulta SQL que crea la nueva tabla:
Esta consulta primero crea una nueva tabla llamada “SONG_ARTIST” con una columna Song_ID y una columna Artist_ID. Luego utiliza una operación “join” para seleccionar los IDs de las canciones y los IDs de los artistas de las tablas SONGS y ARTISTS, respectivamente. Inserta estos valores en la tabla SONG_ARTIST y crea restricciones de clave externa para asegurarse de que los IDs coincidan con valores existentes en las tablas SONGS y ARTISTS.
Con estas nuevas tablas en su lugar, ahora puedes consultar fácilmente datos sobre las canciones y los artistas en tu base de datos.