├── Conteúdos recomendados └── links_recomendados.txt ├── Contribuições ├── Jerry Lei │ └── Link.txt ├── Mazoelle Karoline │ └── Link.txt ├── Rodolfo Gabriel │ └── Link.txt └── Sergio Willians │ └── Link.txt ├── Lives └── 2025 │ └── scripts_live_19_02_2025.sql ├── Perguntas Kahoot ├── Perguntas_Aula1.txt ├── Perguntas_Aula2.txt ├── Perguntas_Aula3.txt └── Perguntas_Aula4.txt ├── Projeto Final ├── Projeto Final.pdf └── Respostas Projeto Final.docx ├── README.md ├── Scripts ├── Cria Tabela Vendas.sql ├── Dataset_Aula_5.sql ├── Scripts_Aula_1.sql ├── Scripts_Aula_2.sql ├── Scripts_Aula_3.sql ├── Scripts_Aula_4.sql ├── Scripts_Aula_5.sql ├── Scripts_Aula_6.sql └── Scripts_Aula_7.sql ├── Slides das Aulas ├── Slides_PPT_Evangelizando_a_Linguagem_SQL - Aula 1.pptx └── Slides_PPT_Evangelizando_a_Linguagem_SQL - Aula 2.pdf ├── Tarefas e Links de Apoio ├── Tarefas_e_Links_Apoio_Aula_1.txt └── Tarefas_e_Links_Apoio_Aula_2.txt └── Vencedores Kahoot ├── Vencedores_Aula_1.PNG ├── Vencedores_Aula_2.PNG ├── Vencedores_Aula_3.PNG ├── Vencedores_Aula_4.png ├── Vencedores_Aula_5_6.png └── Vencedores_Aula_7.png /Conteúdos recomendados/links_recomendados.txt: -------------------------------------------------------------------------------- 1 | -- Dirceu Resende 2 | https://dirceuresende.com/ 3 | 4 | -- Luiz Lima 5 | https://luizlima.net/ 6 | 7 | -- Fabricio Lima 8 | https://fabriciolima.net/blog/ 9 | 10 | -- Luiz Santana 11 | https://consultabd.wordpress.com/ 12 | 13 | -- Vinicius Fonseca 14 | https://viniciusfonsecadba.wordpress.com/ 15 | 16 | -- Canal da Power Tuning 17 | https://www.youtube.com/@PowerTuningData 18 | 19 | -- Fabiano Amorim 20 | https://www.youtube.com/@mcflyamorim 21 | 22 | -- Vitor Fava 23 | https://www.youtube.com/@vitortff 24 | 25 | -- Shalom André 26 | https://www.youtube.com/@shalomandre7615 27 | 28 | -- Caio Garcia - Iniciativa DBA 29 | https://www.youtube.com/@dbaonboarding7183 30 | 31 | -- Alessandro Trovato 32 | https://www.youtube.com/@AlessandroTrovato 33 | 34 | -- Canal dotNET - muitas LIVEs 35 | https://www.youtube.com/@CanalDotNET 36 | 37 | -- Microsoft Learn - Certifications 38 | https://learn.microsoft.com/pt-br/certifications/ 39 | 40 | -- Ítalo Mesquita 41 | https://www.youtube.com/@ItaloMesquita 42 | 43 | -- Wallace Camargo 44 | https://www.youtube.com/@wallacecamargo1043 45 | 46 | -- Raphael Amorim 47 | https://www.youtube.com/@bifastsolutions 48 | 49 | -- Rafael Arruda 50 | https://www.youtube.com/@arrudaconsulting 51 | 52 | -- Dev Analytics 53 | https://www.youtube.com/@DevAnalytics 54 | 55 | -- Fabio MS 56 | https://www.youtube.com/@fabioms 57 | 58 | -- DBA PRO 59 | https://www.youtube.com/@DBAPRO 60 | 61 | -- Boson Treinamentos 62 | https://www.youtube.com/@bosontreinamentos 63 | 64 | -- Felipe Mafra 65 | https://www.udemy.com/user/felipe-mafra-dos-santos/?utm_source=adwords&utm_medium=udemyads&utm_campaign=INTL-AW-PROS-Portugal-DSA-WebIndex&utm_content=deal4584&utm_term=_._ag_110792056508_._ad_440430986864_._de_c_._dm__._pl__._ti_dsa-134353762397_._li_1011706_._pd__._&gclid=Cj0KCQjw84anBhCtARIsAISI-xfvqldRD3DD_mq6IOL2w0WAmSoZXakudOxsPLc0V08BjD0XccHeP80aAo8YEALw_wcB 66 | 67 | -- Claudio Bonel 68 | https://www.youtube.com/@claudiobonel 69 | 70 | -- Quintellão 71 | https://www.dbaassists.com.br/ 72 | https://www.youtube.com/@quintellao 73 | 74 | -- Gerson Viergutz 75 | https://www.sideschool.com.br/ 76 | 77 | -- Leonardo Karpinski 78 | https://www.youtube.com/@Xperiun_ 79 | 80 | -- Laennder Alves 81 | https://www.youtube.com/@laennder 82 | 83 | -- Karine Lago 84 | https://www.youtube.com/@KarineLago 85 | 86 | -- Fabricio Veronez 87 | https://www.youtube.com/@fabricioveronez 88 | 89 | -- Fernando Amaral 90 | https://www.eia.ai/ 91 | 92 | -- Luan Moreno 93 | https://www.youtube.com/@LuanMorenoMMaciel 94 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /Contribuições/Jerry Lei/Link.txt: -------------------------------------------------------------------------------- 1 | Linkedin Jerry Lei 2 | https://www.linkedin.com/in/jerry-lei-5b320ab6/ 3 | 4 | 5 | Post 6 | https://www.mindmeister.com/app/map/2922416398?t=WVkJFkLILC -------------------------------------------------------------------------------- /Contribuições/Mazoelle Karoline/Link.txt: -------------------------------------------------------------------------------- 1 | Linkedin Mazoelle Karoline 2 | https://www.linkedin.com/in/mazoelle-oliveira-235b00129/ 3 | 4 | 5 | Post 6 | https://medium.com/@mazoelle09/evangelizando-o-sql-14625486a128 -------------------------------------------------------------------------------- /Contribuições/Rodolfo Gabriel/Link.txt: -------------------------------------------------------------------------------- 1 | Linkedin Rodolfo Gabriel 2 | https://www.linkedin.com/in/rodolfo-b-gabriel-22a68113b/ 3 | 4 | Postagem Linkedin 5 | https://www.linkedin.com/search/results/content/?keywords=evangelizando%20sql&page=5&sid=P(X&update=urn%3Ali%3Afs_updateV2%3A(urn%3Ali%3Aactivity%3A7128794500344274944%2CBLENDED_SEARCH_FEED%2CEMPTY%2CDEFAULT%2Cfalse) -------------------------------------------------------------------------------- /Contribuições/Sergio Willians/Link.txt: -------------------------------------------------------------------------------- 1 | Linkedin Sergio Willians 2 | https://www.linkedin.com/in/swillians/ 3 | 4 | Post 5 | https://www.profissionaloracle.com.br/2023/08/30/aprenda-sql-com-os-especialistas/?utm_source=linkedin&utm_medium=social&utm_campaign=ReviveOldPost -------------------------------------------------------------------------------- /Lives/2025/scripts_live_19_02_2025.sql: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------------------------- 2 | -- LIVE EVANGELIZANDO SQL - MELHORES PR�TICAS - CONSULTAS SQL 3 | -------------------------------------------------------------------------------------------------- 4 | 5 | /* 6 | DICA 01: Utilize padr�es para nomenclaturas 7 | DICA 02: Case Sensitive / Accent Sensitive 8 | DICA 03: Fa�a Identa��o no seu c�digo! 9 | DICA 04: Versionamento de c�digo 10 | DICA 05: VIEW COM SELECT * FROM 11 | DICA 06: COUNT(*) x COUNT(coluna) 12 | DICA 07: CUIDADOS COM NULL x NOT IN 13 | DICA 08: Cria��o de �ndice � Warning! The maximum key length is X bytes 14 | DICA 09: Warning: Null value is eliminated by an aggregate or other SET operation 15 | DICA 10: Qual impacto de utilizar o prefixo �sp_� no nome de uma procedure? 16 | */ 17 | 18 | -------------------------------------------------------------------------------------------------- 19 | -- DICA 01: Utilize padr�es para nomenclaturas 20 | -------------------------------------------------------------------------------------------------- 21 | 22 | -- Link: https://builtin.com/articles/pascal-case-vs-camel-case#:~:text=Pascal%20case%20is%20a%20casing,capitalized%2C%20such%20as%3A%20camelCase%20. 23 | 24 | -- OBS: Se a empresa ou cliente j� utilizam algum padr�o, respeite isso e siga! 25 | 26 | -- camelCase -> deve come�ar com a primeira letra min�scula e a primeira letra de cada nova palavra subsequente mai�scula: 27 | 28 | dataReferencia 29 | valorFinal 30 | nomeCliente 31 | 32 | -- PascalCase -> combina palavras colocando TODAS com a primeira letra mai�scula 33 | 34 | DataReferencia 35 | ValorFinal 36 | NomeCliente 37 | 38 | -- Snake Case e Outros: 39 | 40 | data_referencia 41 | Data_Referencia 42 | Dt_Referencia 43 | DtReferencia 44 | stpCalculaValor 45 | vwRelatorioVendas 46 | vwRelVendas 47 | 48 | USE Traces 49 | GO 50 | 51 | -- Colunas sem um padrao definido 52 | DROP TABLE IF EXISTS testeNomenclatura 53 | 54 | CREATE TABLE testeNomenclatura ( 55 | ID INT IDENTITY(1,1), 56 | nome VARCHAR(100), 57 | Idade INT, 58 | DataNascimento DATE, 59 | vlSalario NUMERIC(9,2) 60 | ) 61 | 62 | SELECT * 63 | FROM testeNomenclatura 64 | GO 65 | 66 | 67 | -------------------------------------------------------------------------------------------------- 68 | -- DICA 02: Case Sensitive / Accent Sensitive 69 | -------------------------------------------------------------------------------------------------- 70 | USE Traces 71 | GO 72 | 73 | DROP TABLE IF EXISTS testeCS_AS 74 | 75 | CREATE TABLE testeCS_AS ( 76 | ID INT IDENTITY(1,1), 77 | nome VARCHAR(100) COLLATE Latin1_General_CS_AS, 78 | DataNascimento DATE 79 | ) 80 | 81 | INSERT INTO testeCS_AS 82 | VALUES ('Luiz Vitor','19990602'), 83 | ('Luiz V�tor','19951219'), 84 | ('luiz vitor','19951219') 85 | 86 | SELECT * FROM testeCS_AS 87 | 88 | SELECT * FROM testeCS_AS WHERE nome = 'Luiz Vitor' 89 | 90 | SELECT * FROM testeCS_AS WHERE nome = 'Luiz V�tor' 91 | 92 | SELECT * FROM testeCS_AS WHERE nome = 'luiz vitor' 93 | 94 | 95 | DROP TABLE IF EXISTS testeCI_AI 96 | 97 | CREATE TABLE testeCI_AI ( 98 | ID INT IDENTITY(1,1), 99 | nome VARCHAR(100) COLLATE Latin1_General_CI_AI, 100 | DataNascimento DATE 101 | ) 102 | 103 | INSERT INTO testeCI_AI 104 | VALUES ('Luiz Vitor','19990602'), 105 | ('Luiz V�tor','19951219'), 106 | ('luiz vitor','19951219') 107 | 108 | SELECT * FROM testeCI_AI 109 | 110 | SELECT * FROM testeCI_AI WHERE nome = 'Luiz Vitor' 111 | 112 | SELECT * FROM testeCI_AI WHERE nome = 'Luiz V�tor' 113 | 114 | SELECT * FROM testeCI_AI WHERE nome = 'luiz vitor' 115 | GO 116 | 117 | 118 | -------------------------------------------------------------------------------------------------- 119 | -- DICA 03: Fa�a Identa��o no seu c�digo! 120 | -------------------------------------------------------------------------------------------------- 121 | 122 | -- Luiz Lima 123 | -- Link: https://luizlima.net/dicas-t-sql-if-else-begin-end/ 124 | 125 | USE Traces 126 | 127 | DECLARE @ID INT = 10 128 | 129 | IF (@ID = 10) 130 | BEGIN 131 | SELECT '(1) - O VALOR DA VARIAVEL � IGUAL A 10!!!' 132 | END 133 | ELSE 134 | SELECT '(2) - O VALOR DA VARIAVEL � DIFERENTE 10!!!' 135 | SELECT '(3) - FIM DO PROGRAMA!!!' 136 | 137 | GO 138 | 139 | 140 | USE Traces 141 | 142 | DECLARE @ID INT = 10 143 | 144 | IF (@ID = 10) 145 | BEGIN 146 | SELECT '(1) - O VALOR DA VARIAVEL � IGUAL A 10!!!' 147 | END 148 | ELSE 149 | BEGIN 150 | SELECT '(2) - O VALOR DA VARIAVEL � DIFERENTE 10!!!' 151 | SELECT '(3) - FIM DO PROGRAMA!!!' 152 | END 153 | GO 154 | 155 | -- ABRIR A PROCEDURE SP_WHOISACTIVE E VALIDAR A IDENTA��O 156 | 157 | 158 | -------------------------------------------------------------------------------------------------- 159 | -- DICA 04: Versionamento de c�digo 160 | -------------------------------------------------------------------------------------------------- 161 | USE Traces 162 | GO 163 | 164 | -- ABRIR O C�DIGO DA PROCEDURE ABAIXO E VALIDAR O HIST�RICO DE ALTERA��ES: 165 | EXEC stpRetornaInfosBD 166 | GO 167 | 168 | 169 | -------------------------------------------------------------------------------------------------- 170 | -- DICA 05: VIEW COM SELECT * FROM 171 | -------------------------------------------------------------------------------------------------- 172 | 173 | -- Gabriel da Silva 174 | -- Link: https://www.linkedin.com/posts/gabrieldba_sqlserver-tsql-activity-7297754163327778817-Kujl?utm_source=share&utm_medium=member_desktop&rcm=ACoAABlpREkBRBgqUI8KEUjb8qYFKWXKx9-YImo 175 | 176 | USE Traces 177 | GO 178 | 179 | DROP TABLE IF EXISTS TB_TESTE 180 | DROP VIEW IF EXISTS VW_TESTE 181 | GO 182 | 183 | CREATE TABLE TB_TESTE (col1 int, col2 int) 184 | go 185 | 186 | create view VW_TESTE as 187 | select * from TB_TESTE 188 | go 189 | 190 | -- View retornando 2 colunas 191 | select * from VW_TESTE 192 | 193 | -- Adicionando coluna "col3" 194 | alter table TB_TESTE add col3 int 195 | go 196 | 197 | -- View continua retornando 2 colunas - ERRADO!!! 198 | select * from VW_TESTE 199 | go 200 | 201 | -- U�, mas a tabela tem 3 colunas Luiz... 202 | select * from TB_TESTE 203 | go 204 | 205 | -- Atualizando Metadados da view 206 | EXEC sp_refreshview 'VW_TESTE' 207 | go 208 | 209 | -- Resultado da view ap�s a atualiza��o 210 | -- Agora a View retorna 3 colunas - CORRETO!!! 211 | select * from VW_TESTE 212 | go 213 | 214 | select * from TB_TESTE 215 | go 216 | 217 | -- IMPORTANTE: EVITE UTILIZAR "SELECT * FROM", AO INV�S DISSO, ESPECIFIQUE SEMPRE AS COLUNAS QUE DEVEM SER RETORNADAS 218 | 219 | -- Excluindo a coluna "col3" 220 | alter table TB_TESTE drop column col3 221 | go 222 | 223 | select * from VW_TESTE 224 | go 225 | 226 | /* 227 | Msg 4502, Level 16, State 1, Line 197 228 | View or function 'VW_TESTE' has more column names specified than columns defined. 229 | */ 230 | 231 | -- Atualizando Metadados da view 232 | EXEC sp_refreshview 'VW_TESTE' 233 | go 234 | 235 | -- Resultado da view ap�s a atualiza��o 236 | -- Agora a View volta a retornar 2 colunas - CORRETO!!! 237 | select * from VW_TESTE 238 | go 239 | 240 | select * from TB_TESTE 241 | go 242 | 243 | 244 | -------------------------------------------------------------------------------------------------- 245 | -- DICA 06: COUNT(*) x COUNT(coluna) 246 | -------------------------------------------------------------------------------------------------- 247 | 248 | -- Arthur Luz 249 | -- Link: https://www.linkedin.com/posts/arthurluz_sql-dataengineer-spark-activity-7296172165412843520-4ysj?utm_source=share&utm_medium=member_desktop&rcm=ACoAABlpREkBRBgqUI8KEUjb8qYFKWXKx9-YImo 250 | 251 | USE Traces 252 | GO 253 | 254 | DROP TABLE IF EXISTS TESTE_COUNT 255 | 256 | CREATE TABLE TESTE_COUNT ( 257 | ID INT IDENTITY(1,1) NOT NULL, 258 | Nome VARCHAR(100) NOT NULL, 259 | Idade INT NULL 260 | ) 261 | 262 | INSERT INTO TESTE_COUNT 263 | VALUES ('Luiz Lima', 20), 264 | ('Italo Mesquita', 35), 265 | ('Raphael Amorim', 40), 266 | ('Wallace Camargo', 50), 267 | ('Gabriel Quintella', 60), 268 | ('Dirceu Resende', NULL) 269 | 270 | SELECT * FROM TESTE_COUNT 271 | 272 | -- COUNT(*) - conta os valores NULL tamb�m! 273 | SELECT COUNT(*) AS [Count] 274 | FROM TESTE_COUNT 275 | 276 | -- COUNT(Nome) 277 | SELECT COUNT(Nome) AS [Count_Nome] 278 | FROM TESTE_COUNT 279 | 280 | -- COUNT(Idade) - N�O conta os valores NULL! 281 | SELECT COUNT(Idade) AS [Count_Idade] 282 | FROM TESTE_COUNT 283 | 284 | /* 285 | (1 row affected) 286 | Warning: Null value is eliminated by an aggregate or other SET operation. 287 | */ 288 | GO 289 | 290 | 291 | -------------------------------------------------------------------------------------------------- 292 | -- DICA 07: CUIDADOS COM NULL x NOT IN 293 | -------------------------------------------------------------------------------------------------- 294 | 295 | -- Rodrigo Ribeiro 296 | -- Link: https://www.linkedin.com/posts/rodrigoribeirogomes_vendas-regras-activity-7294923485242368001-VNm6?utm_source=share&utm_medium=member_desktop&rcm=ACoAABlpREkBRBgqUI8KEUjb8qYFKWXKx9-YImo 297 | 298 | USE Traces 299 | GO 300 | 301 | DROP TABLE IF EXISTS TESTE_NULL 302 | 303 | CREATE TABLE TESTE_NULL ( 304 | ID INT IDENTITY(1,1) NOT NULL, 305 | Nome VARCHAR(100) NOT NULL, 306 | Idade INT NULL 307 | ) 308 | 309 | INSERT INTO TESTE_NULL 310 | VALUES ('Luiz Lima', 18), 311 | ('Italo Mesquita', 35), 312 | ('Raphael Amorim', 40), 313 | ('Wallace Camargo', 50), 314 | ('Gabriel Quintella', 60) 315 | 316 | DROP TABLE IF EXISTS TESTE_IDADES 317 | 318 | CREATE TABLE TESTE_IDADES ( 319 | Idade INT NULL 320 | ) 321 | 322 | INSERT INTO TESTE_IDADES 323 | VALUES (10),(40),(50),(60),(NULL) 324 | 325 | SELECT * FROM TESTE_NULL 326 | 327 | SELECT * FROM TESTE_IDADES 328 | 329 | -- CUIDADO: NOT IN COM NULL!!! 330 | SELECT * 331 | FROM TESTE_NULL 332 | WHERE Idade NOT IN (SELECT Idade FROM TESTE_IDADES) 333 | 334 | -- Mas porque isso acontece Luiz??? 335 | 336 | /* 337 | valor NOT IN (X,Y,Z) � o mesmo que: 338 | 339 | valor != X AND valor != Y AND valor != Z 340 | 341 | valor != NULL, por padr�o, � FALSE, pois o valor de NULL � "desconhecido" 342 | 343 | Logo, se um for falso, tudo ser� falso e n�o ir� retornar nada!!! 344 | */ 345 | 346 | -- Quando tiver valores NULL, utilize outras op��es! 347 | 348 | SELECT * FROM TESTE_NULL 349 | 350 | SELECT * FROM TESTE_IDADES 351 | 352 | -- Op��o 1: LEFT JOIN 353 | SELECT N.* 354 | FROM TESTE_NULL N 355 | LEFT JOIN TESTE_IDADES I ON N.Idade = I.Idade 356 | WHERE I.Idade IS NULL 357 | 358 | -- Op��o 2: NOT EXISTS 359 | SELECT * 360 | FROM TESTE_NULL N 361 | WHERE NOT EXISTS (SELECT Idade FROM TESTE_IDADES I WHERE N.Idade = I.Idade) 362 | 363 | 364 | -------------------------------------------------------------------------------------------------- 365 | -- DICA 08: Cria��o de �ndice � Warning! The maximum key length is X bytes 366 | -------------------------------------------------------------------------------------------------- 367 | 368 | -- Luiz Lima 369 | -- Link: https://luizlima.net/dicas-de-tuning-criacao-de-indice-warning-the-maximum-key-length-is-x-bytes/ 370 | 371 | USE Traces 372 | 373 | DROP TABLE IF EXISTS test 374 | 375 | create table test ( 376 | col varchar(2000) 377 | , otherCol bit -- This column will take a byte out of the index below, pun intended 378 | ); 379 | 380 | create nonclustered index test_index on test (col, otherCol); 381 | 382 | /* 383 | Warning! The maximum key length for a nonclustered index is 1700 bytes. 384 | The index 'test_index' has maximum length of 2001 bytes. 385 | For some combination of large values, the insert/update operation will fail. 386 | */ 387 | 388 | insert into test select cast(replicate('x', 1699) as varchar(1699)), 0; -- Success 389 | 390 | insert into test select cast(replicate('y', 1700) as varchar(1700)), 0; -- Fail 391 | 392 | update test 393 | set col = cast(replicate('y', 1700) as varchar(1700)) 394 | where otherCol = 0 395 | 396 | /* 397 | Msg 1946, Level 16, State 3, Line 201 398 | Operation failed. The index entry of length 1701 bytes for the index 'test_index' exceeds the maximum length of 1700 bytes for nonclustered indexes. 399 | */ 400 | 401 | SELECT * FROM test 402 | 403 | 404 | -------------------------------------------------------------------------------------------------- 405 | -- DICA 09: Warning: Null value is eliminated by an aggregate or other SET operation 406 | -------------------------------------------------------------------------------------------------- 407 | 408 | -- Luiz Lima 409 | -- Link: https://luizlima.net/dicas-t-sql-warning-null-value-is-eliminated-by-an-aggregate-or-other-set-operation/ 410 | 411 | USE Traces 412 | 413 | DROP TABLE IF EXISTS Teste_Soma 414 | 415 | CREATE TABLE Teste_Soma ( 416 | Id INT IDENTITY(1,1) NOT NULL, 417 | Nome VARCHAR(100) NOT NULL, 418 | Salario NUMERIC(9,2) NULL 419 | ) 420 | 421 | INSERT INTO Teste_Soma 422 | VALUES 423 | ('Luiz Vitor', 1500.00), 424 | ('Gustavo Larocca', 3000.00), 425 | ('Eduardo Roedel', 5000.00) 426 | 427 | SELECT * FROM Teste_Soma 428 | 429 | -- Verificar a aba MESSAGE 430 | SELECT SUM(Salario) AS Vl_Total_Salario 431 | FROM Teste_Soma 432 | 433 | -- Inserindo um valor NULL 434 | INSERT INTO Teste_Soma 435 | VALUES ('Dirceu Resende', NULL) 436 | 437 | SELECT * FROM Teste_Soma 438 | 439 | SELECT SUM(Salario) AS Vl_Total_Salario 440 | FROM Teste_Soma 441 | 442 | -- Verificar a aba MESSAGE 443 | -- Warning: Null value is eliminated by an aggregate or other SET operation. 444 | 445 | 446 | -------------------------------------------------------------------------------------------------- 447 | -- DICA 10: Qual impacto de utilizar o prefixo �sp_� no nome de uma procedure? 448 | -------------------------------------------------------------------------------------------------- 449 | -- Link: https://luizlima.net/dicas-t-sql-qual-impacto-de-utilizar-o-prefixo-sp_-no-nome-de-uma-procedure/ 450 | 451 | /* 452 | Link: https://learn.microsoft.com/en-us/sql/t-sql/statements/create-procedure-transact-sql?view=sql-server-2017 453 | 454 | Avoid the use of the sp_ prefix when naming procedures. 455 | This prefix is used by SQL Server to designate system procedures. 456 | Using the prefix can cause application code to break if there is a system procedure with the same name. 457 | */ 458 | 459 | USE Traces 460 | 461 | DROP PROC IF EXISTS sp_teste 462 | 463 | USE master 464 | 465 | DROP PROC IF EXISTS sp_teste 466 | DROP PROC IF EXISTS spteste 467 | 468 | GO 469 | CREATE PROC sp_teste 470 | AS 471 | BEGIN 472 | SELECT DB_NAME() AS Nm_Database, 'Executei na MASTER!!!' AS Ds_Observacao 473 | END 474 | GO 475 | 476 | USE Traces 477 | GO 478 | EXEC sp_teste 479 | GO 480 | 481 | USE master 482 | GO 483 | EXEC sp_teste 484 | GO 485 | 486 | -- Criando a procedure tamb�m na base Traces 487 | USE Traces 488 | 489 | GO 490 | CREATE PROC sp_teste 491 | AS 492 | BEGIN 493 | SELECT DB_NAME() AS Nm_Database, 'Executei na TRACES!!!' AS Ds_Observacao 494 | END 495 | GO 496 | 497 | 498 | USE Traces 499 | GO 500 | EXEC sp_teste 501 | GO 502 | 503 | USE master 504 | GO 505 | EXEC sp_teste 506 | GO 507 | 508 | 509 | -- Mais um teste, agora com outro nome 510 | USE master 511 | GO 512 | CREATE PROC spteste 513 | AS 514 | BEGIN 515 | SELECT DB_NAME() AS Nm_Database, 'Executei na MASTER!!!' AS Ds_Observacao 516 | END 517 | GO 518 | 519 | USE Traces 520 | GO 521 | EXEC spteste 522 | 523 | /* 524 | Msg 2812, Level 16, State 62, Line 317 525 | Could not find stored procedure 'spteste'. 526 | */ 527 | 528 | GO 529 | 530 | USE master 531 | GO 532 | EXEC spteste 533 | GO 534 | -------------------------------------------------------------------------------- /Perguntas Kahoot/Perguntas_Aula1.txt: -------------------------------------------------------------------------------- 1 | 1 - Qual é o significado do acrônimo SQL? 2 | a) Structured Query Language 3 | b) System Query Level 4 | c) Sequential Query Logic 5 | d) Software Query Loop 6 | Resposta Certa: a) Structured Query Language 7 | 8 | 9 | 2- Qual categoria de comandos SQL é usada para consultar dados de um banco de dados? 10 | a) DDL b) DQL c) DCL d) TCL 11 | Resposta Certa: b) DQL 12 | 13 | 14 | 3- Qual tipo de comando SQL é usado para criar uma nova tabela em um banco de dados? Sabendo que criar objetos vai alterar a estrutura do Database. 15 | a) DDL b) DML c) DCL d) TCL 16 | Resposta Certa: a) DDL 17 | 18 | 19 | 4 - Qual dos seguintes comandos é um exemplo de DDL? 20 | a) SELECT b) UPDATE c) DELETE d) CREATE 21 | Resposta Certa: d) CREATE 22 | 23 | 24 | 5 - Para que serve a linguagem SQL? 25 | 1. Errada: Para criar gráficos e imagens interativos em sites: A SQL não é projetada para criar gráficos ou imagens interativos em sites. Ela lida principalmente com consultas e manipulação de dados em bancos de dados. 26 | 2. Errada: Para escrever programas de jogos em 3D: A SQL não é uma linguagem voltada para o desenvolvimento de jogos em 3D. Ela se concentra em consultas e gerenciamento de dados em sistemas de banco de dados. 27 | 3. Errada: Para criar interfaces de usuário de aplicativos móveis: Embora a SQL possa ser usada para recuperar dados que serão exibidos nas interfaces de usuário, não é a principal linguagem para criar interfaces de usuário em aplicativos móveis. 28 | 4. Certa: Para consultar, manipular e gerenciar bancos de dados relacionais: A SQL é principalmente usada para realizar uma variedade de operações em bancos de dados relacionais, incluindo consultas (recuperação de informações), inserção, atualização e exclusão de dados, criação e gerenciamento de tabelas, entre outras tarefas relacionadas aos dados. 29 | 30 | 31 | 6 - A linguagem SQL só pode ser utilizada no SQL Server? 32 | 33 | Opção 1 (Incorreta): Sim, é exclusiva para uso no SQL Server. 34 | Opção 2 (Incorreta): A linguagem SQL é restrita a bancos de dados antigos e está obsoleta. 35 | Opção 3 (Incorreta): A linguagem SQL é utilizada apenas no sistema operacional Windows. 36 | Opção 4 (Correta): Não, a linguagem SQL é uma linguagem padrão utilizada em diversos SGBDs. 37 | 38 | 39 | 7 - Qual SGBD é conhecido por ser de código aberto e amplamente utilizado, sendo compatível com a linguagem SQL? 40 | a) SQL Server b) Oracle Database c) MySQL d) Todas as opções 41 | Resposta Certa: c) MySQL 42 | 43 | 44 | 8 - O que são SGBDs? 45 | a) Sistemas Gráficos de Backup de Dados 46 | b) Softwares Geradores de Backup de Dados 47 | c) Sistemas Gerenciadores de Banco de Dados 48 | d) Softwares Gráficos de Banco de Dados 49 | Resposta Certa: c) Sistemas Gerenciadores de Banco de Dados 50 | 51 | 52 | 9 - Qual é a diferença entre DML (Data Manipulation Language) e DDL (Data Definition Language) no SQL? 53 | a) DML define a estrutura do banco de dados, enquanto DDL é manipula os dados. 54 | b) DML cria tabelas e relacionamentos, enquanto DDL consulta dados. 55 | c) DML consulta dados, enquanto DDL manipula dados (INSERT e DELETE). 56 | d) DML manipula dados (INSERT e DELETE), já o DDL define a estrutura do banco. 57 | Resposta Certa: d) DML manipula dados (INSERT e DELETE), enquanto DDL define a estrutura do banco de dados. 58 | 59 | 60 | 10 - é correto afirmar que o sql server é o melhor banco de dados para todas as soluções? 61 | Opção 1 (Errada): Sim, o SQL Server é a única opção viável para todas as soluções de BD. 62 | Opção 2 (Errada): Não, o SQL Server é obsoleto e não é mais usado como solução de BD. 63 | Opção 3 (Errada): Sim, o SQL Server é a opção mais econômica e eficiente para todas soluções. 64 | Opção 4 (Correta): Não, a escolha do melhor BD depende das necessidades de cada projeto. -------------------------------------------------------------------------------- /Perguntas Kahoot/Perguntas_Aula2.txt: -------------------------------------------------------------------------------- 1 | Pergunta 1: Um usuário deseja acessar o SQL Server Management Studio (SSMS) localmente. Qual é a opção mais fácil de acesso? 2 | 3 | A) Windows Authentication (Autenticação do Windows) 4 | B) SQL Server Authentication (Autenticação do SQL Server) 5 | C) Active Directory - Universal with MFA 6 | D) Active Directory - Password 7 | 8 | Resposta correta: A) Windows Authentication (Autenticação do Windows) 9 | 10 | 11 | Pergunta 2: Qual "atalho" dentro da interface do SQL Server Management Studio (SSMS) é usado para criar uma query no SSMS? 12 | 13 | A) New Project 14 | B) New Query 15 | C) Execute 16 | D) New Database 17 | 18 | Resposta correta: B) New Query 19 | 20 | 21 | Pergunta 3: Qual é a hierarquia correta de uma Database no SQL Server? 22 | 23 | a) Coluna, Schema, Database, Tabela e Linha 24 | b) Database, Schema, Tabela, Linha e Coluna 25 | c) Database, Schema, Tabela, Coluna e Linha 26 | d) Tabela, Database, Schema, Coluna e Linha 27 | 28 | Resposta Certa: c) Database, Schema, Tabela, Coluna e Linha 29 | 30 | 31 | Pergunta 4: O que é um Schema no banco de dados? 32 | 33 | A) Um tipo de índice usado para otimizar consultas. 34 | B) Uma linguagem de programação para consultas complexas. 35 | C) Pode agrupar tabelas para melhorar a organização e controle de acessos. 36 | D) Uma técnica de criptografia para proteger os dados armazenados. 37 | 38 | Resposta correta: C) Pode agrupar tabelas para melhorar a organização e controle de acessos 39 | 40 | 41 | Pergunta 5: Qual o comando SQL do SQL Server para criar um banco de dados? 42 | 43 | A) BUILD DATABASE database_name; 44 | B) INSERT DATABASE INTO database_name; 45 | C) ALTER TABLE database_name ADD DATABASE; 46 | D) CREATE DATABASE database_name; 47 | 48 | Resposta correta: D) CREATE DATABASE database_name; 49 | 50 | 51 | Pergunta 6: O que são tipos de dados em um SGBD? 52 | 53 | a) São nomes de tabelas e colunas 54 | b) São métodos para criar backups 55 | c) São representações dos formatos de informações armazenadas 56 | d) São funções para criar consultas complexas 57 | 58 | Resposta Certa: c) São representações dos formatos de informações armazenadas 59 | 60 | 61 | Pergunta 7: Qual o melhor tipo de dado para a inserção de textos longos como parágrafos? 62 | 63 | A) VARCHAR(50) 64 | B) INT 65 | C) TEXT 66 | D) CHAR(100) 67 | 68 | Resposta correta: C) TEXT 69 | 70 | 71 | Pergunta 8: Qual a principal diferença entre Decimal e Float na linguagem SQL? 72 | 73 | A) Float para inteiros, Decimal para casas decimais. 74 | B) Decimal para notação científica, Float para inteiros. 75 | C) Decimal é mais eficiente, abreviação de Float. 76 | D) Float é aproximado, Decimal é preciso. 77 | 78 | Resposta correta: D) Float é aproximado, Decimal é preciso 79 | 80 | 81 | Pergunta 9: Qual é o primeiro passo para criar uma tabela em um banco de dados? 82 | 83 | a) Definir a estrutura de colunas e tipos de dados 84 | b) Inserir registros diretamente na tabela 85 | c) Criar um schema para a tabela 86 | d) Configurar permissões de acesso à tabela 87 | 88 | Resposta Certa: a) Definir a estrutura de colunas e tipos de dados 89 | 90 | 91 | Pergunta 10: Qual a estrutura básica em SQL para a criação de uma tabela no SQL Server Management Studio (SSMS)? 92 | 93 | A) CREATE TABLE table_name ( column1 datatype ); 94 | B) INSERT INTO table_name VALUES (); 95 | C) MAKE TABLE table_name; 96 | D) DEFINE table_name; 97 | 98 | Resposta correta: A) CREATE TABLE table_name ( column1 datatype ); 99 | -------------------------------------------------------------------------------- /Perguntas Kahoot/Perguntas_Aula3.txt: -------------------------------------------------------------------------------- 1 | 01. Você precisa apagar as informações de uma tabela onde as triggers não devem ser acionadas. 2 | O que é mais adequado usar? 3 | 4 | a. DROP 5 | b. DELETE 6 | c. TRUNCATE ✅ 7 | d. CHECK 8 | 9 | 02. É possível usar controle de transação "BEGIN TRANSACTION" para o comando "DROP TABLE tblClientes" 10 | 11 | a. É possível e recomendada a utilização 12 | b. Não ✅ 13 | c. Depende do contexto da query 14 | d. Apenas se for o primeiro comando do bloco 15 | 16 | 03. A afirmação, toda coluna PK obrigatoriamente é uma Identity é... 17 | 18 | a. Verdadeira 19 | b. Verdadeira em partes 20 | c. Falsa ✅ 21 | d. Falsa em partes 22 | 23 | 04. PK é o mesmo que: 24 | 25 | a. Primary Key ✅ 26 | b. Primeira Chave 27 | c. Chave Prisioneira 28 | d. Keep Primary 29 | 30 | 05. O que são contraints no SQL Server? 31 | 32 | a. São colunas que se ligam a outras tabelas (FK) 33 | b. São tipos de dados bem específicos 34 | c. São um conjunto de comandos pouco utilizados por não serem performáticos 35 | d. São regras aplicadas nas colunas de uma tabela ✅ 36 | 37 | 06. Quais desses comandos não é considerado uma contraints? 38 | 39 | a. CHECK 40 | b. DEFAULT 41 | c. VALUES ✅ 42 | d. UNIQUE 43 | 44 | 07. Em qual dos comandos abaixo não é possível utilizar BEGIN TRANSACTION para controle de transação? 45 | 46 | a. DROP ✅ 47 | b. TRUNCATE 48 | c. DELETE 49 | d. INSERT 50 | 51 | 08. Uma Primary Key (Chaves Primárias) pode ser classificada como? 52 | 53 | a. Simples 54 | b. Compositoria 55 | c. Composição 56 | d. Simples ou Composta ✅ 57 | 58 | 09. Para que serve a constraint NOT NULL? 59 | 60 | a. Evitar que sejam salvas informações em branco 61 | b. Evitar que sejam salvas informações com outros tipos de dados 62 | c. Evitar que sejam salvas informações nulas ✅ 63 | d. Evitar que sejam salvas informações nulas e em branco 64 | 65 | 10. O que não é possível apagar com o comando DROP? 66 | 67 | a. DATABASE 68 | b. INDICES 69 | c. VIEW 70 | d. Nenhuma das alternativas ✅ -------------------------------------------------------------------------------- /Perguntas Kahoot/Perguntas_Aula4.txt: -------------------------------------------------------------------------------- 1 | 1) Como podemos evitar o erro na criação de um objeto: "There is already an object named 'Log_Counter' in the database."? 2 | A) Utilizando comando DROP TABLE IF EXISTS para qualquer versão do SQL Server 3 | B) Basta fazer um DROP TABLE após o erro que o problema será resolvido 4 | C) Não tem como fazer esse tipo de tratamento 5 | D) Utilizando o comando DROP TABLE IF EXISTS à partir do SQL Server 2016 6 | Resposta: D 7 | 8 | 2) É possível criar uma FOREIGN KEY (FK) entre duas databases distintas? 9 | A) Depende, se estiverem no mesmo servidor é possível sim 10 | B) Não, nesse caso não vamos conseguir garantir a integridade 11 | C) Sim, o SQL Server utiliza as Fks para garantir a integridade dos dados 12 | D) Depende, se estiverem em servidores diferentes não será possível 13 | Resposta: B 14 | 15 | 3) O comando IF está correto? DECLARE @VALOR INT = 1 IF (@VALOR = 1) BEGIN TRAN SELECT 'O VALOR É IGUAL A 1!' END 16 | A) Não, pois o comando vai gerar um erro de sintaxe 17 | B) Não, pois o comando todo foi escrito com uma linha só e vai gerar erro 18 | C) Sim, pois primeiro precisamos abrir uma transação para depois validar 19 | D) Sim, o comando será executado normalmente 20 | Resposta: A 21 | 22 | 4) No SQL Server, podemos fazer um SELECT da seguinte forma? 23 | A) SELECT * FROM [DatabaseName].[ServerName].[SchemaName].[ObjectName] 24 | B) SELECT * FROM [ServerName].[SchemaName].[DatabaseName].[ObjectName] 25 | C) SELECT * FROM [ServerName].[DatabaseName].[SchemaName].[ObjectName] 26 | D) SELECT * FROM [DatabaseName].[ServerName].[ObjectName].[SchemaName] 27 | Resposta: C 28 | 29 | 5) A ordem correta que o SQL Server analisa uma query é: 30 | A) SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY 31 | B) FROM, WHERE, GROUP BY, SELECT, HAVING, ORDER BY 32 | C) FROM, WHERE, GROUP BY, HAVING, ORDER BY, SELECT 33 | D) FROM, WHERE, GROUP BY, HAVING, SELECT, ORDER BY 34 | Resposta: D 35 | 36 | 6) O comando está correto? SELECT Id_Loja, YEAR(Dt_Venda) AS Ano, Vl_Venda FROM Vendas WHERE Ano = 2023 37 | A) Não, ele vai gerar um erro no WHERE ao utilizar a coluna ano 38 | B) Não, ele vai gerar um erro no SELECT YEAR(Dt_Venda) 39 | C) Sim, ele será executado normalmente 40 | D) Não, está faltando um GROUP BY no comando 41 | Resposta: A 42 | 43 | 7) O comando está correto? SELECT YEAR(Dt_Venda) AS Ano, SUM(Vl_Venda) AS Total FROM Vendas 44 | A) Sim, ele será executado normalmente 45 | B) Não, está faltando um GROUP BY no comando 46 | C) Não, está faltando utilizar algum filtro no WHERE 47 | D) Não, está faltando um HAVING no comando para agrupar 48 | Resposta: B 49 | 50 | 8) O comando está correto? SELECT Id_Loja, YEAR(Dt_Venda) AS Ano, Vl_Venda FROM Vendas ORDER BY Ano, 3 51 | A) Não, pois não é possível misturar colunas com a posição no ORDER BY 52 | B) Não, pois vai gerar um erro de sintaxe no ORDER BY 53 | C) Sim, ele será executado normalmente 54 | D) Nenhuma das respostas anteriores 55 | Resposta: C 56 | 57 | 9) O resultado da expressão é: SELECT 10 + (5 + (2 / 2)) * 2 + 8 58 | A) 30 59 | B) 70 60 | C) 160 61 | D) Nenhuma das respostas anteriores 62 | Resposta: A 63 | 64 | 10) Como podemos retornar os valores nulos da coluna "Vl_Venda"? 65 | A) SELECT * FROM Vendas WHERE Dt_Venda IS NULL 66 | B) SELECT * FROM Vendas WHERE Vl_Venda IS NULL 67 | C) SELECT * FROM Vendas WHERE Vl_Venda <> NULL 68 | D) SELECT * FROM Vendas WHERE Vl_Venda IS NOT NULL 69 | Resposta: B -------------------------------------------------------------------------------- /Projeto Final/Projeto Final.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wlcamargo/evangelizando_sql/8a8bcfc1f8dd78da985fbe1cc6a7a71723ca2f0c/Projeto Final/Projeto Final.pdf -------------------------------------------------------------------------------- /Projeto Final/Respostas Projeto Final.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wlcamargo/evangelizando_sql/8a8bcfc1f8dd78da985fbe1cc6a7a71723ca2f0c/Projeto Final/Respostas Projeto Final.docx -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Regulamento do Projeto 2 | 3 | ## Contextualização 4 | 5 | O projeto nasceu de uma conversa entre mim (Wallace Camargo) e o Shalom André. Estávamos inicialmente planejando que eu o desafiasse ao vivo em SQL e que outras pessoas pudessem acompanhar o desafio, mas o rumo acabou sendo diferente a agora vamos realizar um mini curso de SQL e deixar nossa contribuição com a comunidade dos dados. 6 | 7 | O intuito do projeto é disseminar o conceito básico de SQL para profissionais que desejam iniciar na carreira de dados. O projeto não vai abordar conceitos importantes que um DBA precisa saber, o foco é para utilizadores dos dados, sendo eles analistas, engenheiros ou cientistas. 8 | 9 | ## Links 10 | 11 | Grupo Whatsapp: https://chat.whatsapp.com/LstGsRnZCSqDPR0rr5L0wF 12 | 13 | Canal oficial da transmissão: https://www.youtube.com/watch?v=fltjmaeXbfQ&list=PLbPvnlmz6e_LeQn0tls5MczWIZCj9zZNi 14 | 15 | Kahoot: www.kahoot.it 16 | 17 | 18 | ## Participantes e Apoiadores 19 | 20 | ### Shalom André 21 | - Linkedin: https://www.linkedin.com/in/shalomandre/ 22 | - Canal: https://www.youtube.com/@shalomandre7615 23 | ---------------------------------------------------------------------------- 24 | ### Wallace Camargo 25 | - Linkedin: https://www.linkedin.com/in/wallace-camargo-35b615171/ 26 | - Canal: https://www.youtube.com/channel/UCK0B4IoF57JoiVVVeEcN8-A 27 | ---------------------------------------------------------------------------- 28 | ### Ítalo Mesquita 29 | 30 | - Linkedin: https://www.linkedin.com/in/italomesquita/ 31 | - Canal: https://www.youtube.com/@ItaloMesquita 32 | ---------------------------------------------------------------------------- 33 | ### Luiz Lima 34 | 35 | - Linkedin: https://www.linkedin.com/in/luizvitorlima/ 36 | - Site: https://luizlima.net/ 37 | - Canal: https://www.youtube.com/channel/UCkomEA1Yef6DEa6vB4WYfWw/videos 38 | ---------------------------------------------------------------------------- 39 | ### Raphael Amorim 40 | 41 | - Linkedin: https://www.linkedin.com/in/raphael-amorim-de-santana/ 42 | - Canal: https://www.youtube.com/@bifastsolutions 43 | ---------------------------------------------------------------------------- 44 | ### Enzo Delcampori 45 | 46 | - Linkedin: https://www.linkedin.com/in/enzodelcompare/ 47 | 48 | ---------------------------------------------------------------------------- 49 | ### Reginaldo Batista 50 | 51 | - Linkedin: https://www.linkedin.com/in/reginaldo-batista/ 52 | 53 | ---------------------------------------------------------------------------- 54 | ### Mazoelle Oliveira 55 | 56 | - Linkedin: https://lnkd.in/dSncQC-4 57 | - Canal: https://www.youtube.com/@mazoelleoliveira6573 58 | 59 | -------------------------------------------------------------------------------------------------- 60 | ## Cronograma 61 | 62 | Serão 8 encontros realizados todas às quartas-feiras 20h de Brasília com a duração estimada de 2 horas cada encontro. (total aproximado de 16 horas) 63 | 64 | Data Inicial 23/08/2023 65 | Data final 18/10/2023 66 | 67 | 68 | 69 | ## Perguntas mais frequentes 70 | 71 | Existe algum grupo de Whatsapp? 72 | 73 | - Sim, segue o link: https://chat.whatsapp.com/LstGsRnZCSqDPR0rr5L0wF 74 | 75 | Qual o valor do investimento? 76 | 77 | - R$ 0 78 | 79 | Onde será feita a transmissão? 80 | 81 | - Todos os encontros serão ao vivo através do Youtube às 20h de Brasília 82 | 83 | Qual o link do canal? 84 | 85 | - https://www.youtube.com/channel/UCK0B4IoF57JoiVVVeEcN8-A 86 | 87 | Os conteúdos ficarão gravados? 88 | 89 | - Sim 90 | 91 | Onde consigo os scripts para acompanhar? 92 | 93 | - Todos os scripts estarão disponíveis no Github 94 | 95 | Terá Exercícios? 96 | 97 | - Sim, no final de cada encontro e resolvido no início do próximo 98 | 99 | Terá certificado? 100 | 101 | - Sim 102 | 103 | Como faço para ganhar o certificado? 104 | 105 | - Critério a definir 106 | 107 | Eu vou aprender a criar uma view? Vou saber exatamente o que é isso e para que serve? 108 | 109 | - Sim, vai sair entendendo tudo sobre uma view 110 | 111 | 112 | ## Tarefas e Links de Apoio 113 | 114 | Ao final de cada aula, a pasta "Tarefas e links de apoio" será atualizada com uma tarefa que deverá ser realizada até a próxima aula 115 | 116 | 117 | # Grade de Projeto 118 | 119 | ## Aula 1 - 23/08/2023 - Wallace Camargo 120 | 121 | ### Link - https://www.youtube.com/watch?v=fltjmaeXbfQ&t=2642s 122 | 123 | ### Conteúdo abordado 124 | 125 | - Apresentação – Quem somos nós 126 | 127 | - Objetivo do Projeto 128 | 129 | - Grade do Projeto 130 | 131 | - O que é SQL 132 | 133 | - Conceito ACID 134 | 135 | - Sistemas Gerenciadores de Banco de Dados (SGBDs) 136 | 137 | - Tipos de Comandos (DDL, DQL, DML, DCL e TCL) 138 | 139 | - Indicação de como Instalar o SQL Server 140 | 141 | - Ferramentas Complementares 142 | 143 | - Metodologia de Trabalho 144 | 145 | - Profissões que Trabalham com Dados 146 | 147 | - Teste Kahoot 148 | 149 | -------------------------------------------------------------------------------------------------- 150 | 151 | ## Aula 2 - 30/08/2023 - Raphael Amorim 152 | 153 | ### Link - https://www.youtube.com/watch?v=w5RVscFnYVQ 154 | 155 | ### Conteúdo abordado 156 | 157 | - Primeiro acesso ao SGBD 158 | 159 | - O que você precisa saber sobre a interface do SSMS 160 | 161 | - Hierarquia de um banco de dados (instância, database, schema, tabela, coluna e linha) 162 | 163 | - Criando sua primeira Base de dados 164 | 165 | - Tipos de dados 166 | 167 | - Criando sua tabela (parte 1) 168 | 169 | - Teste Kahoot 170 | 171 | -------------------------------------------------------------------------------------------------- 172 | 173 | ## Aula 3 - 06/09/2023 - Ítalo Mesquita 174 | 175 | ### Link - https://www.youtube.com/watch?v=kGCsvBmIvJA 176 | 177 | ### Conteúdo abordado 178 | 179 | - Definição da estrutura (Create, Alter, Drop) 180 | 181 | - Manipulação de dados (Insert, Update e Delete) 182 | 183 | - Truncate VS Update VS Drop 184 | 185 | - Criar sua primeira tabela (parte 2) 186 | 187 | - Inserir seu primeiro registro via script 188 | 189 | - Constraints 190 | 191 | - Teste Kahoot 192 | 193 | -------------------------------------------------------------------------------------------------- 194 | 195 | ## Aula 4 - 13/09/2023 - Luiz Lima 196 | 197 | ### Link - https://www.youtube.com/watch?v=hqznRuraqXA&t=3868s (parte 1) 198 | 199 | ### Link - https://www.youtube.com/watch?v=96-EvtvHFKg&t=942s (parte 2) 200 | 201 | ### Conteúdo abordado 202 | 203 | - Introdução as consultas (Select) 204 | 205 | - Sua primeira consulta 206 | 207 | - Ordenar dados – order by (use com moderação) 208 | 209 | - Aplicar filtros – Where 210 | 211 | - Operadores lógicos 212 | 213 | - Teste de condições 214 | 215 | - Tratando nulos 216 | 217 | - Conversão de dados 218 | 219 | - Teste Kahoot 220 | 221 | -------------------------------------------------------------------------------------------------- 222 | 223 | ## Aula 5 - 20/09/2023 - Wallace Camargo 224 | 225 | ### Link - https://www.youtube.com/watch?v=wSiprj_T-Gs&t=1140s (até 1h:16m) 226 | 227 | ### Conteúdo abordado 228 | 229 | - União de tabelas (Union vs Union ALL) 230 | 231 | - Funções de agregação – (sum, count, avg, max e min) 232 | 233 | - Funções de Time Intelligence 234 | 235 | - Ordem de processamento de uma consulta 236 | 237 | - Teste Kahoot 238 | 239 | -------------------------------------------------------------------------------------------------- 240 | 241 | ## Aula 6 - 27/09/2023 - Ítalo Mesquita 242 | 243 | ### Link - https://www.youtube.com/watch?v=wSiprj_T-Gs&t=1140s (a partir de 1h:16m) 244 | 245 | ### Conteúdo abordado 246 | 247 | - Modelagem de dados Relacional 248 | 249 | - Junção de tabelas (Joins) 250 | 251 | - Teste Kahoot 252 | 253 | -------------------------------------------------------------------------------------------------- 254 | 255 | ## Aula 7 - 04/10/2023 - Luiz Lima 256 | 257 | ### Link - https://www.youtube.com/watch?v=ywSZ2pgfIlY&t=4622s 258 | 259 | ### Conteúdo abordado 260 | 261 | - Variáveis 262 | 263 | - Subconsultas, CTE e Tabelas temporárias 264 | 265 | - Objetos de um banco de dados 266 | 267 | - Exemplos práticos dos objetos 268 | 269 | - Disponibilização de teste para processo seletivo 270 | 271 | - Teste Kahoot 272 | 273 | -------------------------------------------------------------------------------------------------- 274 | 275 | ## Aula 8 - 18/10/2023 - Todos palestrantes 276 | 277 | ### Link - https://www.youtube.com/watch?v=VzsN-V2IeLw 278 | 279 | ### Conteúdo abordado 280 | 281 | - Resolução de teste para processo seletívo 282 | 283 | -------------------------------------------------------------------------------------------------- 284 | 285 | -------------------------------------------------------------------------------- /Scripts/Cria Tabela Vendas.sql: -------------------------------------------------------------------------------- 1 | USE Treinamento_TSQL 2 | 3 | DROP TABLE IF EXISTS Vendas 4 | 5 | CREATE TABLE Vendas ( 6 | Id_Venda INT IDENTITY(1,1) NOT NULL, 7 | Id_Loja INT NOT NULL, 8 | Dt_Venda DATETIME NOT NULL, 9 | Vl_Venda NUMERIC(9,2) NOT NULL, 10 | Id_Cliente INT NOT NULL, 11 | CONSTRAINT PK_Vendas PRIMARY KEY(Id_Venda) 12 | ) 13 | 14 | INSERT INTO Vendas (Id_Loja, Dt_Venda, Vl_Venda, Id_Cliente) 15 | VALUES 16 | (1, '20180101', 100.00, 1), 17 | (1, '20180226', 50.00, 1), 18 | (1, '20180315', 200.00, 1), 19 | (1, '20180420', 400.00, 1), 20 | (1, '20180531', 250.00, 1), 21 | (1, '20190302', 250.00, 1), 22 | (1, '20190624', 250.00, 1), 23 | (1, '20200816', 250.00, 1), 24 | (1, '20210919', 750.00, 1), 25 | (1, '20211005', 750.00, 1), 26 | (1, '20180101', 100.00, 2), 27 | (1, '20180226', 50.00, 2), 28 | (1, '20180315', 200.00, 2), 29 | (1, '20180420', 400.00, 2), 30 | (1, '20180531', 250.00, 2), 31 | (1, '20190302', 250.00, 2), 32 | (1, '20190624', 250.00, 2), 33 | (1, '20200816', 250.00, 2), 34 | (1, '20210919', 750.00, 2), 35 | (1, '20211005', 750.00, 2), 36 | (2, '20180101', 100.00, 1), 37 | (2, '20180226', 50.00, 1), 38 | (2, '20180315', 200.00, 1), 39 | (2, '20180420', 400.00, 1), 40 | (2, '20180531', 250.00, 1), 41 | (2, '20190302', 250.00, 1), 42 | (2, '20190624', 250.00, 1), 43 | (2, '20200816', 250.00, 1), 44 | (2, '20210919', 750.00, 1), 45 | (2, '20211005', 750.00, 1), 46 | (2, '20180101', 100.00, 2), 47 | (2, '20180226', 50.00, 2), 48 | (2, '20180315', 200.00, 2), 49 | (2, '20180420', 400.00, 2), 50 | (2, '20180531', 250.00, 2), 51 | (2, '20190302', 250.00, 2), 52 | (2, '20190624', 250.00, 2), 53 | (2, '20200816', 250.00, 2), 54 | (2, '20210919', 750.00, 2), 55 | (2, '20211005', 750.00, 2) 56 | 57 | SELECT * 58 | FROM Vendas 59 | GO -------------------------------------------------------------------------------- /Scripts/Dataset_Aula_5.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wlcamargo/evangelizando_sql/8a8bcfc1f8dd78da985fbe1cc6a7a71723ca2f0c/Scripts/Dataset_Aula_5.sql -------------------------------------------------------------------------------- /Scripts/Scripts_Aula_1.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wlcamargo/evangelizando_sql/8a8bcfc1f8dd78da985fbe1cc6a7a71723ca2f0c/Scripts/Scripts_Aula_1.sql -------------------------------------------------------------------------------- /Scripts/Scripts_Aula_2.sql: -------------------------------------------------------------------------------- 1 | -- Criando um banco de dados de teste (se ainda não existir) 2 | CREATE DATABASE TestDB; 3 | USE TestDB; 4 | 5 | -- Criando uma tabela de teste 6 | CREATE TABLE TestTable ( 7 | ID INT PRIMARY KEY, 8 | Nome VARCHAR(50), 9 | Sobrenome VARCHAR(50), 10 | DataNascimento DATE, 11 | Salario DECIMAL(10, 2), 12 | Ativo BIT, 13 | Descricao TEXT, 14 | DataHoraAtual DATETIME 15 | ); -------------------------------------------------------------------------------- /Scripts/Scripts_Aula_3.sql: -------------------------------------------------------------------------------- 1 | /* 2 | Scripts da Aula 3 - Evangelizando o SQL 3 | 4 | Desenvolvedor: Ítalo Mesquita 5 | 6 | Linkedin: https://www.linkedin.com/in/italomesquita/ 7 | 8 | Canal Youtube: https://www.youtube.com/@ItaloMesquita 9 | */ 10 | 11 | IF NOT EXISTS( 12 | SELECT TOP 1 1 13 | FROM sys.databases 14 | WHERE [name] = 'Aula03' 15 | ) 16 | BEGIN 17 | 18 | CREATE DATABASE Aula03; 19 | 20 | END 21 | GO 22 | 23 | USE Aula03 24 | GO 25 | 26 | DROP TABLE IF EXISTS tblVendas 27 | DROP TABLE IF EXISTS tblVendedores 28 | DROP TABLE IF EXISTS tblProdutos 29 | DROP TABLE IF EXISTS tblMarca 30 | DROP TABLE IF EXISTS tblEmpresas 31 | DROP TABLE IF EXISTS tblCargosComissoes 32 | DROP TABLE IF EXISTS logCargosComissoes 33 | GO 34 | 35 | CREATE TABLE tblEmpresas( 36 | EmpresaID INT PRIMARY KEY NOT NULL, 37 | Nome VARCHAR(24) NOT NULL, 38 | NomeFantasia VARCHAR(80) NOT NULL, 39 | Ativa BIT NOT NULL DEFAULT(1) 40 | ) 41 | GO 42 | 43 | CREATE TABLE tblCargosComissoes( 44 | CargoComissaoID SMALLINT IDENTITY(1,1) PRIMARY KEY NOT NULL, 45 | Descricao VARCHAR(80) NOT NULL, 46 | PercComissao NUMERIC(5,2) 47 | ) 48 | GO 49 | 50 | CREATE TABLE tblVendedores( 51 | VendedorID INT IDENTITY(1,1) PRIMARY KEY NOT NULL, 52 | Nome VARCHAR(80) NOT NULL, 53 | EmpresaID INT REFERENCES tblEmpresas(EmpresaID), 54 | CargoComissaoID SMALLINT REFERENCES tblCargosComissoes(CargoComissaoID) 55 | ) 56 | GO 57 | 58 | CREATE TABLE logCargosComissoes( 59 | LogCargosComissoesID INT IDENTITY(1,1) PRIMARY KEY NOT NULL, 60 | CargoComissaoID SMALLINT NOT NULL, 61 | DescricaoAnt VARCHAR(80) NULL, 62 | DescricaoAtual VARCHAR(80) NULL, 63 | PercComissaoAnt NUMERIC(5,2), 64 | PercComissaoAtual NUMERIC(5,2), 65 | DataHora DATETIME NOT NULL DEFAULT(GETDATE()), 66 | UserLogado VARCHAR(40) NOT NULL DEFAULT(SUSER_NAME()), 67 | HostName VARCHAR(40) NOT NULL DEFAULT(HOST_NAME()), 68 | CommandName VARCHAR(8) NOT NULL 69 | ) 70 | GO 71 | 72 | CREATE TABLE tblMarca( 73 | MarcaID INT PRIMARY KEY IDENTITY(1,1), 74 | Descricao VARCHAR(80) 75 | ) 76 | GO 77 | 78 | CREATE TABLE tblProdutos( 79 | 80 | ProdutoID INT IDENTITY(1,1) PRIMARY KEY NOT NULL, 81 | Descricao VARCHAR(80) NOT NULL, 82 | MarcaID INT, 83 | 84 | CONSTRAINT FK_tblMarca_MarcaID FOREIGN KEY(MarcaID) REFERENCES tblMarca(MarcaID) 85 | ) 86 | GO 87 | 88 | 89 | CREATE TABLE tblVendas( 90 | EmpresaID INT NOT NULL, 91 | VendaID INT NOT NULL, 92 | VendedorID INT, 93 | ProdutoID INT NOT NULL, 94 | Quantidade INT NOT NULL, 95 | ValorBruto MONEY NOT NULL, 96 | Desconto MONEY NOT NULL, 97 | ValorLiquido AS (ValorBruto-ValorLiquido), 98 | --CONSTRAINT 99 | CONSTRAINT FK_tblEmpresas_EmpresaID FOREIGN KEY(EmpresaID) REFERENCES tblEmpresas(EmpresaID), 100 | CONSTRAINT FK_tblVendedores_VendedorID FOREIGN KEY(VendedorID) REFERENCES tblVendedores(VendedorID), 101 | CONSTRAINT PK_EmpresaID_VendaID PRIMARY KEY(EmpresaID,VendaID), 102 | CONSTRAINT DF_Desconto_0 DEFAULT 0 FOR Desconto 103 | ) 104 | GO 105 | 106 | ALTER TABLE tblVendas 107 | ADD CONSTRAINT FK_tblProdutos_ProdutoID FOREIGN KEY(ProdutoID) REFERENCES tblProdutos(ProdutoID) 108 | GO 109 | 110 | CREATE OR ALTER TRIGGER trLogCargosComissoes ON tblCargosComissoes AFTER INSERT,UPDATE,DELETE 111 | AS 112 | BEGIN 113 | 114 | DECLARE @IsDeleted BIT = 0 115 | DECLARE @IsInserted BIT = 0 116 | DECLARE @TipoComando VARCHAR(10) 117 | 118 | IF EXISTS (SELECT TOP 1 1 FROM inserted) SET @IsInserted = 1 119 | IF EXISTS (SELECT TOP 1 1 FROM deleted) SET @IsDeleted = 1 120 | 121 | IF @IsDeleted = 1 AND @IsInserted = 1 122 | SET @TipoComando = 'updated' 123 | ELSE IF @IsDeleted = 0 124 | SET @TipoComando = 'inserted' 125 | ELSE 126 | SET @TipoComando = 'deleted' 127 | 128 | IF @TipoComando = 'inserted' 129 | BEGIN 130 | 131 | INSERT INTO logCargosComissoes( 132 | CargoComissaoID, 133 | DescricaoAtual, 134 | PercComissaoAtual, 135 | CommandName 136 | ) 137 | 138 | SELECT 139 | inserted.CargoComissaoID, 140 | inserted.Descricao AS DescricaoAtual, 141 | inserted.PercComissao AS PercComissaoAtual, 142 | @TipoComando AS CommandName 143 | FROM inserted 144 | 145 | END ELSE IF @TipoComando = 'updated' 146 | BEGIN 147 | 148 | INSERT INTO logCargosComissoes( 149 | CargoComissaoID, 150 | DescricaoAnt, 151 | DescricaoAtual, 152 | PercComissaoAnt, 153 | PercComissaoAtual, 154 | CommandName 155 | ) 156 | 157 | SELECT 158 | inserted.CargoComissaoID, 159 | deleted.Descricao AS DescricaoAnt, 160 | inserted.Descricao AS DescricaoAtual, 161 | deleted.PercComissao AS PercComissaoAnt, 162 | inserted.PercComissao AS PercComissaoAtual, 163 | @TipoComando AS CommandName 164 | FROM deleted 165 | INNER JOIN inserted 166 | ON (deleted.CargoComissaoID = inserted.CargoComissaoID) 167 | 168 | 169 | END ELSE 170 | BEGIN 171 | 172 | INSERT INTO logCargosComissoes( 173 | CargoComissaoID, 174 | DescricaoAnt, 175 | PercComissaoAnt, 176 | CommandName 177 | ) 178 | 179 | SELECT 180 | deleted.CargoComissaoID, 181 | deleted.Descricao AS DescricaoAnt, 182 | deleted.PercComissao AS PercComissaoAnt, 183 | @TipoComando AS CommandName 184 | FROM deleted 185 | 186 | END 187 | END 188 | GO 189 | 190 | INSERT INTO tblCargosComissoes( 191 | Descricao, 192 | PercComissao 193 | ) 194 | 195 | VALUES 196 | ('Vendedor',2.00), 197 | ('Gerente',0.5), 198 | ('Supervisor',0.2), 199 | ('Others', 0.2) 200 | GO 201 | 202 | UPDATE tblCargosComissoes 203 | SET PercComissao = 1.5 204 | WHERE Descricao = 'Vendedor' 205 | GO 206 | 207 | -- BEGIN TRANSACTION 208 | DELETE FROM tblCargosComissoes 209 | WHERE Descricao = 'Others' 210 | 211 | --ROLLBACK 212 | --COMMIT 213 | GO 214 | 215 | 216 | /* 217 | --ELIMINA TODAS AS LINHAS DAS TABELA (REINICIA IDENTITIES, NÃO ACIONA TRIGGERS) 218 | TRUNCATE TABLE [table_name] 219 | 220 | --ELIMINA A ESTRUTURA DA TABELA + DADOS (NÃO ACIONA TRIGGERS) 221 | DROP TABLE [table_name] 222 | */ -------------------------------------------------------------------------------- /Scripts/Scripts_Aula_4.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wlcamargo/evangelizando_sql/8a8bcfc1f8dd78da985fbe1cc6a7a71723ca2f0c/Scripts/Scripts_Aula_4.sql -------------------------------------------------------------------------------- /Scripts/Scripts_Aula_5.sql: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------------------- 2 | ------------------------- EVANGELIZANDO O SQL AULA 5 ----------------------------- 3 | ---------------------------------------------------------------------------------- 4 | 5 | ---------------------------------------------------------------------------------- 6 | -- SCRIPTS DESENVOLVIDOS POR WALLACE CAMARGO 7 | ---------------------------------------------------------------------------------- 8 | -- LINKEDIN - https://www.linkedin.com/in/wallace-camargo-35b615171/ 9 | -- CANAL YOUTOUBE - https://www.youtube.com/channel/UCK0B4IoF57JoiVVVeEcN8-A 10 | 11 | -- AGENDA ------------------------------------------------------------------------ 12 | 13 | -- PRE REQUISITOS ---------------------------------------------------------------- 14 | -- CRIAR BANCO DE DADOS (DATASET_AULA_5.SQL) 15 | -- INSERIR TABELAS NO BANCO DE DADOS VIA SCRIPT (ARQUIVO DATASET_AULA_5.SQL) 16 | 17 | -- UNIÃO DE DUAS TABELAS 18 | -- FUNÇÕES DE AGREGAÇÃO 19 | -- FUNÇÕES DE TIME INTELLIGENCE 20 | -- ORDEM DE PROCESSAMENTO DE UMA CONSULTA 21 | ---------------------------------------------------------------------------------- 22 | 23 | -- UNIAO DE TABELAS 24 | -- UNION VS UNION ALL 25 | SELECT * FROM TB_PALESTRANTES 26 | UNION 27 | SELECT * FROM TB_APOIADORES 28 | 29 | 30 | SELECT * FROM TB_PALESTRANTES 31 | UNION ALL 32 | SELECT * FROM TB_APOIADORES 33 | 34 | 35 | -- ADICIONANDO UMA COLUNA DURANTE A CONSULTA 36 | SELECT *, 'TB_PALESTRANTES' AS SOURCE FROM TB_PALESTRANTES 37 | UNION 38 | SELECT *, 'TB_APOIADORES' AS SOURCE FROM TB_APOIADORES 39 | 40 | 41 | -- FUNÇÕES DE AGREGAÇÃO 42 | -- SUM, COUNT, AVG, MAX, MIN 43 | 44 | -- RESPONDENDO PERGUNTAS DE NEGÓCIO ------------------------ 45 | 46 | 47 | -- QUAL O VALOR TOTAL DE VENDAS POR ESTADO? 48 | SELECT 49 | ESTADO, 50 | SUM(ValorBruto) AS VALOR_BRUTO 51 | FROM 52 | TB_VENDAS 53 | GROUP BY 54 | ESTADO 55 | 56 | 57 | -- QUAL O TOTAL DE VENDAS POR CLIENTE E POR ESTADO? 58 | SELECT 59 | NOME AS CLIENTE, 60 | ESTADO, 61 | MAX(ValorBruto) AS VALOR_BRUTO 62 | FROM 63 | TB_VENDAS 64 | GROUP BY 65 | NOME, 66 | ESTADO 67 | ORDER BY 68 | 2 DESC; 69 | 70 | 71 | -- QUAL O CARRO MAIS VENDIDO? 72 | SELECT 73 | Carro, 74 | COUNT(*) AS QTD_VENDIDA 75 | FROM 76 | TB_VENDAS 77 | GROUP BY 78 | Carro 79 | ORDER BY 80 | 2 DESC 81 | 82 | 83 | -- TRAZER SOMENTE CARRO QUE VENDEU MAIS DE UMA UNIDADE 84 | SELECT 85 | Carro, 86 | COUNT(*) AS QTD_VENDIDA 87 | FROM 88 | TB_VENDAS 89 | GROUP BY 90 | Carro 91 | HAVING 92 | COUNT(*) > 1 93 | 94 | 95 | -- QUAL FOI O CLIENTE COM MAIOR DESCONTO? 96 | SELECT 97 | NOME AS CLIENTE, 98 | MAX(VALORDESCONTO) AS MAIOR_DESCONTO 99 | FROM 100 | TB_VENDAS 101 | GROUP BY 102 | NOME 103 | ORDER BY 104 | 2 DESC; 105 | 106 | 107 | --QUAL O MAIOR VALOR BRUTO DE UM VENDEDOR? 108 | SELECT 109 | NOME, 110 | MAX(VALORDESCONTO) 111 | FROM 112 | TB_VENDAS 113 | GROUP BY 114 | NOME 115 | 116 | 117 | --QUAL A MEDIA DO VALOR BRUTO DE VENDAS POR DIA? 118 | SELECT 119 | DataVenda, 120 | AVG(ValorBruto) as Media 121 | FROM 122 | TB_VENDAS 123 | GROUP BY 124 | DataVenda 125 | ORDER BY 126 | DataVenda 127 | 128 | 129 | --QUANTIDADE DE VENDA POR VENDEDOR? 130 | SELECT 131 | VENDEDOR, 132 | COUNT(*) AS QTD_VENDIDA 133 | FROM 134 | TB_VENDAS 135 | GROUP BY 136 | VENDEDOR 137 | ORDER BY 138 | 2 DESC 139 | 140 | 141 | -- FUNCOES DE TIME INTELLIGENCE 142 | SELECT GETDATE() -- DATA ATUAL DO SISTEMA 143 | 144 | SELECT YEAR (GETDATE()) -- ANO ATUAL 145 | SELECT MONTH (GETDATE()) -- MES ATUAL 146 | SELECT DAY (GETDATE()) -- DIA ATUAL 147 | 148 | 149 | -- FILTRA OS ÚLTIMOS 7 DIAS 150 | SELECT * 151 | FROM TB_VENDAS 152 | WHERE DataVenda >= DATEADD(DAY, -7, GETDATE()); 153 | 154 | 155 | -- FILTRA O ÚLTIMO MÊS 156 | SELECT * 157 | FROM TB_VENDAS 158 | WHERE DataVenda >= DATEADD(MONTH, -1, GETDATE()); 159 | 160 | 161 | -- FILTRA O MÊS ATUAL 162 | SELECT * 163 | FROM TB_VENDAS 164 | WHERE MONTH(DataVenda) = MONTH(GETDATE()) AND YEAR(DataVenda) = YEAR(GETDATE()); 165 | 166 | 167 | --ORDEM DO PROCESSAMENTO DE UMA CONSULTA 168 | --1º PASSO --> FROM (JOINS SE TIVER) 169 | 170 | --2º PASSO --> WHERE 171 | 172 | --3º PASSO --> GROUP BY 173 | 174 | --4º PASSO --> HAVING 175 | 176 | --5º PASSO --> SELECT 177 | 178 | --6º PASSO --> ORDER BY -------------------------------------------------------------------------------- /Scripts/Scripts_Aula_7.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wlcamargo/evangelizando_sql/8a8bcfc1f8dd78da985fbe1cc6a7a71723ca2f0c/Scripts/Scripts_Aula_7.sql -------------------------------------------------------------------------------- /Slides das Aulas/Slides_PPT_Evangelizando_a_Linguagem_SQL - Aula 1.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wlcamargo/evangelizando_sql/8a8bcfc1f8dd78da985fbe1cc6a7a71723ca2f0c/Slides das Aulas/Slides_PPT_Evangelizando_a_Linguagem_SQL - Aula 1.pptx -------------------------------------------------------------------------------- /Slides das Aulas/Slides_PPT_Evangelizando_a_Linguagem_SQL - Aula 2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wlcamargo/evangelizando_sql/8a8bcfc1f8dd78da985fbe1cc6a7a71723ca2f0c/Slides das Aulas/Slides_PPT_Evangelizando_a_Linguagem_SQL - Aula 2.pdf -------------------------------------------------------------------------------- /Tarefas e Links de Apoio/Tarefas_e_Links_Apoio_Aula_1.txt: -------------------------------------------------------------------------------- 1 | Tarefa 1 - Instalar o SQL Server 2 | Tarefa 2 - Anexar o banco de dados Adventure Works 3 | 4 | Links de Apoio 5 | -------------------------------------------------------------------------------------------------- 6 | 7 | Link da instalação do SQL Server por Ítalo Mesquita: 8 | https://www.youtube.com/watch?v=k2q0nvsEkSM&t=2s 9 | 10 | Link do vídeo para instalar o SQL Server (Hashtag Treinamento): 11 | https://www.youtube.com/watch?v=mi0t1bz_NKs 12 | 13 | Link do vídeo para instalar o SQL Server (Power Tuning): 14 | https://www.youtube.com/watch?v=hko8_P8_QtE&t=998s 15 | 16 | --------------------------------------------------------------------------------------------------- 17 | Link para adicionar o banco de dados adventure works 18 | https://learn.microsoft.com/pt-br/sql/samples/adventureworks-install-configure?view=sql-server-ver16&tabs=ssms 19 | 20 | Link sobre a história da linguagem SQL 21 | https://pt.wikipedia.org/wiki/SQL 22 | 23 | Link com Ranking dos SGBDs 24 | https://db-engines.com/en/ranking 25 | 26 | -------------------------------------------------------------------------------- /Tarefas e Links de Apoio/Tarefas_e_Links_Apoio_Aula_2.txt: -------------------------------------------------------------------------------- 1 | Tarefa 1 - Criar uma tabela de sua escolha 2 | Tarefa 2 - Explicar motivo da escolha dos tipos de dados 3 | Tarefa 3 - Postar no Linkedin um print da tabela (se marcar os envolvidos no projeto vai ganhar mais pontos) 4 | 5 | Links de Apoio 6 | -------------------------------------------------------------------------------------------------- 7 | 8 | Link para documentação de tipos de dados no SQL Server 9 | https://learn.microsoft.com/pt-br/sql/t-sql/data-types/data-types-transact-sql?view=sql-server-ver16 10 | 11 | Link para atalhos do SSMS 12 | https://cursos.powertuning.com.br/course/50-dicas-e-atalhos-ssms -------------------------------------------------------------------------------- /Vencedores Kahoot/Vencedores_Aula_1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wlcamargo/evangelizando_sql/8a8bcfc1f8dd78da985fbe1cc6a7a71723ca2f0c/Vencedores Kahoot/Vencedores_Aula_1.PNG -------------------------------------------------------------------------------- /Vencedores Kahoot/Vencedores_Aula_2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wlcamargo/evangelizando_sql/8a8bcfc1f8dd78da985fbe1cc6a7a71723ca2f0c/Vencedores Kahoot/Vencedores_Aula_2.PNG -------------------------------------------------------------------------------- /Vencedores Kahoot/Vencedores_Aula_3.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wlcamargo/evangelizando_sql/8a8bcfc1f8dd78da985fbe1cc6a7a71723ca2f0c/Vencedores Kahoot/Vencedores_Aula_3.PNG -------------------------------------------------------------------------------- /Vencedores Kahoot/Vencedores_Aula_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wlcamargo/evangelizando_sql/8a8bcfc1f8dd78da985fbe1cc6a7a71723ca2f0c/Vencedores Kahoot/Vencedores_Aula_4.png -------------------------------------------------------------------------------- /Vencedores Kahoot/Vencedores_Aula_5_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wlcamargo/evangelizando_sql/8a8bcfc1f8dd78da985fbe1cc6a7a71723ca2f0c/Vencedores Kahoot/Vencedores_Aula_5_6.png -------------------------------------------------------------------------------- /Vencedores Kahoot/Vencedores_Aula_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wlcamargo/evangelizando_sql/8a8bcfc1f8dd78da985fbe1cc6a7a71723ca2f0c/Vencedores Kahoot/Vencedores_Aula_7.png --------------------------------------------------------------------------------