├── .DS_Store
├── .github
└── workflows
│ ├── notify.yml
│ └── send_telegram_message.py
├── .gitignore
├── LICENSE
├── README.md
└── contenido.curso
├── .gitkeep
├── 000.recursos
├── datasets
│ ├── comunas_medellin.geojson
│ ├── comunas_medellin.parquet
│ ├── parranda.xlsx
│ ├── titanic.csv
│ └── tv_shows.json
├── db
│ ├── 001.link.descarga.txt
│ ├── 002.modelo.relacional.blanco.png
│ ├── 003.modelo.relacional.negro.png
│ └── 004.eventos.sql
├── libros
│ └── 001.duckdb.in.action.motherduck.pdf
├── notebooks
│ └── bootcamp_dql_clases_template.ipynb
└── videos
│ ├── 001.intro.curso.txt
│ └── 002.entrega.trabajos.txt
├── 001.imagenes
└── .gitkeep
├── 002.documentos
├── .gitkeep
├── 000.bienvenida.pdf
├── 001.intro.curso.pdf
├── 002.tipos.de.datos.pdf
├── 003.esquemas.catalogos.pdf
├── 004.tipos.transacciones.pdf
├── 005.tipos.datos.simples.pdf
├── 006.tipos.datos.complejos.pdf
├── 007.extensiones.pdf
├── 008.uso.parquet.pdf
└── 009.geodata.pdf
├── 003.normalizacion
├── .gitkeep
└── 001.normalizacion.3FN.xlsx
├── 004.modelo.datos
└── .gitkeep
├── 005.sesiones
├── .gitkeep
├── 001.10092024
│ └── 000.sesion_1.pdf
├── 002.12092024
│ └── 000.sesion_2.conceptos.tipos.bd.pdf
├── 003.17102024
│ └── 000.sesion_3.conceptosbd.pdf
├── 004.19092024
│ └── 000.sesion_4.cnormalizacion.pdf
├── 005.24092024
│ └── 000.descarga.archivo.txt
├── 006.26042024
│ ├── 001.concurso.txt
│ ├── dataset_netflix_titles_nov_2019 2.csv
│ ├── parranda_deivis_diagrama.ddb
│ └── solucion.er
│ │ └── netflix_diagram.png
├── 007.01102024
│ ├── 001.transversales.sql
│ └── 002.create.sql
├── 008.03102024
│ ├── 002.create.sql
│ ├── 003.alter.sql
│ └── 004.drop.sql
├── 009.08102024
│ ├── 001.insert.sql
│ ├── 002.update.sql
│ ├── 003.delete.sql
│ └── 004.truncate.sql
├── 010.10102024
│ ├── 001.transversal.sql
│ ├── 002.textos.sql
│ ├── 003.numeros.sql
│ └── 004.fechas.sql
├── 011.15102024
│ ├── 005.blobs.sql
│ ├── 006.array.sql
│ ├── 007.list.sql
│ ├── 008.map.sql
│ └── 009.from.sql
├── 012.17102024
│ ├── 001.conceptos.avanzados.parte.1.pdf
│ ├── 010.unions.sql
│ ├── 011.fagregacion.sql
│ ├── 012.subqueries.sql
│ └── 013.joins.sql
├── 013.22102024
│ ├── 001.conceptos.avanzados.parte.2.pdf
│ ├── 014.like.sql
│ ├── 015.cte.sql
│ ├── 016.windows.sql
│ ├── 017.pivot.sql
│ ├── 018.views.sql
│ └── 019.secuencias.sql
├── 014.24202024
│ ├── 001.conceptos.avanzados.parte.3.pdf
│ ├── 020.macros.sql
│ ├── 021.enums.sql
│ ├── 022.variables.sql
│ ├── 023.transactions.sql
│ ├── 024.extensiones.sql
│ └── 025.lectura.archivos.sql
└── 015.29102024
│ ├── 001.conceptos.avanzados.parte.4.pdf
│ ├── 026.exportaciones.sql
│ ├── 027.geodata.sql
│ ├── 028.estadisticas.sql
│ ├── 029.linea.comandos.txt
│ └── 030.propiedades.sql
└── 006.ejercicios
└── .gitkeep
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codingupmyfuture/bootcampduckdb/4f78e7b5261d2f5dc3c9763dc7b7a1d97374e7e9/.DS_Store
--------------------------------------------------------------------------------
/.github/workflows/notify.yml:
--------------------------------------------------------------------------------
1 | name: Notificar nuevo issue en Telegram
2 |
3 | on:
4 | issues:
5 | types: [opened]
6 |
7 | jobs:
8 | notify:
9 | runs-on: ubuntu-latest
10 |
11 | steps:
12 | - name: Checkout repository
13 | uses: actions/checkout@v2
14 |
15 | - name: Install Python
16 | uses: actions/setup-python@v2
17 | with:
18 | python-version: '3.x'
19 | node-version: '16'
20 |
21 | - name: Install dependencies
22 | run: |
23 | pip install requests
24 |
25 | - name: Notify Telegram
26 | env:
27 | TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }}
28 | TELEGRAM_GROUP_ID: ${{ secrets.TELEGRAM_GROUP_ID }}
29 | run: |
30 | python .github/workflows/send_telegram_message.py \
31 | '${{ secrets.TELEGRAM_BOT_TOKEN }}' \
32 | '${{ secrets.TELEGRAM_GROUP_ID }}' \
33 | '${{ github.event.issue.user.login }}' \
34 | '${{ github.event.issue.title }}' \
35 | '${{ github.event.issue.html_url }}' \
36 | '${{ github.event.issue.number }}' \
37 | "${{ join(github.event.issue.labels.*.name, ', ') }}"
38 |
--------------------------------------------------------------------------------
/.github/workflows/send_telegram_message.py:
--------------------------------------------------------------------------------
1 | import sys
2 | import requests
3 | from datetime import datetime, timedelta
4 |
5 | bot_token = sys.argv[1]
6 | group_id = sys.argv[2]
7 | user = sys.argv[3]
8 | issue_title = sys.argv[4]
9 | issue_url = sys.argv[5]
10 | issue_number = sys.argv[6]
11 | issue_tags = sys.argv[7]
12 |
13 | message = f'''
14 | [Nuevo Ticket] - ID #: {issue_number}
15 | Creado por: {user}
16 | Tema: {issue_title}
17 | Enlace: click aquí
18 | Tags: {issue_tags}
19 | Notificación: {(datetime.now() - timedelta(hours=5)).strftime("%d/%m/%Y : %H:%M:%S")}
20 | '''
21 |
22 | r =requests.post(
23 | f'https://api.telegram.org/bot{bot_token}/sendMessage',
24 | json={'chat_id': group_id, 'text': message, 'parse_mode' : 'HTML'}
25 | )
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | distribute
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2024 codingupmyfuture
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 
5 |
6 |
7 |
8 | ### **IMPORTANCIA DE LAS BASES DE DATOS**
9 |
10 | Aprender bases de datos es fundamental, ya que son la base de casi todas las aplicaciones y sistemas modernos, desde redes sociales hasta servicios bancarios. Gestionan y organizan la información de manera eficiente y son clave para el análisis de datos y la toma de decisiones informadas.
11 | ### **DUCKDB**
12 |
13 | DuckDB es un motor de base de datos SQL diseñado para el análisis de grandes volúmenes de datos de manera rápida y eficiente, sin la necesidad de configuraciones complejas de servidores.
14 |
15 | 
16 | ### **CONTENIDO CURSO**
17 |
18 | Este bootcamp está diseñado para ser impartido en 14 sesiones, con una duración de 2 horas por sesión, totalizando 28 horas. La fecha de inicio es el Martes 03/09/2024 y finalizará el Jueves 17/10/2024. Los temas que se tratarán son:
19 |
20 | 
21 | ### **INSTRUCTOR**
22 |
23 | El bootcamp es creado y presentado por **Luis Fernando Vásquez Vergara**, quien cuenta con más de 17 años de experiencia en la industria del software, con especialización en ingeniería de datos.
24 |
25 |
26 |
27 |
28 | ### **LICENCIA**
29 |
30 | Este repositorio está bajo la licencia **MIT**. Esta licencia de software de código abierto permite a los usuarios usar, modificar y distribuir el software libremente. La única condición es que se debe incluir el aviso de derechos de autor original y el aviso de la licencia en todas las copias o partes sustanciales del software.
31 | ### **RECOMENDACIONES**
32 |
33 | Para no tener ningún problema con el curso y la asistencia, por favor asegúrese que la versión sea superior a **5.2.16**
34 |
35 | 
36 |
--------------------------------------------------------------------------------
/contenido.curso/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codingupmyfuture/bootcampduckdb/4f78e7b5261d2f5dc3c9763dc7b7a1d97374e7e9/contenido.curso/.gitkeep
--------------------------------------------------------------------------------
/contenido.curso/000.recursos/datasets/comunas_medellin.parquet:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codingupmyfuture/bootcampduckdb/4f78e7b5261d2f5dc3c9763dc7b7a1d97374e7e9/contenido.curso/000.recursos/datasets/comunas_medellin.parquet
--------------------------------------------------------------------------------
/contenido.curso/000.recursos/datasets/parranda.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codingupmyfuture/bootcampduckdb/4f78e7b5261d2f5dc3c9763dc7b7a1d97374e7e9/contenido.curso/000.recursos/datasets/parranda.xlsx
--------------------------------------------------------------------------------
/contenido.curso/000.recursos/datasets/titanic.csv:
--------------------------------------------------------------------------------
1 | PassengerId,Survived,Pclass,Name,Sex,Age,SibSp,Parch,Ticket,Fare,Cabin,Embarked
2 | 1,0,3,"Braund, Mr. Owen Harris",male,22,1,0,A/5 21171,7.25,,S
3 | 2,1,1,"Cumings, Mrs. John Bradley (Florence Briggs Thayer)",female,38,1,0,PC 17599,71.2833,C85,C
4 | 3,1,3,"Heikkinen, Miss. Laina",female,26,0,0,STON/O2. 3101282,7.925,,S
5 | 4,1,1,"Futrelle, Mrs. Jacques Heath (Lily May Peel)",female,35,1,0,113803,53.1,C123,S
6 | 5,0,3,"Allen, Mr. William Henry",male,35,0,0,373450,8.05,,S
7 | 6,0,3,"Moran, Mr. James",male,,0,0,330877,8.4583,,Q
8 | 7,0,1,"McCarthy, Mr. Timothy J",male,54,0,0,17463,51.8625,E46,S
9 | 8,0,3,"Palsson, Master. Gosta Leonard",male,2,3,1,349909,21.075,,S
10 | 9,1,3,"Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg)",female,27,0,2,347742,11.1333,,S
11 | 10,1,2,"Nasser, Mrs. Nicholas (Adele Achem)",female,14,1,0,237736,30.0708,,C
12 | 11,1,3,"Sandstrom, Miss. Marguerite Rut",female,4,1,1,PP 9549,16.7,G6,S
13 | 12,1,1,"Bonnell, Miss. Elizabeth",female,58,0,0,113783,26.55,C103,S
14 | 13,0,3,"Saundercock, Mr. William Henry",male,20,0,0,A/5. 2151,8.05,,S
15 | 14,0,3,"Andersson, Mr. Anders Johan",male,39,1,5,347082,31.275,,S
16 | 15,0,3,"Vestrom, Miss. Hulda Amanda Adolfina",female,14,0,0,350406,7.8542,,S
17 | 16,1,2,"Hewlett, Mrs. (Mary D Kingcome) ",female,55,0,0,248706,16,,S
18 | 17,0,3,"Rice, Master. Eugene",male,2,4,1,382652,29.125,,Q
19 | 18,1,2,"Williams, Mr. Charles Eugene",male,,0,0,244373,13,,S
20 | 19,0,3,"Vander Planke, Mrs. Julius (Emelia Maria Vandemoortele)",female,31,1,0,345763,18,,S
21 | 20,1,3,"Masselmani, Mrs. Fatima",female,,0,0,2649,7.225,,C
22 | 21,0,2,"Fynney, Mr. Joseph J",male,35,0,0,239865,26,,S
23 | 22,1,2,"Beesley, Mr. Lawrence",male,34,0,0,248698,13,D56,S
24 | 23,1,3,"McGowan, Miss. Anna ""Annie""",female,15,0,0,330923,8.0292,,Q
25 | 24,1,1,"Sloper, Mr. William Thompson",male,28,0,0,113788,35.5,A6,S
26 | 25,0,3,"Palsson, Miss. Torborg Danira",female,8,3,1,349909,21.075,,S
27 | 26,1,3,"Asplund, Mrs. Carl Oscar (Selma Augusta Emilia Johansson)",female,38,1,5,347077,31.3875,,S
28 | 27,0,3,"Emir, Mr. Farred Chehab",male,,0,0,2631,7.225,,C
29 | 28,0,1,"Fortune, Mr. Charles Alexander",male,19,3,2,19950,263,C23 C25 C27,S
30 | 29,1,3,"O'Dwyer, Miss. Ellen ""Nellie""",female,,0,0,330959,7.8792,,Q
31 | 30,0,3,"Todoroff, Mr. Lalio",male,,0,0,349216,7.8958,,S
32 | 31,0,1,"Uruchurtu, Don. Manuel E",male,40,0,0,PC 17601,27.7208,,C
33 | 32,1,1,"Spencer, Mrs. William Augustus (Marie Eugenie)",female,,1,0,PC 17569,146.5208,B78,C
34 | 33,1,3,"Glynn, Miss. Mary Agatha",female,,0,0,335677,7.75,,Q
35 | 34,0,2,"Wheadon, Mr. Edward H",male,66,0,0,C.A. 24579,10.5,,S
36 | 35,0,1,"Meyer, Mr. Edgar Joseph",male,28,1,0,PC 17604,82.1708,,C
37 | 36,0,1,"Holverson, Mr. Alexander Oskar",male,42,1,0,113789,52,,S
38 | 37,1,3,"Mamee, Mr. Hanna",male,,0,0,2677,7.2292,,C
39 | 38,0,3,"Cann, Mr. Ernest Charles",male,21,0,0,A./5. 2152,8.05,,S
40 | 39,0,3,"Vander Planke, Miss. Augusta Maria",female,18,2,0,345764,18,,S
41 | 40,1,3,"Nicola-Yarred, Miss. Jamila",female,14,1,0,2651,11.2417,,C
42 | 41,0,3,"Ahlin, Mrs. Johan (Johanna Persdotter Larsson)",female,40,1,0,7546,9.475,,S
43 | 42,0,2,"Turpin, Mrs. William John Robert (Dorothy Ann Wonnacott)",female,27,1,0,11668,21,,S
44 | 43,0,3,"Kraeff, Mr. Theodor",male,,0,0,349253,7.8958,,C
45 | 44,1,2,"Laroche, Miss. Simonne Marie Anne Andree",female,3,1,2,SC/Paris 2123,41.5792,,C
46 | 45,1,3,"Devaney, Miss. Margaret Delia",female,19,0,0,330958,7.8792,,Q
47 | 46,0,3,"Rogers, Mr. William John",male,,0,0,S.C./A.4. 23567,8.05,,S
48 | 47,0,3,"Lennon, Mr. Denis",male,,1,0,370371,15.5,,Q
49 | 48,1,3,"O'Driscoll, Miss. Bridget",female,,0,0,14311,7.75,,Q
50 | 49,0,3,"Samaan, Mr. Youssef",male,,2,0,2662,21.6792,,C
51 | 50,0,3,"Arnold-Franchi, Mrs. Josef (Josefine Franchi)",female,18,1,0,349237,17.8,,S
52 | 51,0,3,"Panula, Master. Juha Niilo",male,7,4,1,3101295,39.6875,,S
53 | 52,0,3,"Nosworthy, Mr. Richard Cater",male,21,0,0,A/4. 39886,7.8,,S
54 | 53,1,1,"Harper, Mrs. Henry Sleeper (Myna Haxtun)",female,49,1,0,PC 17572,76.7292,D33,C
55 | 54,1,2,"Faunthorpe, Mrs. Lizzie (Elizabeth Anne Wilkinson)",female,29,1,0,2926,26,,S
56 | 55,0,1,"Ostby, Mr. Engelhart Cornelius",male,65,0,1,113509,61.9792,B30,C
57 | 56,1,1,"Woolner, Mr. Hugh",male,,0,0,19947,35.5,C52,S
58 | 57,1,2,"Rugg, Miss. Emily",female,21,0,0,C.A. 31026,10.5,,S
59 | 58,0,3,"Novel, Mr. Mansouer",male,28.5,0,0,2697,7.2292,,C
60 | 59,1,2,"West, Miss. Constance Mirium",female,5,1,2,C.A. 34651,27.75,,S
61 | 60,0,3,"Goodwin, Master. William Frederick",male,11,5,2,CA 2144,46.9,,S
62 | 61,0,3,"Sirayanian, Mr. Orsen",male,22,0,0,2669,7.2292,,C
63 | 62,1,1,"Icard, Miss. Amelie",female,38,0,0,113572,80,B28,
64 | 63,0,1,"Harris, Mr. Henry Birkhardt",male,45,1,0,36973,83.475,C83,S
65 | 64,0,3,"Skoog, Master. Harald",male,4,3,2,347088,27.9,,S
66 | 65,0,1,"Stewart, Mr. Albert A",male,,0,0,PC 17605,27.7208,,C
67 | 66,1,3,"Moubarek, Master. Gerios",male,,1,1,2661,15.2458,,C
68 | 67,1,2,"Nye, Mrs. (Elizabeth Ramell)",female,29,0,0,C.A. 29395,10.5,F33,S
69 | 68,0,3,"Crease, Mr. Ernest James",male,19,0,0,S.P. 3464,8.1583,,S
70 | 69,1,3,"Andersson, Miss. Erna Alexandra",female,17,4,2,3101281,7.925,,S
71 | 70,0,3,"Kink, Mr. Vincenz",male,26,2,0,315151,8.6625,,S
72 | 71,0,2,"Jenkin, Mr. Stephen Curnow",male,32,0,0,C.A. 33111,10.5,,S
73 | 72,0,3,"Goodwin, Miss. Lillian Amy",female,16,5,2,CA 2144,46.9,,S
74 | 73,0,2,"Hood, Mr. Ambrose Jr",male,21,0,0,S.O.C. 14879,73.5,,S
75 | 74,0,3,"Chronopoulos, Mr. Apostolos",male,26,1,0,2680,14.4542,,C
76 | 75,1,3,"Bing, Mr. Lee",male,32,0,0,1601,56.4958,,S
77 | 76,0,3,"Moen, Mr. Sigurd Hansen",male,25,0,0,348123,7.65,F G73,S
78 | 77,0,3,"Staneff, Mr. Ivan",male,,0,0,349208,7.8958,,S
79 | 78,0,3,"Moutal, Mr. Rahamin Haim",male,,0,0,374746,8.05,,S
80 | 79,1,2,"Caldwell, Master. Alden Gates",male,0.83,0,2,248738,29,,S
81 | 80,1,3,"Dowdell, Miss. Elizabeth",female,30,0,0,364516,12.475,,S
82 | 81,0,3,"Waelens, Mr. Achille",male,22,0,0,345767,9,,S
83 | 82,1,3,"Sheerlinck, Mr. Jan Baptist",male,29,0,0,345779,9.5,,S
84 | 83,1,3,"McDermott, Miss. Brigdet Delia",female,,0,0,330932,7.7875,,Q
85 | 84,0,1,"Carrau, Mr. Francisco M",male,28,0,0,113059,47.1,,S
86 | 85,1,2,"Ilett, Miss. Bertha",female,17,0,0,SO/C 14885,10.5,,S
87 | 86,1,3,"Backstrom, Mrs. Karl Alfred (Maria Mathilda Gustafsson)",female,33,3,0,3101278,15.85,,S
88 | 87,0,3,"Ford, Mr. William Neal",male,16,1,3,W./C. 6608,34.375,,S
89 | 88,0,3,"Slocovski, Mr. Selman Francis",male,,0,0,SOTON/OQ 392086,8.05,,S
90 | 89,1,1,"Fortune, Miss. Mabel Helen",female,23,3,2,19950,263,C23 C25 C27,S
91 | 90,0,3,"Celotti, Mr. Francesco",male,24,0,0,343275,8.05,,S
92 | 91,0,3,"Christmann, Mr. Emil",male,29,0,0,343276,8.05,,S
93 | 92,0,3,"Andreasson, Mr. Paul Edvin",male,20,0,0,347466,7.8542,,S
94 | 93,0,1,"Chaffee, Mr. Herbert Fuller",male,46,1,0,W.E.P. 5734,61.175,E31,S
95 | 94,0,3,"Dean, Mr. Bertram Frank",male,26,1,2,C.A. 2315,20.575,,S
96 | 95,0,3,"Coxon, Mr. Daniel",male,59,0,0,364500,7.25,,S
97 | 96,0,3,"Shorney, Mr. Charles Joseph",male,,0,0,374910,8.05,,S
98 | 97,0,1,"Goldschmidt, Mr. George B",male,71,0,0,PC 17754,34.6542,A5,C
99 | 98,1,1,"Greenfield, Mr. William Bertram",male,23,0,1,PC 17759,63.3583,D10 D12,C
100 | 99,1,2,"Doling, Mrs. John T (Ada Julia Bone)",female,34,0,1,231919,23,,S
101 | 100,0,2,"Kantor, Mr. Sinai",male,34,1,0,244367,26,,S
102 | 101,0,3,"Petranec, Miss. Matilda",female,28,0,0,349245,7.8958,,S
103 | 102,0,3,"Petroff, Mr. Pastcho (""Pentcho"")",male,,0,0,349215,7.8958,,S
104 | 103,0,1,"White, Mr. Richard Frasar",male,21,0,1,35281,77.2875,D26,S
105 | 104,0,3,"Johansson, Mr. Gustaf Joel",male,33,0,0,7540,8.6542,,S
106 | 105,0,3,"Gustafsson, Mr. Anders Vilhelm",male,37,2,0,3101276,7.925,,S
107 | 106,0,3,"Mionoff, Mr. Stoytcho",male,28,0,0,349207,7.8958,,S
108 | 107,1,3,"Salkjelsvik, Miss. Anna Kristine",female,21,0,0,343120,7.65,,S
109 | 108,1,3,"Moss, Mr. Albert Johan",male,,0,0,312991,7.775,,S
110 | 109,0,3,"Rekic, Mr. Tido",male,38,0,0,349249,7.8958,,S
111 | 110,1,3,"Moran, Miss. Bertha",female,,1,0,371110,24.15,,Q
112 | 111,0,1,"Porter, Mr. Walter Chamberlain",male,47,0,0,110465,52,C110,S
113 | 112,0,3,"Zabour, Miss. Hileni",female,14.5,1,0,2665,14.4542,,C
114 | 113,0,3,"Barton, Mr. David John",male,22,0,0,324669,8.05,,S
115 | 114,0,3,"Jussila, Miss. Katriina",female,20,1,0,4136,9.825,,S
116 | 115,0,3,"Attalah, Miss. Malake",female,17,0,0,2627,14.4583,,C
117 | 116,0,3,"Pekoniemi, Mr. Edvard",male,21,0,0,STON/O 2. 3101294,7.925,,S
118 | 117,0,3,"Connors, Mr. Patrick",male,70.5,0,0,370369,7.75,,Q
119 | 118,0,2,"Turpin, Mr. William John Robert",male,29,1,0,11668,21,,S
120 | 119,0,1,"Baxter, Mr. Quigg Edmond",male,24,0,1,PC 17558,247.5208,B58 B60,C
121 | 120,0,3,"Andersson, Miss. Ellis Anna Maria",female,2,4,2,347082,31.275,,S
122 | 121,0,2,"Hickman, Mr. Stanley George",male,21,2,0,S.O.C. 14879,73.5,,S
123 | 122,0,3,"Moore, Mr. Leonard Charles",male,,0,0,A4. 54510,8.05,,S
124 | 123,0,2,"Nasser, Mr. Nicholas",male,32.5,1,0,237736,30.0708,,C
125 | 124,1,2,"Webber, Miss. Susan",female,32.5,0,0,27267,13,E101,S
126 | 125,0,1,"White, Mr. Percival Wayland",male,54,0,1,35281,77.2875,D26,S
127 | 126,1,3,"Nicola-Yarred, Master. Elias",male,12,1,0,2651,11.2417,,C
128 | 127,0,3,"McMahon, Mr. Martin",male,,0,0,370372,7.75,,Q
129 | 128,1,3,"Madsen, Mr. Fridtjof Arne",male,24,0,0,C 17369,7.1417,,S
130 | 129,1,3,"Peter, Miss. Anna",female,,1,1,2668,22.3583,F E69,C
131 | 130,0,3,"Ekstrom, Mr. Johan",male,45,0,0,347061,6.975,,S
132 | 131,0,3,"Drazenoic, Mr. Jozef",male,33,0,0,349241,7.8958,,C
133 | 132,0,3,"Coelho, Mr. Domingos Fernandeo",male,20,0,0,SOTON/O.Q. 3101307,7.05,,S
134 | 133,0,3,"Robins, Mrs. Alexander A (Grace Charity Laury)",female,47,1,0,A/5. 3337,14.5,,S
135 | 134,1,2,"Weisz, Mrs. Leopold (Mathilde Francoise Pede)",female,29,1,0,228414,26,,S
136 | 135,0,2,"Sobey, Mr. Samuel James Hayden",male,25,0,0,C.A. 29178,13,,S
137 | 136,0,2,"Richard, Mr. Emile",male,23,0,0,SC/PARIS 2133,15.0458,,C
138 | 137,1,1,"Newsom, Miss. Helen Monypeny",female,19,0,2,11752,26.2833,D47,S
139 | 138,0,1,"Futrelle, Mr. Jacques Heath",male,37,1,0,113803,53.1,C123,S
140 | 139,0,3,"Osen, Mr. Olaf Elon",male,16,0,0,7534,9.2167,,S
141 | 140,0,1,"Giglio, Mr. Victor",male,24,0,0,PC 17593,79.2,B86,C
142 | 141,0,3,"Boulos, Mrs. Joseph (Sultana)",female,,0,2,2678,15.2458,,C
143 | 142,1,3,"Nysten, Miss. Anna Sofia",female,22,0,0,347081,7.75,,S
144 | 143,1,3,"Hakkarainen, Mrs. Pekka Pietari (Elin Matilda Dolck)",female,24,1,0,STON/O2. 3101279,15.85,,S
145 | 144,0,3,"Burke, Mr. Jeremiah",male,19,0,0,365222,6.75,,Q
146 | 145,0,2,"Andrew, Mr. Edgardo Samuel",male,18,0,0,231945,11.5,,S
147 | 146,0,2,"Nicholls, Mr. Joseph Charles",male,19,1,1,C.A. 33112,36.75,,S
148 | 147,1,3,"Andersson, Mr. August Edvard (""Wennerstrom"")",male,27,0,0,350043,7.7958,,S
149 | 148,0,3,"Ford, Miss. Robina Maggie ""Ruby""",female,9,2,2,W./C. 6608,34.375,,S
150 | 149,0,2,"Navratil, Mr. Michel (""Louis M Hoffman"")",male,36.5,0,2,230080,26,F2,S
151 | 150,0,2,"Byles, Rev. Thomas Roussel Davids",male,42,0,0,244310,13,,S
152 | 151,0,2,"Bateman, Rev. Robert James",male,51,0,0,S.O.P. 1166,12.525,,S
153 | 152,1,1,"Pears, Mrs. Thomas (Edith Wearne)",female,22,1,0,113776,66.6,C2,S
154 | 153,0,3,"Meo, Mr. Alfonzo",male,55.5,0,0,A.5. 11206,8.05,,S
155 | 154,0,3,"van Billiard, Mr. Austin Blyler",male,40.5,0,2,A/5. 851,14.5,,S
156 | 155,0,3,"Olsen, Mr. Ole Martin",male,,0,0,Fa 265302,7.3125,,S
157 | 156,0,1,"Williams, Mr. Charles Duane",male,51,0,1,PC 17597,61.3792,,C
158 | 157,1,3,"Gilnagh, Miss. Katherine ""Katie""",female,16,0,0,35851,7.7333,,Q
159 | 158,0,3,"Corn, Mr. Harry",male,30,0,0,SOTON/OQ 392090,8.05,,S
160 | 159,0,3,"Smiljanic, Mr. Mile",male,,0,0,315037,8.6625,,S
161 | 160,0,3,"Sage, Master. Thomas Henry",male,,8,2,CA. 2343,69.55,,S
162 | 161,0,3,"Cribb, Mr. John Hatfield",male,44,0,1,371362,16.1,,S
163 | 162,1,2,"Watt, Mrs. James (Elizabeth ""Bessie"" Inglis Milne)",female,40,0,0,C.A. 33595,15.75,,S
164 | 163,0,3,"Bengtsson, Mr. John Viktor",male,26,0,0,347068,7.775,,S
165 | 164,0,3,"Calic, Mr. Jovo",male,17,0,0,315093,8.6625,,S
166 | 165,0,3,"Panula, Master. Eino Viljami",male,1,4,1,3101295,39.6875,,S
167 | 166,1,3,"Goldsmith, Master. Frank John William ""Frankie""",male,9,0,2,363291,20.525,,S
168 | 167,1,1,"Chibnall, Mrs. (Edith Martha Bowerman)",female,,0,1,113505,55,E33,S
169 | 168,0,3,"Skoog, Mrs. William (Anna Bernhardina Karlsson)",female,45,1,4,347088,27.9,,S
170 | 169,0,1,"Baumann, Mr. John D",male,,0,0,PC 17318,25.925,,S
171 | 170,0,3,"Ling, Mr. Lee",male,28,0,0,1601,56.4958,,S
172 | 171,0,1,"Van der hoef, Mr. Wyckoff",male,61,0,0,111240,33.5,B19,S
173 | 172,0,3,"Rice, Master. Arthur",male,4,4,1,382652,29.125,,Q
174 | 173,1,3,"Johnson, Miss. Eleanor Ileen",female,1,1,1,347742,11.1333,,S
175 | 174,0,3,"Sivola, Mr. Antti Wilhelm",male,21,0,0,STON/O 2. 3101280,7.925,,S
176 | 175,0,1,"Smith, Mr. James Clinch",male,56,0,0,17764,30.6958,A7,C
177 | 176,0,3,"Klasen, Mr. Klas Albin",male,18,1,1,350404,7.8542,,S
178 | 177,0,3,"Lefebre, Master. Henry Forbes",male,,3,1,4133,25.4667,,S
179 | 178,0,1,"Isham, Miss. Ann Elizabeth",female,50,0,0,PC 17595,28.7125,C49,C
180 | 179,0,2,"Hale, Mr. Reginald",male,30,0,0,250653,13,,S
181 | 180,0,3,"Leonard, Mr. Lionel",male,36,0,0,LINE,0,,S
182 | 181,0,3,"Sage, Miss. Constance Gladys",female,,8,2,CA. 2343,69.55,,S
183 | 182,0,2,"Pernot, Mr. Rene",male,,0,0,SC/PARIS 2131,15.05,,C
184 | 183,0,3,"Asplund, Master. Clarence Gustaf Hugo",male,9,4,2,347077,31.3875,,S
185 | 184,1,2,"Becker, Master. Richard F",male,1,2,1,230136,39,F4,S
186 | 185,1,3,"Kink-Heilmann, Miss. Luise Gretchen",female,4,0,2,315153,22.025,,S
187 | 186,0,1,"Rood, Mr. Hugh Roscoe",male,,0,0,113767,50,A32,S
188 | 187,1,3,"O'Brien, Mrs. Thomas (Johanna ""Hannah"" Godfrey)",female,,1,0,370365,15.5,,Q
189 | 188,1,1,"Romaine, Mr. Charles Hallace (""Mr C Rolmane"")",male,45,0,0,111428,26.55,,S
190 | 189,0,3,"Bourke, Mr. John",male,40,1,1,364849,15.5,,Q
191 | 190,0,3,"Turcin, Mr. Stjepan",male,36,0,0,349247,7.8958,,S
192 | 191,1,2,"Pinsky, Mrs. (Rosa)",female,32,0,0,234604,13,,S
193 | 192,0,2,"Carbines, Mr. William",male,19,0,0,28424,13,,S
194 | 193,1,3,"Andersen-Jensen, Miss. Carla Christine Nielsine",female,19,1,0,350046,7.8542,,S
195 | 194,1,2,"Navratil, Master. Michel M",male,3,1,1,230080,26,F2,S
196 | 195,1,1,"Brown, Mrs. James Joseph (Margaret Tobin)",female,44,0,0,PC 17610,27.7208,B4,C
197 | 196,1,1,"Lurette, Miss. Elise",female,58,0,0,PC 17569,146.5208,B80,C
198 | 197,0,3,"Mernagh, Mr. Robert",male,,0,0,368703,7.75,,Q
199 | 198,0,3,"Olsen, Mr. Karl Siegwart Andreas",male,42,0,1,4579,8.4042,,S
200 | 199,1,3,"Madigan, Miss. Margaret ""Maggie""",female,,0,0,370370,7.75,,Q
201 | 200,0,2,"Yrois, Miss. Henriette (""Mrs Harbeck"")",female,24,0,0,248747,13,,S
202 | 201,0,3,"Vande Walle, Mr. Nestor Cyriel",male,28,0,0,345770,9.5,,S
203 | 202,0,3,"Sage, Mr. Frederick",male,,8,2,CA. 2343,69.55,,S
204 | 203,0,3,"Johanson, Mr. Jakob Alfred",male,34,0,0,3101264,6.4958,,S
205 | 204,0,3,"Youseff, Mr. Gerious",male,45.5,0,0,2628,7.225,,C
206 | 205,1,3,"Cohen, Mr. Gurshon ""Gus""",male,18,0,0,A/5 3540,8.05,,S
207 | 206,0,3,"Strom, Miss. Telma Matilda",female,2,0,1,347054,10.4625,G6,S
208 | 207,0,3,"Backstrom, Mr. Karl Alfred",male,32,1,0,3101278,15.85,,S
209 | 208,1,3,"Albimona, Mr. Nassef Cassem",male,26,0,0,2699,18.7875,,C
210 | 209,1,3,"Carr, Miss. Helen ""Ellen""",female,16,0,0,367231,7.75,,Q
211 | 210,1,1,"Blank, Mr. Henry",male,40,0,0,112277,31,A31,C
212 | 211,0,3,"Ali, Mr. Ahmed",male,24,0,0,SOTON/O.Q. 3101311,7.05,,S
213 | 212,1,2,"Cameron, Miss. Clear Annie",female,35,0,0,F.C.C. 13528,21,,S
214 | 213,0,3,"Perkin, Mr. John Henry",male,22,0,0,A/5 21174,7.25,,S
215 | 214,0,2,"Givard, Mr. Hans Kristensen",male,30,0,0,250646,13,,S
216 | 215,0,3,"Kiernan, Mr. Philip",male,,1,0,367229,7.75,,Q
217 | 216,1,1,"Newell, Miss. Madeleine",female,31,1,0,35273,113.275,D36,C
218 | 217,1,3,"Honkanen, Miss. Eliina",female,27,0,0,STON/O2. 3101283,7.925,,S
219 | 218,0,2,"Jacobsohn, Mr. Sidney Samuel",male,42,1,0,243847,27,,S
220 | 219,1,1,"Bazzani, Miss. Albina",female,32,0,0,11813,76.2917,D15,C
221 | 220,0,2,"Harris, Mr. Walter",male,30,0,0,W/C 14208,10.5,,S
222 | 221,1,3,"Sunderland, Mr. Victor Francis",male,16,0,0,SOTON/OQ 392089,8.05,,S
223 | 222,0,2,"Bracken, Mr. James H",male,27,0,0,220367,13,,S
224 | 223,0,3,"Green, Mr. George Henry",male,51,0,0,21440,8.05,,S
225 | 224,0,3,"Nenkoff, Mr. Christo",male,,0,0,349234,7.8958,,S
226 | 225,1,1,"Hoyt, Mr. Frederick Maxfield",male,38,1,0,19943,90,C93,S
227 | 226,0,3,"Berglund, Mr. Karl Ivar Sven",male,22,0,0,PP 4348,9.35,,S
228 | 227,1,2,"Mellors, Mr. William John",male,19,0,0,SW/PP 751,10.5,,S
229 | 228,0,3,"Lovell, Mr. John Hall (""Henry"")",male,20.5,0,0,A/5 21173,7.25,,S
230 | 229,0,2,"Fahlstrom, Mr. Arne Jonas",male,18,0,0,236171,13,,S
231 | 230,0,3,"Lefebre, Miss. Mathilde",female,,3,1,4133,25.4667,,S
232 | 231,1,1,"Harris, Mrs. Henry Birkhardt (Irene Wallach)",female,35,1,0,36973,83.475,C83,S
233 | 232,0,3,"Larsson, Mr. Bengt Edvin",male,29,0,0,347067,7.775,,S
234 | 233,0,2,"Sjostedt, Mr. Ernst Adolf",male,59,0,0,237442,13.5,,S
235 | 234,1,3,"Asplund, Miss. Lillian Gertrud",female,5,4,2,347077,31.3875,,S
236 | 235,0,2,"Leyson, Mr. Robert William Norman",male,24,0,0,C.A. 29566,10.5,,S
237 | 236,0,3,"Harknett, Miss. Alice Phoebe",female,,0,0,W./C. 6609,7.55,,S
238 | 237,0,2,"Hold, Mr. Stephen",male,44,1,0,26707,26,,S
239 | 238,1,2,"Collyer, Miss. Marjorie ""Lottie""",female,8,0,2,C.A. 31921,26.25,,S
240 | 239,0,2,"Pengelly, Mr. Frederick William",male,19,0,0,28665,10.5,,S
241 | 240,0,2,"Hunt, Mr. George Henry",male,33,0,0,SCO/W 1585,12.275,,S
242 | 241,0,3,"Zabour, Miss. Thamine",female,,1,0,2665,14.4542,,C
243 | 242,1,3,"Murphy, Miss. Katherine ""Kate""",female,,1,0,367230,15.5,,Q
244 | 243,0,2,"Coleridge, Mr. Reginald Charles",male,29,0,0,W./C. 14263,10.5,,S
245 | 244,0,3,"Maenpaa, Mr. Matti Alexanteri",male,22,0,0,STON/O 2. 3101275,7.125,,S
246 | 245,0,3,"Attalah, Mr. Sleiman",male,30,0,0,2694,7.225,,C
247 | 246,0,1,"Minahan, Dr. William Edward",male,44,2,0,19928,90,C78,Q
248 | 247,0,3,"Lindahl, Miss. Agda Thorilda Viktoria",female,25,0,0,347071,7.775,,S
249 | 248,1,2,"Hamalainen, Mrs. William (Anna)",female,24,0,2,250649,14.5,,S
250 | 249,1,1,"Beckwith, Mr. Richard Leonard",male,37,1,1,11751,52.5542,D35,S
251 | 250,0,2,"Carter, Rev. Ernest Courtenay",male,54,1,0,244252,26,,S
252 | 251,0,3,"Reed, Mr. James George",male,,0,0,362316,7.25,,S
253 | 252,0,3,"Strom, Mrs. Wilhelm (Elna Matilda Persson)",female,29,1,1,347054,10.4625,G6,S
254 | 253,0,1,"Stead, Mr. William Thomas",male,62,0,0,113514,26.55,C87,S
255 | 254,0,3,"Lobb, Mr. William Arthur",male,30,1,0,A/5. 3336,16.1,,S
256 | 255,0,3,"Rosblom, Mrs. Viktor (Helena Wilhelmina)",female,41,0,2,370129,20.2125,,S
257 | 256,1,3,"Touma, Mrs. Darwis (Hanne Youssef Razi)",female,29,0,2,2650,15.2458,,C
258 | 257,1,1,"Thorne, Mrs. Gertrude Maybelle",female,,0,0,PC 17585,79.2,,C
259 | 258,1,1,"Cherry, Miss. Gladys",female,30,0,0,110152,86.5,B77,S
260 | 259,1,1,"Ward, Miss. Anna",female,35,0,0,PC 17755,512.3292,,C
261 | 260,1,2,"Parrish, Mrs. (Lutie Davis)",female,50,0,1,230433,26,,S
262 | 261,0,3,"Smith, Mr. Thomas",male,,0,0,384461,7.75,,Q
263 | 262,1,3,"Asplund, Master. Edvin Rojj Felix",male,3,4,2,347077,31.3875,,S
264 | 263,0,1,"Taussig, Mr. Emil",male,52,1,1,110413,79.65,E67,S
265 | 264,0,1,"Harrison, Mr. William",male,40,0,0,112059,0,B94,S
266 | 265,0,3,"Henry, Miss. Delia",female,,0,0,382649,7.75,,Q
267 | 266,0,2,"Reeves, Mr. David",male,36,0,0,C.A. 17248,10.5,,S
268 | 267,0,3,"Panula, Mr. Ernesti Arvid",male,16,4,1,3101295,39.6875,,S
269 | 268,1,3,"Persson, Mr. Ernst Ulrik",male,25,1,0,347083,7.775,,S
270 | 269,1,1,"Graham, Mrs. William Thompson (Edith Junkins)",female,58,0,1,PC 17582,153.4625,C125,S
271 | 270,1,1,"Bissette, Miss. Amelia",female,35,0,0,PC 17760,135.6333,C99,S
272 | 271,0,1,"Cairns, Mr. Alexander",male,,0,0,113798,31,,S
273 | 272,1,3,"Tornquist, Mr. William Henry",male,25,0,0,LINE,0,,S
274 | 273,1,2,"Mellinger, Mrs. (Elizabeth Anne Maidment)",female,41,0,1,250644,19.5,,S
275 | 274,0,1,"Natsch, Mr. Charles H",male,37,0,1,PC 17596,29.7,C118,C
276 | 275,1,3,"Healy, Miss. Hanora ""Nora""",female,,0,0,370375,7.75,,Q
277 | 276,1,1,"Andrews, Miss. Kornelia Theodosia",female,63,1,0,13502,77.9583,D7,S
278 | 277,0,3,"Lindblom, Miss. Augusta Charlotta",female,45,0,0,347073,7.75,,S
279 | 278,0,2,"Parkes, Mr. Francis ""Frank""",male,,0,0,239853,0,,S
280 | 279,0,3,"Rice, Master. Eric",male,7,4,1,382652,29.125,,Q
281 | 280,1,3,"Abbott, Mrs. Stanton (Rosa Hunt)",female,35,1,1,C.A. 2673,20.25,,S
282 | 281,0,3,"Duane, Mr. Frank",male,65,0,0,336439,7.75,,Q
283 | 282,0,3,"Olsson, Mr. Nils Johan Goransson",male,28,0,0,347464,7.8542,,S
284 | 283,0,3,"de Pelsmaeker, Mr. Alfons",male,16,0,0,345778,9.5,,S
285 | 284,1,3,"Dorking, Mr. Edward Arthur",male,19,0,0,A/5. 10482,8.05,,S
286 | 285,0,1,"Smith, Mr. Richard William",male,,0,0,113056,26,A19,S
287 | 286,0,3,"Stankovic, Mr. Ivan",male,33,0,0,349239,8.6625,,C
288 | 287,1,3,"de Mulder, Mr. Theodore",male,30,0,0,345774,9.5,,S
289 | 288,0,3,"Naidenoff, Mr. Penko",male,22,0,0,349206,7.8958,,S
290 | 289,1,2,"Hosono, Mr. Masabumi",male,42,0,0,237798,13,,S
291 | 290,1,3,"Connolly, Miss. Kate",female,22,0,0,370373,7.75,,Q
292 | 291,1,1,"Barber, Miss. Ellen ""Nellie""",female,26,0,0,19877,78.85,,S
293 | 292,1,1,"Bishop, Mrs. Dickinson H (Helen Walton)",female,19,1,0,11967,91.0792,B49,C
294 | 293,0,2,"Levy, Mr. Rene Jacques",male,36,0,0,SC/Paris 2163,12.875,D,C
295 | 294,0,3,"Haas, Miss. Aloisia",female,24,0,0,349236,8.85,,S
296 | 295,0,3,"Mineff, Mr. Ivan",male,24,0,0,349233,7.8958,,S
297 | 296,0,1,"Lewy, Mr. Ervin G",male,,0,0,PC 17612,27.7208,,C
298 | 297,0,3,"Hanna, Mr. Mansour",male,23.5,0,0,2693,7.2292,,C
299 | 298,0,1,"Allison, Miss. Helen Loraine",female,2,1,2,113781,151.55,C22 C26,S
300 | 299,1,1,"Saalfeld, Mr. Adolphe",male,,0,0,19988,30.5,C106,S
301 | 300,1,1,"Baxter, Mrs. James (Helene DeLaudeniere Chaput)",female,50,0,1,PC 17558,247.5208,B58 B60,C
302 | 301,1,3,"Kelly, Miss. Anna Katherine ""Annie Kate""",female,,0,0,9234,7.75,,Q
303 | 302,1,3,"McCoy, Mr. Bernard",male,,2,0,367226,23.25,,Q
304 | 303,0,3,"Johnson, Mr. William Cahoone Jr",male,19,0,0,LINE,0,,S
305 | 304,1,2,"Keane, Miss. Nora A",female,,0,0,226593,12.35,E101,Q
306 | 305,0,3,"Williams, Mr. Howard Hugh ""Harry""",male,,0,0,A/5 2466,8.05,,S
307 | 306,1,1,"Allison, Master. Hudson Trevor",male,0.92,1,2,113781,151.55,C22 C26,S
308 | 307,1,1,"Fleming, Miss. Margaret",female,,0,0,17421,110.8833,,C
309 | 308,1,1,"Penasco y Castellana, Mrs. Victor de Satode (Maria Josefa Perez de Soto y Vallejo)",female,17,1,0,PC 17758,108.9,C65,C
310 | 309,0,2,"Abelson, Mr. Samuel",male,30,1,0,P/PP 3381,24,,C
311 | 310,1,1,"Francatelli, Miss. Laura Mabel",female,30,0,0,PC 17485,56.9292,E36,C
312 | 311,1,1,"Hays, Miss. Margaret Bechstein",female,24,0,0,11767,83.1583,C54,C
313 | 312,1,1,"Ryerson, Miss. Emily Borie",female,18,2,2,PC 17608,262.375,B57 B59 B63 B66,C
314 | 313,0,2,"Lahtinen, Mrs. William (Anna Sylfven)",female,26,1,1,250651,26,,S
315 | 314,0,3,"Hendekovic, Mr. Ignjac",male,28,0,0,349243,7.8958,,S
316 | 315,0,2,"Hart, Mr. Benjamin",male,43,1,1,F.C.C. 13529,26.25,,S
317 | 316,1,3,"Nilsson, Miss. Helmina Josefina",female,26,0,0,347470,7.8542,,S
318 | 317,1,2,"Kantor, Mrs. Sinai (Miriam Sternin)",female,24,1,0,244367,26,,S
319 | 318,0,2,"Moraweck, Dr. Ernest",male,54,0,0,29011,14,,S
320 | 319,1,1,"Wick, Miss. Mary Natalie",female,31,0,2,36928,164.8667,C7,S
321 | 320,1,1,"Spedden, Mrs. Frederic Oakley (Margaretta Corning Stone)",female,40,1,1,16966,134.5,E34,C
322 | 321,0,3,"Dennis, Mr. Samuel",male,22,0,0,A/5 21172,7.25,,S
323 | 322,0,3,"Danoff, Mr. Yoto",male,27,0,0,349219,7.8958,,S
324 | 323,1,2,"Slayter, Miss. Hilda Mary",female,30,0,0,234818,12.35,,Q
325 | 324,1,2,"Caldwell, Mrs. Albert Francis (Sylvia Mae Harbaugh)",female,22,1,1,248738,29,,S
326 | 325,0,3,"Sage, Mr. George John Jr",male,,8,2,CA. 2343,69.55,,S
327 | 326,1,1,"Young, Miss. Marie Grice",female,36,0,0,PC 17760,135.6333,C32,C
328 | 327,0,3,"Nysveen, Mr. Johan Hansen",male,61,0,0,345364,6.2375,,S
329 | 328,1,2,"Ball, Mrs. (Ada E Hall)",female,36,0,0,28551,13,D,S
330 | 329,1,3,"Goldsmith, Mrs. Frank John (Emily Alice Brown)",female,31,1,1,363291,20.525,,S
331 | 330,1,1,"Hippach, Miss. Jean Gertrude",female,16,0,1,111361,57.9792,B18,C
332 | 331,1,3,"McCoy, Miss. Agnes",female,,2,0,367226,23.25,,Q
333 | 332,0,1,"Partner, Mr. Austen",male,45.5,0,0,113043,28.5,C124,S
334 | 333,0,1,"Graham, Mr. George Edward",male,38,0,1,PC 17582,153.4625,C91,S
335 | 334,0,3,"Vander Planke, Mr. Leo Edmondus",male,16,2,0,345764,18,,S
336 | 335,1,1,"Frauenthal, Mrs. Henry William (Clara Heinsheimer)",female,,1,0,PC 17611,133.65,,S
337 | 336,0,3,"Denkoff, Mr. Mitto",male,,0,0,349225,7.8958,,S
338 | 337,0,1,"Pears, Mr. Thomas Clinton",male,29,1,0,113776,66.6,C2,S
339 | 338,1,1,"Burns, Miss. Elizabeth Margaret",female,41,0,0,16966,134.5,E40,C
340 | 339,1,3,"Dahl, Mr. Karl Edwart",male,45,0,0,7598,8.05,,S
341 | 340,0,1,"Blackwell, Mr. Stephen Weart",male,45,0,0,113784,35.5,T,S
342 | 341,1,2,"Navratil, Master. Edmond Roger",male,2,1,1,230080,26,F2,S
343 | 342,1,1,"Fortune, Miss. Alice Elizabeth",female,24,3,2,19950,263,C23 C25 C27,S
344 | 343,0,2,"Collander, Mr. Erik Gustaf",male,28,0,0,248740,13,,S
345 | 344,0,2,"Sedgwick, Mr. Charles Frederick Waddington",male,25,0,0,244361,13,,S
346 | 345,0,2,"Fox, Mr. Stanley Hubert",male,36,0,0,229236,13,,S
347 | 346,1,2,"Brown, Miss. Amelia ""Mildred""",female,24,0,0,248733,13,F33,S
348 | 347,1,2,"Smith, Miss. Marion Elsie",female,40,0,0,31418,13,,S
349 | 348,1,3,"Davison, Mrs. Thomas Henry (Mary E Finck)",female,,1,0,386525,16.1,,S
350 | 349,1,3,"Coutts, Master. William Loch ""William""",male,3,1,1,C.A. 37671,15.9,,S
351 | 350,0,3,"Dimic, Mr. Jovan",male,42,0,0,315088,8.6625,,S
352 | 351,0,3,"Odahl, Mr. Nils Martin",male,23,0,0,7267,9.225,,S
353 | 352,0,1,"Williams-Lambert, Mr. Fletcher Fellows",male,,0,0,113510,35,C128,S
354 | 353,0,3,"Elias, Mr. Tannous",male,15,1,1,2695,7.2292,,C
355 | 354,0,3,"Arnold-Franchi, Mr. Josef",male,25,1,0,349237,17.8,,S
356 | 355,0,3,"Yousif, Mr. Wazli",male,,0,0,2647,7.225,,C
357 | 356,0,3,"Vanden Steen, Mr. Leo Peter",male,28,0,0,345783,9.5,,S
358 | 357,1,1,"Bowerman, Miss. Elsie Edith",female,22,0,1,113505,55,E33,S
359 | 358,0,2,"Funk, Miss. Annie Clemmer",female,38,0,0,237671,13,,S
360 | 359,1,3,"McGovern, Miss. Mary",female,,0,0,330931,7.8792,,Q
361 | 360,1,3,"Mockler, Miss. Helen Mary ""Ellie""",female,,0,0,330980,7.8792,,Q
362 | 361,0,3,"Skoog, Mr. Wilhelm",male,40,1,4,347088,27.9,,S
363 | 362,0,2,"del Carlo, Mr. Sebastiano",male,29,1,0,SC/PARIS 2167,27.7208,,C
364 | 363,0,3,"Barbara, Mrs. (Catherine David)",female,45,0,1,2691,14.4542,,C
365 | 364,0,3,"Asim, Mr. Adola",male,35,0,0,SOTON/O.Q. 3101310,7.05,,S
366 | 365,0,3,"O'Brien, Mr. Thomas",male,,1,0,370365,15.5,,Q
367 | 366,0,3,"Adahl, Mr. Mauritz Nils Martin",male,30,0,0,C 7076,7.25,,S
368 | 367,1,1,"Warren, Mrs. Frank Manley (Anna Sophia Atkinson)",female,60,1,0,110813,75.25,D37,C
369 | 368,1,3,"Moussa, Mrs. (Mantoura Boulos)",female,,0,0,2626,7.2292,,C
370 | 369,1,3,"Jermyn, Miss. Annie",female,,0,0,14313,7.75,,Q
371 | 370,1,1,"Aubart, Mme. Leontine Pauline",female,24,0,0,PC 17477,69.3,B35,C
372 | 371,1,1,"Harder, Mr. George Achilles",male,25,1,0,11765,55.4417,E50,C
373 | 372,0,3,"Wiklund, Mr. Jakob Alfred",male,18,1,0,3101267,6.4958,,S
374 | 373,0,3,"Beavan, Mr. William Thomas",male,19,0,0,323951,8.05,,S
375 | 374,0,1,"Ringhini, Mr. Sante",male,22,0,0,PC 17760,135.6333,,C
376 | 375,0,3,"Palsson, Miss. Stina Viola",female,3,3,1,349909,21.075,,S
377 | 376,1,1,"Meyer, Mrs. Edgar Joseph (Leila Saks)",female,,1,0,PC 17604,82.1708,,C
378 | 377,1,3,"Landergren, Miss. Aurora Adelia",female,22,0,0,C 7077,7.25,,S
379 | 378,0,1,"Widener, Mr. Harry Elkins",male,27,0,2,113503,211.5,C82,C
380 | 379,0,3,"Betros, Mr. Tannous",male,20,0,0,2648,4.0125,,C
381 | 380,0,3,"Gustafsson, Mr. Karl Gideon",male,19,0,0,347069,7.775,,S
382 | 381,1,1,"Bidois, Miss. Rosalie",female,42,0,0,PC 17757,227.525,,C
383 | 382,1,3,"Nakid, Miss. Maria (""Mary"")",female,1,0,2,2653,15.7417,,C
384 | 383,0,3,"Tikkanen, Mr. Juho",male,32,0,0,STON/O 2. 3101293,7.925,,S
385 | 384,1,1,"Holverson, Mrs. Alexander Oskar (Mary Aline Towner)",female,35,1,0,113789,52,,S
386 | 385,0,3,"Plotcharsky, Mr. Vasil",male,,0,0,349227,7.8958,,S
387 | 386,0,2,"Davies, Mr. Charles Henry",male,18,0,0,S.O.C. 14879,73.5,,S
388 | 387,0,3,"Goodwin, Master. Sidney Leonard",male,1,5,2,CA 2144,46.9,,S
389 | 388,1,2,"Buss, Miss. Kate",female,36,0,0,27849,13,,S
390 | 389,0,3,"Sadlier, Mr. Matthew",male,,0,0,367655,7.7292,,Q
391 | 390,1,2,"Lehmann, Miss. Bertha",female,17,0,0,SC 1748,12,,C
392 | 391,1,1,"Carter, Mr. William Ernest",male,36,1,2,113760,120,B96 B98,S
393 | 392,1,3,"Jansson, Mr. Carl Olof",male,21,0,0,350034,7.7958,,S
394 | 393,0,3,"Gustafsson, Mr. Johan Birger",male,28,2,0,3101277,7.925,,S
395 | 394,1,1,"Newell, Miss. Marjorie",female,23,1,0,35273,113.275,D36,C
396 | 395,1,3,"Sandstrom, Mrs. Hjalmar (Agnes Charlotta Bengtsson)",female,24,0,2,PP 9549,16.7,G6,S
397 | 396,0,3,"Johansson, Mr. Erik",male,22,0,0,350052,7.7958,,S
398 | 397,0,3,"Olsson, Miss. Elina",female,31,0,0,350407,7.8542,,S
399 | 398,0,2,"McKane, Mr. Peter David",male,46,0,0,28403,26,,S
400 | 399,0,2,"Pain, Dr. Alfred",male,23,0,0,244278,10.5,,S
401 | 400,1,2,"Trout, Mrs. William H (Jessie L)",female,28,0,0,240929,12.65,,S
402 | 401,1,3,"Niskanen, Mr. Juha",male,39,0,0,STON/O 2. 3101289,7.925,,S
403 | 402,0,3,"Adams, Mr. John",male,26,0,0,341826,8.05,,S
404 | 403,0,3,"Jussila, Miss. Mari Aina",female,21,1,0,4137,9.825,,S
405 | 404,0,3,"Hakkarainen, Mr. Pekka Pietari",male,28,1,0,STON/O2. 3101279,15.85,,S
406 | 405,0,3,"Oreskovic, Miss. Marija",female,20,0,0,315096,8.6625,,S
407 | 406,0,2,"Gale, Mr. Shadrach",male,34,1,0,28664,21,,S
408 | 407,0,3,"Widegren, Mr. Carl/Charles Peter",male,51,0,0,347064,7.75,,S
409 | 408,1,2,"Richards, Master. William Rowe",male,3,1,1,29106,18.75,,S
410 | 409,0,3,"Birkeland, Mr. Hans Martin Monsen",male,21,0,0,312992,7.775,,S
411 | 410,0,3,"Lefebre, Miss. Ida",female,,3,1,4133,25.4667,,S
412 | 411,0,3,"Sdycoff, Mr. Todor",male,,0,0,349222,7.8958,,S
413 | 412,0,3,"Hart, Mr. Henry",male,,0,0,394140,6.8583,,Q
414 | 413,1,1,"Minahan, Miss. Daisy E",female,33,1,0,19928,90,C78,Q
415 | 414,0,2,"Cunningham, Mr. Alfred Fleming",male,,0,0,239853,0,,S
416 | 415,1,3,"Sundman, Mr. Johan Julian",male,44,0,0,STON/O 2. 3101269,7.925,,S
417 | 416,0,3,"Meek, Mrs. Thomas (Annie Louise Rowley)",female,,0,0,343095,8.05,,S
418 | 417,1,2,"Drew, Mrs. James Vivian (Lulu Thorne Christian)",female,34,1,1,28220,32.5,,S
419 | 418,1,2,"Silven, Miss. Lyyli Karoliina",female,18,0,2,250652,13,,S
420 | 419,0,2,"Matthews, Mr. William John",male,30,0,0,28228,13,,S
421 | 420,0,3,"Van Impe, Miss. Catharina",female,10,0,2,345773,24.15,,S
422 | 421,0,3,"Gheorgheff, Mr. Stanio",male,,0,0,349254,7.8958,,C
423 | 422,0,3,"Charters, Mr. David",male,21,0,0,A/5. 13032,7.7333,,Q
424 | 423,0,3,"Zimmerman, Mr. Leo",male,29,0,0,315082,7.875,,S
425 | 424,0,3,"Danbom, Mrs. Ernst Gilbert (Anna Sigrid Maria Brogren)",female,28,1,1,347080,14.4,,S
426 | 425,0,3,"Rosblom, Mr. Viktor Richard",male,18,1,1,370129,20.2125,,S
427 | 426,0,3,"Wiseman, Mr. Phillippe",male,,0,0,A/4. 34244,7.25,,S
428 | 427,1,2,"Clarke, Mrs. Charles V (Ada Maria Winfield)",female,28,1,0,2003,26,,S
429 | 428,1,2,"Phillips, Miss. Kate Florence (""Mrs Kate Louise Phillips Marshall"")",female,19,0,0,250655,26,,S
430 | 429,0,3,"Flynn, Mr. James",male,,0,0,364851,7.75,,Q
431 | 430,1,3,"Pickard, Mr. Berk (Berk Trembisky)",male,32,0,0,SOTON/O.Q. 392078,8.05,E10,S
432 | 431,1,1,"Bjornstrom-Steffansson, Mr. Mauritz Hakan",male,28,0,0,110564,26.55,C52,S
433 | 432,1,3,"Thorneycroft, Mrs. Percival (Florence Kate White)",female,,1,0,376564,16.1,,S
434 | 433,1,2,"Louch, Mrs. Charles Alexander (Alice Adelaide Slow)",female,42,1,0,SC/AH 3085,26,,S
435 | 434,0,3,"Kallio, Mr. Nikolai Erland",male,17,0,0,STON/O 2. 3101274,7.125,,S
436 | 435,0,1,"Silvey, Mr. William Baird",male,50,1,0,13507,55.9,E44,S
437 | 436,1,1,"Carter, Miss. Lucile Polk",female,14,1,2,113760,120,B96 B98,S
438 | 437,0,3,"Ford, Miss. Doolina Margaret ""Daisy""",female,21,2,2,W./C. 6608,34.375,,S
439 | 438,1,2,"Richards, Mrs. Sidney (Emily Hocking)",female,24,2,3,29106,18.75,,S
440 | 439,0,1,"Fortune, Mr. Mark",male,64,1,4,19950,263,C23 C25 C27,S
441 | 440,0,2,"Kvillner, Mr. Johan Henrik Johannesson",male,31,0,0,C.A. 18723,10.5,,S
442 | 441,1,2,"Hart, Mrs. Benjamin (Esther Ada Bloomfield)",female,45,1,1,F.C.C. 13529,26.25,,S
443 | 442,0,3,"Hampe, Mr. Leon",male,20,0,0,345769,9.5,,S
444 | 443,0,3,"Petterson, Mr. Johan Emil",male,25,1,0,347076,7.775,,S
445 | 444,1,2,"Reynaldo, Ms. Encarnacion",female,28,0,0,230434,13,,S
446 | 445,1,3,"Johannesen-Bratthammer, Mr. Bernt",male,,0,0,65306,8.1125,,S
447 | 446,1,1,"Dodge, Master. Washington",male,4,0,2,33638,81.8583,A34,S
448 | 447,1,2,"Mellinger, Miss. Madeleine Violet",female,13,0,1,250644,19.5,,S
449 | 448,1,1,"Seward, Mr. Frederic Kimber",male,34,0,0,113794,26.55,,S
450 | 449,1,3,"Baclini, Miss. Marie Catherine",female,5,2,1,2666,19.2583,,C
451 | 450,1,1,"Peuchen, Major. Arthur Godfrey",male,52,0,0,113786,30.5,C104,S
452 | 451,0,2,"West, Mr. Edwy Arthur",male,36,1,2,C.A. 34651,27.75,,S
453 | 452,0,3,"Hagland, Mr. Ingvald Olai Olsen",male,,1,0,65303,19.9667,,S
454 | 453,0,1,"Foreman, Mr. Benjamin Laventall",male,30,0,0,113051,27.75,C111,C
455 | 454,1,1,"Goldenberg, Mr. Samuel L",male,49,1,0,17453,89.1042,C92,C
456 | 455,0,3,"Peduzzi, Mr. Joseph",male,,0,0,A/5 2817,8.05,,S
457 | 456,1,3,"Jalsevac, Mr. Ivan",male,29,0,0,349240,7.8958,,C
458 | 457,0,1,"Millet, Mr. Francis Davis",male,65,0,0,13509,26.55,E38,S
459 | 458,1,1,"Kenyon, Mrs. Frederick R (Marion)",female,,1,0,17464,51.8625,D21,S
460 | 459,1,2,"Toomey, Miss. Ellen",female,50,0,0,F.C.C. 13531,10.5,,S
461 | 460,0,3,"O'Connor, Mr. Maurice",male,,0,0,371060,7.75,,Q
462 | 461,1,1,"Anderson, Mr. Harry",male,48,0,0,19952,26.55,E12,S
463 | 462,0,3,"Morley, Mr. William",male,34,0,0,364506,8.05,,S
464 | 463,0,1,"Gee, Mr. Arthur H",male,47,0,0,111320,38.5,E63,S
465 | 464,0,2,"Milling, Mr. Jacob Christian",male,48,0,0,234360,13,,S
466 | 465,0,3,"Maisner, Mr. Simon",male,,0,0,A/S 2816,8.05,,S
467 | 466,0,3,"Goncalves, Mr. Manuel Estanslas",male,38,0,0,SOTON/O.Q. 3101306,7.05,,S
468 | 467,0,2,"Campbell, Mr. William",male,,0,0,239853,0,,S
469 | 468,0,1,"Smart, Mr. John Montgomery",male,56,0,0,113792,26.55,,S
470 | 469,0,3,"Scanlan, Mr. James",male,,0,0,36209,7.725,,Q
471 | 470,1,3,"Baclini, Miss. Helene Barbara",female,0.75,2,1,2666,19.2583,,C
472 | 471,0,3,"Keefe, Mr. Arthur",male,,0,0,323592,7.25,,S
473 | 472,0,3,"Cacic, Mr. Luka",male,38,0,0,315089,8.6625,,S
474 | 473,1,2,"West, Mrs. Edwy Arthur (Ada Mary Worth)",female,33,1,2,C.A. 34651,27.75,,S
475 | 474,1,2,"Jerwan, Mrs. Amin S (Marie Marthe Thuillard)",female,23,0,0,SC/AH Basle 541,13.7917,D,C
476 | 475,0,3,"Strandberg, Miss. Ida Sofia",female,22,0,0,7553,9.8375,,S
477 | 476,0,1,"Clifford, Mr. George Quincy",male,,0,0,110465,52,A14,S
478 | 477,0,2,"Renouf, Mr. Peter Henry",male,34,1,0,31027,21,,S
479 | 478,0,3,"Braund, Mr. Lewis Richard",male,29,1,0,3460,7.0458,,S
480 | 479,0,3,"Karlsson, Mr. Nils August",male,22,0,0,350060,7.5208,,S
481 | 480,1,3,"Hirvonen, Miss. Hildur E",female,2,0,1,3101298,12.2875,,S
482 | 481,0,3,"Goodwin, Master. Harold Victor",male,9,5,2,CA 2144,46.9,,S
483 | 482,0,2,"Frost, Mr. Anthony Wood ""Archie""",male,,0,0,239854,0,,S
484 | 483,0,3,"Rouse, Mr. Richard Henry",male,50,0,0,A/5 3594,8.05,,S
485 | 484,1,3,"Turkula, Mrs. (Hedwig)",female,63,0,0,4134,9.5875,,S
486 | 485,1,1,"Bishop, Mr. Dickinson H",male,25,1,0,11967,91.0792,B49,C
487 | 486,0,3,"Lefebre, Miss. Jeannie",female,,3,1,4133,25.4667,,S
488 | 487,1,1,"Hoyt, Mrs. Frederick Maxfield (Jane Anne Forby)",female,35,1,0,19943,90,C93,S
489 | 488,0,1,"Kent, Mr. Edward Austin",male,58,0,0,11771,29.7,B37,C
490 | 489,0,3,"Somerton, Mr. Francis William",male,30,0,0,A.5. 18509,8.05,,S
491 | 490,1,3,"Coutts, Master. Eden Leslie ""Neville""",male,9,1,1,C.A. 37671,15.9,,S
492 | 491,0,3,"Hagland, Mr. Konrad Mathias Reiersen",male,,1,0,65304,19.9667,,S
493 | 492,0,3,"Windelov, Mr. Einar",male,21,0,0,SOTON/OQ 3101317,7.25,,S
494 | 493,0,1,"Molson, Mr. Harry Markland",male,55,0,0,113787,30.5,C30,S
495 | 494,0,1,"Artagaveytia, Mr. Ramon",male,71,0,0,PC 17609,49.5042,,C
496 | 495,0,3,"Stanley, Mr. Edward Roland",male,21,0,0,A/4 45380,8.05,,S
497 | 496,0,3,"Yousseff, Mr. Gerious",male,,0,0,2627,14.4583,,C
498 | 497,1,1,"Eustis, Miss. Elizabeth Mussey",female,54,1,0,36947,78.2667,D20,C
499 | 498,0,3,"Shellard, Mr. Frederick William",male,,0,0,C.A. 6212,15.1,,S
500 | 499,0,1,"Allison, Mrs. Hudson J C (Bessie Waldo Daniels)",female,25,1,2,113781,151.55,C22 C26,S
501 | 500,0,3,"Svensson, Mr. Olof",male,24,0,0,350035,7.7958,,S
502 | 501,0,3,"Calic, Mr. Petar",male,17,0,0,315086,8.6625,,S
503 | 502,0,3,"Canavan, Miss. Mary",female,21,0,0,364846,7.75,,Q
504 | 503,0,3,"O'Sullivan, Miss. Bridget Mary",female,,0,0,330909,7.6292,,Q
505 | 504,0,3,"Laitinen, Miss. Kristina Sofia",female,37,0,0,4135,9.5875,,S
506 | 505,1,1,"Maioni, Miss. Roberta",female,16,0,0,110152,86.5,B79,S
507 | 506,0,1,"Penasco y Castellana, Mr. Victor de Satode",male,18,1,0,PC 17758,108.9,C65,C
508 | 507,1,2,"Quick, Mrs. Frederick Charles (Jane Richards)",female,33,0,2,26360,26,,S
509 | 508,1,1,"Bradley, Mr. George (""George Arthur Brayton"")",male,,0,0,111427,26.55,,S
510 | 509,0,3,"Olsen, Mr. Henry Margido",male,28,0,0,C 4001,22.525,,S
511 | 510,1,3,"Lang, Mr. Fang",male,26,0,0,1601,56.4958,,S
512 | 511,1,3,"Daly, Mr. Eugene Patrick",male,29,0,0,382651,7.75,,Q
513 | 512,0,3,"Webber, Mr. James",male,,0,0,SOTON/OQ 3101316,8.05,,S
514 | 513,1,1,"McGough, Mr. James Robert",male,36,0,0,PC 17473,26.2875,E25,S
515 | 514,1,1,"Rothschild, Mrs. Martin (Elizabeth L. Barrett)",female,54,1,0,PC 17603,59.4,,C
516 | 515,0,3,"Coleff, Mr. Satio",male,24,0,0,349209,7.4958,,S
517 | 516,0,1,"Walker, Mr. William Anderson",male,47,0,0,36967,34.0208,D46,S
518 | 517,1,2,"Lemore, Mrs. (Amelia Milley)",female,34,0,0,C.A. 34260,10.5,F33,S
519 | 518,0,3,"Ryan, Mr. Patrick",male,,0,0,371110,24.15,,Q
520 | 519,1,2,"Angle, Mrs. William A (Florence ""Mary"" Agnes Hughes)",female,36,1,0,226875,26,,S
521 | 520,0,3,"Pavlovic, Mr. Stefo",male,32,0,0,349242,7.8958,,S
522 | 521,1,1,"Perreault, Miss. Anne",female,30,0,0,12749,93.5,B73,S
523 | 522,0,3,"Vovk, Mr. Janko",male,22,0,0,349252,7.8958,,S
524 | 523,0,3,"Lahoud, Mr. Sarkis",male,,0,0,2624,7.225,,C
525 | 524,1,1,"Hippach, Mrs. Louis Albert (Ida Sophia Fischer)",female,44,0,1,111361,57.9792,B18,C
526 | 525,0,3,"Kassem, Mr. Fared",male,,0,0,2700,7.2292,,C
527 | 526,0,3,"Farrell, Mr. James",male,40.5,0,0,367232,7.75,,Q
528 | 527,1,2,"Ridsdale, Miss. Lucy",female,50,0,0,W./C. 14258,10.5,,S
529 | 528,0,1,"Farthing, Mr. John",male,,0,0,PC 17483,221.7792,C95,S
530 | 529,0,3,"Salonen, Mr. Johan Werner",male,39,0,0,3101296,7.925,,S
531 | 530,0,2,"Hocking, Mr. Richard George",male,23,2,1,29104,11.5,,S
532 | 531,1,2,"Quick, Miss. Phyllis May",female,2,1,1,26360,26,,S
533 | 532,0,3,"Toufik, Mr. Nakli",male,,0,0,2641,7.2292,,C
534 | 533,0,3,"Elias, Mr. Joseph Jr",male,17,1,1,2690,7.2292,,C
535 | 534,1,3,"Peter, Mrs. Catherine (Catherine Rizk)",female,,0,2,2668,22.3583,,C
536 | 535,0,3,"Cacic, Miss. Marija",female,30,0,0,315084,8.6625,,S
537 | 536,1,2,"Hart, Miss. Eva Miriam",female,7,0,2,F.C.C. 13529,26.25,,S
538 | 537,0,1,"Butt, Major. Archibald Willingham",male,45,0,0,113050,26.55,B38,S
539 | 538,1,1,"LeRoy, Miss. Bertha",female,30,0,0,PC 17761,106.425,,C
540 | 539,0,3,"Risien, Mr. Samuel Beard",male,,0,0,364498,14.5,,S
541 | 540,1,1,"Frolicher, Miss. Hedwig Margaritha",female,22,0,2,13568,49.5,B39,C
542 | 541,1,1,"Crosby, Miss. Harriet R",female,36,0,2,WE/P 5735,71,B22,S
543 | 542,0,3,"Andersson, Miss. Ingeborg Constanzia",female,9,4,2,347082,31.275,,S
544 | 543,0,3,"Andersson, Miss. Sigrid Elisabeth",female,11,4,2,347082,31.275,,S
545 | 544,1,2,"Beane, Mr. Edward",male,32,1,0,2908,26,,S
546 | 545,0,1,"Douglas, Mr. Walter Donald",male,50,1,0,PC 17761,106.425,C86,C
547 | 546,0,1,"Nicholson, Mr. Arthur Ernest",male,64,0,0,693,26,,S
548 | 547,1,2,"Beane, Mrs. Edward (Ethel Clarke)",female,19,1,0,2908,26,,S
549 | 548,1,2,"Padro y Manent, Mr. Julian",male,,0,0,SC/PARIS 2146,13.8625,,C
550 | 549,0,3,"Goldsmith, Mr. Frank John",male,33,1,1,363291,20.525,,S
551 | 550,1,2,"Davies, Master. John Morgan Jr",male,8,1,1,C.A. 33112,36.75,,S
552 | 551,1,1,"Thayer, Mr. John Borland Jr",male,17,0,2,17421,110.8833,C70,C
553 | 552,0,2,"Sharp, Mr. Percival James R",male,27,0,0,244358,26,,S
554 | 553,0,3,"O'Brien, Mr. Timothy",male,,0,0,330979,7.8292,,Q
555 | 554,1,3,"Leeni, Mr. Fahim (""Philip Zenni"")",male,22,0,0,2620,7.225,,C
556 | 555,1,3,"Ohman, Miss. Velin",female,22,0,0,347085,7.775,,S
557 | 556,0,1,"Wright, Mr. George",male,62,0,0,113807,26.55,,S
558 | 557,1,1,"Duff Gordon, Lady. (Lucille Christiana Sutherland) (""Mrs Morgan"")",female,48,1,0,11755,39.6,A16,C
559 | 558,0,1,"Robbins, Mr. Victor",male,,0,0,PC 17757,227.525,,C
560 | 559,1,1,"Taussig, Mrs. Emil (Tillie Mandelbaum)",female,39,1,1,110413,79.65,E67,S
561 | 560,1,3,"de Messemaeker, Mrs. Guillaume Joseph (Emma)",female,36,1,0,345572,17.4,,S
562 | 561,0,3,"Morrow, Mr. Thomas Rowan",male,,0,0,372622,7.75,,Q
563 | 562,0,3,"Sivic, Mr. Husein",male,40,0,0,349251,7.8958,,S
564 | 563,0,2,"Norman, Mr. Robert Douglas",male,28,0,0,218629,13.5,,S
565 | 564,0,3,"Simmons, Mr. John",male,,0,0,SOTON/OQ 392082,8.05,,S
566 | 565,0,3,"Meanwell, Miss. (Marion Ogden)",female,,0,0,SOTON/O.Q. 392087,8.05,,S
567 | 566,0,3,"Davies, Mr. Alfred J",male,24,2,0,A/4 48871,24.15,,S
568 | 567,0,3,"Stoytcheff, Mr. Ilia",male,19,0,0,349205,7.8958,,S
569 | 568,0,3,"Palsson, Mrs. Nils (Alma Cornelia Berglund)",female,29,0,4,349909,21.075,,S
570 | 569,0,3,"Doharr, Mr. Tannous",male,,0,0,2686,7.2292,,C
571 | 570,1,3,"Jonsson, Mr. Carl",male,32,0,0,350417,7.8542,,S
572 | 571,1,2,"Harris, Mr. George",male,62,0,0,S.W./PP 752,10.5,,S
573 | 572,1,1,"Appleton, Mrs. Edward Dale (Charlotte Lamson)",female,53,2,0,11769,51.4792,C101,S
574 | 573,1,1,"Flynn, Mr. John Irwin (""Irving"")",male,36,0,0,PC 17474,26.3875,E25,S
575 | 574,1,3,"Kelly, Miss. Mary",female,,0,0,14312,7.75,,Q
576 | 575,0,3,"Rush, Mr. Alfred George John",male,16,0,0,A/4. 20589,8.05,,S
577 | 576,0,3,"Patchett, Mr. George",male,19,0,0,358585,14.5,,S
578 | 577,1,2,"Garside, Miss. Ethel",female,34,0,0,243880,13,,S
579 | 578,1,1,"Silvey, Mrs. William Baird (Alice Munger)",female,39,1,0,13507,55.9,E44,S
580 | 579,0,3,"Caram, Mrs. Joseph (Maria Elias)",female,,1,0,2689,14.4583,,C
581 | 580,1,3,"Jussila, Mr. Eiriik",male,32,0,0,STON/O 2. 3101286,7.925,,S
582 | 581,1,2,"Christy, Miss. Julie Rachel",female,25,1,1,237789,30,,S
583 | 582,1,1,"Thayer, Mrs. John Borland (Marian Longstreth Morris)",female,39,1,1,17421,110.8833,C68,C
584 | 583,0,2,"Downton, Mr. William James",male,54,0,0,28403,26,,S
585 | 584,0,1,"Ross, Mr. John Hugo",male,36,0,0,13049,40.125,A10,C
586 | 585,0,3,"Paulner, Mr. Uscher",male,,0,0,3411,8.7125,,C
587 | 586,1,1,"Taussig, Miss. Ruth",female,18,0,2,110413,79.65,E68,S
588 | 587,0,2,"Jarvis, Mr. John Denzil",male,47,0,0,237565,15,,S
589 | 588,1,1,"Frolicher-Stehli, Mr. Maxmillian",male,60,1,1,13567,79.2,B41,C
590 | 589,0,3,"Gilinski, Mr. Eliezer",male,22,0,0,14973,8.05,,S
591 | 590,0,3,"Murdlin, Mr. Joseph",male,,0,0,A./5. 3235,8.05,,S
592 | 591,0,3,"Rintamaki, Mr. Matti",male,35,0,0,STON/O 2. 3101273,7.125,,S
593 | 592,1,1,"Stephenson, Mrs. Walter Bertram (Martha Eustis)",female,52,1,0,36947,78.2667,D20,C
594 | 593,0,3,"Elsbury, Mr. William James",male,47,0,0,A/5 3902,7.25,,S
595 | 594,0,3,"Bourke, Miss. Mary",female,,0,2,364848,7.75,,Q
596 | 595,0,2,"Chapman, Mr. John Henry",male,37,1,0,SC/AH 29037,26,,S
597 | 596,0,3,"Van Impe, Mr. Jean Baptiste",male,36,1,1,345773,24.15,,S
598 | 597,1,2,"Leitch, Miss. Jessie Wills",female,,0,0,248727,33,,S
599 | 598,0,3,"Johnson, Mr. Alfred",male,49,0,0,LINE,0,,S
600 | 599,0,3,"Boulos, Mr. Hanna",male,,0,0,2664,7.225,,C
601 | 600,1,1,"Duff Gordon, Sir. Cosmo Edmund (""Mr Morgan"")",male,49,1,0,PC 17485,56.9292,A20,C
602 | 601,1,2,"Jacobsohn, Mrs. Sidney Samuel (Amy Frances Christy)",female,24,2,1,243847,27,,S
603 | 602,0,3,"Slabenoff, Mr. Petco",male,,0,0,349214,7.8958,,S
604 | 603,0,1,"Harrington, Mr. Charles H",male,,0,0,113796,42.4,,S
605 | 604,0,3,"Torber, Mr. Ernst William",male,44,0,0,364511,8.05,,S
606 | 605,1,1,"Homer, Mr. Harry (""Mr E Haven"")",male,35,0,0,111426,26.55,,C
607 | 606,0,3,"Lindell, Mr. Edvard Bengtsson",male,36,1,0,349910,15.55,,S
608 | 607,0,3,"Karaic, Mr. Milan",male,30,0,0,349246,7.8958,,S
609 | 608,1,1,"Daniel, Mr. Robert Williams",male,27,0,0,113804,30.5,,S
610 | 609,1,2,"Laroche, Mrs. Joseph (Juliette Marie Louise Lafargue)",female,22,1,2,SC/Paris 2123,41.5792,,C
611 | 610,1,1,"Shutes, Miss. Elizabeth W",female,40,0,0,PC 17582,153.4625,C125,S
612 | 611,0,3,"Andersson, Mrs. Anders Johan (Alfrida Konstantia Brogren)",female,39,1,5,347082,31.275,,S
613 | 612,0,3,"Jardin, Mr. Jose Neto",male,,0,0,SOTON/O.Q. 3101305,7.05,,S
614 | 613,1,3,"Murphy, Miss. Margaret Jane",female,,1,0,367230,15.5,,Q
615 | 614,0,3,"Horgan, Mr. John",male,,0,0,370377,7.75,,Q
616 | 615,0,3,"Brocklebank, Mr. William Alfred",male,35,0,0,364512,8.05,,S
617 | 616,1,2,"Herman, Miss. Alice",female,24,1,2,220845,65,,S
618 | 617,0,3,"Danbom, Mr. Ernst Gilbert",male,34,1,1,347080,14.4,,S
619 | 618,0,3,"Lobb, Mrs. William Arthur (Cordelia K Stanlick)",female,26,1,0,A/5. 3336,16.1,,S
620 | 619,1,2,"Becker, Miss. Marion Louise",female,4,2,1,230136,39,F4,S
621 | 620,0,2,"Gavey, Mr. Lawrence",male,26,0,0,31028,10.5,,S
622 | 621,0,3,"Yasbeck, Mr. Antoni",male,27,1,0,2659,14.4542,,C
623 | 622,1,1,"Kimball, Mr. Edwin Nelson Jr",male,42,1,0,11753,52.5542,D19,S
624 | 623,1,3,"Nakid, Mr. Sahid",male,20,1,1,2653,15.7417,,C
625 | 624,0,3,"Hansen, Mr. Henry Damsgaard",male,21,0,0,350029,7.8542,,S
626 | 625,0,3,"Bowen, Mr. David John ""Dai""",male,21,0,0,54636,16.1,,S
627 | 626,0,1,"Sutton, Mr. Frederick",male,61,0,0,36963,32.3208,D50,S
628 | 627,0,2,"Kirkland, Rev. Charles Leonard",male,57,0,0,219533,12.35,,Q
629 | 628,1,1,"Longley, Miss. Gretchen Fiske",female,21,0,0,13502,77.9583,D9,S
630 | 629,0,3,"Bostandyeff, Mr. Guentcho",male,26,0,0,349224,7.8958,,S
631 | 630,0,3,"O'Connell, Mr. Patrick D",male,,0,0,334912,7.7333,,Q
632 | 631,1,1,"Barkworth, Mr. Algernon Henry Wilson",male,80,0,0,27042,30,A23,S
633 | 632,0,3,"Lundahl, Mr. Johan Svensson",male,51,0,0,347743,7.0542,,S
634 | 633,1,1,"Stahelin-Maeglin, Dr. Max",male,32,0,0,13214,30.5,B50,C
635 | 634,0,1,"Parr, Mr. William Henry Marsh",male,,0,0,112052,0,,S
636 | 635,0,3,"Skoog, Miss. Mabel",female,9,3,2,347088,27.9,,S
637 | 636,1,2,"Davis, Miss. Mary",female,28,0,0,237668,13,,S
638 | 637,0,3,"Leinonen, Mr. Antti Gustaf",male,32,0,0,STON/O 2. 3101292,7.925,,S
639 | 638,0,2,"Collyer, Mr. Harvey",male,31,1,1,C.A. 31921,26.25,,S
640 | 639,0,3,"Panula, Mrs. Juha (Maria Emilia Ojala)",female,41,0,5,3101295,39.6875,,S
641 | 640,0,3,"Thorneycroft, Mr. Percival",male,,1,0,376564,16.1,,S
642 | 641,0,3,"Jensen, Mr. Hans Peder",male,20,0,0,350050,7.8542,,S
643 | 642,1,1,"Sagesser, Mlle. Emma",female,24,0,0,PC 17477,69.3,B35,C
644 | 643,0,3,"Skoog, Miss. Margit Elizabeth",female,2,3,2,347088,27.9,,S
645 | 644,1,3,"Foo, Mr. Choong",male,,0,0,1601,56.4958,,S
646 | 645,1,3,"Baclini, Miss. Eugenie",female,0.75,2,1,2666,19.2583,,C
647 | 646,1,1,"Harper, Mr. Henry Sleeper",male,48,1,0,PC 17572,76.7292,D33,C
648 | 647,0,3,"Cor, Mr. Liudevit",male,19,0,0,349231,7.8958,,S
649 | 648,1,1,"Simonius-Blumer, Col. Oberst Alfons",male,56,0,0,13213,35.5,A26,C
650 | 649,0,3,"Willey, Mr. Edward",male,,0,0,S.O./P.P. 751,7.55,,S
651 | 650,1,3,"Stanley, Miss. Amy Zillah Elsie",female,23,0,0,CA. 2314,7.55,,S
652 | 651,0,3,"Mitkoff, Mr. Mito",male,,0,0,349221,7.8958,,S
653 | 652,1,2,"Doling, Miss. Elsie",female,18,0,1,231919,23,,S
654 | 653,0,3,"Kalvik, Mr. Johannes Halvorsen",male,21,0,0,8475,8.4333,,S
655 | 654,1,3,"O'Leary, Miss. Hanora ""Norah""",female,,0,0,330919,7.8292,,Q
656 | 655,0,3,"Hegarty, Miss. Hanora ""Nora""",female,18,0,0,365226,6.75,,Q
657 | 656,0,2,"Hickman, Mr. Leonard Mark",male,24,2,0,S.O.C. 14879,73.5,,S
658 | 657,0,3,"Radeff, Mr. Alexander",male,,0,0,349223,7.8958,,S
659 | 658,0,3,"Bourke, Mrs. John (Catherine)",female,32,1,1,364849,15.5,,Q
660 | 659,0,2,"Eitemiller, Mr. George Floyd",male,23,0,0,29751,13,,S
661 | 660,0,1,"Newell, Mr. Arthur Webster",male,58,0,2,35273,113.275,D48,C
662 | 661,1,1,"Frauenthal, Dr. Henry William",male,50,2,0,PC 17611,133.65,,S
663 | 662,0,3,"Badt, Mr. Mohamed",male,40,0,0,2623,7.225,,C
664 | 663,0,1,"Colley, Mr. Edward Pomeroy",male,47,0,0,5727,25.5875,E58,S
665 | 664,0,3,"Coleff, Mr. Peju",male,36,0,0,349210,7.4958,,S
666 | 665,1,3,"Lindqvist, Mr. Eino William",male,20,1,0,STON/O 2. 3101285,7.925,,S
667 | 666,0,2,"Hickman, Mr. Lewis",male,32,2,0,S.O.C. 14879,73.5,,S
668 | 667,0,2,"Butler, Mr. Reginald Fenton",male,25,0,0,234686,13,,S
669 | 668,0,3,"Rommetvedt, Mr. Knud Paust",male,,0,0,312993,7.775,,S
670 | 669,0,3,"Cook, Mr. Jacob",male,43,0,0,A/5 3536,8.05,,S
671 | 670,1,1,"Taylor, Mrs. Elmer Zebley (Juliet Cummins Wright)",female,,1,0,19996,52,C126,S
672 | 671,1,2,"Brown, Mrs. Thomas William Solomon (Elizabeth Catherine Ford)",female,40,1,1,29750,39,,S
673 | 672,0,1,"Davidson, Mr. Thornton",male,31,1,0,F.C. 12750,52,B71,S
674 | 673,0,2,"Mitchell, Mr. Henry Michael",male,70,0,0,C.A. 24580,10.5,,S
675 | 674,1,2,"Wilhelms, Mr. Charles",male,31,0,0,244270,13,,S
676 | 675,0,2,"Watson, Mr. Ennis Hastings",male,,0,0,239856,0,,S
677 | 676,0,3,"Edvardsson, Mr. Gustaf Hjalmar",male,18,0,0,349912,7.775,,S
678 | 677,0,3,"Sawyer, Mr. Frederick Charles",male,24.5,0,0,342826,8.05,,S
679 | 678,1,3,"Turja, Miss. Anna Sofia",female,18,0,0,4138,9.8417,,S
680 | 679,0,3,"Goodwin, Mrs. Frederick (Augusta Tyler)",female,43,1,6,CA 2144,46.9,,S
681 | 680,1,1,"Cardeza, Mr. Thomas Drake Martinez",male,36,0,1,PC 17755,512.3292,B51 B53 B55,C
682 | 681,0,3,"Peters, Miss. Katie",female,,0,0,330935,8.1375,,Q
683 | 682,1,1,"Hassab, Mr. Hammad",male,27,0,0,PC 17572,76.7292,D49,C
684 | 683,0,3,"Olsvigen, Mr. Thor Anderson",male,20,0,0,6563,9.225,,S
685 | 684,0,3,"Goodwin, Mr. Charles Edward",male,14,5,2,CA 2144,46.9,,S
686 | 685,0,2,"Brown, Mr. Thomas William Solomon",male,60,1,1,29750,39,,S
687 | 686,0,2,"Laroche, Mr. Joseph Philippe Lemercier",male,25,1,2,SC/Paris 2123,41.5792,,C
688 | 687,0,3,"Panula, Mr. Jaako Arnold",male,14,4,1,3101295,39.6875,,S
689 | 688,0,3,"Dakic, Mr. Branko",male,19,0,0,349228,10.1708,,S
690 | 689,0,3,"Fischer, Mr. Eberhard Thelander",male,18,0,0,350036,7.7958,,S
691 | 690,1,1,"Madill, Miss. Georgette Alexandra",female,15,0,1,24160,211.3375,B5,S
692 | 691,1,1,"Dick, Mr. Albert Adrian",male,31,1,0,17474,57,B20,S
693 | 692,1,3,"Karun, Miss. Manca",female,4,0,1,349256,13.4167,,C
694 | 693,1,3,"Lam, Mr. Ali",male,,0,0,1601,56.4958,,S
695 | 694,0,3,"Saad, Mr. Khalil",male,25,0,0,2672,7.225,,C
696 | 695,0,1,"Weir, Col. John",male,60,0,0,113800,26.55,,S
697 | 696,0,2,"Chapman, Mr. Charles Henry",male,52,0,0,248731,13.5,,S
698 | 697,0,3,"Kelly, Mr. James",male,44,0,0,363592,8.05,,S
699 | 698,1,3,"Mullens, Miss. Katherine ""Katie""",female,,0,0,35852,7.7333,,Q
700 | 699,0,1,"Thayer, Mr. John Borland",male,49,1,1,17421,110.8833,C68,C
701 | 700,0,3,"Humblen, Mr. Adolf Mathias Nicolai Olsen",male,42,0,0,348121,7.65,F G63,S
702 | 701,1,1,"Astor, Mrs. John Jacob (Madeleine Talmadge Force)",female,18,1,0,PC 17757,227.525,C62 C64,C
703 | 702,1,1,"Silverthorne, Mr. Spencer Victor",male,35,0,0,PC 17475,26.2875,E24,S
704 | 703,0,3,"Barbara, Miss. Saiide",female,18,0,1,2691,14.4542,,C
705 | 704,0,3,"Gallagher, Mr. Martin",male,25,0,0,36864,7.7417,,Q
706 | 705,0,3,"Hansen, Mr. Henrik Juul",male,26,1,0,350025,7.8542,,S
707 | 706,0,2,"Morley, Mr. Henry Samuel (""Mr Henry Marshall"")",male,39,0,0,250655,26,,S
708 | 707,1,2,"Kelly, Mrs. Florence ""Fannie""",female,45,0,0,223596,13.5,,S
709 | 708,1,1,"Calderhead, Mr. Edward Pennington",male,42,0,0,PC 17476,26.2875,E24,S
710 | 709,1,1,"Cleaver, Miss. Alice",female,22,0,0,113781,151.55,,S
711 | 710,1,3,"Moubarek, Master. Halim Gonios (""William George"")",male,,1,1,2661,15.2458,,C
712 | 711,1,1,"Mayne, Mlle. Berthe Antonine (""Mrs de Villiers"")",female,24,0,0,PC 17482,49.5042,C90,C
713 | 712,0,1,"Klaber, Mr. Herman",male,,0,0,113028,26.55,C124,S
714 | 713,1,1,"Taylor, Mr. Elmer Zebley",male,48,1,0,19996,52,C126,S
715 | 714,0,3,"Larsson, Mr. August Viktor",male,29,0,0,7545,9.4833,,S
716 | 715,0,2,"Greenberg, Mr. Samuel",male,52,0,0,250647,13,,S
717 | 716,0,3,"Soholt, Mr. Peter Andreas Lauritz Andersen",male,19,0,0,348124,7.65,F G73,S
718 | 717,1,1,"Endres, Miss. Caroline Louise",female,38,0,0,PC 17757,227.525,C45,C
719 | 718,1,2,"Troutt, Miss. Edwina Celia ""Winnie""",female,27,0,0,34218,10.5,E101,S
720 | 719,0,3,"McEvoy, Mr. Michael",male,,0,0,36568,15.5,,Q
721 | 720,0,3,"Johnson, Mr. Malkolm Joackim",male,33,0,0,347062,7.775,,S
722 | 721,1,2,"Harper, Miss. Annie Jessie ""Nina""",female,6,0,1,248727,33,,S
723 | 722,0,3,"Jensen, Mr. Svend Lauritz",male,17,1,0,350048,7.0542,,S
724 | 723,0,2,"Gillespie, Mr. William Henry",male,34,0,0,12233,13,,S
725 | 724,0,2,"Hodges, Mr. Henry Price",male,50,0,0,250643,13,,S
726 | 725,1,1,"Chambers, Mr. Norman Campbell",male,27,1,0,113806,53.1,E8,S
727 | 726,0,3,"Oreskovic, Mr. Luka",male,20,0,0,315094,8.6625,,S
728 | 727,1,2,"Renouf, Mrs. Peter Henry (Lillian Jefferys)",female,30,3,0,31027,21,,S
729 | 728,1,3,"Mannion, Miss. Margareth",female,,0,0,36866,7.7375,,Q
730 | 729,0,2,"Bryhl, Mr. Kurt Arnold Gottfrid",male,25,1,0,236853,26,,S
731 | 730,0,3,"Ilmakangas, Miss. Pieta Sofia",female,25,1,0,STON/O2. 3101271,7.925,,S
732 | 731,1,1,"Allen, Miss. Elisabeth Walton",female,29,0,0,24160,211.3375,B5,S
733 | 732,0,3,"Hassan, Mr. Houssein G N",male,11,0,0,2699,18.7875,,C
734 | 733,0,2,"Knight, Mr. Robert J",male,,0,0,239855,0,,S
735 | 734,0,2,"Berriman, Mr. William John",male,23,0,0,28425,13,,S
736 | 735,0,2,"Troupiansky, Mr. Moses Aaron",male,23,0,0,233639,13,,S
737 | 736,0,3,"Williams, Mr. Leslie",male,28.5,0,0,54636,16.1,,S
738 | 737,0,3,"Ford, Mrs. Edward (Margaret Ann Watson)",female,48,1,3,W./C. 6608,34.375,,S
739 | 738,1,1,"Lesurer, Mr. Gustave J",male,35,0,0,PC 17755,512.3292,B101,C
740 | 739,0,3,"Ivanoff, Mr. Kanio",male,,0,0,349201,7.8958,,S
741 | 740,0,3,"Nankoff, Mr. Minko",male,,0,0,349218,7.8958,,S
742 | 741,1,1,"Hawksford, Mr. Walter James",male,,0,0,16988,30,D45,S
743 | 742,0,1,"Cavendish, Mr. Tyrell William",male,36,1,0,19877,78.85,C46,S
744 | 743,1,1,"Ryerson, Miss. Susan Parker ""Suzette""",female,21,2,2,PC 17608,262.375,B57 B59 B63 B66,C
745 | 744,0,3,"McNamee, Mr. Neal",male,24,1,0,376566,16.1,,S
746 | 745,1,3,"Stranden, Mr. Juho",male,31,0,0,STON/O 2. 3101288,7.925,,S
747 | 746,0,1,"Crosby, Capt. Edward Gifford",male,70,1,1,WE/P 5735,71,B22,S
748 | 747,0,3,"Abbott, Mr. Rossmore Edward",male,16,1,1,C.A. 2673,20.25,,S
749 | 748,1,2,"Sinkkonen, Miss. Anna",female,30,0,0,250648,13,,S
750 | 749,0,1,"Marvin, Mr. Daniel Warner",male,19,1,0,113773,53.1,D30,S
751 | 750,0,3,"Connaghton, Mr. Michael",male,31,0,0,335097,7.75,,Q
752 | 751,1,2,"Wells, Miss. Joan",female,4,1,1,29103,23,,S
753 | 752,1,3,"Moor, Master. Meier",male,6,0,1,392096,12.475,E121,S
754 | 753,0,3,"Vande Velde, Mr. Johannes Joseph",male,33,0,0,345780,9.5,,S
755 | 754,0,3,"Jonkoff, Mr. Lalio",male,23,0,0,349204,7.8958,,S
756 | 755,1,2,"Herman, Mrs. Samuel (Jane Laver)",female,48,1,2,220845,65,,S
757 | 756,1,2,"Hamalainen, Master. Viljo",male,0.67,1,1,250649,14.5,,S
758 | 757,0,3,"Carlsson, Mr. August Sigfrid",male,28,0,0,350042,7.7958,,S
759 | 758,0,2,"Bailey, Mr. Percy Andrew",male,18,0,0,29108,11.5,,S
760 | 759,0,3,"Theobald, Mr. Thomas Leonard",male,34,0,0,363294,8.05,,S
761 | 760,1,1,"Rothes, the Countess. of (Lucy Noel Martha Dyer-Edwards)",female,33,0,0,110152,86.5,B77,S
762 | 761,0,3,"Garfirth, Mr. John",male,,0,0,358585,14.5,,S
763 | 762,0,3,"Nirva, Mr. Iisakki Antino Aijo",male,41,0,0,SOTON/O2 3101272,7.125,,S
764 | 763,1,3,"Barah, Mr. Hanna Assi",male,20,0,0,2663,7.2292,,C
765 | 764,1,1,"Carter, Mrs. William Ernest (Lucile Polk)",female,36,1,2,113760,120,B96 B98,S
766 | 765,0,3,"Eklund, Mr. Hans Linus",male,16,0,0,347074,7.775,,S
767 | 766,1,1,"Hogeboom, Mrs. John C (Anna Andrews)",female,51,1,0,13502,77.9583,D11,S
768 | 767,0,1,"Brewe, Dr. Arthur Jackson",male,,0,0,112379,39.6,,C
769 | 768,0,3,"Mangan, Miss. Mary",female,30.5,0,0,364850,7.75,,Q
770 | 769,0,3,"Moran, Mr. Daniel J",male,,1,0,371110,24.15,,Q
771 | 770,0,3,"Gronnestad, Mr. Daniel Danielsen",male,32,0,0,8471,8.3625,,S
772 | 771,0,3,"Lievens, Mr. Rene Aime",male,24,0,0,345781,9.5,,S
773 | 772,0,3,"Jensen, Mr. Niels Peder",male,48,0,0,350047,7.8542,,S
774 | 773,0,2,"Mack, Mrs. (Mary)",female,57,0,0,S.O./P.P. 3,10.5,E77,S
775 | 774,0,3,"Elias, Mr. Dibo",male,,0,0,2674,7.225,,C
776 | 775,1,2,"Hocking, Mrs. Elizabeth (Eliza Needs)",female,54,1,3,29105,23,,S
777 | 776,0,3,"Myhrman, Mr. Pehr Fabian Oliver Malkolm",male,18,0,0,347078,7.75,,S
778 | 777,0,3,"Tobin, Mr. Roger",male,,0,0,383121,7.75,F38,Q
779 | 778,1,3,"Emanuel, Miss. Virginia Ethel",female,5,0,0,364516,12.475,,S
780 | 779,0,3,"Kilgannon, Mr. Thomas J",male,,0,0,36865,7.7375,,Q
781 | 780,1,1,"Robert, Mrs. Edward Scott (Elisabeth Walton McMillan)",female,43,0,1,24160,211.3375,B3,S
782 | 781,1,3,"Ayoub, Miss. Banoura",female,13,0,0,2687,7.2292,,C
783 | 782,1,1,"Dick, Mrs. Albert Adrian (Vera Gillespie)",female,17,1,0,17474,57,B20,S
784 | 783,0,1,"Long, Mr. Milton Clyde",male,29,0,0,113501,30,D6,S
785 | 784,0,3,"Johnston, Mr. Andrew G",male,,1,2,W./C. 6607,23.45,,S
786 | 785,0,3,"Ali, Mr. William",male,25,0,0,SOTON/O.Q. 3101312,7.05,,S
787 | 786,0,3,"Harmer, Mr. Abraham (David Lishin)",male,25,0,0,374887,7.25,,S
788 | 787,1,3,"Sjoblom, Miss. Anna Sofia",female,18,0,0,3101265,7.4958,,S
789 | 788,0,3,"Rice, Master. George Hugh",male,8,4,1,382652,29.125,,Q
790 | 789,1,3,"Dean, Master. Bertram Vere",male,1,1,2,C.A. 2315,20.575,,S
791 | 790,0,1,"Guggenheim, Mr. Benjamin",male,46,0,0,PC 17593,79.2,B82 B84,C
792 | 791,0,3,"Keane, Mr. Andrew ""Andy""",male,,0,0,12460,7.75,,Q
793 | 792,0,2,"Gaskell, Mr. Alfred",male,16,0,0,239865,26,,S
794 | 793,0,3,"Sage, Miss. Stella Anna",female,,8,2,CA. 2343,69.55,,S
795 | 794,0,1,"Hoyt, Mr. William Fisher",male,,0,0,PC 17600,30.6958,,C
796 | 795,0,3,"Dantcheff, Mr. Ristiu",male,25,0,0,349203,7.8958,,S
797 | 796,0,2,"Otter, Mr. Richard",male,39,0,0,28213,13,,S
798 | 797,1,1,"Leader, Dr. Alice (Farnham)",female,49,0,0,17465,25.9292,D17,S
799 | 798,1,3,"Osman, Mrs. Mara",female,31,0,0,349244,8.6833,,S
800 | 799,0,3,"Ibrahim Shawah, Mr. Yousseff",male,30,0,0,2685,7.2292,,C
801 | 800,0,3,"Van Impe, Mrs. Jean Baptiste (Rosalie Paula Govaert)",female,30,1,1,345773,24.15,,S
802 | 801,0,2,"Ponesell, Mr. Martin",male,34,0,0,250647,13,,S
803 | 802,1,2,"Collyer, Mrs. Harvey (Charlotte Annie Tate)",female,31,1,1,C.A. 31921,26.25,,S
804 | 803,1,1,"Carter, Master. William Thornton II",male,11,1,2,113760,120,B96 B98,S
805 | 804,1,3,"Thomas, Master. Assad Alexander",male,0.42,0,1,2625,8.5167,,C
806 | 805,1,3,"Hedman, Mr. Oskar Arvid",male,27,0,0,347089,6.975,,S
807 | 806,0,3,"Johansson, Mr. Karl Johan",male,31,0,0,347063,7.775,,S
808 | 807,0,1,"Andrews, Mr. Thomas Jr",male,39,0,0,112050,0,A36,S
809 | 808,0,3,"Pettersson, Miss. Ellen Natalia",female,18,0,0,347087,7.775,,S
810 | 809,0,2,"Meyer, Mr. August",male,39,0,0,248723,13,,S
811 | 810,1,1,"Chambers, Mrs. Norman Campbell (Bertha Griggs)",female,33,1,0,113806,53.1,E8,S
812 | 811,0,3,"Alexander, Mr. William",male,26,0,0,3474,7.8875,,S
813 | 812,0,3,"Lester, Mr. James",male,39,0,0,A/4 48871,24.15,,S
814 | 813,0,2,"Slemen, Mr. Richard James",male,35,0,0,28206,10.5,,S
815 | 814,0,3,"Andersson, Miss. Ebba Iris Alfrida",female,6,4,2,347082,31.275,,S
816 | 815,0,3,"Tomlin, Mr. Ernest Portage",male,30.5,0,0,364499,8.05,,S
817 | 816,0,1,"Fry, Mr. Richard",male,,0,0,112058,0,B102,S
818 | 817,0,3,"Heininen, Miss. Wendla Maria",female,23,0,0,STON/O2. 3101290,7.925,,S
819 | 818,0,2,"Mallet, Mr. Albert",male,31,1,1,S.C./PARIS 2079,37.0042,,C
820 | 819,0,3,"Holm, Mr. John Fredrik Alexander",male,43,0,0,C 7075,6.45,,S
821 | 820,0,3,"Skoog, Master. Karl Thorsten",male,10,3,2,347088,27.9,,S
822 | 821,1,1,"Hays, Mrs. Charles Melville (Clara Jennings Gregg)",female,52,1,1,12749,93.5,B69,S
823 | 822,1,3,"Lulic, Mr. Nikola",male,27,0,0,315098,8.6625,,S
824 | 823,0,1,"Reuchlin, Jonkheer. John George",male,38,0,0,19972,0,,S
825 | 824,1,3,"Moor, Mrs. (Beila)",female,27,0,1,392096,12.475,E121,S
826 | 825,0,3,"Panula, Master. Urho Abraham",male,2,4,1,3101295,39.6875,,S
827 | 826,0,3,"Flynn, Mr. John",male,,0,0,368323,6.95,,Q
828 | 827,0,3,"Lam, Mr. Len",male,,0,0,1601,56.4958,,S
829 | 828,1,2,"Mallet, Master. Andre",male,1,0,2,S.C./PARIS 2079,37.0042,,C
830 | 829,1,3,"McCormack, Mr. Thomas Joseph",male,,0,0,367228,7.75,,Q
831 | 830,1,1,"Stone, Mrs. George Nelson (Martha Evelyn)",female,62,0,0,113572,80,B28,
832 | 831,1,3,"Yasbeck, Mrs. Antoni (Selini Alexander)",female,15,1,0,2659,14.4542,,C
833 | 832,1,2,"Richards, Master. George Sibley",male,0.83,1,1,29106,18.75,,S
834 | 833,0,3,"Saad, Mr. Amin",male,,0,0,2671,7.2292,,C
835 | 834,0,3,"Augustsson, Mr. Albert",male,23,0,0,347468,7.8542,,S
836 | 835,0,3,"Allum, Mr. Owen George",male,18,0,0,2223,8.3,,S
837 | 836,1,1,"Compton, Miss. Sara Rebecca",female,39,1,1,PC 17756,83.1583,E49,C
838 | 837,0,3,"Pasic, Mr. Jakob",male,21,0,0,315097,8.6625,,S
839 | 838,0,3,"Sirota, Mr. Maurice",male,,0,0,392092,8.05,,S
840 | 839,1,3,"Chip, Mr. Chang",male,32,0,0,1601,56.4958,,S
841 | 840,1,1,"Marechal, Mr. Pierre",male,,0,0,11774,29.7,C47,C
842 | 841,0,3,"Alhomaki, Mr. Ilmari Rudolf",male,20,0,0,SOTON/O2 3101287,7.925,,S
843 | 842,0,2,"Mudd, Mr. Thomas Charles",male,16,0,0,S.O./P.P. 3,10.5,,S
844 | 843,1,1,"Serepeca, Miss. Augusta",female,30,0,0,113798,31,,C
845 | 844,0,3,"Lemberopolous, Mr. Peter L",male,34.5,0,0,2683,6.4375,,C
846 | 845,0,3,"Culumovic, Mr. Jeso",male,17,0,0,315090,8.6625,,S
847 | 846,0,3,"Abbing, Mr. Anthony",male,42,0,0,C.A. 5547,7.55,,S
848 | 847,0,3,"Sage, Mr. Douglas Bullen",male,,8,2,CA. 2343,69.55,,S
849 | 848,0,3,"Markoff, Mr. Marin",male,35,0,0,349213,7.8958,,C
850 | 849,0,2,"Harper, Rev. John",male,28,0,1,248727,33,,S
851 | 850,1,1,"Goldenberg, Mrs. Samuel L (Edwiga Grabowska)",female,,1,0,17453,89.1042,C92,C
852 | 851,0,3,"Andersson, Master. Sigvard Harald Elias",male,4,4,2,347082,31.275,,S
853 | 852,0,3,"Svensson, Mr. Johan",male,74,0,0,347060,7.775,,S
854 | 853,0,3,"Boulos, Miss. Nourelain",female,9,1,1,2678,15.2458,,C
855 | 854,1,1,"Lines, Miss. Mary Conover",female,16,0,1,PC 17592,39.4,D28,S
856 | 855,0,2,"Carter, Mrs. Ernest Courtenay (Lilian Hughes)",female,44,1,0,244252,26,,S
857 | 856,1,3,"Aks, Mrs. Sam (Leah Rosen)",female,18,0,1,392091,9.35,,S
858 | 857,1,1,"Wick, Mrs. George Dennick (Mary Hitchcock)",female,45,1,1,36928,164.8667,,S
859 | 858,1,1,"Daly, Mr. Peter Denis ",male,51,0,0,113055,26.55,E17,S
860 | 859,1,3,"Baclini, Mrs. Solomon (Latifa Qurban)",female,24,0,3,2666,19.2583,,C
861 | 860,0,3,"Razi, Mr. Raihed",male,,0,0,2629,7.2292,,C
862 | 861,0,3,"Hansen, Mr. Claus Peter",male,41,2,0,350026,14.1083,,S
863 | 862,0,2,"Giles, Mr. Frederick Edward",male,21,1,0,28134,11.5,,S
864 | 863,1,1,"Swift, Mrs. Frederick Joel (Margaret Welles Barron)",female,48,0,0,17466,25.9292,D17,S
865 | 864,0,3,"Sage, Miss. Dorothy Edith ""Dolly""",female,,8,2,CA. 2343,69.55,,S
866 | 865,0,2,"Gill, Mr. John William",male,24,0,0,233866,13,,S
867 | 866,1,2,"Bystrom, Mrs. (Karolina)",female,42,0,0,236852,13,,S
868 | 867,1,2,"Duran y More, Miss. Asuncion",female,27,1,0,SC/PARIS 2149,13.8583,,C
869 | 868,0,1,"Roebling, Mr. Washington Augustus II",male,31,0,0,PC 17590,50.4958,A24,S
870 | 869,0,3,"van Melkebeke, Mr. Philemon",male,,0,0,345777,9.5,,S
871 | 870,1,3,"Johnson, Master. Harold Theodor",male,4,1,1,347742,11.1333,,S
872 | 871,0,3,"Balkic, Mr. Cerin",male,26,0,0,349248,7.8958,,S
873 | 872,1,1,"Beckwith, Mrs. Richard Leonard (Sallie Monypeny)",female,47,1,1,11751,52.5542,D35,S
874 | 873,0,1,"Carlsson, Mr. Frans Olof",male,33,0,0,695,5,B51 B53 B55,S
875 | 874,0,3,"Vander Cruyssen, Mr. Victor",male,47,0,0,345765,9,,S
876 | 875,1,2,"Abelson, Mrs. Samuel (Hannah Wizosky)",female,28,1,0,P/PP 3381,24,,C
877 | 876,1,3,"Najib, Miss. Adele Kiamie ""Jane""",female,15,0,0,2667,7.225,,C
878 | 877,0,3,"Gustafsson, Mr. Alfred Ossian",male,20,0,0,7534,9.8458,,S
879 | 878,0,3,"Petroff, Mr. Nedelio",male,19,0,0,349212,7.8958,,S
880 | 879,0,3,"Laleff, Mr. Kristo",male,,0,0,349217,7.8958,,S
881 | 880,1,1,"Potter, Mrs. Thomas Jr (Lily Alexenia Wilson)",female,56,0,1,11767,83.1583,C50,C
882 | 881,1,2,"Shelley, Mrs. William (Imanita Parrish Hall)",female,25,0,1,230433,26,,S
883 | 882,0,3,"Markun, Mr. Johann",male,33,0,0,349257,7.8958,,S
884 | 883,0,3,"Dahlberg, Miss. Gerda Ulrika",female,22,0,0,7552,10.5167,,S
885 | 884,0,2,"Banfield, Mr. Frederick James",male,28,0,0,C.A./SOTON 34068,10.5,,S
886 | 885,0,3,"Sutehall, Mr. Henry Jr",male,25,0,0,SOTON/OQ 392076,7.05,,S
887 | 886,0,3,"Rice, Mrs. William (Margaret Norton)",female,39,0,5,382652,29.125,,Q
888 | 887,0,2,"Montvila, Rev. Juozas",male,27,0,0,211536,13,,S
889 | 888,1,1,"Graham, Miss. Margaret Edith",female,19,0,0,112053,30,B42,S
890 | 889,0,3,"Johnston, Miss. Catherine Helen ""Carrie""",female,,1,2,W./C. 6607,23.45,,S
891 | 890,1,1,"Behr, Mr. Karl Howell",male,26,0,0,111369,30,C148,C
892 | 891,0,3,"Dooley, Mr. Patrick",male,32,0,0,370376,7.75,,Q
893 |
--------------------------------------------------------------------------------
/contenido.curso/000.recursos/db/001.link.descarga.txt:
--------------------------------------------------------------------------------
1 | https://drive.google.com/file/d/11h_RdXz-VT1nlRX_pA_e7wJyjm3lTUBR/view?usp=sharing
--------------------------------------------------------------------------------
/contenido.curso/000.recursos/db/002.modelo.relacional.blanco.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codingupmyfuture/bootcampduckdb/4f78e7b5261d2f5dc3c9763dc7b7a1d97374e7e9/contenido.curso/000.recursos/db/002.modelo.relacional.blanco.png
--------------------------------------------------------------------------------
/contenido.curso/000.recursos/db/003.modelo.relacional.negro.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codingupmyfuture/bootcampduckdb/4f78e7b5261d2f5dc3c9763dc7b7a1d97374e7e9/contenido.curso/000.recursos/db/003.modelo.relacional.negro.png
--------------------------------------------------------------------------------
/contenido.curso/000.recursos/db/004.eventos.sql:
--------------------------------------------------------------------------------
1 |
2 | -- ESQUEMA: parranda
3 | CREATE SCHEMA IF NOT EXISTS parranda;
4 |
5 |
6 | -- TABLA: parranda.tipo_musica
7 | CREATE TABLE IF NOT EXISTS parranda.tipo_musica (
8 | id_tipo_musica TINYINT NOT NULL,
9 | nombre_genero_musica VARCHAR(30) NOT NULL,
10 | activo VARCHAR(1) NOT NULL CHECK(activo IN ('S', 'N')),
11 | PRIMARY KEY(id_tipo_musica)
12 | );
13 | COMMENT ON COLUMN parranda.tipo_musica.id_tipo_musica IS 'llave primaria de la tabla';
14 | COMMENT ON COLUMN parranda.tipo_musica.nombre_genero_musica IS 'nombre genero musical';
15 | COMMENT ON COLUMN parranda.tipo_musica.activo IS 'controla si el registro esta activo o inactivo';
16 |
17 | INSERT INTO parranda.tipo_musica VALUES
18 | (1, 'vallenato', 'S'),
19 | (2, 'tango', 'S'),
20 | (3, 'cumbia', 'S'),
21 | (4, 'reguetón', 'S'),
22 | (5, 'bambuco', 'S'),
23 | (6, 'tropical', 'S'),
24 | (7, 'merengue', 'S'),
25 | (8, 'pop', 'S'),
26 | (9, 'salsa', 'S'),
27 | (10, 'rock', 'S');
28 |
29 | -- TABLA: parranda.tipo_genero_persona
30 | CREATE TABLE IF NOT EXISTS parranda.tipo_genero_persona (
31 | id_genero_persona TINYINT NOT NULL,
32 | nombre_genero_persona VARCHAR(10) NOT NULL,
33 | activo VARCHAR(1) NOT NULL CHECK(activo IN ('S', 'N')),
34 | PRIMARY KEY(id_genero_persona)
35 | );
36 |
37 | COMMENT ON COLUMN parranda.tipo_genero_persona.id_genero_persona IS 'llave primaria de la tabla';
38 | COMMENT ON COLUMN parranda.tipo_genero_persona.nombre_genero_persona IS 'nombre genero persona';
39 | COMMENT ON COLUMN parranda.tipo_genero_persona.activo IS 'controla si el registro esta activo o inactivo';
40 |
41 | INSERT INTO parranda.tipo_genero_persona VALUES
42 | (1, 'hombre', 'S'),
43 | (2, 'mujer', 'S'),
44 | (3, 'otro', 'S');
45 |
46 | -- TABLA: parranda.tipo_dieta
47 | CREATE TABLE IF NOT EXISTS parranda.tipo_dieta (
48 | id_tipo_dieta TINYINT NOT NULL,
49 | nombre_dieta VARCHAR(20) NOT NULL,
50 | activo VARCHAR(1) NOT NULL CHECK(activo IN ('S', 'N')),
51 | PRIMARY KEY(id_tipo_dieta)
52 | );
53 |
54 | COMMENT ON COLUMN parranda.tipo_dieta.id_tipo_dieta IS 'llave primaria de la tabla';
55 | COMMENT ON COLUMN parranda.tipo_dieta.nombre_dieta IS 'nombre dieta persona';
56 | COMMENT ON COLUMN parranda.tipo_dieta.activo IS 'controla si el registro esta activo o inactivo';
57 |
58 | INSERT INTO parranda.tipo_dieta VALUES
59 | (1, 'pescetariano', 'S'),
60 | (2, 'vegetariano', 'S'),
61 | (3, 'carnívoro', 'S'),
62 | (4, 'vegano', 'S');
63 |
64 | -- TABLA: parranda.tipo_menu
65 | CREATE TABLE IF NOT EXISTS parranda.tipo_menu (
66 | id_tipo_menu TINYINT NOT NULL,
67 | nombre_menu VARCHAR(100) NOT NULL,
68 | id_tipo_dieta TINYINT NOT NULL REFERENCES parranda.tipo_dieta(id_tipo_dieta),
69 | activo VARCHAR(1) NOT NULL CHECK(activo IN ('S', 'N')),
70 | PRIMARY KEY(id_tipo_menu)
71 | );
72 |
73 | COMMENT ON COLUMN parranda.tipo_menu.id_tipo_menu IS 'llave primaria de la tabla';
74 | COMMENT ON COLUMN parranda.tipo_menu.nombre_menu IS 'nombre del menú';
75 | COMMENT ON COLUMN parranda.tipo_menu.id_tipo_dieta IS 'tipo diega persona, referencia parranda.tipo_dieta.id_tipo_dieta';
76 | COMMENT ON COLUMN parranda.tipo_menu.activo IS 'controla si el registro esta activo o inactivo';
77 |
78 | INSERT INTO parranda.tipo_menu VALUES
79 | (1, 'cazuela de mariscos', 1, 'S'),
80 | (2, 'filete de salmón', 1, 'S'),
81 | (3, 'ceviche de camarón', 1, 'S'),
82 | (4, 'arepas de choclo con queso', 2, 'S'),
83 | (5, 'sancocho de guineo', 2, 'S'),
84 | (6, 'ensalada de aguacate y mango', 2, 'S'),
85 | (7, 'cerdo apanado en salsas', 3, 'S'),
86 | (8, 'solomito asado', 3, 'S'),
87 | (9, 'pollo apanado en salsas', 3, 'S'),
88 | (10, 'lentejas guisadas', 4, 'S'),
89 | (11, 'empanadas de yuca', 4, 'S'),
90 | (12, 'frijoles simples', 4, 'S');
91 |
92 | -- TABLA: parranda.usuarios
93 | CREATE TABLE IF NOT EXISTS parranda.usuarios (
94 | id_usuario INTEGER NOT NULL,
95 | identificacion VARCHAR(20) NOT NULL UNIQUE,
96 | primer_nombre VARCHAR(30) NOT NULL,
97 | segundo_nombre VARCHAR(30),
98 | primer_apellido VARCHAR(30) NOT NULL,
99 | segundo_apellido VARCHAR(30),
100 | telefono VARCHAR(20) NOT NULL,
101 | id_genero_persona TINYINT NOT NULL REFERENCES parranda.tipo_genero_persona(id_genero_persona),
102 | activo VARCHAR(1) NOT NULL CHECK(activo IN ('S', 'N')),
103 | PRIMARY KEY(id_usuario)
104 | );
105 |
106 | COMMENT ON COLUMN parranda.usuarios.id_usuario IS 'llave primaria de la tabla';
107 | COMMENT ON COLUMN parranda.usuarios.identificacion IS 'identificación de la persona';
108 | COMMENT ON COLUMN parranda.usuarios.primer_nombre IS 'primer nombre de la persona';
109 | COMMENT ON COLUMN parranda.usuarios.segundo_nombre IS 'segundo nombre de la persona';
110 | COMMENT ON COLUMN parranda.usuarios.primer_apellido IS 'primer apellido de la persona';
111 | COMMENT ON COLUMN parranda.usuarios.segundo_apellido IS 'segundo apellido de la persona';
112 | COMMENT ON COLUMN parranda.usuarios.telefono IS 'telefono de la persona';
113 | COMMENT ON COLUMN parranda.usuarios.id_genero_persona IS 'tipo genero persona, referencia parranda.tipo_genero_persona.id_genero_persona';
114 | COMMENT ON COLUMN parranda.usuarios.activo IS 'controla si el registro esta activo o inactivo';
115 |
116 |
117 | INSERT INTO parranda.usuarios (
118 | id_usuario,
119 | primer_nombre,
120 | segundo_nombre,
121 | primer_apellido,
122 | segundo_apellido,
123 | telefono,
124 | identificacion,
125 | id_genero_persona,
126 | activo
127 | ) VALUES
128 | (1, 'Juan', NULL, 'Espinosa', 'González', '6046390826', '1095672677', 1, 'S'),
129 | (2, 'José', 'Luis', 'Martínez', NULL, '3179054864', '1052988648', 2, 'S'),
130 | (3, 'Orlando', 'Ignacio', 'Arévalo', 'Pinzón', '3110601680', '32057626', 3, 'S'),
131 | (4, 'Andrés', 'Carlos', 'Cuéllar', 'Lara', '3183275188', '5173540', 1, 'S'),
132 | (5, 'Fabio', NULL, 'Gómez', NULL, '3163866597', '1277218634', 2, 'S'),
133 | (6, 'Paulina', 'Karen', 'Pineda', NULL, '3246891544', '2238096', 1, 'S'),
134 | (7, 'Milena', 'María', 'Granados', NULL, '3063261820', '1112962067', 3, 'S'),
135 | (8, 'Nelly', 'Yolanda', 'Zapata', 'Sandoval', '6028985122', '37048740', 2, 'S'),
136 | (9, 'Josué', NULL, 'Muñoz', NULL, '3144504714', '1270174527', 1, 'S'),
137 | (10, 'Eder', 'Vicente', 'Luna', NULL, '3164281821', '32221768', 3, 'S'),
138 | (11, 'Ángela', NULL, 'García', 'Gómez', '6017673905', '1156133390', 2, 'S'),
139 | --(12, 'Ángela', NULL, 'García', 'Gómez', '6017673905', '1156133390', 2, 'S'),
140 | (13, 'Santiago', NULL, 'Sánchez', 'Arango', '3116147501', '64138677', 3, 'S'),
141 | (14, 'Óscar', NULL, 'Vega', NULL, '6042411683', '5672674', 2, 'S'),
142 | (15, 'Samuel', 'Omar', 'Benavides', NULL, '3201227286', '10653477', 2, 'S'),
143 | (16, 'Fernanda', NULL, 'Hernández', NULL, '3036494636', '1070806010', 2, 'S'),
144 | (17, 'Adriana', NULL, 'Agudelo', NULL, '6046276898', '1061672134', 2, 'S'),
145 | (18, 'Liliana', 'Leonor', 'Pineda', 'Hernández', '3214728518', '2697221', 1, 'S'),
146 | (19, 'Edinson', NULL, 'Ramírez', NULL, '3081265978', '6810745', 1, 'S'),
147 | (20, 'Armando', 'Antonio', 'Hurtado', 'Hernández', '18006581340', '91431183', 2, 'S'),
148 | (21, 'Milena', NULL, 'Ojeda', NULL, '3059806659', '5546198', 2, 'S'),
149 | (22, 'Fernando', 'Alberto', 'Sanabria', NULL, '6027232626', '1203617628', 1, 'S'),
150 | (23, 'Kevin', 'Javier', 'Andrade', NULL, '3211392954', '1238804985', 2, 'S'),
151 | (24, 'Liliana', 'Jimena', 'Gutiérrez', 'Zambrano', '3014060093', '1181158956', 3, 'S'),
152 | (25, 'Juan', NULL, 'Vargas', 'Betancur', '3033370751', '32267050', 2, 'S'),
153 | (26, 'Estela', 'Amparo', 'Rivera', 'Vega', '31011463', '1197118561', 3, 'S'),
154 | (27, 'Yolanda', 'Rocío', 'Palacios', NULL, '3182835486', '3536178', 3, 'S'),
155 | (28, 'Gildardo', 'Víctor', 'Ramírez', NULL, '3203374668', '78657032', 3, 'S'),
156 | (29, 'Sofía', 'Dora', 'Méndez', 'Gaviria', '3229713', '1127221678', 2, 'S'),
157 | (30, 'Edgar', NULL, 'González', NULL, '3158896043', '1286547868', 1, 'S'),
158 | (31, 'Jhon', 'Alexander', 'Durán', 'García', '60872318', '7700492', 1, 'S');
159 |
160 |
161 | -- TABLA: parranda.musica_persona
162 | CREATE TABLE IF NOT EXISTS parranda.musica_persona (
163 | id_usuario INTEGER NOT NULL REFERENCES parranda.usuarios(id_usuario),
164 | id_tipo_musica TINYINT NOT NULL REFERENCES parranda.tipo_musica(id_tipo_musica),
165 | PRIMARY KEY(id_usuario, id_tipo_musica)
166 | );
167 |
168 | COMMENT ON COLUMN parranda.musica_persona.id_usuario IS 'usuario para identificar preferencia';
169 | COMMENT ON COLUMN parranda.musica_persona.id_tipo_musica IS 'tipo musica de prerefencia del usuario';
170 |
171 | INSERT INTO parranda.musica_persona VALUES
172 | (1, 1),
173 | (1, 2),
174 | (2, 3),
175 | (2, 4),
176 | (3, 5),
177 | (3, 6),
178 | (3, 7),
179 | (3, 8),
180 | (3, 1),
181 | (3, 9),
182 | (3, 2),
183 | (3, 4),
184 | (4, 1),
185 | (4, 3),
186 | (6, 5),
187 | (6, 7),
188 | (6, 4),
189 | (7, 9),
190 | (7, 2),
191 | (7, 6),
192 | (7, 8),
193 | (7, 7),
194 | (7, 3),
195 | (7, 4),
196 | (8, 10),
197 | (8, 3),
198 | (8, 9),
199 | (9, 7),
200 | (9, 8),
201 | (9, 6),
202 | (9, 9),
203 | (9, 2),
204 | (9, 10),
205 | (10, 4),
206 | (10, 5),
207 | (10, 3),
208 | (11, 4),
209 | (11, 7),
210 | (11, 3),
211 | (11, 10),
212 | (11, 5),
213 | (11, 6),
214 | (11, 2),
215 | (11, 8),
216 | (11, 9),
217 | (14, 9),
218 | (14, 10),
219 | (14, 3),
220 | (14, 5),
221 | (14, 8),
222 | (14, 2),
223 | (14, 1),
224 | (14, 6),
225 | (15, 9),
226 | (15, 4),
227 | (15, 3),
228 | (15, 7),
229 | (15, 6),
230 | (16, 1),
231 | (16, 2),
232 | (16, 5),
233 | (16, 8),
234 | (17, 8),
235 | (17, 4),
236 | (17, 10),
237 | (17, 2),
238 | (18, 3),
239 | (18, 6),
240 | (18, 8),
241 | (18, 1),
242 | (18, 5),
243 | (18, 10),
244 | (18, 9),
245 | (18, 7),
246 | (19, 2),
247 | (19, 3),
248 | (19, 4),
249 | (19, 6),
250 | (20, 4),
251 | (20, 2),
252 | (20, 7),
253 | (20, 8),
254 | (20, 1),
255 | (20, 5),
256 | (20, 6),
257 | (21, 6),
258 | (21, 5),
259 | (21, 7),
260 | (21, 3),
261 | (21, 10),
262 | (23, 4),
263 | (23, 9),
264 | (23, 1),
265 | (23, 2),
266 | (23, 3),
267 | (23, 8),
268 | (23, 6),
269 | (23, 5),
270 | (23, 7),
271 | (24, 7),
272 | (24, 1),
273 | (24, 6),
274 | (24, 8),
275 | (24, 9),
276 | (24, 4),
277 | (24, 5),
278 | (25, 3),
279 | (25, 8),
280 | (25, 2),
281 | (25, 5),
282 | (25, 4),
283 | (25, 6),
284 | (25, 9),
285 | (26, 6),
286 | (26, 4),
287 | (26, 7),
288 | (26, 1),
289 | (27, 4),
290 | (27, 3),
291 | (27, 9),
292 | (27, 2),
293 | (27, 7),
294 | (27, 6),
295 | (28, 1),
296 | (28, 8),
297 | (28, 10),
298 | (28, 2),
299 | (28, 7),
300 | (28, 3),
301 | (28, 5),
302 | (28, 4),
303 | (28, 6),
304 | (28, 9),
305 | (29, 10),
306 | (29, 6),
307 | (29, 7),
308 | (29, 1),
309 | (29, 2),
310 | (29, 4),
311 | (29, 3),
312 | (29, 5),
313 | (30, 4),
314 | (30, 10),
315 | (30, 6),
316 | (30, 8),
317 | (30, 1),
318 | (30, 9),
319 | (30, 2),
320 | (31, 8),
321 | (31, 1),
322 | (31, 3),
323 | (31, 5);
324 |
325 |
326 | -- TABLA: plato_persona
327 | CREATE TABLE IF NOT EXISTS parranda.plato_persona (
328 | id_persona INTEGER NOT NULL,
329 | id_tipo_menu TINYINT NOT NULL,
330 | confirmado VARCHAR(1) NOT NULL CHECK(confirmado IN ('S', 'N')),
331 | PRIMARY KEY(id_persona)
332 | );
333 |
334 | COMMENT ON COLUMN parranda.plato_persona.id_persona IS 'usuario para identificar preferencia';
335 | COMMENT ON COLUMN parranda.plato_persona.id_tipo_menu IS 'tipo de plato que comera la persona';
336 | COMMENT ON COLUMN parranda.plato_persona.confirmado IS 'controla si el usuario confirmo o no asistencia';
337 |
338 |
339 | INSERT INTO parranda.plato_persona VALUES
340 | (1, 1, 'N'),
341 | (2, 4, 'N'),
342 | (3, 2, 'S'),
343 | (4, 6, 'N'),
344 | (5, 7, 'N'),
345 | (6, 10, 'N'),
346 | (7, 6, 'S'),
347 | (8, 1, 'S'),
348 | (9, 10, 'N'),
349 | (10, 2, 'N'),
350 | (11, 8, 'N'),
351 | (13, 2, 'S'),
352 | (14, 8, 'S'),
353 | (15, 7, 'S'),
354 | (16, 2, 'S'),
355 | (17, 3, 'N'),
356 | (18, 8, 'S'),
357 | (19, 5, 'N'),
358 | (20, 10, 'N'),
359 | (21, 1, 'N'),
360 | (22, 8, 'S'),
361 | (23, 9, 'S'),
362 | (24, 11, 'S'),
363 | (25, 3, 'S'),
364 | (26, 3, 'S'),
365 | (27, 5, 'N'),
366 | (28, 12, 'S'),
367 | (29, 1, 'S'),
368 | (30, 1, 'S'),
369 | (31, 7, 'S');
--------------------------------------------------------------------------------
/contenido.curso/000.recursos/libros/001.duckdb.in.action.motherduck.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codingupmyfuture/bootcampduckdb/4f78e7b5261d2f5dc3c9763dc7b7a1d97374e7e9/contenido.curso/000.recursos/libros/001.duckdb.in.action.motherduck.pdf
--------------------------------------------------------------------------------
/contenido.curso/000.recursos/notebooks/bootcamp_dql_clases_template.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {
6 | "id": "kY4ed9W-VQix"
7 | },
8 | "source": [
9 | "\n",
10 | "\n",
11 | "\n",
12 | "\n",
13 | "\n",
14 | "Esta utilidad está diseñada para personas que no tienen fácil acceso a herramientas instaladas y también para fines académicos, facilitando la documentación de los temas vistos en clase.\n",
15 | "\n",
16 | "Recomendaciones especiales:\n",
17 | "\n",
18 | "1. El contenido de la fila de abajo no debe ser modificado, pero debe ejecutarse tal como está.\n",
19 | "\n",
20 | "2. Para ejecutar una sentencia, crea una nueva celda de código y coloca %%sql. Luego, podrás ejecutar sentencias en la base de datos. Si no tienes experiencia con notebooks, visita este [link](https://www.youtube.com/watch?v=8VFYs3Ot_aA&t=629s).\n",
21 | "\n",
22 | "3. Este notebook será sumamente útil para la clase de `SELECTS`."
23 | ]
24 | },
25 | {
26 | "cell_type": "code",
27 | "execution_count": null,
28 | "metadata": {
29 | "id": "g9uW85kkPf79"
30 | },
31 | "outputs": [],
32 | "source": [
33 | "!pip install duckdb notebook jupyterlab pandas duckdb-engine jupysql toml SQLAlchemy &> /dev/null ;\n",
34 | "\n",
35 | "import os\n",
36 | "import pathlib\n",
37 | "import pandas as pd\n",
38 | "from sqlalchemy import create_engine, text\n",
39 | "\n",
40 | "%config SqlMagic.autopandas = True\n",
41 | "%config SqlMagic.feedback = False\n",
42 | "%config SqlMagic.displaycon = False\n",
43 | "%config SqlMagic.short_errors = True\n",
44 | "%config SqlMagic.style = \"DEFAULT\"\n",
45 | "%config SqlMagic.lazy_execution = False\n",
46 | "%config SqlMagic.displaylimit = 0\n",
47 | "%config SqlMagic.named_parameters=\"enabled\"\n",
48 | "\n",
49 | "db: str = \"bootcamp.db\"\n",
50 | "\n",
51 | "engine = create_engine(\n",
52 | " f\"duckdb:///{db}\",\n",
53 | " connect_args={\n",
54 | " 'read_only': False,\n",
55 | " 'config': {\n",
56 | " 'access_mode': 'READ_WRITE',\n",
57 | " }\n",
58 | " }\n",
59 | ")\n",
60 | "\n",
61 | "with engine.connect() as conn:\n",
62 | " conn.execute(\n",
63 | " text(f\"\"\" INSTALL httpfs; LOAD httpfs;\"\"\"\n",
64 | " )\n",
65 | " )\n",
66 | " conn.commit()\n",
67 | "\n",
68 | "%reload_ext sql\n",
69 | "%sql engine"
70 | ]
71 | },
72 | {
73 | "cell_type": "code",
74 | "execution_count": null,
75 | "metadata": {
76 | "colab": {
77 | "base_uri": "https://localhost:8080/",
78 | "height": 81
79 | },
80 | "id": "ujdo5erDQ2z3",
81 | "outputId": "736bbb7b-b27d-41e4-da37-7c700e5f9c8e"
82 | },
83 | "outputs": [
84 | {
85 | "data": {
86 | "text/html": [
87 | "\n",
88 | "\n",
101 | "
\n",
102 | " \n",
103 | " \n",
104 | " | \n",
105 | " result | \n",
106 | "
\n",
107 | " \n",
108 | " \n",
109 | " \n",
110 | " 0 | \n",
111 | " 1 | \n",
112 | "
\n",
113 | " \n",
114 | "
\n",
115 | "
"
116 | ],
117 | "text/plain": [
118 | " result\n",
119 | "0 1"
120 | ]
121 | },
122 | "execution_count": 3,
123 | "metadata": {},
124 | "output_type": "execute_result"
125 | }
126 | ],
127 | "source": [
128 | "%%sql\n",
129 | "SELECT 1 as result"
130 | ]
131 | },
132 | {
133 | "cell_type": "code",
134 | "execution_count": null,
135 | "metadata": {
136 | "id": "mz_qBY91iI2n"
137 | },
138 | "outputs": [],
139 | "source": [
140 | "%%sql\n",
141 | "\n",
142 | "select now() as 'NOW', 1 as 'COUNT', today() as 'TODAY'"
143 | ]
144 | },
145 | {
146 | "cell_type": "code",
147 | "execution_count": null,
148 | "metadata": {
149 | "id": "EbN55RVOiI2n"
150 | },
151 | "outputs": [],
152 | "source": [
153 | "# -- Cerrar conexión a la base de datos.\n",
154 | "\n",
155 | "try:\n",
156 | " engine.close()\n",
157 | "except:\n",
158 | " pass"
159 | ]
160 | }
161 | ],
162 | "metadata": {
163 | "colab": {
164 | "provenance": []
165 | },
166 | "kernelspec": {
167 | "display_name": "Python 3",
168 | "name": "python3"
169 | },
170 | "language_info": {
171 | "codemirror_mode": {
172 | "name": "ipython",
173 | "version": 3
174 | },
175 | "file_extension": ".py",
176 | "mimetype": "text/x-python",
177 | "name": "python",
178 | "nbconvert_exporter": "python",
179 | "pygments_lexer": "ipython3",
180 | "version": "3.12.5"
181 | }
182 | },
183 | "nbformat": 4,
184 | "nbformat_minor": 0
185 | }
--------------------------------------------------------------------------------
/contenido.curso/000.recursos/videos/001.intro.curso.txt:
--------------------------------------------------------------------------------
1 | https://drive.google.com/file/d/1Zg0l3odpdYLX1En7G6iktY-yQnJU8oa8/view?usp=sharing
2 |
--------------------------------------------------------------------------------
/contenido.curso/000.recursos/videos/002.entrega.trabajos.txt:
--------------------------------------------------------------------------------
1 | https://drive.google.com/file/d/1gQDbv4EbOQWUwEPcIhCVK2lf52LmqzyB/view?usp=sharing
--------------------------------------------------------------------------------
/contenido.curso/001.imagenes/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codingupmyfuture/bootcampduckdb/4f78e7b5261d2f5dc3c9763dc7b7a1d97374e7e9/contenido.curso/001.imagenes/.gitkeep
--------------------------------------------------------------------------------
/contenido.curso/002.documentos/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codingupmyfuture/bootcampduckdb/4f78e7b5261d2f5dc3c9763dc7b7a1d97374e7e9/contenido.curso/002.documentos/.gitkeep
--------------------------------------------------------------------------------
/contenido.curso/002.documentos/000.bienvenida.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codingupmyfuture/bootcampduckdb/4f78e7b5261d2f5dc3c9763dc7b7a1d97374e7e9/contenido.curso/002.documentos/000.bienvenida.pdf
--------------------------------------------------------------------------------
/contenido.curso/002.documentos/001.intro.curso.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codingupmyfuture/bootcampduckdb/4f78e7b5261d2f5dc3c9763dc7b7a1d97374e7e9/contenido.curso/002.documentos/001.intro.curso.pdf
--------------------------------------------------------------------------------
/contenido.curso/002.documentos/002.tipos.de.datos.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codingupmyfuture/bootcampduckdb/4f78e7b5261d2f5dc3c9763dc7b7a1d97374e7e9/contenido.curso/002.documentos/002.tipos.de.datos.pdf
--------------------------------------------------------------------------------
/contenido.curso/002.documentos/003.esquemas.catalogos.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codingupmyfuture/bootcampduckdb/4f78e7b5261d2f5dc3c9763dc7b7a1d97374e7e9/contenido.curso/002.documentos/003.esquemas.catalogos.pdf
--------------------------------------------------------------------------------
/contenido.curso/002.documentos/004.tipos.transacciones.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codingupmyfuture/bootcampduckdb/4f78e7b5261d2f5dc3c9763dc7b7a1d97374e7e9/contenido.curso/002.documentos/004.tipos.transacciones.pdf
--------------------------------------------------------------------------------
/contenido.curso/002.documentos/005.tipos.datos.simples.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codingupmyfuture/bootcampduckdb/4f78e7b5261d2f5dc3c9763dc7b7a1d97374e7e9/contenido.curso/002.documentos/005.tipos.datos.simples.pdf
--------------------------------------------------------------------------------
/contenido.curso/002.documentos/006.tipos.datos.complejos.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codingupmyfuture/bootcampduckdb/4f78e7b5261d2f5dc3c9763dc7b7a1d97374e7e9/contenido.curso/002.documentos/006.tipos.datos.complejos.pdf
--------------------------------------------------------------------------------
/contenido.curso/002.documentos/007.extensiones.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codingupmyfuture/bootcampduckdb/4f78e7b5261d2f5dc3c9763dc7b7a1d97374e7e9/contenido.curso/002.documentos/007.extensiones.pdf
--------------------------------------------------------------------------------
/contenido.curso/002.documentos/008.uso.parquet.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codingupmyfuture/bootcampduckdb/4f78e7b5261d2f5dc3c9763dc7b7a1d97374e7e9/contenido.curso/002.documentos/008.uso.parquet.pdf
--------------------------------------------------------------------------------
/contenido.curso/002.documentos/009.geodata.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codingupmyfuture/bootcampduckdb/4f78e7b5261d2f5dc3c9763dc7b7a1d97374e7e9/contenido.curso/002.documentos/009.geodata.pdf
--------------------------------------------------------------------------------
/contenido.curso/003.normalizacion/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codingupmyfuture/bootcampduckdb/4f78e7b5261d2f5dc3c9763dc7b7a1d97374e7e9/contenido.curso/003.normalizacion/.gitkeep
--------------------------------------------------------------------------------
/contenido.curso/003.normalizacion/001.normalizacion.3FN.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codingupmyfuture/bootcampduckdb/4f78e7b5261d2f5dc3c9763dc7b7a1d97374e7e9/contenido.curso/003.normalizacion/001.normalizacion.3FN.xlsx
--------------------------------------------------------------------------------
/contenido.curso/004.modelo.datos/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codingupmyfuture/bootcampduckdb/4f78e7b5261d2f5dc3c9763dc7b7a1d97374e7e9/contenido.curso/004.modelo.datos/.gitkeep
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codingupmyfuture/bootcampduckdb/4f78e7b5261d2f5dc3c9763dc7b7a1d97374e7e9/contenido.curso/005.sesiones/.gitkeep
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/001.10092024/000.sesion_1.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codingupmyfuture/bootcampduckdb/4f78e7b5261d2f5dc3c9763dc7b7a1d97374e7e9/contenido.curso/005.sesiones/001.10092024/000.sesion_1.pdf
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/002.12092024/000.sesion_2.conceptos.tipos.bd.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codingupmyfuture/bootcampduckdb/4f78e7b5261d2f5dc3c9763dc7b7a1d97374e7e9/contenido.curso/005.sesiones/002.12092024/000.sesion_2.conceptos.tipos.bd.pdf
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/003.17102024/000.sesion_3.conceptosbd.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codingupmyfuture/bootcampduckdb/4f78e7b5261d2f5dc3c9763dc7b7a1d97374e7e9/contenido.curso/005.sesiones/003.17102024/000.sesion_3.conceptosbd.pdf
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/004.19092024/000.sesion_4.cnormalizacion.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codingupmyfuture/bootcampduckdb/4f78e7b5261d2f5dc3c9763dc7b7a1d97374e7e9/contenido.curso/005.sesiones/004.19092024/000.sesion_4.cnormalizacion.pdf
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/005.24092024/000.descarga.archivo.txt:
--------------------------------------------------------------------------------
1 |
2 | desde google drive:
3 | https://docs.google.com/spreadsheets/d/1X_1ELWu3IbbWuQHEB1Rb-I0PzD6znbKt_tyFPe0IvoU/edit?usp=sharing
4 |
5 | desde el repositorio:
6 | https://github.com/codingupmyfuture/bootcampduckdb/tree/main/contenido.curso/003.normalizacion
7 |
8 | herramienta para modelar:
9 | https://www.drawdb.app
10 |
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/006.26042024/001.concurso.txt:
--------------------------------------------------------------------------------
1 |
2 |
3 | pagina oficial del dataset
4 | https://www.kaggle.com/code/shivamb/netflix-shows-and-movies-exploratory-analysis
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/006.26042024/parranda_deivis_diagrama.ddb:
--------------------------------------------------------------------------------
1 | {
2 | "author": "Unnamed",
3 | "title": "parranda_deivis",
4 | "date": "2024-09-26T23:26:19.119Z",
5 | "tables": [
6 | {
7 | "id": 0,
8 | "name": "parranda.tipo_musica",
9 | "x": -850.7164062499993,
10 | "y": -321.1046875000001,
11 | "fields": [
12 | {
13 | "name": "id_tipo_musica",
14 | "type": "SMALLINT",
15 | "default": "",
16 | "check": "",
17 | "primary": true,
18 | "unique": false,
19 | "notNull": true,
20 | "increment": false,
21 | "comment": "Esta es la PK que controla el ID para cada género de música",
22 | "id": 0,
23 | "size": "",
24 | "values": []
25 | },
26 | {
27 | "name": "nombre_genero_musica",
28 | "type": "VARCHAR",
29 | "default": "",
30 | "check": "",
31 | "primary": false,
32 | "unique": false,
33 | "notNull": true,
34 | "increment": false,
35 | "comment": "nombre del genero músical, eje: salsa, bachata, etc",
36 | "id": 1,
37 | "size": 30
38 | },
39 | {
40 | "name": "activo",
41 | "type": "VARCHAR",
42 | "default": "",
43 | "check": "activo IN ('S', 'N')",
44 | "primary": false,
45 | "unique": false,
46 | "notNull": true,
47 | "increment": false,
48 | "comment": "Para eliminación lógica",
49 | "id": 2,
50 | "size": 1
51 | }
52 | ],
53 | "comment": "",
54 | "indices": [],
55 | "color": "#f03c3c",
56 | "key": 1727389644997
57 | },
58 | {
59 | "id": 1,
60 | "name": "parranda.tipo_genero_persona",
61 | "x": -871.5421875,
62 | "y": -60.696874999999864,
63 | "fields": [
64 | {
65 | "name": "id_genero_persona",
66 | "type": "SMALLINT",
67 | "default": "",
68 | "check": "",
69 | "primary": true,
70 | "unique": false,
71 | "notNull": true,
72 | "increment": false,
73 | "comment": "",
74 | "id": 0,
75 | "size": "",
76 | "values": []
77 | },
78 | {
79 | "name": "nombre_genero_persobna",
80 | "type": "VARCHAR",
81 | "default": "",
82 | "check": "",
83 | "primary": false,
84 | "unique": false,
85 | "notNull": true,
86 | "increment": false,
87 | "comment": "",
88 | "id": 1,
89 | "size": 10
90 | },
91 | {
92 | "name": "activo",
93 | "type": "VARCHAR",
94 | "default": "",
95 | "check": "activo IN ('S', 'N')",
96 | "primary": false,
97 | "unique": false,
98 | "notNull": true,
99 | "increment": false,
100 | "comment": "",
101 | "id": 2,
102 | "size": 1
103 | }
104 | ],
105 | "comment": "",
106 | "indices": [],
107 | "color": "#f03c3c",
108 | "key": 1727389654458
109 | },
110 | {
111 | "id": 2,
112 | "name": "parranda.tipo_dieta",
113 | "x": -823.346875,
114 | "y": 408.79687500000017,
115 | "fields": [
116 | {
117 | "name": "id_tipo_dieta",
118 | "type": "SMALLINT",
119 | "default": "",
120 | "check": "",
121 | "primary": true,
122 | "unique": false,
123 | "notNull": true,
124 | "increment": false,
125 | "comment": "",
126 | "id": 0,
127 | "size": "",
128 | "values": []
129 | },
130 | {
131 | "name": "nombre_dieta",
132 | "type": "VARCHAR",
133 | "default": "",
134 | "check": "",
135 | "primary": false,
136 | "unique": false,
137 | "notNull": true,
138 | "increment": false,
139 | "comment": "",
140 | "id": 1,
141 | "size": 20
142 | },
143 | {
144 | "name": "activo",
145 | "type": "VARCHAR",
146 | "default": "",
147 | "check": "activo IN ('S', 'N')",
148 | "primary": false,
149 | "unique": false,
150 | "notNull": true,
151 | "increment": false,
152 | "comment": "",
153 | "id": 2,
154 | "size": 1
155 | }
156 | ],
157 | "comment": "",
158 | "indices": [],
159 | "color": "#f03c3c",
160 | "key": 1727389654634
161 | },
162 | {
163 | "id": 3,
164 | "name": "parranda.tipo_menu",
165 | "x": -814.20859375,
166 | "y": 154.0492187499998,
167 | "fields": [
168 | {
169 | "name": "id_tipo_menu",
170 | "type": "INTEGER",
171 | "default": "",
172 | "check": "",
173 | "primary": true,
174 | "unique": true,
175 | "notNull": true,
176 | "increment": true,
177 | "comment": "",
178 | "id": 0
179 | },
180 | {
181 | "name": "nombre_menu",
182 | "type": "VARCHAR",
183 | "default": "",
184 | "check": "",
185 | "primary": false,
186 | "unique": false,
187 | "notNull": true,
188 | "increment": false,
189 | "comment": "",
190 | "id": 1,
191 | "size": 100
192 | },
193 | {
194 | "name": "id_tipo_dieta",
195 | "type": "SMALLINT",
196 | "default": "",
197 | "check": "",
198 | "primary": false,
199 | "unique": false,
200 | "notNull": true,
201 | "increment": false,
202 | "comment": "",
203 | "id": 2,
204 | "size": "",
205 | "values": []
206 | },
207 | {
208 | "name": "activo",
209 | "type": "VARCHAR",
210 | "default": "",
211 | "check": "activo IN ('S', 'N')",
212 | "primary": false,
213 | "unique": false,
214 | "notNull": true,
215 | "increment": false,
216 | "comment": "",
217 | "id": 3,
218 | "size": 1
219 | }
220 | ],
221 | "comment": "",
222 | "indices": [],
223 | "color": "#f03c3c",
224 | "key": 1727389654785
225 | },
226 | {
227 | "id": 4,
228 | "name": "parranda.usuarios",
229 | "x": -876.27421875,
230 | "y": -872.0748779296874,
231 | "fields": [
232 | {
233 | "name": "id_usuario",
234 | "type": "INTEGER",
235 | "default": "",
236 | "check": "",
237 | "primary": true,
238 | "unique": false,
239 | "notNull": true,
240 | "increment": false,
241 | "comment": "",
242 | "id": 0
243 | },
244 | {
245 | "name": "identificacion",
246 | "type": "VARCHAR",
247 | "default": "",
248 | "check": "",
249 | "primary": false,
250 | "unique": true,
251 | "notNull": true,
252 | "increment": false,
253 | "comment": "",
254 | "id": 1,
255 | "size": 20
256 | },
257 | {
258 | "name": "primer_nombre",
259 | "type": "VARCHAR",
260 | "default": "",
261 | "check": "",
262 | "primary": false,
263 | "unique": false,
264 | "notNull": true,
265 | "increment": false,
266 | "comment": "",
267 | "id": 2,
268 | "size": 30
269 | },
270 | {
271 | "name": "segundo_nombre",
272 | "type": "VARCHAR",
273 | "default": "",
274 | "check": "",
275 | "primary": false,
276 | "unique": false,
277 | "notNull": false,
278 | "increment": false,
279 | "comment": "",
280 | "id": 3,
281 | "size": 30
282 | },
283 | {
284 | "name": "primer_apellido",
285 | "type": "VARCHAR",
286 | "default": "",
287 | "check": "|",
288 | "primary": false,
289 | "unique": false,
290 | "notNull": true,
291 | "increment": false,
292 | "comment": "",
293 | "id": 4,
294 | "size": 30
295 | },
296 | {
297 | "name": "segundo_apellido",
298 | "type": "VARCHAR",
299 | "default": "",
300 | "check": "",
301 | "primary": false,
302 | "unique": false,
303 | "notNull": false,
304 | "increment": false,
305 | "comment": "",
306 | "id": 5,
307 | "size": 30
308 | },
309 | {
310 | "name": "telefono",
311 | "type": "VARCHAR",
312 | "default": "",
313 | "check": "",
314 | "primary": false,
315 | "unique": false,
316 | "notNull": true,
317 | "increment": false,
318 | "comment": "",
319 | "id": 6,
320 | "size": 20
321 | },
322 | {
323 | "name": "id_genero_persona",
324 | "type": "SMALLINT",
325 | "default": "",
326 | "check": "",
327 | "primary": false,
328 | "unique": false,
329 | "notNull": true,
330 | "increment": false,
331 | "comment": "",
332 | "id": 7,
333 | "size": "",
334 | "values": []
335 | },
336 | {
337 | "name": "activo",
338 | "type": "VARCHAR",
339 | "default": "",
340 | "check": "activo IN ('S', 'N')",
341 | "primary": false,
342 | "unique": false,
343 | "notNull": true,
344 | "increment": false,
345 | "comment": "",
346 | "id": 8,
347 | "size": 1
348 | }
349 | ],
350 | "comment": "",
351 | "indices": [],
352 | "color": "#7d9dff",
353 | "key": 1727391134946
354 | },
355 | {
356 | "id": 5,
357 | "name": "parranda.musica_persona",
358 | "x": 416.8671874999992,
359 | "y": -768.5202880859375,
360 | "fields": [
361 | {
362 | "name": "id_usuario",
363 | "type": "INTEGER",
364 | "default": "",
365 | "check": "",
366 | "primary": true,
367 | "unique": false,
368 | "notNull": true,
369 | "increment": false,
370 | "comment": "",
371 | "id": 0
372 | },
373 | {
374 | "name": "id_tipo_musica",
375 | "type": "SMALLINT",
376 | "default": "",
377 | "check": "",
378 | "primary": true,
379 | "unique": false,
380 | "notNull": true,
381 | "increment": false,
382 | "comment": "",
383 | "id": 1,
384 | "size": "",
385 | "values": []
386 | }
387 | ],
388 | "comment": "",
389 | "indices": [],
390 | "color": "#89e667",
391 | "key": 1727392206682
392 | },
393 | {
394 | "id": 6,
395 | "name": "parranda.plato_persona",
396 | "x": 147.1562499999993,
397 | "y": -544.3458740234373,
398 | "fields": [
399 | {
400 | "name": "id_persona",
401 | "type": "INTEGER",
402 | "default": "",
403 | "check": "",
404 | "primary": true,
405 | "unique": false,
406 | "notNull": true,
407 | "increment": false,
408 | "comment": "",
409 | "id": 0
410 | },
411 | {
412 | "name": "id_tipo_menu",
413 | "type": "SMALLINT",
414 | "default": "",
415 | "check": "",
416 | "primary": false,
417 | "unique": false,
418 | "notNull": true,
419 | "increment": false,
420 | "comment": "",
421 | "id": 1,
422 | "size": "",
423 | "values": []
424 | },
425 | {
426 | "name": "confirmado",
427 | "type": "VARCHAR",
428 | "default": "",
429 | "check": "activo IN ('S', 'N')",
430 | "primary": false,
431 | "unique": false,
432 | "notNull": true,
433 | "increment": false,
434 | "comment": "",
435 | "id": 2,
436 | "size": 1
437 | }
438 | ],
439 | "comment": "",
440 | "indices": [],
441 | "color": "#89e667",
442 | "key": 1727392604975
443 | }
444 | ],
445 | "relationships": [
446 | {
447 | "startTableId": 1,
448 | "startFieldId": 0,
449 | "endTableId": 4,
450 | "endFieldId": 7,
451 | "cardinality": "one_to_many",
452 | "updateConstraint": "No action",
453 | "deleteConstraint": "No action",
454 | "name": "parranda.tipo_genero_persona_id_genero_persona_fk",
455 | "id": 0
456 | },
457 | {
458 | "startTableId": 2,
459 | "startFieldId": 0,
460 | "endTableId": 3,
461 | "endFieldId": 2,
462 | "cardinality": "one_to_many",
463 | "updateConstraint": "No action",
464 | "deleteConstraint": "No action",
465 | "name": "parranda.tipo_dieta_id_tipo_dieta_fk",
466 | "id": 1
467 | },
468 | {
469 | "startTableId": 4,
470 | "startFieldId": 0,
471 | "endTableId": 5,
472 | "endFieldId": 0,
473 | "cardinality": "one_to_many",
474 | "updateConstraint": "No action",
475 | "deleteConstraint": "No action",
476 | "name": "parranda.usuarios_id_usuario_fk",
477 | "id": 2
478 | },
479 | {
480 | "startTableId": 0,
481 | "startFieldId": 0,
482 | "endTableId": 5,
483 | "endFieldId": 1,
484 | "cardinality": "one_to_many",
485 | "updateConstraint": "No action",
486 | "deleteConstraint": "No action",
487 | "name": "parranda.tipo_musica_id_tipo_musica_fk",
488 | "id": 3
489 | },
490 | {
491 | "startTableId": 4,
492 | "startFieldId": 0,
493 | "endTableId": 6,
494 | "endFieldId": 0,
495 | "cardinality": "one_to_one",
496 | "updateConstraint": "No action",
497 | "deleteConstraint": "No action",
498 | "name": "parranda.usuarios_id_usuario_fk",
499 | "id": 4
500 | },
501 | {
502 | "startTableId": 3,
503 | "startFieldId": 0,
504 | "endTableId": 6,
505 | "endFieldId": 1,
506 | "cardinality": "one_to_many",
507 | "updateConstraint": "No action",
508 | "deleteConstraint": "No action",
509 | "name": "parranda.tipo_menu_id_tipo_menu_fk",
510 | "id": 5
511 | }
512 | ],
513 | "notes": [
514 | {
515 | "id": 0,
516 | "x": 836.3609374999999,
517 | "y": -312.3890625,
518 | "title": "esquema_aplicar_tablas",
519 | "content": "El esquema que almacenara todos los objetos (entidades)se llamara parranda",
520 | "color": "#fcf7ac",
521 | "height": 162
522 | }
523 | ],
524 | "subjectAreas": [
525 | {
526 | "id": 0,
527 | "name": "tablas_tipo",
528 | "x": -973.4703124999999,
529 | "y": -332.3270263671875,
530 | "width": 727.7718749999999,
531 | "height": 993.984521484375,
532 | "color": "#f03c3c"
533 | }
534 | ],
535 | "database": "postgresql",
536 | "types": [],
537 | "enums": []
538 | }
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/006.26042024/solucion.er/netflix_diagram.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codingupmyfuture/bootcampduckdb/4f78e7b5261d2f5dc3c9763dc7b7a1d97374e7e9/contenido.curso/005.sesiones/006.26042024/solucion.er/netflix_diagram.png
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/007.01102024/001.transversales.sql:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | ___ ___ _
4 | | \| \| |
5 | | |) | |) | |__
6 | |___/|___/|____|
7 |
8 | Data Definition Language
9 | - CREATE : Crea nuevos objetos en la base de datos, como tablas, índices o vistas.
10 | - ALTER : Modifica la estructura de un objeto existente, como agregar o eliminar columnas en una tabla.
11 | - DROP : Elimina un objeto de la base de datos, como una tabla o índice.
12 | - TRUNCATE : Elimina todos los registros de una tabla sin eliminar la tabla misma (lo veremos en DML)
13 |
14 |
15 | REFERENCIAS:
16 | esquemas : https://github.com/codingupmyfuture/bootcampduckdb/blob/main/contenido.curso/002.documentos/003.esquemas.catalogos.pdf
17 | transacciones: https://github.com/codingupmyfuture/bootcampduckdb/blob/main/contenido.curso/002.documentos/004.tipos.transacciones.pdf
18 |
19 |
20 | TRANSVERSALES:
21 |
22 | */
23 |
24 |
25 | -- 1. comentarios de una sola linea
26 |
27 | -- 2. comentarios múlti linea
28 |
29 | /*
30 | * 2.
31 | comentarios
32 | de
33 | múltiples
34 | lineas
35 | */
36 |
37 |
38 | -- 3. show schemas | mostrara la bd por defecto a la que esta creando
39 |
40 | SHOW DATABASES;
41 |
42 | -- 4. crear esquemas | mostrara la bd por defecto a la que esta creando
43 | -- referencia: https://duckdb.org/docs/sql/statements/create_schema.html
44 |
45 |
46 | -- 4.1 elemental
47 | CREATE SCHEMA demo1;
48 |
49 |
50 | -- 4.2 recomendada
51 | CREATE SCHEMA IF NOT EXISTS demo1;
52 |
53 |
54 | -- 5. ubicarse en un esquemas |
55 | -- referencias: https://duckdb.org/docs/sql/statements/use.html
56 | -- https://motherduck.com/docs/key-tasks/database-operations/switching-the-current-database/
57 |
58 | -- 5.1 simple
59 | USE demo1;
60 |
61 | -- full ruta
62 | USE training.main;
63 |
64 | -- 6. mostrar esquema donde esta ubicado
65 | SELECT current_schema();
66 |
67 |
68 | -- 6. mostrar tablas
69 | -- referencias: https://duckdb.org/docs/guides/meta/list_tables.html
70 |
71 | -- 6.1 simple
72 | SHOW TABLES;
73 |
74 | -- 6.2 detallada
75 | SHOW ALL TABLES;
76 |
77 |
78 | -- 7. describir tabla
79 | -- referencias: https://duckdb.org/docs/sql/statements/describe.html
80 | DESCRIBE esquema.tabla;
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/007.01102024/002.create.sql:
--------------------------------------------------------------------------------
1 |
2 | /*
3 |
4 | ___ ___ ___ _ _____ ___
5 | / __| _ \ __| /_\_ _| __|
6 | | (__| / _| / _ \| | | _|
7 | \___|_|_\___/_/ \_\_| |___|
8 |
9 | tablas.
10 |
11 | excelente practica, siempre agregar el esquema.objecto
12 |
13 | */
14 |
15 |
16 | -- 1. simple | recomendación: esquema.tabla
17 | -- referencias: https://duckdb.org/docs/sql/statements/create_table.html
18 |
19 | -- 1.1 simple |
20 | CREATE TABLE dbl1( aa VARCHAR(1));
21 |
22 |
23 | -- 1.2 recomendado | aplicar esquema donde va a quedar almacenados
24 | CREATE TABLE IF NOT EXISTS main.dbl1( aa VARCHAR(1));
25 |
26 |
27 | -- 2. describir tabla
28 |
29 | -- 2.1 simple
30 | DESCRIBE dbl1;
31 |
32 | -- 2.2 recomendado
33 | DESCRIBE main.dbl1;
34 |
35 |
36 | -- 3. agregar comentarios tabla
37 |
38 | COMMENT ON TABLE main.dbl1 IS 'nuestra primera tabla';
39 |
40 | -- 4. agregar comentarios tabla
41 | COMMENT ON COLUMN main.dbl1.aa IS 'mi primera columna';
42 |
43 |
44 | -- 5. mirar comentarios de tablas
45 | SELECT * FROM duckdb_tables();
46 |
47 | -- 6. mirar comentarios de columnas
48 | SELECT * FROM duckdb_columns();
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/008.03102024/002.create.sql:
--------------------------------------------------------------------------------
1 |
2 | /*
3 |
4 | ___ ___ ___ _ _____ ___
5 | / __| _ \ __| /_\_ _| __|
6 | | (__| / _| / _ \| | | _|
7 | \___|_|_\___/_/ \_\_| |___|
8 |
9 | tablas.
10 |
11 | excelente practica, siempre agregar el esquema.objecto
12 |
13 | */
14 |
15 |
16 | -- 1. simple | recomendación: esquema.tabla
17 | -- referencias: https://duckdb.org/docs/sql/statements/create_table.html
18 |
19 | -- 1.1 simple |
20 | CREATE TABLE dbl1( aa VARCHAR(1));
21 |
22 |
23 | -- 1.2 recomendado | aplicar esquema donde va a quedar almacenados
24 | CREATE TABLE IF NOT EXISTS main.dbl1( aa VARCHAR(1));
25 |
26 |
27 | -- 2. describir tabla
28 |
29 | -- 2.1 simple
30 | DESCRIBE dbl1;
31 |
32 | -- 2.2 recomendado
33 | DESCRIBE main.dbl1;
34 |
35 |
36 | -- 3. agregar comentarios tabla
37 |
38 | COMMENT ON TABLE main.dbl1 IS 'nuestra primera tabla';
39 |
40 | -- 4. agregar comentarios tabla
41 | COMMENT ON COLUMN main.dbl1.aa IS 'mi primera columna';
42 |
43 |
44 | -- 5. mirar comentarios de tablas
45 | SELECT * FROM duckdb_tables();
46 |
47 | -- 6. mirar comentarios de columnas
48 | SELECT * FROM duckdb_columns();
49 |
50 |
51 |
52 | -- 7. crear NULL y NOT NULL
53 | CREATE TABLE demo1.ejemplo_1_null(
54 | valor_vacio SMALLINT, -- null
55 | valor_vacio_2 VARCHAR(1) NULL, -- recomendado
56 | valor_no_vacio VARCHAR NOT NULL
57 | );
58 |
59 |
60 |
61 | -- 8. valores default
62 | CREATE TABLE demo1.ejemplo_2_default(
63 | valor_vacio SMALLINT NULL DEFAULT 1,
64 | valor_no_vacio SMALLINT NOT NULL DEFAULT 90
65 | );
66 |
67 |
68 |
69 | -- 9. valores checks
70 | CREATE TABLE demo1.ejemplo_3_check(
71 | --activo VARCHAR NULL CHECK (NOT contains(activo, ' ')) , -- conbinar con funciones | se verá en sección de DQL que es
72 | activo_no_vacio VARCHAR CHECK (activo_no_vacio IN ('S', 'N')) NOT NULL
73 | );
74 |
75 |
76 | -- 8. valores unique
77 | CREATE TABLE demo1.ejemplo_4_unique(
78 | valor_no_vacio SMALLINT NOT NULL UNIQUE
79 | );
80 |
81 |
82 |
83 |
84 | -- 8. valores PK
85 |
86 | -- 8.1 en columna
87 | CREATE TABLE demo1.ejemplo_5_pk(
88 | id_usuario INT NOT NULL PRIMARY KEY,
89 | nombre_usuario VARCHAR NOT NULL
90 | );
91 |
92 |
93 | -- 8.2 al final
94 | CREATE TABLE demo1.ejemplo_6_pk(
95 | id_usuario INT NOT NULL,
96 | nombre_usuario VARCHAR NOT NULL,
97 | PRIMARY KEY (id_usuario)
98 | );
99 |
100 |
101 | -- 8.3 compuesta
102 | CREATE TABLE demo1.ejemplo_7_pk(
103 | id_usuario INT NOT NULL,
104 | id_curso SMALLINT NOT NULL,
105 | PRIMARY KEY (id_usuario, id_curso)
106 | );
107 |
108 |
109 |
110 |
111 | -- 9. valores FK
112 |
113 |
114 | -- tabla a relacionar
115 | CREATE TABLE demo1.tipo_documento(
116 | id_tipo_documento SMALLINT NOT NULL,
117 | nombre_documento VARCHAR NOT NULL,
118 | activo VARCHAR NOT NULL CHECK (activo IN ('S', 'N')),
119 | PRIMARY KEY (id_tipo_documento)
120 | );
121 |
122 |
123 | -- 9.1 referencia | 1:N
124 | CREATE TABLE demo1.usuarios_fk_ejemplo(
125 | id_usuario INT NOT NULL PRIMARY KEY,
126 | nombre_usuario VARCHAR NOT NULL,
127 | id_tipo_documento SMALLINT NOT NULL REFERENCES demo1.tipo_documento(id_tipo_documento),
128 | );
129 |
130 | -- 9.1 referencia | 1:1
131 | CREATE TABLE demo1.ejemplo_9_fk(
132 | id_usuario INT NOT NULL PRIMARY KEY REFERENCES demo1.usuarios_fk_ejemplo(id_usuario),
133 | nro_ingreso_sesion INT NOT NULL
134 | );
135 |
136 |
137 |
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/008.03102024/003.alter.sql:
--------------------------------------------------------------------------------
1 | /*
2 | _ _ _____ ___ ___
3 | /_\ | ||_ _| __| _ \
4 | / _ \| |__| | | _|| /
5 | /_/ \_\____|_| |___|_|_\
6 |
7 | tablas.
8 |
9 | excelente practica, siempre agregar el esquema.objecto
10 | referencias: https://duckdb.org/docs/sql/statements/alter_table.html
11 |
12 | */
13 |
14 | -- creación de esquema y tabla para la prueba
15 | CREATE SCHEMA IF NOT EXISTS alteraciones;
16 | -- USE alteraciones
17 |
18 | CREATE TABLE IF NOT EXISTS alteraciones.prueba( aa VARCHAR(1));
19 |
20 | -- solo ejecutar, se verá en detalle cuando veamos DML
21 | INSERT INTO alteraciones.prueba VALUES ('xyz');
22 |
23 |
24 | -- ver resultados, se verá en detalle cuando veamos DML o DQLsz
25 |
26 | SELECT * FROM alteraciones.test
27 | --------------------------------------------------------------
28 |
29 |
30 | -- 1. renombrar tabla
31 |
32 | ALTER TABLE alteraciones.prueba RENAME TO 'test';
33 |
34 |
35 | -- 2. renombrar columna
36 | ALTER TABLE alteraciones.test RENAME aa TO coords;
37 |
38 |
39 | -- 2.1 agregar columna
40 | ALTER TABLE alteraciones.test ADD activo_null VARCHAR NULL;
41 |
42 |
43 | -- 2.2 agregar default
44 | ALTER TABLE alteraciones.test ADD activo_null2 VARCHAR NULL DEFAULT 'AEIOU';
45 |
46 |
47 | -- 2.3 modificar default
48 | ALTER TABLE alteraciones.test ALTER activo_null2 SET DEFAULT 'UOIEA';
49 |
50 |
51 | -- 2.4 eliminar default
52 | ALTER TABLE alteraciones.test ALTER activo_null2 DROP DEFAULT;
53 |
54 |
55 | -- 2.5 null default
56 | ALTER TABLE alteraciones.test ADD activo VARCHAR DEFAULT 'N';
57 |
58 |
59 | -- 2.6 pasar a not null
60 | ALTER TABLE alteraciones.test ALTER COLUMN activo SET NOT NULL; -- column es opcional | redundante
61 |
62 |
63 | -- 2.6.1 pasar de not null a null
64 | ALTER TABLE alteraciones.test ALTER activo DROP NOT NULL;
65 |
66 | -- 2.7 pasar a otro tipo dde datos
67 | ALTER TABLE alteraciones.test ALTER activo_null TYPE DATE;
68 |
69 |
70 | -- 2.8 eliminar columna
71 | ALTER TABLE alteraciones.test DROP activo_null2;
72 |
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/008.03102024/004.drop.sql:
--------------------------------------------------------------------------------
1 |
2 | /*
3 |
4 | ___ ___ ___ ___
5 | | \| _ \/ _ \| _ \
6 | | |) | / (_) | _/
7 | |___/|_|_\\___/|_|
8 |
9 |
10 | tablas.
11 |
12 | excelente practica, siempre agregar el esquema.objecto
13 | referencias: https://duckdb.org/docs/sql/statements/drop.html
14 |
15 | */
16 |
17 | -- creación de esquema y tabla para la prueba
18 | CREATE SCHEMA IF NOT EXISTS eliminaciones;
19 | -- USE eliminaciones
20 |
21 | CREATE TABLE IF NOT EXISTS eliminaciones.relacion( id SMALLINT PRIMARY KEY);
22 | CREATE TABLE IF NOT EXISTS eliminaciones.relacionado( id SMALLINT NOT NULL PRIMARY KEY REFERENCES eliminaciones.relacion(id));
23 |
24 |
25 | -- 1. eliminar tabla
26 | DROP TABLE eliminaciones.relacion;
27 |
28 |
29 |
30 | -- 2. eliminación jerárquica
31 | CREATE TABLE IF NOT EXISTS eliminaciones.relacion( id SMALLINT NOT NULL PRIMARY KEY);
32 | CREATE TABLE IF NOT EXISTS eliminaciones.relacionado( id SMALLINT NOT NULL PRIMARY KEY REFERENCES eliminaciones.relacion(id));
33 |
34 |
35 | DROP TABLE eliminaciones.relacion; -- generara error
36 |
37 | /*
38 | PASOS:
39 | 1. eliminar las tablas relacionadas primero: DROP TABLE eliminaciones.relacionado;
40 | 2. eliminar la relacion : DROP TABLE eliminaciones.relacion;
41 | */
42 |
43 | -- 3. eliminación esquema
44 |
45 | --3.1 tambien es eliminación jerárquica, se debe eliminar todos los objetos y por ultimo el esquema
46 | DROP SCHEMA eliminaciones;
47 |
48 |
49 | --3.2 cascade ( eliminar jerárquias auto)
50 | DROP SCHEMA eliminaciones CASCADE;
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/009.08102024/001.insert.sql:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | ___ _ _ ___ ___ ___ _____
4 | |_ _| \| / __| __| _ \_ _|
5 | | || .` \__ \ _|| / | |
6 | |___|_|\_|___/___|_|_\ |_|
7 |
8 | tablas.
9 | excelente practica, siempre agregar el esquema.objecto
10 |
11 | referencias: https://duckdb.org/docs/sql/statements/insert.html
12 | */
13 |
14 | -- crear el esquema
15 | CREATE SCHEMA IF NOT EXISTS dml;
16 |
17 | -- crear tablas
18 | CREATE TABLE IF NOT EXISTS dml.test_inserts(
19 | id_tipo SMALLINT NOT NULL PRIMARY KEY,
20 | descripcion VARCHAR NOT NULL,
21 | alias VARCHAR NULL,
22 | alien BOOLEAN,
23 | activo VARCHAR NOT NULL DEFAULT 'S'
24 | );
25 |
26 | - describir como esta la tabla
27 | DESCRIBE dml.test_inserts;
28 |
29 | -- validar resultados
30 | SELECT * FROM dml.test_inserts
31 |
32 | -- forma insert # 1 | todas las columnas | redundante
33 | -- indicar las columnas que se van a insertar
34 | INSERT INTO dml.test_inserts(
35 | id_tipo,
36 | descripcion,
37 | alias,
38 | alien,
39 | activo
40 | ) VALUES (
41 | 1,
42 | 'PRIMER INSERT',
43 | 'PI',
44 | false,
45 | 'S'
46 | );
47 |
48 | -- forma insert # 2 | todas las columnas | recomendada
49 | INSERT INTO dml.test_inserts VALUES (2,'PRIMER INSERT','PI',false,'S');
50 |
51 |
52 | -- forma para evitar que generer errores de PK o unique
53 | INSERT OR IGNORE INTO dml.test_inserts VALUES (2,'PRIMER INSERT','PI',false,'S');
54 |
55 | -- forma para evitar que generer errores de PK y remplazar valor
56 | INSERT OR REPLACE INTO dml.test_inserts VALUES (2,'SEGUNDO INSERT REMPLAZADO','PI',false,'S');
57 |
58 |
59 | -- forma insert # 3 | insert parcial | orden
60 | INSERT INTO dml.test_inserts(id_tipo, descripcion) VALUES (3, 'TERCERO');
61 |
62 |
63 | -- forma insert # 4 | insert parcial | desorden
64 | INSERT INTO dml.test_inserts(descripcion ,id_tipo ) VALUES ('DESORDEN', 4);
65 |
66 | -- generara error
67 | INSERT INTO dml.test_inserts(id_tipo) VALUES (5);
68 |
69 | -- insertar multiples valores | total o parcial | ordinario | no recomendado
70 | INSERT INTO dml.test_inserts VALUES (5,'VARIOS FORMA #1.1','VFO',TRUE,'N');
71 | INSERT INTO dml.test_inserts VALUES (6,'VARIOS FORMA #1.2','VFO',TRUE,'N');
72 | INSERT INTO dml.test_inserts VALUES (7,'VARIOS FORMA #1.3','VFO',TRUE,'N');
73 |
74 | -- insertar multiples valores | total o parcial | eficiente | recomendado
75 | INSERT INTO dml.test_inserts VALUES
76 | (8,'VARIOS FORMA #2.1','VFO',TRUE,'N'),
77 | (9,'VARIOS FORMA #2.2','VFO',TRUE,'N'),
78 | (10,'VARIOS FORMA #2.3','VFO',TRUE,'N');
79 |
80 |
81 | -- insert basico - intermedio
82 |
83 | CREATE TABLE IF NOT EXISTS dml.tmp_test_insert_select(
84 | id_tipo_xyz SMALLINT NOT NULL PRIMARY KEY,
85 | descripcion_anonima VARCHAR NOT NULL,
86 | activo_prueba VARCHAR NOT NULL
87 | );
88 |
89 | INSERT INTO dml.tmp_test_insert_select
90 | SELECT id_tipo,
91 | descripcion,
92 | activo
93 | FROM dml.test_inserts;
94 |
95 | SELECT * FROM dml.tmp_test_insert_select
96 |
97 |
98 | -- insert basico - intermedio
99 | CREATE TABLE dml.tmp_test_insert_create2 AS
100 | SELECT activo,
101 | descripcion,
102 | id_tipo,
103 | FLOOR(random() * 1000) + 1 salario -- campo aleatorío
104 | FROM dml.test_inserts;
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/009.08102024/002.update.sql:
--------------------------------------------------------------------------------
1 |
2 | /*
3 |
4 | _ _ ___ ___ _ _____ ___
5 | | | | | _ \ \ /_\_ _| __|
6 | | |_| | _/ |) / _ \| | | _|
7 | \___/|_| |___/_/ \_\_| |___|
8 |
9 |
10 | tablas.
11 | excelente practica, siempre agregar el esquema.objecto
12 |
13 | referencias: https://duckdb.org/docs/sql/statements/update.html
14 |
15 | OPERADORES TRANSVERSALES (a excepción de SET)
16 |
17 |
18 | =: Compara si dos valores son iguales.
19 | Ejemplo: salario = 3000 selecciona empleados cuyo salario es exactamente 3000.
20 |
21 | >: Compara si un valor es mayor que otro.
22 | Ejemplo: edad > 30 selecciona empleados mayores de 30 años.
23 |
24 | <: Compara si un valor es menor que otro.
25 | Ejemplo: edad < 30 selecciona empleados menores de 30 años.
26 |
27 | >=: Compara si un valor es mayor o igual que otro.
28 | Ejemplo: salario >= 4000 selecciona empleados cuyo salario es 4000 o más.
29 |
30 | <=: Compara si un valor es menor o igual que otro.
31 | Ejemplo: salario <= 4000 selecciona empleados cuyo salario es 4000 o menos.
32 |
33 | != o <>: Compara si dos valores son diferentes.
34 | Ejemplo: salario != 3000 o salario <> 3000 selecciona empleados cuyo salario no es 3000.
35 |
36 | WHERE: Filtra registros según una condición específica.
37 | Ejemplo: WHERE edad > 30 selecciona empleados mayores de 30 años.
38 |
39 | IN: Verifica si un valor está dentro de una lista de valores.
40 | Ejemplo: departamento IN ('Ventas', 'Marketing') selecciona empleados que están en los departamentos de Ventas o Marketing.
41 |
42 |
43 | AND: Combina varias condiciones; todas deben ser verdaderas.
44 | Ejemplo: WHERE edad > 30 AND salario > 3000 selecciona empleados mayores de 30 años y con salario mayor a 3000.
45 |
46 | IS: Se usa para comparar con NULL.
47 | Ejemplo: direccion IS NULL selecciona empleados sin dirección registrada.
48 |
49 | IS NOT: Verifica si un valor no es NULL.
50 | Ejemplo: direccion IS NOT NULL selecciona empleados que tienen una dirección registrada.
51 |
52 | EXISTS: Verifica si una subconsulta devuelve al menos un registro. (se verá en DQL)
53 | Ejemplo: EXISTS (SELECT 1 FROM empleados WHERE salario > 5000) devuelve verdadero si hay al menos un empleado con un salario mayor a 5000.
54 |
55 | BETWEEN: Verifica si un valor está dentro de un rango específico.
56 | Ejemplo: salario BETWEEN 3000 AND 5000 selecciona empleados cuyo salario está entre 3000 y 5000, inclusive.
57 |
58 | LIKE: Se utiliza para buscar un patrón en una columna de texto.
59 | Ejemplo: nombre LIKE 'A%' selecciona empleados cuyos nombres comienzan con la letra 'A'.
60 |
61 |
62 | SET: Se usa para actualizar valores en una tabla.
63 | Ejemplo: SET salario = 5000 actualiza el salario de los empleados a 5000.
64 |
65 |
66 | ORDER JERARQUÍA UPDATE
67 |
68 | UPDATE esquema.tabla_principal
69 | SET columna1 = valor1, columna2 = valor2
70 | JOIN otra_tabla ON tabla_principal.columna_clave = otra_tabla.columna_clave | se verá en DQL
71 | WHERE condicion1 | siempre debe tener WHERE | SIEMPRE!!!!!!!!
72 | AND condicion2;
73 |
74 | */
75 |
76 |
77 | -- eliminar objeto
78 | DROP TABLE dml.tmp_test_insert_create;
79 |
80 | -- recrear
81 | CREATE TABLE dml.tmp_test_insert_create AS
82 | SELECT activo,
83 | descripcion,
84 | id_tipo,
85 | FLOOR(random() * 1000) + 1 salario -- campo aleatorío | DQL
86 | FROM dml.test_inserts;
87 |
88 | -- ver estado actual de los datos
89 | SELECT * FROM dml.tmp_test_insert_create;
90 |
91 | -- MALA PRÁCTICA | EL PEOR ERROR DEL MUNDO
92 | UPDATE dml.tmp_test_insert_create
93 | SET activo = 'N', salario=0
94 | ;
95 |
96 |
97 |
98 |
99 | -- simple filtro
100 | UPDATE dml.tmp_test_insert_create
101 | SET activo = 'B'
102 | WHERE salario > 900;
103 |
104 | SELECT * FROM dml.tmp_test_insert_create;
105 |
106 |
107 | -- múltiple filtro
108 |
109 | UPDATE dml.tmp_test_insert_create
110 | SET activo = 'C'
111 | WHERE salario <= 90 AND
112 | activo = 'S';
113 |
114 | SELECT * FROM dml.tmp_test_insert_create;
115 |
116 |
117 | -- between
118 |
119 | UPDATE dml.tmp_test_insert_create
120 | SET activo = 'F'
121 | WHERE id_tipo BETWEEN 7 AND 9;
122 |
123 | -- in
124 | UPDATE dml.tmp_test_insert_create
125 | SET activo = 'Z'
126 | WHERE id_tipo IN (4, 6);
127 |
128 | SELECT * FROM dml.tmp_test_insert_create;
129 |
130 |
131 | -- update con operaciones
132 | -- mirar https://www.todamateria.com/jerarquia-de-operaciones/
133 | UPDATE dml.tmp_test_insert_create
134 | SET salario = (salario * 0.3) + salario -- incluso subqueries
135 | WHERE activo != 'N';
136 |
137 | SELECT * FROM dml.tmp_test_insert_create;
138 |
139 |
140 | -- filtros con NULL
141 | SELECT * FROM dml.test_inserts;
142 |
143 | UPDATE dml.test_inserts
144 | SET alien = TRUE
145 | WHERE alien IS NULL;
146 |
147 |
148 | -- filtros con NOT NULL
149 | SELECT * FROM dml.test_inserts;
150 |
151 | UPDATE dml.test_inserts
152 | SET alias = 'NN', activo = 'B'
153 | WHERE alien IS NOT NULL;
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/009.08102024/003.delete.sql:
--------------------------------------------------------------------------------
1 |
2 | /*
3 |
4 | ___ ___ _ ___ _____ ___
5 | | \| __| | | __|_ _| __|
6 | | |) | _|| |__| _| | | | _|
7 | |___/|___|____|___| |_| |___|
8 |
9 | tablas.
10 | excelente practica, siempre agregar el esquema.objecto
11 |
12 | referencias: https://duckdb.org/docs/sql/statements/delete.html
13 |
14 |
15 | FROM: Especifica la tabla de la que se seleccionarán o eliminarán los registros.
16 | Ejemplo: FROM empleados indica que la operación se realizará sobre la tabla de empleados.
17 |
18 |
19 | ORDER JERARQUÍA DELETE
20 |
21 | DELETE FROM tabla_principal
22 | JOIN otra_tabla ON tabla_principal.columna_clave = otra_tabla.columna_clave | se verá en DQL
23 | WHERE condicion1
24 | AND condicion2;
25 | */
26 |
27 | SELECT * FROM dml.test_inserts;
28 |
29 |
30 |
31 | -- MALA PRÁCTICA | EL PEOR ERROR DEL MUNDO
32 | DELETE FROM dml.test_inserts;
33 |
34 | SELECT * FROM dml.test_inserts;
35 |
36 |
37 | -- datos de prueba
38 | SELECT * FROM dml.tmp_test_insert_create;
39 |
40 |
41 | DELETE FROM dml.tmp_test_insert_create
42 | WHERE id_tipo BETWEEN 7 AND 10 AND
43 | activo = 'F';
44 |
45 | SELECT * FROM dml.tmp_test_insert_create;
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/009.08102024/004.truncate.sql:
--------------------------------------------------------------------------------
1 |
2 | /*
3 |
4 | _____ ___ _ _ _ _ ___ _ _____ ___
5 | |_ _| _ \ | | | \| |/ __| /_\_ _| __|
6 | | | | / |_| | .` | (__ / _ \| | | _|
7 | |_| |_|_\\___/|_|\_|\___/_/ \_\_| |___|
8 |
9 |
10 | tablas.
11 | excelente practica, siempre agregar el esquema.objecto
12 |
13 | referencias: https://duckdb.org/docs/sql/statements/delete.html
14 |
15 | TRUNCATE: Elimina todas las filas de una tabla de manera rápida y no registra la eliminación de cada fila,
16 | por lo que no se puede usar una cláusula WHERE. No puede ser revertido si se ejecuta en una transacción.
17 |
18 | registra la eliminación de cada fila: cuando se eliminan, datos se pueden recuperar en bases de datos como oracle,
19 | pero truncate elimina esa posibilidad.
20 |
21 | DELETE: Elimina filas específicas según una condición definida en la cláusula WHERE. Cada eliminación se registra,
22 | por lo que se puede revertir en una transacción.
23 |
24 |
25 | */
26 |
27 | TRUNCATE dml.tmp_test_insert_create;
28 |
29 |
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/010.10102024/001.transversal.sql:
--------------------------------------------------------------------------------
1 | /*
2 | ___ ___ _
3 | | \ / _ \| |
4 | | |) | (_) | |__
5 | |___/ \__\_\____|
6 |
7 | Orden jerárquico de evaluación de una consulta SELECT en SQL:
8 |
9 | (*) SELECT - Se seleccionan las columnas o expresiones que se mostrarán.
10 | 1. FROM - Se especifican las tablas de las cuales se obtendrán los datos.
11 | 2. JOIN - Se realizan las uniones entre tablas si es necesario.
12 | 3. WHERE - Se filtran los registros antes de cualquier agrupación.
13 | 4. GROUP BY - Se agrupan los resultados por uno o más campos.
14 | 5. HAVING - Se filtran los grupos generados por el GROUP BY.
15 | 6. SELECT - Se seleccionan las columnas o expresiones que se mostrarán.
16 | 7. ORDER BY - Se ordenan los resultados finales.
17 | 8. LIMIT - Se limita la cantidad de filas que serán devueltas.
18 |
19 | Notas:
20 |
21 | 1. Aunque el SELECT aparece primero en la sintaxis de la consulta,
22 | es evaluado después de las cláusulas FROM, JOIN, WHERE, GROUP BY, y HAVING.
23 | por eso queda en el nivel 6
24 |
25 | 2. (*) obligatorio
26 |
27 |
28 | CONCEPTOS ELEMENTALES:
29 |
30 | Valor hardcodeado (hardcoded): es un dato que se inserta directamente en el código
31 | fuente en lugar de obtenerse dinámicamente
32 |
33 | Casteo (o casting): es el proceso de convertir un valor de un tipo de dato a otro
34 | de manera explícita.
35 |
36 | Textos en base de datos se delimitan con comillas sencillas, eje 'mi texto'
37 |
38 | REFERENCIAS:
39 | tipos de datos: https://duckdb.org/docs/sql/data_types/overview.html
40 | select : https://duckdb.org/docs/sql/statements/select.html
41 | tipos simples : https://github.com/codingupmyfuture/bootcampduckdb/blob/main/contenido.curso/002.documentos/005.tipos.datos.simples.pdf
42 | tipos complex : https://github.com/codingupmyfuture/bootcampduckdb/blob/main/contenido.curso/002.documentos/006.tipos.datos.complejos.pdf
43 |
44 | */
45 |
46 | -- 1. valor arcodeado |
47 | -- 1.1 simmple
48 | SELECT 12345
49 |
50 | -- 1.1 multiple
51 | SELECT 12345, 'mi texto'
52 |
53 |
54 |
55 | --2. alias
56 | --2.1 AS
57 | SELECT 12345 AS mi_valor, 'mi texto' AS texto_prueba;
58 |
59 |
60 | --2.2 sin AS
61 | SELECT 12345 mi_valor, 'mi texto' texto_prueba;
62 |
63 |
64 | -- 3. DESCRIBE SELECT ..
65 | DESCRIBE SELECT 12345 mi_valor, 'mi texto' texto_prueba;
66 |
67 |
68 | -- 4. CASTEO
69 | /*
70 | Operaciones básicas en SQL:
71 |
72 | - Suma: +
73 | Ejemplo: SELECT 5 + 3; -- Resultado: 8
74 |
75 | - Resta: -
76 | Ejemplo: SELECT 10 - 4; -- Resultado: 6
77 |
78 | - Multiplicación: *
79 | Ejemplo: SELECT 7 * 2; -- Resultado: 14
80 |
81 | - División: /
82 | Ejemplo: SELECT 20 / 5; -- Resultado: 4
83 | */
84 |
85 |
86 | SELECT 5 * 5 multiplicacion;
87 |
88 | SELECT '5' * 5 interpretaciones;
89 |
90 | SELECT '5' * '5' error; -- error por que texto por texto no puede ejecutarse
91 |
92 |
93 | -- FORMAS DE CASTEAR
94 | SELECT
95 | INT'5' * INT'5' casteo_1,
96 | CAST('5' AS INT) * CAST('5' AS INT) casteo_2,
97 | '5'::INT * '5'::INT casteo_3;
98 |
99 |
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/010.10102024/002.textos.sql:
--------------------------------------------------------------------------------
1 | --TYPE: texto
2 | -- referencia: https://duckdb.org/docs/sql/functions/char.html
3 | -- valor: DeMo@SofTSeRvEiNc.CoM o MiMAMAmemima@gmail.com
4 |
5 | CREATE TABLE test (email VARCHAR NOT NULL);
6 | INSERT INTO test VALUES ('DeMo@SofTSeRvEiNc.CoM'), ('MiMAMAmemima@gmail.com');
7 | -- PARA PROBAR : SELECT FUNCION(ATRIBUTO) FROM test;
8 |
9 |
10 |
11 |
12 | SELECT 'DeMo@SofTSeRvEiNc.CoM' email
13 |
14 |
15 | -- mins.
16 | SELECT LOWER('DeMo@SofTSeRvEiNc.CoM') email
17 |
18 | -- mays.
19 | SELECT UPPER('DeMo@SofTSeRvEiNc.CoM') email
20 |
21 |
22 | -- longitud.
23 | SELECT LENGTH ('DeMo@SofTSeRvEiNc.CoM') email
24 |
25 |
26 | -- concatenar | A
27 | SELECT 'DeMo@SofTSeRvEiNc.CoM' || '-' || '********' email
28 |
29 | -- concatenar | B
30 | SELECT CONCAT('DeMo@SofTSeRvEiNc.CoM', '-', '********') email
31 |
32 |
33 | -- concatenar | c
34 | SELECT CONCAT_WS('[-]', 'DeMo@SofTSeRvEiNc.CoM', '-', '********') email
35 |
36 | -- trim
37 | SELECT ' DeMo@SofTSeRvEiNc.CoM ' email
38 | SELECT TRIM(' DeMo@SofTSeRvEiNc.CoM ') email
39 |
40 |
41 | -- reverse
42 | SELECT REVERSE('DeMo@SofTSeRvEiNc.CoM') email
43 |
44 | -- concatenación de operaciones
45 | SELECT LOWER(REVERSE('DeMo@SofTSeRvEiNc.CoM')) email
46 |
47 |
48 | -- replace
49 | SELECT REPLACE('DeMo@SofTSeRvEiNc.COM', 'o', '+') email
50 |
51 | -- mejor practica
52 | SELECT REPLACE(LOWER('DeMo@SofTSeRvEiNc.COM'), 'o', '+') email
53 |
54 |
55 | -- repetir varias veces el mismo texto
56 | SELECT REPEAT('DeMo@SofTSeRvEiNc.CoM', 2) AS email;
57 |
58 | -- validar si una parte del texto esta dentro del atributo
59 | SELECT CONTAINS('c:/ruta/archivo/bootcamp.pdf', 'ruta') ruta
60 |
61 | -- validar si el archivo termina en un valor determinado
62 | SELECT ENDS_WITH('c:/ruta/archivo/bootcamp.pdf', 'pdf') ruta
63 | SELECT ENDS_WITH('c:/ruta/archivo/bootcamp.pdf', 'csv') ruta
64 |
65 | -- convertir a base 64
66 | SELECT BASE64('DeMo@SofTSeRvEiNc.CoM') encriptacion_basica
67 |
68 | -- base 64 a texto
69 | SELECT FROM_BASE64('RGVNb0BTb2ZUU2VSdkVpTmMuQ29N')::VARCHAR desencriptacion_basica
70 |
71 | -- desencriptacion_md5
72 | SELECT MD5('DeMo@SofTSeRvEiNc.CoM') encriptacion_media
73 |
74 | -- idetificar
75 | SELECT HASH('DeMo@SofTSeRvEiNc.CoM', 1) encriptacion_media
76 |
77 |
78 | /*
79 | Un slice es una técnica que permite extraer una subsección de un texto,
80 | Usa la notación [start:end], donde:
81 |
82 | start: es el índice desde donde comienza el slice.
83 | end: es el índice donde termina el slice.
84 |
85 |
86 | HOLA
87 | [H | O | L | A] -- ver texto como un vector
88 | [1 | 2 | 3 | 4] -- postivo
89 | [-4 | -3 | -2 | -1] -- negativa
90 |
91 | */
92 |
93 | -- tomando posición del index
94 | SELECT 'HOLA'[1] indice
95 |
96 |
97 | -- tomando rango cerrado
98 | SELECT 'HOLA'[1:3] rango_cerrado
99 |
100 | -- tomando rango abierto final
101 | SELECT 'HOLA'[2:] rango_abierto
102 |
103 |
104 | -- tomando rango abierto inicial
105 | SELECT 'HOLA'[:3] rango_abierto
106 |
107 | -- tomando indice negativo
108 | SELECT 'HOLA'[-2] indice_negativo
109 |
110 |
111 | -- rangos negativos
112 | SELECT 'HOLA'[-2:] rango_negativo
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/010.10102024/003.numeros.sql:
--------------------------------------------------------------------------------
1 | -- USAR DESCRIBE SELECT para validar
2 |
3 |
4 | -- bigint
5 | SELECT 9223372036854775807 AS num_bigint_positivo,
6 | -9223372036854775807 num_bigint_negativo;
7 |
8 |
9 |
10 | -- numeric
11 | SELECT 999999999999999.999 AS num_numeric_positivo,
12 | -999999999999999.999 num_numeric_negativo;
13 |
14 |
15 | -- float
16 | SELECT 1.7976931348623157E308 AS num_float_positivo,
17 | -1.7976931348623157E308 num_float_negativo;
18 |
19 |
20 | -- integer
21 | SELECT 2147483647 AS num_integer_positivo,
22 | -2147483647 num_integer_negativo;
23 |
24 |
25 | -- smallint
26 | SELECT 32767 AS num_smallint_positivo,
27 | -32767 num_smallint_negativo;
28 |
29 | -- tinyint
30 | SELECT 127 AS num_tinyint_positivo,
31 | -127 num_tinyint_negativo;
32 |
33 | --hugeint
34 | SELECT 170141183460469231731687303715884105727 AS num_hugeint_positivo,
35 | -170141183460469231731687303715884105727 num_hugeint_negativo;
36 |
37 |
38 | -- booleanos
39 | SELECT TRUE verdadero,
40 | FALSE falso;
41 |
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/010.10102024/004.fechas.sql:
--------------------------------------------------------------------------------
1 | -- TYPE: datetimes
2 | -- referencias: https://duckdb.org/docs/sql/functions/timestamp.html
3 | /*
4 |
5 | %a Nombre local abreviado de día de semana
6 | %A Nombre local completo de día de semana
7 | %b Nombre local abreviado de mes
8 | %B Nombre local completo de mes
9 | %c Representación local de fecha y hora
10 | %d Día de mes [01,31]
11 | %H Hora (horario 24 horas) [00,23]
12 | %I Hora (horario 12 horas) [01,12]
13 | %j Número de día del año [001,366]
14 | %m Mes [01,12]
15 | %M Minuto [00,59]
16 | %S Segundo
17 | %U Nº semana del año. Se considera al Domingo como primer día de semana [00,53]
18 | %w Establece el primer día de semana [0(Domingo),1(Lunes)... 6].
19 | %W Nº semana del año (Se considera al Lunes como primer día de semana) [00,53]
20 | %x Fecha local
21 | %X Hora local
22 | %y Año en formato corto [00,99]
23 | %Y Año en formato largo
24 | %Z Nombre de Zona Horaria
25 | */
26 |
27 | -- por defecto, el formato de fechas es %Y-%m-%d, eje: 2024-10-01
28 |
29 |
30 | -- fechas
31 | SELECT '2024-10-01'::DATE solo_fecha,
32 | '2024-10-01 15:30:00'::TIMESTAMP fecha_hora,
33 | '15:30:00'::TIME solo_hora
34 |
35 |
36 | -- sumar días, años o meses
37 | -- aumentar días | forma #1
38 | SELECT '2024-10-01'::DATE + 5 fecha_hora
39 |
40 | -- aumentar días | forma #1
41 | SELECT '2024-10-01'::DATE + INTERVAL 5 DAY resultado
42 |
43 | -- aumentar meses
44 | SELECT '2024-10-01'::DATE + INTERVAL 5 MONTH resultado
45 | -- aumentar años
46 | SELECT '2024-10-01'::DATE + INTERVAL 5 YEAR resultado
47 |
48 | -- Nota: con intervar puedes usar más o menos para reducir tiempo
49 | SELECT '2024-10-01'::DATE - INTERVAL 5 YEAR resultado
50 |
51 | -- devuelve la fecha actual (al inicio de la transacción actual)
52 | SELECT current_date resultado;
53 |
54 | -- convierte una fecha a una cadena según el formato especificado
55 | SELECT strftime('2024-10-01'::DATE, '%d/%m/%Y') resultado;
56 |
57 |
58 | -- suma el intervalo a la fecha dada
59 | SELECT date_add('2024-10-01'::DATE, INTERVAL 5 DAY) resultado;
60 |
61 | -- devuelve el número de límites de partición entre las dos fechas dadas
62 | SELECT date_diff('day', '2024-10-01'::DATE, '2024-10-10'::DATE) resultado;
63 |
64 | -- obtiene la subparte de la fecha especificada (equivalente a extract)
65 | SELECT date_part('month', '2024-10-01'::DATE) resultado;
66 |
67 | -- trunca la fecha a la precisión especificada
68 | SELECT date_trunc('month', '2024-10-15'::DATE) resultado;
69 |
70 |
71 | -- alias de date_trunc para truncar la fecha a la precisión especificada
72 | SELECT datetrunc('year', '2024-10-15'::DATE) resultado;
73 |
74 | -- devuelve el nombre (en inglés) del día de la semana para la fecha dada
75 | SELECT dayname('2024-10-01'::DATE) resultado;
76 |
77 | -- extrae una subparte de la fecha especificada
78 | SELECT extract(month FROM '2024-10-01'::DATE) resultado;
79 |
80 | -- devuelve la última de las dos fechas dadas
81 | SELECT greatest('2024-10-01'::DATE, '2024-09-15'::DATE) resultado;
82 |
83 | -- devuelve verdadero si la fecha es finita, falso si no lo es
84 | SELECT isfinite('2024-10-01'::DATE) resultado;
85 |
86 | -- devuelve verdadero si la fecha es infinita, falso si no lo es
87 | SELECT isinf('2024-10-01'::DATE) resultado;
88 |
89 | -- devuelve el último día del mes correspondiente a la fecha dada
90 | SELECT last_day('2024-10-01'::DATE) resultado;
91 |
92 | -- devuelve la primera de las dos fechas dadas
93 | SELECT least('2024-10-01'::DATE, '2024-09-15'::DATE) resultado;
94 |
95 | -- crea una fecha a partir de las partes dadas
96 | SELECT make_date(2024, 10, 1) resultado;
97 |
98 | -- devuelve el nombre (en inglés) del mes para la fecha dada
99 | SELECT monthname('2024-10-01'::DATE) resultado;
100 |
101 | -- devuelve la fecha actual (al inicio de la transacción actual)
102 | SELECT today() resultado;
103 |
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/011.15102024/005.blobs.sql:
--------------------------------------------------------------------------------
1 | --TYPE: texto
2 | -- referencia: https://duckdb.org/docs/sql/functions/blob.html
3 |
4 | /*
5 | Un BLOB (Binary Large Object) es un tipo de dato que se usa para almacenar
6 | archivos grandes o datos en una base de datos, como imágenes, videos,
7 | documentos, y otros tipos de archivos. En lugar de guardar el archivo en el disco de la computadora,
8 | se guarda directamente en la base de datos para que esté todo en un solo lugar y se pueda acceder a él fácilmente.
9 |
10 | */
11 |
12 | SELECT '\xAA\xAB\xAC'::BLOB resultado;
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/011.15102024/006.array.sql:
--------------------------------------------------------------------------------
1 | --TYPE: array
2 | -- referencia: https://duckdb.org/docs/sql/data_types/array
3 |
4 | /*
5 | Una lista de elementos que siempre tiene el mismo número de valores del mismo tipo.
6 | */
7 |
8 | --Notas : insertar [valor1, valor2, valorN]
9 | -- atributo[index] al consultar
10 |
11 | -- definir lista
12 | SELECT array_value(7, 8, 9) resultados;
13 |
14 |
15 | -- obtejer el valor de la lista
16 | SELECT array_value(1, 2, 3)[2] resultados;
17 |
18 |
19 | -- obtejer el valor de la lista
20 | SELECT array_value(1, 2, 3)[-1] resultados;
21 |
22 | -- anidar
23 | SELECT array_value(
24 | array_value(1, 2),
25 | array_value(3, 4),
26 | array_value(5, 6)
27 | );
28 |
29 | -- pueden almacenar structs
30 | SELECT array_value({'a': 1, 'b': 2}, {'a': 3, 'b': 4}) resultado;
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/011.15102024/007.list.sql:
--------------------------------------------------------------------------------
1 | --TYPE: list
2 | -- referencia: https://duckdb.org/docs/sql/data_types/list
3 | -- https://duckdb.org/docs/sql/expressions/logical_operators.html
4 |
5 | /*
6 | Una lista de elementos que puede tener cualquier cantidad de valores del mismo tipo.
7 | */
8 |
9 | --Notas : insertar [valor1, valor2, valorN]
10 | -- atributo[index] al consultar
11 |
12 | -- definir lista
13 | SELECT list_value(7, 8, 9) resultados;
14 |
15 |
16 | -- obtejer el valor de la lista
17 |
18 | -- ejemplo una sola fila
19 | SELECT [1 , 2, NULL, 3] resultado;
20 |
21 | -- multiples - se vera mas adelante que es UNION
22 | SELECT [1 , 2, NULL, 3] resultado
23 | UNION
24 | SELECT [5,6] resultado;
25 |
26 | -- tipo texto
27 | SELECT ['softserve', 'bootcamp' ] resultado;
28 |
29 |
30 | -- aninadas
31 | SELECT [[1,2], [3,4], [5,6]] resultado;
32 |
33 |
34 | -- selecciona el tercer elemento de la lista
35 | SELECT (['a', 'b', 'c'])[3] resultado;
36 |
37 | -- selecciona el último elemento de la lista usando un índice negativo
38 | SELECT (['a', 'b', 'c'])[-1] resultado;
39 |
40 | -- selecciona el tercer elemento de la lista utilizando una expresión matemática para el índice
41 | SELECT (['a', 'b', 'c'])[2 + 1] resultado;
42 |
43 | -- extrae el tercer elemento de la lista usando la función list_extract
44 | SELECT list_extract(['a', 'b', 'c'], 3) resultado;
45 |
46 | -- selecciona una porción de la lista desde el primer elemento hasta el segundo
47 | SELECT (['a', 'b', 'c'])[1:2] resultado;
48 |
49 | -- selecciona una porción de la lista desde el inicio hasta el segundo elemento
50 | SELECT (['a', 'b', 'c'])[:2] resultado;
51 |
52 | -- selecciona una porción de la lista desde el penúltimo elemento hasta el final
53 | SELECT (['a', 'b', 'c'])[-2:] resultado;
54 |
55 | -- extrae una porción de la lista desde el segundo elemento hasta el tercero usando la función list_slice
56 | SELECT list_slice(['a', 'b', 'c'], 2, 3) resultado;
57 |
58 | -- compara si dos listas son iguales
59 | SELECT [1, 2] = [1, 3] resultado;
60 |
61 |
62 | -- compara si la primera lista es mayor que la segunda
63 | SELECT [1, 2] > [1, 3] resultado;
64 |
65 | -- compara si la primera lista es menor que la segunda
66 | SELECT [1, 2] < [1, 3] resultado;
67 |
68 |
69 |
70 |
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/011.15102024/008.map.sql:
--------------------------------------------------------------------------------
1 | --TYPE: map
2 | -- referencia: https://duckdb.org/docs/sql/data_types/map
3 | -- https://duckdb.org/docs/sql/expressions/logical_operators.html
4 | -- obtener la longitud
5 | -- definir map
6 | SELECT MAP {
7 | 'nombre': 'bootcamp',
8 | 'empresa': 'softserve',
9 | 'edad_profe': '19'
10 | } resultado;
11 |
12 |
13 | -- obtener valor por indice
14 | SELECT MAP {
15 | 'nombre': 'bootcamp',
16 | 'empresa': 'softserve',
17 | 'edad_profe': '19'
18 | } resultado;
19 |
20 | -- mandando lista de columnas y valores por separado
21 | SELECT MAP(
22 | ['nombre', 'empresa', 'edad_profe'],
23 | ['bootcamp', 'softserve', '19']
24 | ) resultado;
25 |
26 | -- usando función
27 | SELECT map_from_entries(
28 | [
29 | ('nombre', 'bootcamp'),
30 | ('empresa', 'softserve'),
31 | ('edad_profe', '19')
32 | ]
33 | ) resultado;
34 |
35 |
36 | -- obtener losd datos
37 |
38 | SELECT MAP {
39 | 'nombre': 'bootcamp',
40 | 'empresa': 'softserve',
41 | 'edad_profe': '19'
42 | }['empresa'] resultado;
43 |
44 | -- definir listas [latitud, longitud]
45 | SELECT MAP {
46 | 'udea': [6.267264001455956, -75.56917754648963],
47 | 'unal': [6.260911508487612, -75.5795386134807]
48 | } resultado
49 |
50 |
51 | -- obtener la longitud
52 | SELECT MAP {
53 | 'udea': [6.267264001455956, -75.56917754648963],
54 | 'unal': [6.260911508487612, -75.5795386134807]
55 | }['udea'][1][1] resultado
56 |
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/011.15102024/009.from.sql:
--------------------------------------------------------------------------------
1 | /*
2 | ___ ___ ___ __ __
3 | | __| _ \/ _ \| \/ |
4 | | _|| / (_) | |\/| |
5 | |_| |_|_\\___/|_| |_|
6 |
7 | tablas.
8 |
9 | excelente practica, siempre agregar el esquema.objecto
10 |
11 | Orden jerárquico de evaluación de una consulta SELECT en SQL:
12 |
13 | (*) SELECT - Se seleccionan las columnas o expresiones que se mostrarán.
14 | 1. FROM - Se especifican las tablas de las cuales se obtendrán los datos.
15 | 2. JOIN - Se realizan las uniones entre tablas si es necesario.
16 | 3. WHERE - Se filtran los registros antes de cualquier agrupación.
17 | 4. GROUP BY - Se agrupan los resultados por uno o más campos.
18 | 5. HAVING - Se filtran los grupos generados por el GROUP BY.
19 | 6. SELECT - Se seleccionan las columnas o expresiones que se mostrarán.
20 | 7. ORDER BY - Se ordenan los resultados finales.
21 | 8. LIMIT - Se limita la cantidad de filas que serán devueltas.
22 | */
23 |
24 | USE parranda;
25 |
26 | -- asterisco (*) : traer todas las columnas (seleccionar todos los atributos)
27 |
28 | SELECT *
29 | FROM parranda.usuarios;
30 |
31 | DESCRIBE parranda.usuarios;
32 |
33 | -- seleccionar atributos
34 | SELECT activo,
35 | identificacion,
36 | id_usuario,
37 | FROM parranda.usuarios;
38 |
39 | -- seleccionar y harcodear | mala practica
40 | SELECT 'bootcamp' tipo,
41 | 'duckdb' curso,
42 | *
43 | FROM parranda.usuarios;
44 |
45 |
46 | -- buena practica
47 | SELECT 'bootcamp' tipo,
48 | 'duckdb' curso,
49 | identificacion,
50 | primer_nombre,
51 | segundo_nombre,
52 | primer_apellido,
53 | segundo_apellido,
54 | telefono,
55 | id_genero_persona,
56 | activo
57 | FROM parranda.usuarios;
58 |
59 |
60 | -- alias, util cuando se relacionan tablas
61 | SELECT usr.activo,
62 | usr.identificacion,
63 | usr.id_usuario,
64 | FROM parranda.usuarios usr;
65 |
66 |
67 | -- limites: buena practica para tomar muestras
68 | SELECT *
69 | FROM parranda.usuarios
70 | LIMIT 5;
71 |
72 | -- ordenamiento: ASC,DESC. SQL:
73 | SELECT
74 | id_usuario,
75 | identificacion,
76 | id_genero_persona
77 | FROM parranda.usuarios
78 | ;
79 |
80 | -- forma 1 |
81 | SELECT
82 | id_usuario,
83 | identificacion,
84 | id_genero_persona
85 | FROM parranda.usuarios
86 | ORDER BY id_genero_persona; -- agregar ASC es redundante, por defecto
87 |
88 | -- forma 2 |
89 | SELECT
90 | id_usuario,
91 | identificacion,
92 | id_genero_persona
93 | FROM parranda.usuarios
94 | ORDER BY 3;
95 |
96 | -- forma transversal DESC |
97 | SELECT
98 | id_usuario,
99 | identificacion,
100 | id_genero_persona
101 | FROM parranda.usuarios
102 | ORDER BY 3 DESC;
103 |
104 |
105 | -- multiples ordenamiento por nombre y index columna |
106 | SELECT
107 | id_usuario,
108 | identificacion,
109 | id_genero_persona
110 | FROM parranda.usuarios
111 | ORDER BY identificacion, 3 DESC;
112 |
113 |
114 | -- funciones generales
115 |
116 | -- funciones generales de agregación | PARTE 1
117 | SELECT
118 | -- calcula la suma total de los valores en la columna id_genero_persona.
119 | SUM(id_genero_persona) AS suma_genero,
120 |
121 | -- calcula el promedio de los valores en la columna id_genero_persona.
122 | AVG(id_genero_persona) AS average_genero,
123 |
124 | -- cuenta el número total de registros en la tabla, considerando solo la columna id_genero_persona.
125 | -- forma 1
126 | COUNT(id_genero_persona) AS total_count_1,
127 |
128 | -- forma 2
129 | COUNT(*) AS total_count_2,
130 |
131 | -- forma 3 | recomendada
132 | COUNT(1) AS total_count_3,
133 |
134 | -- devuelve el valor máximo encontrado en la columna id_genero_persona.
135 | MAX(id_genero_persona) AS max_genero,
136 |
137 | -- devuelve el valor mínimo encontrado en la columna id_genero_persona.
138 | MIN(id_genero_persona) AS min_genero
139 |
140 | FROM parranda.usuarios;
141 |
142 |
143 |
144 |
145 |
146 | -- devuelve una lista de valores únicos de la columna id_genero_persona, eliminando los duplicados.
147 | SELECT DISTINCT(id_genero_persona) AS unique_generos
148 | FROM parranda.usuarios;
149 |
150 |
151 | -- case: es condicional
152 |
153 | -- forma 1
154 |
155 | SELECT
156 | id_genero_persona,
157 | CASE id_genero_persona
158 | WHEN 1 THEN 'hombre'
159 | WHEN 2 THEN 'mujer'
160 | WHEN 3 THEN 'otro'
161 | ELSE 'desconocido'
162 | END AS genero
163 | FROM parranda.usuarios;
164 |
165 |
166 | -- forma #2
167 | SELECT
168 | id_genero_persona,
169 | CASE
170 | WHEN id_genero_persona = 1 THEN 'hombre'
171 | WHEN id_genero_persona = 2 THEN 'mujer'
172 | WHEN id_genero_persona = 3 THEN 'otro'
173 | ELSE 'desconocido'
174 | END AS genero
175 | FROM parranda.usuarios;
176 |
177 |
178 | -- recordar y profindizar en AND: es excluyente
179 |
180 | SELECT
181 | ur.id_genero_persona,
182 | CASE
183 | WHEN ur.id_genero_persona = 1 THEN 'hombre'
184 | WHEN ur.id_genero_persona = 2 THEN 'mujer'
185 | WHEN ur.id_genero_persona = 3 THEN 'otro'
186 | ELSE 'desconocido'
187 | END AS genero
188 | FROM parranda.usuarios ur
189 | WHERE id_genero_persona = 1
190 | --AND id_genero_persona = 2;
191 |
192 | -- uso del OR
193 | -- normalmente atributos diferentes
194 | SELECT
195 | ur.id_genero_persona,
196 | CASE
197 | WHEN ur.id_genero_persona = 1 THEN 'hombre'
198 | WHEN ur.id_genero_persona = 2 THEN 'mujer'
199 | WHEN ur.id_genero_persona = 3 THEN 'otro'
200 | ELSE 'desconocido'
201 | END AS genero
202 | FROM parranda.usuarios ur
203 | WHERE id_genero_persona = 1 OR
204 | id_genero_persona = 2;
205 |
206 |
207 | -- organizar los or's en parentesis
208 | SELECT
209 | ur.id_genero_persona,
210 | CASE
211 | WHEN ur.id_genero_persona = 1 THEN 'hombre'
212 | WHEN ur.id_genero_persona = 2 THEN 'mujer'
213 | WHEN ur.id_genero_persona = 3 THEN 'otro'
214 | ELSE 'desconocido'
215 | END AS genero
216 | FROM parranda.usuarios ur
217 | WHERE (id_genero_persona = 1 OR id_genero_persona = 2); -- puede ser un in
218 |
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/012.17102024/001.conceptos.avanzados.parte.1.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codingupmyfuture/bootcampduckdb/4f78e7b5261d2f5dc3c9763dc7b7a1d97374e7e9/contenido.curso/005.sesiones/012.17102024/001.conceptos.avanzados.parte.1.pdf
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/012.17102024/010.unions.sql:
--------------------------------------------------------------------------------
1 | -- UNION'S - deben tener las mismas columnas
2 |
3 | -- para entenderlo, se debe validar por separado
4 | SELECT identificacion, id_genero_persona
5 | FROM parranda.usuarios
6 | WHERE id_genero_persona = 1;
7 |
8 |
9 | SELECT identificacion, id_genero_persona
10 | FROM parranda.usuarios
11 | WHERE id_genero_persona IN (1,2);
12 |
13 | -- UNION ALL: concatena el resultado de ambos queries incluyendon repetidos
14 | SELECT identificacion, id_genero_persona
15 | FROM parranda.usuarios
16 | WHERE id_genero_persona = 1
17 | UNION ALL
18 | SELECT identificacion, id_genero_persona
19 | FROM parranda.usuarios
20 | WHERE id_genero_persona IN (1,2)
21 |
22 | -- UNION : concatena el resultado de ambos queries y elimina los repetidos
23 | SELECT identificacion, id_genero_persona
24 | FROM parranda.usuarios
25 | WHERE id_genero_persona = 1
26 | UNION
27 | SELECT identificacion, id_genero_persona
28 | FROM parranda.usuarios
29 | WHERE id_genero_persona IN (1,2)
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/012.17102024/011.fagregacion.sql:
--------------------------------------------------------------------------------
1 | /*
2 | Las funciones de agregación son herramientas en SQL que permiten realizar cálculos sobre un conjunto de
3 | datos y devolver un único valor. Se utilizan comúnmente en consultas para resumir o agrupar datos.
4 |
5 | REGLAS:
6 | 1. atributos + funciones de agrupación == GROUP BY
7 | 2. los atributos tomados de tablas deben ser los mismos en el select y group by | por el momento
8 | 3. usar having count = cuando se quiera filtrar datos agrupados
9 | */
10 |
11 | -- contar el número total de usuarios por género
12 | SELECT id_genero_persona,
13 | COUNT(1) AS total_usuarios
14 | FROM parranda.usuarios
15 | GROUP BY id_genero_persona;
16 |
17 | -- grop by harcodeado
18 | SELECT tt.vigencia,
19 | tt.mes,
20 | tt.dia,
21 | SUM(venta) ventas_totales
22 | FROM (
23 | SELECT 2024 vigencia, 10 mes, 17 dia, 200 venta
24 | UNION ALL
25 | SELECT 2024 vigencia, 10 mes, 16 dia, 100 venta
26 | UNION ALL
27 | SELECT 2024 vigencia, 10 mes, 17 dia, 20 venta) tt
28 | GROUP BY tt.vigencia,
29 | tt.mes,
30 | tt.dia,
31 |
32 |
33 | -- sumar los totales por género
34 | SELECT id_genero_persona,
35 | SUM(id_genero_persona) AS suma_generos
36 | FROM parranda.usuarios
37 | GROUP BY id_genero_persona;
38 |
39 |
40 | -- promedio de por género
41 | SELECT id_genero_persona,
42 | AVG(id_genero_persona) AS promedio_generos
43 | FROM parranda.usuarios
44 | GROUP BY id_genero_persona;
45 |
46 | -- encontrar el genero mínimo de los usuarios por género
47 | SELECT id_genero_persona,
48 | MIN(id_genero_persona) AS genero_minima
49 | FROM parranda.usuarios
50 | GROUP BY id_genero_persona;
51 |
52 | -- encontrar el genero máxima de los usuarios por género
53 | SELECT id_genero_persona, MAX(id_genero_persona) AS genero_maxima
54 | FROM parranda.usuarios
55 | GROUP BY id_genero_persona;
56 |
57 | -- obtener múltiples agregaciones:
58 | SELECT id_genero_persona,
59 | COUNT(1) AS total_genero,
60 | SUM(id_genero_persona) AS genero_sumatoria,
61 | AVG(id_genero_persona) AS genero_promedio,
62 | MIN(id_genero_persona) AS genero_minima,
63 | MAX(id_genero_persona) AS genero_maxima
64 | FROM parranda.usuarios
65 | GROUP BY id_genero_persona;
66 |
67 | -- HAVING COUNT
68 | -- el uso de HAVING COUNT(...) en SQL se emplea para filtrar grupos de resultados después de que se han aplicado las funciones de agregación.
69 | SELECT id_genero_persona,
70 | COUNT(1) AS total_usuarios
71 | FROM parranda.usuarios
72 | GROUP BY id_genero_persona
73 | HAVING COUNT(1) > 8
74 | ORDER BY 2 DESC
75 | ;
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/012.17102024/012.subqueries.sql:
--------------------------------------------------------------------------------
1 | /*
2 | ¿Para qué se usan los subqueries en SQL?
3 | Los subqueries son preguntas dentro de otras preguntas en una base de datos. Se utilizan para:
4 |
5 | 1. Filtrar datos: Encuentran información específica.
6 | 2. Calcular valores: Hacen sumas o promedios.
7 | 3. Verificar existencia: Comproban si hay datos relacionados.
8 | 4. Simplificar consultas: Hacen las preguntas más fáciles de entender.
9 | 5. Organizar información: Agrupan datos antes de mostrarlos.
10 |
11 | categorías:
12 | IN
13 | NOT IN
14 | =
15 | EXITSA
16 | */
17 |
18 |
19 | -- subqueries
20 |
21 | -- IN
22 | -- selecciona todos los usuarios que son de género 'hombre' o 'mujer'
23 | SELECT *
24 | FROM parranda.usuarios
25 | -- WHERE id_genero_persona IN (1,2)
26 | WHERE id_genero_persona IN (
27 | SELECT id_genero_persona
28 | FROM parranda.tipo_genero_persona
29 | WHERE id_genero_persona IN (1, 2)
30 | -- AND activo = 'S'
31 | );
32 |
33 |
34 | -- NOT IN
35 | -- selecciona id_genero_persona que no es 'mujer'
36 | SELECT *
37 | FROM parranda.usuarios
38 | WHERE id_genero_persona NOT IN (
39 | SELECT id_genero_persona
40 | FROM tipo_genero_persona
41 | WHERE id_genero_persona = 2
42 | );
43 |
44 | -- IGUAL =
45 | -- selecciona id_genero_persona que es igual a 'otro'
46 | SELECT
47 | *
48 | FROM parranda.usuarios
49 | WHERE id_genero_persona = (
50 | SELECT id_genero_persona
51 | FROM parranda.tipo_genero_persona
52 | WHERE id_genero_persona = 3
53 | );
54 |
55 | -- EXISTS
56 | -- selecciona todos los registros de tipo_genero_persona donde existen usuarios asociados
57 | SELECT *
58 | FROM parranda.tipo_genero_persona AS tg
59 | WHERE EXISTS (
60 | SELECT 1
61 | FROM parranda.usuarios AS us
62 | WHERE us.id_genero_persona = tg.id_genero_persona
63 | );
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/012.17102024/013.joins.sql:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | _ ___ ___ _ _ ___
4 | _ | |/ _ \_ _| \| / __|
5 | | || | (_) | || .` \__ \
6 | \__/ \___/___|_|\_|___/
7 |
8 | Los joins son utilizados para combinar filas de dos o más tablas basándose en una relación entre ellas.
9 |
10 | inner join combina filas de dos tablas cuando hay una coincidencia en ambas.
11 | left join (también conocido como Left Outer Join)
12 | right join (también conocido como Right Outer Join)
13 | full join (también conocido como Full Outer Join)
14 | cross join
15 | virtual Joins
16 | */
17 |
18 |
19 | -- crear el esquema
20 | CREATE SCHEMA IF NOT EXISTS joins;
21 |
22 | -- crear la tabla tipo_genero
23 | CREATE TABLE IF NOT EXISTS joins.tipo_genero (
24 | id_genero TINYINT PRIMARY KEY,
25 | genero VARCHAR(50) NOT NULL,
26 | activo VARCHAR(1) NOT NULL
27 | );
28 |
29 | -- crear la tabla usuarios
30 | CREATE TABLE IF NOT EXISTS joins.usuarios (
31 | id_usuario TINYINT PRIMARY KEY,
32 | nombre_usuario VARCHAR(50),
33 | id_genero TINYINT REFERENCES joins.tipo_genero(id_genero),
34 | activo VARCHAR(1) NOT NULL
35 | );
36 |
37 | -- insertar datos en tipo_genero
38 | INSERT INTO joins.tipo_genero VALUES
39 | (1, 'masculino', 'S'),
40 | (2, 'femenino', 'S'),
41 | (3, 'no binario', 'N');
42 |
43 | -- insertar datos en usuarios
44 | INSERT INTO joins.usuarios VALUES
45 | (1, 'juan', 1, 'S'),
46 | (2, 'maria', 2, 'S'),
47 | (3, 'carlos', NULL, 'S'),
48 | (4, 'luisa', NULL, 'S'),
49 | (5, 'alex', NULL, 'S');
50 |
51 |
52 |
53 | -- generando error de ambiguedad
54 | SELECT activo --error
55 | FROM joins.usuarios usr
56 | INNER JOIN joins.tipo_genero tg ON
57 | usr.id_genero = tg.id_genero;
58 |
59 | -- JOIN ventajas de la union
60 | SELECT usr.id_usuario,
61 | usr.nombre_usuario,
62 | tg.genero,
63 | usr.activo
64 | FROM joins.usuarios usr
65 | INNER JOIN joins.tipo_genero tg ON
66 | usr.id_genero = tg.id_genero
67 | -- WHERE ..;
68 |
69 | -- LEFT JOIN
70 | SELECT *
71 | FROM joins.usuarios usr
72 | LEFT JOIN joins.tipo_genero tg ON
73 | usr.id_genero = tg.id_genero;
74 |
75 | -- RIGHT JOIN
76 | SELECT *
77 | FROM joins.usuarios usr
78 | RIGHT JOIN joins.tipo_genero tg ON
79 | usr.id_genero = tg.id_genero;
80 |
81 |
82 | -- FULL JOIN
83 | SELECT *
84 | FROM joins.usuarios usr
85 | FULL JOIN joins.tipo_genero tg
86 | ON usr.id_genero = tg.id_genero;
87 |
88 | SELECT usr.id_usuario,
89 | usr.nombre_usuario,
90 | ifnull(tg.genero, 'NO-REPORTADO') genero,
91 | usr.activo
92 | FROM joins.usuarios usr
93 | FULL JOIN joins.tipo_genero tg
94 | ON usr.id_genero = tg.id_genero;
95 |
96 | -- CROSS JOIN
97 | SELECT *
98 | FROM joins.usuarios usr
99 | CROSS JOIN joins.tipo_genero tg;
100 |
101 |
102 | -- ejemplo mas de una tabla
103 | SELECT usr.identificacion ,
104 | usr.primer_nombre ,
105 | usr.primer_apellido ,
106 | tm.nombre_genero_musica genero_musical
107 | FROM parranda.musica_persona mp
108 | INNER JOIN parranda.usuarios usr ON
109 | mp.id_usuario = usr.id_usuario
110 | JOIN parranda.tipo_musica tm ON
111 | mp.id_tipo_musica = tm.id_tipo_musica
112 | --LIMIT 5;
113 |
114 |
115 | -- usando group group by
116 | SELECT tm.nombre_genero_musica, COUNT(1) catidad
117 | FROM parranda.musica_persona mp
118 | INNER JOIN parranda.usuarios usr ON
119 | mp.id_usuario = usr.id_usuario
120 | JOIN parranda.tipo_musica tm ON
121 | mp.id_tipo_musica = tm.id_tipo_musica
122 | GROUP BY tm.nombre_genero_musica
123 | HAVING COUNT(*)> 13
124 |
125 |
126 | -- como usar rango top 3
127 | SELECT tm.nombre_genero_musica, COUNT(1) catidad
128 | FROM parranda.musica_persona mp
129 | INNER JOIN parranda.usuarios usr ON
130 | mp.id_usuario = usr.id_usuario
131 | JOIN parranda.tipo_musica tm ON
132 | mp.id_tipo_musica = tm.id_tipo_musica
133 | -- WHERE
134 | GROUP BY tm.nombre_genero_musica
135 | ORDER BY 2 DESC
136 | LIMIT 3
137 |
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/013.22102024/001.conceptos.avanzados.parte.2.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codingupmyfuture/bootcampduckdb/4f78e7b5261d2f5dc3c9763dc7b7a1d97374e7e9/contenido.curso/005.sesiones/013.22102024/001.conceptos.avanzados.parte.2.pdf
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/013.22102024/014.like.sql:
--------------------------------------------------------------------------------
1 |
2 | /*
3 |
4 | _ ___ _ _____
5 | | | |_ _| |/ / __|
6 | | |__ | || ' <| _|
7 | |____|___|_|\_\___|
8 |
9 | En SQL, la cláusula LIKE se utiliza para buscar un patrón específico dentro de una columna de texto.
10 | busquedas avanzadas (contenido avanzado): https://duckdb.org/docs/sql/functions/regular_expressions.html
11 | */
12 |
13 |
14 | -- empiece
15 | SELECT * FROM parranda.usuarios usr
16 | WHERE LOWER(primer_nombre) LIKE 'a%'
17 |
18 |
19 | -- finalice
20 | SELECT * FROM parranda.usuarios usr
21 | WHERE LOWER(primer_nombre) LIKE '%a'
22 |
23 |
24 | -- contenga
25 | SELECT * FROM parranda.usuarios usr
26 | WHERE LOWER(primer_nombre) LIKE '%an%'
27 |
28 | -- comodin
29 | SELECT * FROM parranda.usuarios usr
30 | WHERE LOWER(primer_nombre) LIKE '_a%'
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/013.22102024/015.cte.sql:
--------------------------------------------------------------------------------
1 | /*
2 | ___ _____ ___
3 | / __|_ _| __|
4 | | (__ | | | _|
5 | \___| |_| |___|
6 |
7 |
8 | Son una forma de definir una consulta temporal y segmentada en SQL.
9 | Los CTEs son útiles para organizar consultas complejas, mejorar la legibilidad del código y evitar la repetición de subconsultas.
10 |
11 | WITH PrimerCTE AS (
12 | SELECT columna1, columna2
13 | FROM tabla1
14 | WHERE condiciones1
15 | ),
16 | SegundoCTE AS (
17 | SELECT columna3, columna4
18 | FROM tabla2
19 | WHERE condiciones2
20 | )
21 | -- Consulta principal que utiliza los CTEs
22 | SELECT columna1, columna3
23 | FROM PrimerCTE
24 | JOIN SegundoCTE ON PrimerCTE.columna1 = SegundoCTE.columna3;
25 |
26 | */
27 |
28 |
29 |
30 |
31 | WITH musica AS (
32 | SELECT id_tipo_musica id_musica,
33 | UPPER(nombre_genero_musica) musica
34 | FROM parranda.tipo_musica
35 | WHERE activo = 'S'
36 | ),
37 | parranderos AS (
38 | SELECT
39 | usr.id_usuario,
40 | usr.identificacion ,
41 | usr.primer_nombre ,
42 | usr.primer_apellido
43 | FROM parranda.usuarios usr
44 | INNER JOIN parranda.plato_persona pp
45 | ON usr.id_usuario = pp.id_persona
46 | WHERE pp.confirmado = 'S'
47 | ),
48 | usuarios_parranda AS (
49 | SELECT mp.id_usuario,
50 | mp.id_tipo_musica id_musica
51 | FROM parranda.musica_persona mp
52 | )
53 |
54 | SELECT pr.identificacion ,
55 | pr.primer_nombre ,
56 | pr.primer_apellido ,
57 | ms.musica genero_musical
58 | FROM usuarios_parranda up
59 | INNER JOIN parranderos pr ON
60 | up.id_usuario = pr.id_usuario
61 | INNER JOIN musica ms ON
62 | ms.id_musica = up.id_musica
63 |
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/013.22102024/016.windows.sql:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | __ _____ _ _ ___ _____ __
4 | \ \ / /_ _| \| | \ / _ \ \ / /
5 | \ \/\/ / | || .` | |) | (_) \ \/\/ /
6 | \_/\_/ |___|_|\_|___/ \___/ \_/\_/
7 |
8 | referencias: https://duckdb.org/docs/sql/functions/window_functions.html
9 | */
10 |
11 |
12 | CREATE SCHEMA ventanas;
13 |
14 | -- crear la tabla ventas_mes en el esquema ventanas
15 | CREATE TABLE ventanas.ventas_mes (
16 | id_venta TINYINT PRIMARY KEY,
17 | mes VARCHAR(20),
18 | venta INT
19 | );
20 |
21 | -- insertar datos de ejemplo en la tabla ventas_mes
22 | INSERT INTO ventanas.ventas_mes VALUES
23 | (1,'enero', 100),
24 | (2,'febrero', 200),
25 | (3,'marzo', 150),
26 | (4,'abril', 300),
27 | (5,'mayo', 250);
28 |
29 |
30 | -- crear la tabla ventas_mes en el esquema ventanas
31 | CREATE TABLE ventanas.ventas_usuarios (
32 | dia_venta TINYINT,
33 | nombre_usuario VARCHAR(20),
34 | valor_venta INT
35 | );
36 |
37 | -- insertar datos de ejemplo en la tabla ventas_usuarios
38 | INSERT INTO ventanas.ventas_usuarios VALUES
39 | (10,'Pepito', 5),
40 | (11,'Julanito', 2),
41 | (15,'Pepito', 3),
42 | (17,'Pepito', 1);
43 |
44 |
45 | -- NOTA no es GROUP BY
46 | SELECT 'originales' categoria,
47 | mes,
48 | venta ventas
49 | FROM ventanas.ventas_mes
50 | UNION ALL
51 | SELECT
52 | 'agrupados' categoria,
53 | mes,
54 | SUM(venta) ventas,
55 | FROM ventanas.ventas_mes
56 | GROUP BY categoria, mes
57 | UNION ALL
58 | SELECT
59 | 'ventana' categoria,
60 | mes,
61 | SUM(venta) OVER (ORDER BY mes) ventas,
62 | FROM ventanas.ventas_mes
63 | ;
64 |
65 | -- calcular el total acumulado de ventas usando una window function por orden de los registros
66 | SELECT
67 | id_venta,
68 | mes,
69 | venta,
70 | SUM(venta) OVER (ORDER BY id_venta) AS ventas
71 | FROM ventanas.ventas_mes
72 | ORDER BY 1;
73 |
74 |
75 | -- calcular el total acumulado de ventas por usuario usando una window
76 | SELECT
77 | dia_venta,
78 | nombre_usuario,
79 | valor_venta,
80 | SUM(valor_venta) OVER (
81 | PARTITION BY nombre_usuario ORDER BY dia_venta
82 | ) AS ventas
83 | FROM ventanas.ventas_usuarios
84 | ORDER BY 1;
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/013.22102024/017.pivot.sql:
--------------------------------------------------------------------------------
1 | /*
2 | ___ _____ _____ _____
3 | | _ \_ _\ \ / / _ \_ _|
4 | | _/| | \ V / (_) || |
5 | |_| |___| \_/ \___/ |_|
6 |
7 | referencias:https://duckdb.org/docs/sql/statements/pivot.html
8 |
9 | El PIVOT en SQL se usa para reorganizar y transformar los datos de una tabla, cambiando filas en columnas para facilitar su análisis.
10 |
11 | PIVOT ⟨dataset⟩
12 | ON ⟨columns⟩
13 | USING ⟨values⟩
14 | GROUP BY ⟨rows⟩
15 | ORDER BY ⟨columns_with_order_directions⟩
16 | LIMIT ⟨number_of_rows⟩;
17 |
18 | */
19 |
20 | -- organizar por dia de venta
21 | PIVOT (
22 | SELECT
23 | dia_venta,
24 | nombre_usuario,
25 | valor_venta,
26 | SUM(valor_venta) OVER (
27 | PARTITION BY nombre_usuario ORDER BY dia_venta
28 | ) AS ventas
29 | FROM ventanas.ventas_usuarios
30 | ORDER BY 1
31 | )
32 | ON dia_venta
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/013.22102024/018.views.sql:
--------------------------------------------------------------------------------
1 | /*
2 | __ _____ _____ _____
3 | \ \ / /_ _| __\ \ / / __|
4 | \ V / | || _| \ \/\/ /\__ \
5 | \_/ |___|___| \_/\_/ |___/
6 |
7 | referencias: https://duckdb.org/docs/sql/statements/create_view.html
8 |
9 | son objetos que representan una consulta almacenada. Funcionan como tablas virtuales, ya que no almacenan datos por sí mismas,
10 | sino que muestran datos de una o más tablas subyacentes en función de una consulta SQL.
11 |
12 | excelente practica, siempre agregar el esquema.objecto
13 |
14 | CREATE OR REPLACE VIEW esquema.nombre AS DQL;
15 |
16 | */
17 |
18 | -- crear vista con campos heredados (como se llaman los atributos en la entidad)
19 | CREATE OR REPLACE VIEW parranda.v_parranderos AS
20 | SELECT usr.identificacion ,
21 | usr.primer_nombre ,
22 | usr.primer_apellido ,
23 | tm.nombre_genero_musica
24 | FROM parranda.musica_persona mp
25 | INNER JOIN parranda.usuarios usr ON
26 | mp.id_usuario = usr.id_usuario
27 | JOIN parranda.tipo_musica tm ON
28 | mp.id_tipo_musica = tm.id_tipo_musica ;
29 |
30 |
31 | SELECT * FROM parranda.v_parranderos
32 | LIMIT 10;
33 |
34 | -- crear vista con campos camuflados (alias) .. practica recomendada
35 | CREATE OR REPLACE VIEW parranda.v_parranderos2 AS
36 | SELECT usr.identificacion cc,
37 | usr.primer_nombre pnombre,
38 | usr.primer_apellido papellido,
39 | tm.nombre_genero_musica pmusica
40 | FROM parranda.musica_persona mp
41 | INNER JOIN parranda.usuarios usr ON
42 | mp.id_usuario = usr.id_usuario
43 | JOIN parranda.tipo_musica tm ON
44 | mp.id_tipo_musica = tm.id_tipo_musica ;
45 |
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/013.22102024/019.secuencias.sql:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | ___ ___ ___ _ _ ___ _ _ ___ ___ ___
4 | / __| __/ _ \| | | | __| \| |/ __| __/ __|
5 | \__ \ _| (_) | |_| | _|| .` | (__| _|\__ \
6 | |___/___\__\_\\___/|___|_|\_|\___|___|___/
7 | referencias: https://duckdb.org/docs/sql/statements/create_sequence.html
8 |
9 |
10 | Las secuencias son objetos independeientes que generan números únicos en un orden secuencial,
11 | comúnmente utilizados para crear identificadores únicos para filas en una tabla.
12 | */
13 |
14 |
15 | CREATE SCHEMA IF NOT EXISTS sqs;
16 |
17 | -- crear secuencia simple
18 | CREATE SEQUENCE IF NOT EXISTS sqs.consecutivo;
19 |
20 | -- obtiene el siguiente valor de la secuencia
21 | SELECT nextval('sqs.consecutivo') AS proximo_valor;
22 |
23 | -- obtiene el valor actual de la secuencia
24 | SELECT currval('sqs.consecutivo') AS valor_actual;
25 |
26 | -- crear secuencia empezando desde un numero especifico
27 | CREATE SEQUENCE IF NOT EXISTS sqs.sq_start START 25;
28 | SELECT nextval('sqs.sq_start') AS proximo_valor;
29 | SELECT currval('sqs.sq_start') AS valor_actual;
30 |
31 | -- incremental por un valor definido
32 | CREATE SEQUENCE IF NOT EXISTS sqs.sq_incr
33 | START WITH 1
34 | INCREMENT BY 5;
35 |
36 | SELECT nextval('sqs.sq_incr') AS proximo_valor;
37 | SELECT currval('sqs.sq_incr') AS valor_actual;
38 |
39 | -- crear secuencias descendentes
40 | CREATE SEQUENCE sqs.sq_desc
41 | START WITH 10
42 | INCREMENT BY -1
43 | MAXVALUE 10;
44 |
45 | SELECT nextval('sqs.sq_desc') AS proximo_valor;
46 | SELECT currval('sqs.sq_desc') AS valor_actual;
47 |
48 | -- generar secuencias con limite
49 | CREATE SEQUENCE sqs.seq_limite START WITH 1 MAXVALUE 3;
50 | SELECT nextval('sqs.seq_limite') AS proximo_valor; -- supera 3, genera error
51 | SELECT currval('sqs.seq_limite') AS valor_actual;
52 |
53 | -- generar secuencias con limite cicliclas
54 | CREATE SEQUENCE sqs.seq_ciclo START WITH 1 MAXVALUE 3 CYCLE;
55 | SELECT nextval('sqs.seq_ciclo') AS proximo_valor;
56 | SELECT currval('sqs.seq_ciclo') AS valor_actual;
57 |
58 | -- atar la secuencia a un atributo
59 | CREATE TABLE IF NOT EXISTS sqs.ventas (
60 | id_transaccion INTEGER DEFAULT nextval('sqs.consecutivo') PRIMARY KEY,
61 | valor_venta INTEGER
62 | );
63 |
64 | INSERT INTO sqs.ventas(valor_venta) VALUES (100), (2342);
65 |
66 | SELECT * FROM sqs.ventas;
67 |
68 | -- insertar datos
69 | INSERT INTO sqs.ventas VALUES (nextval('sqs.consecutivo'), 100),
70 | (nextval('sqs.consecutivo'), 2342);
71 |
72 | -- NOTA: mantener la secuencia soltera (no atada a nada)
73 |
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/014.24202024/001.conceptos.avanzados.parte.3.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codingupmyfuture/bootcampduckdb/4f78e7b5261d2f5dc3c9763dc7b7a1d97374e7e9/contenido.curso/005.sesiones/014.24202024/001.conceptos.avanzados.parte.3.pdf
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/014.24202024/020.macros.sql:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | __ __ _ ___ ___ ___ ___
4 | | \/ | /_\ / __| _ \/ _ \/ __|
5 | | |\/| |/ _ \ (__| / (_) \__ \
6 | |_| |_/_/ \_\___|_|_\\___/|___/
7 |
8 | referencias: https://duckdb.org/docs/sql/statements/create_macro.html
9 |
10 | En duckDB, las macros son como vistas (consultas guardadas),
11 | pero con la ventaja de que pueden aceptar parámetros para hacerlas más flexibles y reutilizables.
12 | */
13 |
14 | -- definir simple macro
15 | CREATE OR REPLACE MACRO sqs.sumar(valor_1, valor_2) AS
16 | valor_1 + valor_2;
17 |
18 |
19 | -- llamar valores harcodeados
20 | SELECT sqs.sumar(1, 2) resultado
21 |
22 | -- usar con atributos dinamicos
23 | SELECT vu.valor_venta,
24 | sqs.sumar(vu.valor_venta, vu.valor_venta * 0.19) total_produto
25 | FROM ventanas.ventas_usuarios vu
26 |
27 |
28 | -- problema cotidiano
29 | SELECT dayname('2024-10-04'::DATE) resultado;
30 |
31 | SELECT
32 | CASE dayname(today())
33 | WHEN 'Monday' THEN 'Lunes'
34 | WHEN 'Tuesday' THEN 'Martes'
35 | WHEN 'Wednesday' THEN 'Miércoles'
36 | WHEN 'Thursday' THEN 'Jueves'
37 | WHEN 'Friday' THEN 'Viernes'
38 | WHEN 'Saturday' THEN 'Sábado'
39 | WHEN 'Sunday' THEN 'Domingo'
40 | ELSE 'desconocido'
41 | END AS dia_espanol
42 |
43 |
44 | -- crear macro para traducir
45 | CREATE OR REPLACE MACRO sqs.traducir_dia(fecha) AS
46 | CASE dayname(fecha)
47 | WHEN 'Monday' THEN 'Lunes'
48 | WHEN 'Tuesday' THEN 'Martes'
49 | WHEN 'Wednesday' THEN 'Miércoles'
50 | WHEN 'Thursday' THEN 'Jueves'
51 | WHEN 'Friday' THEN 'Viernes'
52 | WHEN 'Saturday' THEN 'Sábado'
53 | WHEN 'Sunday' THEN 'Domingo'
54 | ELSE 'desconocido'
55 | END;
56 |
57 | -- validar resultados
58 | SELECT sqs.traducir_dia('2024-10-04'::DATE) fecha_1
59 | SELECT sqs.traducir_dia(today()) fecha_1
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/014.24202024/021.enums.sql:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | ___ _ _ _ _ __ __
4 | | __| \| | | | | \/ |
5 | | _|| .` | |_| | |\/| |
6 | |___|_|\_|\___/|_| |_|
7 |
8 |
9 | referencias: https://duckdb.org/docs/sql/statements/create_macro.html
10 |
11 | El tipo de dato enum en bases de datos se utiliza para definir una lista de
12 | valores posibles para una columna, como si fuera un "diccionario" que contiene
13 | todas las opciones únicas que esa columna puede tener. Es como una lista predefinida
14 | de valores permitidos, y cada valor en esa lista es único.
15 | */
16 | CREATE SCHEMA IF NOT EXISTS enumeradores;
17 | USE enumeradores;
18 |
19 | CREATE TYPE genero AS ENUM ('hombre', 'mujer', 'otro');
20 |
21 |
22 |
23 | CREATE TABLE IF NOT EXISTS enumeradores.persona(
24 | nombre_persona VARCHAR NOT NULL,
25 | genero_persona genero NOT NULL
26 | );
27 |
28 |
29 | INSERT INTO enumeradores.persona VALUES ('softserve', 'otro');
30 | INSERT INTO enumeradores.persona VALUES ('softserve', 'hombre');
31 | INSERT INTO enumeradores.persona VALUES ('softserve', 'mujer');
32 |
33 | -- no valores
34 | INSERT INTO enumeradores.persona VALUES ('softserve', 'profesor');
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/014.24202024/022.variables.sql:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | __ ___ ___ ___ _ ___ _ ___ ___
4 | \ \ / /_\ | _ \_ _| /_\ | _ ) | | __/ __|
5 | \ V / _ \| /| | / _ \| _ \ |__| _|\__ \
6 | \_/_/ \_\_|_\___/_/ \_\___/____|___|___/
7 |
8 |
9 |
10 | referencias: https://duckdb.org/docs/sql/statements/set_variable.html
11 |
12 | Una variable es un contenedor que se utiliza para almacenar y representar datos en memoria.
13 | Puedes pensar en una variable como una caja etiquetada en la que puedes poner un valor específico,
14 | y luego referirte a ese valor usando el nombre de la variable.
15 | */
16 |
17 |
18 |
19 | -- NOTA para trabajar con variables, debes tener una versión igual o superior a 1.1
20 |
21 | -- verificar versión
22 | SELECT version() version_duckdb
23 |
24 | -- ir a la base de datos > editar conexión > configuración de conexión > Driver Settings:
25 | -- Libraries > desplegar y ver si la versión es 0.10, seleccionar y darle a Download/Update
26 | -- con eso se actualiza el driver y usa la versión actual
27 |
28 |
29 | -- NOTA: las variables no son persistentes, se reinician con cada desconexión
30 |
31 | -- definir la variable, cambiar por el valor que quieran
32 | SET VARIABLE ruta_archivos = '/Users/lvasq/labs/duckdb';
33 | SET VARIABLE delimitador_os = '/';
34 |
35 | -- obtener variables
36 | SELECT getvariable('ruta_archivos') ruta
37 | SELECT getvariable('delimitador_os') ruta
38 |
39 |
40 | SELECT concat_ws(
41 | getvariable('delimitador_os'),
42 | getvariable('ruta_archivos'),
43 | 'prueba', 'texto.txt'
44 | ) ruta
45 |
46 |
47 | -- unset variable
48 | RESET VARIABLE nombre_variable;
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/014.24202024/023.transactions.sql:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | __ ___ ___ ___ _ ___ _ ___ ___
4 | \ \ / /_\ | _ \_ _| /_\ | _ ) | | __/ __|
5 | \ V / _ \| /| | / _ \| _ \ |__| _|\__ \
6 | \_/_/ \_\_|_\___/_/ \_\___/____|___|___/
7 |
8 |
9 |
10 | referencias: https://duckdb.org/docs/sql/statements/transactions.html
11 | https://duckdb.org/2024/09/25/changing-data-with-confidence-and-acid.html
12 |
13 | TCL (Transaction Control Language) es un grupo de comandos en bases de datos usado para manejar
14 | transacciones, asegurando que los cambios se confirmen o se reviertan en caso de error.
15 |
16 | Comandos principales:
17 | COMMIT: Guarda cambios definitivamente.
18 | ROLLBACK: Revierte cambios.
19 | */
20 |
21 | /*
22 |
23 | CREATE TYPE genero AS ENUM ('hombre', 'mujer', 'otro');
24 |
25 | CREATE TABLE IF NOT EXISTS enumeradores.persona(
26 | nombre_persona VARCHAR NOT NULL,
27 | genero_persona genero NOT NULL
28 | );
29 |
30 | */
31 |
32 | SELECT * FROM enumeradores.persona;
33 |
34 | BEGIN TRANSACTION;
35 | -- si sabemos que no van a fallar, usar commit
36 | INSERT INTO enumeradores.persona VALUES ('x', 'otro');
37 | INSERT INTO enumeradores.persona VALUES ('y', 'otro');
38 | COMMIT;
39 |
40 |
41 | BEGIN TRANSACTION;
42 | -- si sabemos que van a fallar, o es critico usar ROLLBACK, si falla
43 | -- algo, se devuelven los cambios
44 | INSERT INTO enumeradores.persona VALUES ('e', 'otro');
45 | INSERT INTO enumeradores.persona VALUES ('f', 'softserve');
46 | INSERT INTO enumeradores.persona VALUES ('g', 'softserve');
47 | INSERT INTO enumeradores.persona VALUES ('h', 'otro');
48 |
49 |
50 | ROLLBACK;
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/014.24202024/024.extensiones.sql:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | _____ _______ ___ _ _ ___ ___ ___ _ _ ___
4 | | __\ \/ /_ _| __| \| / __|_ _/ _ \| \| / __|
5 | | _| > < | | | _|| .` \__ \| | (_) | .` \__ \
6 | |___/_/\_\ |_| |___|_|\_|___/___\___/|_|\_|___/
7 |
8 | referencias: https://duckdb.org/docs/extensions/overview.html
9 | - https://github.com/codingupmyfuture/bootcampduckdb/blob/main/contenido.curso/002.documentos/007.extensiones.pdf
10 | */
11 |
12 | -- toda la info default extensiones
13 | SELECT *
14 | FROM duckdb_extensions();
15 |
16 | -- una mejor vista
17 | SELECT extension_name nombre_extension,
18 | loaded cargada,
19 | installed instalada
20 | FROM duckdb_extensions()
21 | ORDER BY installed DESC, loaded DESC;
22 |
23 |
24 |
25 | -- extensión para leer información del internet
26 |
27 | --instala
28 | INSTALL httpfs;
29 |
30 | -- carga a la sesión
31 | LOAD httpfs;
32 |
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/014.24202024/025.lectura.archivos.sql:
--------------------------------------------------------------------------------
1 | -- descargar archivos y cambiar ruta
2 | SET VARIABLE datasets = '/Users/lvasq/labs/duckdb';
3 | SET VARIABLE base_repo = 'https://raw.githubusercontent.com/codingupmyfuture/bootcampduckdb/refs/heads/main/contenido.curso/000.recursos/datasets'
4 |
5 | -- lectura CSV
6 | -- referencias: https://duckdb.org/docs/guides/file_formats/csv_import
7 | -- https://duckdb.org/docs/data/csv/overview.html
8 |
9 | -- directa
10 | SELECT * FROM '/Users/lvasq/labs/duckdb/titanic.csv'
11 |
12 | -- función, recomendado para configurar delimitador, etc
13 | SELECT *
14 | FROM read_csv('/Users/lvasq/labs/duckdb/titanic.csv' ,
15 | delim = ',',
16 | header = TRUE
17 | );
18 |
19 | -- desde variable
20 | SELECT * FROM read_csv(CONCAT_WS('/', getvariable('datasets'), 'titanic.csv'))
21 |
22 | -- lectura desde internet
23 | SELECT * FROM 'https://raw.githubusercontent.com/codingupmyfuture/bootcampduckdb/refs/heads/main/contenido.curso/000.recursos/datasets/titanic.csv'
24 |
25 | -- lectura desde internet con variable
26 | SELECT * FROM read_csv(CONCAT_WS('/', getvariable('base_repo'), 'titanic.csv'))
27 |
28 |
29 | -- lectura JSON - IMPORTANTE - estudiarlo
30 | -- referencias: https://duckdb.org/docs/data/json/overview
31 | INSTALL json;
32 | LOAD json;
33 |
34 |
35 | -- general
36 | SELECT * FROM read_json(CONCAT_WS('/', getvariable('datasets'), 'tv_shows.json'))
37 |
38 | -- seleccionando
39 | SELECT tv.nombre,tv.tipo, tv.genero,
40 | tv.castin['name'] persona,
41 | tv.castin['description'] rol,
42 | FROM (
43 | SELECT
44 | tt.name nombre,
45 | tt.TYPE tipo,
46 | tt.genre genero,
47 | CAST(
48 | UNNEST(
49 | CAST(cast_and_crew AS VARCHAR[])
50 | ) AS STRUCT(
51 | name VARCHAR,
52 | description VARCHAR
53 | )
54 | ) castin -- desacoplar actores
55 | FROM read_json(CONCAT_WS('/', getvariable('datasets'), 'tv_shows.json')) tt
56 | ) tv
57 |
58 |
59 | -- lectura Excel
60 | -- referencias: https://duckdb.org/docs/guides/file_formats/excel_export
61 | -- tener activado
62 | -- INSTALL spatial;
63 | -- LOAD spatial;
64 |
65 | INSTALL spatial;
66 | LOAD spatial;
67 |
68 | -- si no se le pone, lee la primera tab
69 | SELECT * FROM st_read(
70 | CONCAT_WS('/', getvariable('datasets'), 'parranda.xlsx')--,
71 | --layer = 'tab'
72 | );
73 |
74 | -- si no se le pone, lee la primera tab
75 | SELECT * FROM st_read(
76 | CONCAT_WS('/', getvariable('datasets'), 'parranda.xlsx'),
77 | layer = 'musica'
78 | );
79 |
80 |
81 | -- lectura parquet
82 | -- referencias: https://duckdb.org/docs/guides/file_formats/parquet_import
83 | -- PARQUET == LO MAS USADO A NIVELES ALTOS Y MADUROS
84 |
85 | -- directa
86 | SELECT * FROM '/Users/lvasq/labs/duckdb/comunas_medellin.parquet'
87 |
88 | -- usando función
89 | SELECT * FROM read_parquet('/Users/lvasq/labs/duckdb/comunas_medellin.parquet')
90 |
91 | -- ventajas
92 | DESC SELECT * FROM '/Users/lvasq/labs/duckdb/comunas_medellin.parquet'
93 |
94 |
95 | -- usando DDL
96 |
97 | CREATE SCHEMA IF NOT EXISTS archivos;
98 |
99 | CREATE TABLE archivos.tmp_musica AS
100 | SELECT fl."ID _MUSICA" id,
101 | fl."NOMBRE_ GENERO_MUSICA" genero
102 | FROM st_read(
103 | CONCAT_WS('/', getvariable('datasets'), 'parranda.xlsx'),
104 | layer = 'musica'
105 | ) fl;
106 |
107 |
108 | SELECT * FROM archivos.tmp_musica
109 |
110 | -- usando DML
111 |
112 | CREATE TABLE archivos.musica(
113 | id_genero_musical VARCHAR,
114 | nombre_genero_musical VARCHAR
115 | );
116 |
117 | INSERT INTO archivos.musica
118 | SELECT fl."ID _MUSICA" id,
119 | fl."NOMBRE_ GENERO_MUSICA" genero
120 | FROM st_read(
121 | CONCAT_WS('/', getvariable('datasets'), 'parranda.xlsx'),
122 | layer = 'musica'
123 | ) fl;
124 |
125 | SELECT * FROM archivos.musica;
126 |
127 |
128 | /*
129 | IMPORTANTE:
130 | duck db soporta leer varios archivos al tiempo, mirar:
131 | https://duckdb.org/docs/data/multiple_files/overview.html
132 | /*
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/015.29102024/001.conceptos.avanzados.parte.4.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codingupmyfuture/bootcampduckdb/4f78e7b5261d2f5dc3c9763dc7b7a1d97374e7e9/contenido.curso/005.sesiones/015.29102024/001.conceptos.avanzados.parte.4.pdf
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/015.29102024/026.exportaciones.sql:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | La exportación de datos es un proceso que permite transferir datos desde una base de datos u otro
4 | sistema de almacenamiento a un formato que pueda ser utilizado por otros programas o aplicaciones.
5 |
6 | FORMATOS:
7 | PARQUET
8 | CSV
9 | JSON
10 | EXCEL
11 |
12 | References: https://duckdb.org/docs/guides/file_formats/overview
13 |
14 | Sintaxis:
15 | COPY (tabla o DQL) TO 'ruta/archivo.extension' (FORMAT [FORMATO]);
16 | */
17 |
18 | -- exportación csv
19 | COPY parranda.tipo_musica TO '~/Downloads/tipo_musica.csv' (FORMAT CSV);
20 |
21 | -- exportación excel
22 | INSTALL spatial;
23 | LOAD spatial;
24 |
25 | COPY parranda.tipo_musica TO '~/Downloads/tipo_musica.xlsx'
26 | WITH (FORMAT GDAL, DRIVER 'xlsx');
27 |
28 | -- exportación parquet
29 | COPY parranda.tipo_musica TO '~/Downloads/tipo_musica.parquet' (FORMAT PARQUET);
30 |
31 | -- usando DQL
32 | COPY (
33 | SELECT nombre_genero_musica genero
34 | FROM parranda.tipo_musica
35 | ) TO '~/Downloads/generos_musicales.csv' (FORMAT CSV);
36 |
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/015.29102024/027.geodata.sql:
--------------------------------------------------------------------------------
1 |
2 |
3 | /*
4 |
5 | ___ ___ ___ ___ _ _____ _
6 | / __| __/ _ \| \ /_\_ _/_\
7 | | (_ | _| (_) | |) / _ \| |/ _ \
8 | \___|___\___/|___/_/ \_\_/_/ \_\
9 |
10 | referencias: https://duckdb.org/docs/extensions/spatial/overview.html
11 | https://github.com/codingupmyfuture/bootcampduckdb/blob/main/contenido.curso/002.documentos/009.geodata.pdf
12 | */
13 |
14 | -- descargar y activar plugin
15 | INSTALL spatial;
16 | LOAD spatial
17 |
18 | -- configurar variable
19 | SET VARIABLE geodata = '/Users/lvasq/labs/duckdb';
20 |
21 | -- local
22 | SELECT *
23 | FROM ST_Read( -- funcion de spatial EXTENSION.
24 | CONCAT_WS('/', getvariable('geodata'), 'comunas_medellin.geojson')
25 | );
26 |
27 | -- describamos los datos
28 | DESC SELECT *
29 | FROM ST_Read( -- funcion de spatial EXTENSION.
30 | CONCAT_WS('/', getvariable('geodata'), 'comunas_medellin.geojson')
31 | );
32 |
33 |
34 |
35 | -- dataset #1
36 | -- centremosnos en los datos relevantes
37 | SELECT
38 | codigo nro_comuna,
39 | nombre nombre_comuna,
40 | geom coordenadas
41 | FROM ST_Read( -- funcion de spatial EXTENSION.
42 | CONCAT_WS('/', getvariable('geodata'), 'comunas_medellin.geojson')
43 | )
44 | ORDER BY 2;
45 |
46 | -- dataset #2
47 | -- crear puntos
48 | SELECT ST_POINT(6.209004649498719, -75.56798270165233) lleras;
49 |
50 |
51 | -- crear puntos #3
52 | SELECT ST_POINT(6.271055144475173,-75.57311620567457) transito
53 |
54 | -- si quisieramos cambiar a otro sistema de coordenadas
55 | SELECT ST_TRANSFORM(
56 | ST_POINT(6.209004649498719, -75.56798270165233),
57 | 'EPSG:4326', 'EPSG:3857'
58 | );
59 |
60 | --
61 | SELECT ST_Distance(
62 | ST_TRANSFORM(ST_POINT(6.209004649498719, -75.56798270165233),'EPSG:4326', 'EPSG:3857'),
63 | ST_TRANSFORM(ST_POINT(6.271055144475173, -75.57311620567457),'EPSG:4326', 'EPSG:3857')
64 | ) / 1000 distancia
65 |
66 | -- analizar datos, distancia
67 | -- analizar datos, distancia
68 | WITH lleras AS(
69 | SELECT ST_POINT(
70 | 6.209004649498719,
71 | -75.56798270165233
72 | ) coordenadas
73 |
74 | ),
75 | transito AS (
76 | SELECT ST_POINT(
77 | 6.271055144475173,
78 | -75.57311620567457
79 | ) coordenadas
80 | ),
81 | comunas as (
82 | SELECT
83 | codigo nro_comuna,
84 | nombre nombre_comuna,
85 | geom poligono
86 | FROM ST_Read( -- funcion de spatial EXTENSION.
87 | CONCAT_WS('/', getvariable('geodata'), 'comunas_medellin.geojson')
88 | )
89 | )
90 | -- EPSG:3857 utiliza una proyección cilíndrica conforme de cercator.
91 | --esto significa que las líneas de latitud y longitud son rectas y
92 | --se cruzan en ángulos rectos.
93 |
94 | SELECT
95 | ll.coordenadas lleras_punto,
96 | tt.coordenadas tto_punto,
97 | st_distance(
98 | st_transform(ll.coordenadas, 'EPSG:4326', 'EPSG:3857'),
99 | st_transform(tt.coordenadas, 'EPSG:4326', 'EPSG:3857')
100 | )/ 1000 distancia_km_lleras_tto,
101 | cm.nro_comuna,
102 | cm.nombre_comuna,
103 | cm.poligono
104 | FROM lleras ll,
105 | transito tt,
106 | comunas cm
107 | WHERE st_within(ll.coordenadas, cm.poligono) OR
108 | st_within(tt.coordenadas, cm.poligono);
109 |
110 |
111 |
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/015.29102024/028.estadisticas.sql:
--------------------------------------------------------------------------------
1 | -- referencias: https://duckdb.org/docs/sql/statements/analyze.html
2 | -- actualizar estadisticas para joins
3 | ANALYZE;
4 |
5 |
6 |
7 | -- referencias: https://duckdb.org/docs/sql/statements/vacuum.html
8 | -- actualizar estadisticas para updates y eliminaciones, actualiza estadistica de tabla
9 | VACUUM ANALYZE;
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/015.29102024/029.linea.comandos.txt:
--------------------------------------------------------------------------------
1 | -- referencias: https://duckdb.org/docs/api/cli/arguments.html
2 |
3 |
4 | -- menú de ayuda
5 | duckdb -h
6 |
7 |
8 | -- versión de base de base de datos
9 | duckdb --version
10 |
11 |
12 | -- abrir base de dato(s)
13 | duckdb base_de_datos;
14 |
15 |
16 | -- ejecutar consulta
17 | duckdb eventos -s 'SELECT * FROM parranda.tipo_musica'
18 |
19 |
20 | -- salida a csv
21 | duckdb eventos -csv -s 'SELECT * FROM parranda.tipo_musica'
22 |
23 |
24 | -- salida a json
25 | duckdb eventos -json -s 'SELECT * FROM parranda.tipo_musica'
26 |
27 | -- salida html
28 | duckdb eventos -html -s 'SELECT * FROM parranda.tipo_musica' --stats
29 |
30 | -- salida box
31 | duckdb eventos -box -s 'SELECT * FROM parranda.tipo_musica'
32 |
33 | -- ejecutar modo
34 |
35 |
36 | -- comandos de punto: https://duckdb.org/docs/api/cli/dot_commands
37 | duckdb ruta/nombre_db < 030.propiedades.sql
--------------------------------------------------------------------------------
/contenido.curso/005.sesiones/015.29102024/030.propiedades.sql:
--------------------------------------------------------------------------------
1 | .prompt "BOOTCAMP"
2 |
3 | -- activar tiempo ejecución
4 | .timer on
5 |
6 | -- imprimir
7 | .print '\n'
8 | -- listar tablas
9 | .tables
10 |
11 |
12 | -- ejecutar query modo de salida box
13 | .mode box
14 | SELECT * FROM parranda.tipo_musica;
15 |
16 | .print '\n'
17 | -- modo inline
18 | .mode line
19 | SELECT * FROM parranda.tipo_musica;
20 |
21 | .print '\n'
22 |
23 | -- mostrar config
24 | .show
25 |
26 | .print '\n'
27 |
28 |
29 | .shell cal
30 | -- Turn the timer off
31 | .timer off
32 |
--------------------------------------------------------------------------------
/contenido.curso/006.ejercicios/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codingupmyfuture/bootcampduckdb/4f78e7b5261d2f5dc3c9763dc7b7a1d97374e7e9/contenido.curso/006.ejercicios/.gitkeep
--------------------------------------------------------------------------------