Primeiras aulas do curso SQL Server: Introdução ao SQL com Microsoft SQL Server 2019

SQL Server: Introdução ao SQL com Microsoft SQL Server 2019

SQL - Conceitos - Apresentação

Tudo bem, gente? Meu nome é Victorino Vila e eu vou ser o instrutor desse treinamento de introdução ao SQL usando SQL Server 2019. Mas antes eu gostaria de dar um recado a vocês. Nós já oferecemos aqui na Alura um treinamento de introdução ao SQL com Microsoft SQL Server 2017 e estamos agora regravando esse curso no 2019.

Se você já fez o curso de introdução ao SQL usando a versão 2017 do SQL Server, você não tem a necessidade de fazer esse treinamento. Não é pelo fato de termos passado do 2017 para o 2019 que vai ter alguma coisa diferente. Tudo bem, o conteúdo desse curso é um pouco maior do que o anterior. Mas ele é um pouco maior na parte teórica, nesse curso vamos falar um pouco de história do SQL, história do SQL Server.

Se você quiser até olhar os vídeos e comparar com o curso anterior, e quiser assistir um ou outro vídeo extra não tem nenhum problema, mas não tem necessidade de se matricular e fazer esse curso, porque o conhecimento que você vai adquirir aqui vai ser o mesmo do versão 2017.

O segundo recado é para o pessoal que olhou o curso e quer fazer esse treinamento, mas que já tem uma noção de SQL. Então vou deixar bem claro para você que já conhece SQL, que esse curso é para quem nunca viu SQL na vida.

Vamos começar o treinamento falando um pouco da história do SQL, como surgiu essa linguagem SQL Server, vamos falar um pouco das vantagens de utilizar o padrão e vamos entender um pouco os grupos de comandos que formam o SQL Server.

Depois vamos falar um pouco sobre a história do Microsoft SQL Server, como ele surgiu e vamos ver os tipos de versões de SQL Server que existem no mercado, inclusive para você ver qual se adequa mais ao seu caso de uso e aí claro, vamos baixar da internet e instalar o SQL Server.

Depois vamos ver um pouco de definições de banco de dados relacional, já que o SQL mexe com esse tipo de banco de dados, vamos aprender quais são os componentes que formam um banco de dados relacional. Vamos entender a ferramenta que vamos trabalhar, que é o Management Studio e já vamos começar a meter a mão na massa no SQL.

Então vamos criar bases de dados, vamos saber como criamos base de dados de várias maneiras, através de comando SQL, através de assistente e nele nós vamos aprender a apagar a base de dados.

Depois passamos para a criação de tabela. Então vamos aprender quais são os tipos de dados existentes no SQL Server, vamos criar tabela de várias maneiras e vamos aprender também a apagar uma tabela que foi criada. Depois vamos aprender a incluir dados em uma tabela, alterar dados existentes e vamos aprender a apagar dados de uma tabela.

No final nós vamos ver algumas coisas um pouco mais complexas, específicas do banco de dados, como por exemplo a ordem que os campos são declarados na tabela influencia na forma que você pode inserir dados dentro da tabela. Ou seja, se você souber a ordem dos campos, você pode criar comandos de inserção mais simples. Vamos ver o que é chave primária, campo nulo e como é que esses 2 conceitos são interdependentes.

E finalmente vamos aprender a partir de seleção, onde vamos fazer seleção de dados e aplicando filtros. Filtros aplicados a valores, igualdades, maior ou igual a, menor ou igual a, textos ou valores, vamos ver filtrar através de datas e depois como trabalhamos com filtros compostos usando or ou end.

Então é isso que vamos olhar nesse treinamento, é um treinamento, até certo ponto, comprido. Mas ele vai dar uma pincelada bem por alto em cada parte especial da linguagem SQL, para você que nunca viu SQL. Então acho que esse é um excelente curso para você ter o primeiro contato com essa linguagem de banco de dados. Então é isso, gente! Um abraço, espero que vocês gostem desse curso, vamos em frente, um abraço, tchau, tchau.

SQL - Conceitos - História do SQL

Vamos começar? Então eu vou falar um pouco de história.

No começo, e quando eu falo começo, eu estou falando lá para o início dos anos 60, quando os primeiros computadores foram surgindo, as informações que eram utilizadas pelos programas passaram a ser armazenadas em algum lugar externo.

Antigamente utilizavam aquelas grandes fitas magnéticas e depois começaram a surgir os primeiros hard disks ou HDs. Mas independentemente de onde essas informações eram armazenadas, desde o início dos anos 60, início da computação, já se utilizou o conceito de banco de dados.

Esses bancos de dados primitivos utilizavam uma estrutura muito simples, que armazenavam um conjunto de caracteres de forma sequencial. Nós chamávamos isso de banco de dados sequenciais.

Novamente para nos situarmos no tempo, nós estamos falando de anos 60 até meio para final dos anos 70, onde os bancos de dados sequenciais eram usados em larga escala. E mesmo depois do final dos anos 70, até durante muito tempo, o que nós chamávamos de downsize, ou seja, passávamos esses bancos de dados sequenciais para coisas mais modernas, essa migração foi feita aos poucos.

Inclusive foi alvo de grandes problemas justamente na virada do século, por causa do que nós chamávamos de "bug do milênio". Que na verdade esses bancos de dados sequenciais utilizavam o conceito de armazenar a data, o ano da data em 2 dígitos. E como íamos entrar no ano 2000, para o banco de dados sequencial o ano 00 representava o ano de 1900 e se nada fosse feito, isso ia causar uma série de problemas na virada do século.

Mas acabamos fugindo um pouco do assunto, já que estamos falando da história do SQL, mas eu acho que foi importante colocar um pouco essa história, porque tem a ver muito com os bancos de dados sequenciais.

Então vamos voltar a fita e vamos voltar para o início dos anos 70. Final dos anos 60 e início dos anos 70. Os bancos de dados sequenciais eram utilizados, mas os cientistas da área de tecnologia da época passaram a imaginar um outro modelo de banco de dados, que tentava se aproximar mais da realidade.

Porque na medida em que os computadores foram crescendo de capacidade de processamento, esses bancos de dados sequenciais passaram a organizar as transações da empresa. E aí a estrutura de como eles eram armazenados dificultava essa modelagem.

Então pensou-se em criar um outro tipo de banco de dados, cuja a forma de construí-lo ficaria bem semelhante com o processo operacional das empresas. E então surgiu o modelo relacional. Quando eu falo modelo relacional, eu estou falando do modelo teórico, de desenho de um banco de dados.

O modelo relacional passava a imaginar os dados armazenados em tabelas diferentes, aquela tabela seria a modelagem de uma entidade que teria o papel de uma entidade real no processo da empresa e que essas tabelas pudessem, como o próprio nome diz, se relacionar entre si, fazerem uma relação entre esta tabela. E esse novo modelo encaixava como uma luva na modelagem dos processos reais das empresas.

Então depois que veio o modelo relacional, passou-se a imaginar uma forma de implementá-lo na prática. Então nós temos o surgimento do modelo relacional, mais ou menos para o final dos anos 60 até meio dos anos 70, onde esse modelo relacional, no início teórico passou a evoluir.

E bem nessa época, meio dos anos 70, começaram a surgir os primeiros computadores, que passaram a implementar na prática esse modelo relacional e aí sim passamos a chamar de banco de dados relacional. Esse modelo inclusive foi um sucesso e ele é utilizado em larga escala até hoje.

Pois bem. Com o surgimento dos primeiros bancos de dados relacionais, as grandes empresas de tecnologia, na época IBM, a gigante de tecnologia naquela época, eles passaram a pensar em criar uma linguagem que pudesse tirar o máximo proveito dessas estruturas relacionais.

Então criou-se um projeto dentro da IBM chamado Projeto System R, que era coordenado por um cientista chamado Codd. Esse cara tinha feito um papel muito importante na criação do modelo relacional e havia sido contratado pela IBM para poder implementar aquele modelo relacional na prática.

Esse Codd, inclusive, é famoso porque quando estudamos modelos relacional, inclusive aqui na Alura temos um curso disso, nós aprendemos a forma normal Boyce-Codd, ou seja, é uma forma teórica de modelagem de banco de dados relacional, que acabou levando o nome desse cientista no nome dessa forma normal.

Então quem quiser e tiver curiosidade, procura aqui na Alura por modelagem relacional, que vocês vão ouvir falar um pouco mais do Codd.

Não eram somente a IBM que estava trabalhando em criar uma linguagem para consulta de banco de dados relacionais. Uma outra grande empresa na época que estava surgindo, a Oracle, estamos falando de final dos anos 70 e início e meio dos anos 80, eles passaram a pensar também em criar as estruturas relacionais no banco de dados e criar uma linguagem própria.

Outra empresa que também, mas isso já para o final dos anos 80, foi a Sybase, que também passou a criar o seu modelo relacional e criar uma forma de consultar dados desse modelo. Eu estou mencionando a Sybase porque ela acabou sendo o embrião do banco de dados SQL Server, que é tema desse nosso treinamento.

Então um monte de gente naquela época estava pesquisando, criando seus próprios bancos de dados relacionais e criando cada um linguagens proprietárias para consultar dados desses bancos.

Então surgiu um ator super importante nessa história. O ANSI é uma sigla que vem de um órgão do governo americano chamado American National Standard Institute, que seria o equivalente aqui no Brasil ao nosso INMETRO. É um órgão do governo americano que cuida dos pesos e medidas dos Estados Unidos.

Eles acabaram entrando nessa história, cujo o objetivo era criar um padrão único para todas as linguagens que estavam sendo desenvolvidas para consultar dados em bancos de dados relacionais. O objetivo realmente era criar uma linguagem única para que facilitasse, inclusive, a difusão do conhecimento e a implementação dos diversos bancos de dados relacionais.

Eles se uniram, capturaram as coisas boas de todos modelos, claro que houve um consenso do mercado para se criar esse tipo de padrão de linguagem e o requisito era que essa linguagem tinha que ser fácil e que utilizassem comando usando a linguagem coloquial do inglês.

Então o pessoal pensou, pensou, pensou e surgiu o que nós chamamos da linguagem SEQUEL. O SEQUEL vem do acrônico Structure English Query Language, que traduzido para o português seria algo como "linguagem de consulta estruturada em inglês". Inclusive, depois a linguagem SEQUEL passou a ser chamada de SQL, isso de Structure Query Language, tiraram o English da sigla. Mas apesar da linguagem que depois passou a se chamar SQL, no inglês ela ainda é chamada de SEQUEL.

Tanto é que, por exemplo, o SQL Server, que é o banco que vamos estudar nesse treinamento, se falamos com um americano, acabamos falando SEQUEL Server e não SQL Serve, como seria mais ou menos se eu falasse as 3 letras em inglês. Mas no português não usamos o termo SEQUEL, que usamos simplesmente o termo SQL.

Inclusive, criou-se o que nós chamamos do padrão ANSI, ou SQL ANSI. Esse nome do instituto americano, que acabou unificando isso tudo passou a ser nome do padrão SQL.

E depois desde o início dos anos 90 até hoje, periodicamente as pessoas se reúnem e vão criando novos padrões ANSI, principalmente porque desde o início dos anos 90 até hoje, apesar dos bancos de dados relacionais ainda serem os campeões de uso e da linguagem SQL estar ainda sendo usada por esses bancos de dados relacionais, o que acontece é que novas estruturas de dados surgiram dos anos 90 para cá.

Hoje em dia guardamos em banco de dados imagem, fotos, hoje temos estruturas relacionada, principalmente com internet, web services, como XML, json. Então existem padrões ANSI que são gravados com uma data, então você tem o ANSI 98, o ANSI 2002, ANSI 2012, ou seja, são padrões de SQL ANSI que são revisados e ganham esse padrão numérico.

Então quando você hoje olha um banco de dados relacional, é importante que você primeiro saiba se esse banco de dados relacional usa o padrão ANSI e inclusive é bom saber qual é o padrão inicial ANSI que ele passou a utilizar. Então isso foi um pouco da história do SQL. Espero que vocês tenham gostado desse vídeo, um abraço, tchau!

SQL - Conceitos - Vantagens de utiliza o padrão ANSI

Vimos no vídeo anterior que a linguagem SQL vem com o objetivo de padronizar a forma com que os dados são consultados nos bancos de dados relacionais. Hoje em dia todos os bancos que se dizem relacionais adotam o padrão ANSI, o padrão SQL ANSI.

Mas esse padrão não é somente usado para consultar dados no banco, nós utilizamos o padrão SQL ANSI também para criar, alterar a estrutura, manipular a estrutura do banco de dados, determinar a forma com que o banco de dados interage com segurança e assim por diante.

Ou seja, toda a parte de administração do banco também utiliza comandos da linguagem SQL, não somente usamos o SQL para fazer a manutenção dos dados do banco de dados.

Então, o fato de existir essa padronização traz inúmeras vantagens. Vamos falar um pouco sobre quais são as grandes vantagens que utilizar a linguagem SQL ANSI permite. A primeira, claro, é o aprendizado.

Essa padronização de linguagem traz uma série de vantagens, porque ela reduz o custo de um profissional aprender a linguagem SQL. Então, por exemplo, o profissional que sabe SQL do Oracle vai facilmente utilizar o SQL do SQL Server da Microsoft, por exemplo, que é o tema desse treinamento.

Claro, algumas pequenas diferenças vão existir entre os bancos de dados, principalmente na parte de funções. Mas isso acaba não sendo um grande problema para que um profissional que aprendeu SQL em um banco de dados se adapte automaticamente quando for utilizar um outro banco de dados.

Então para você que está nesse treinamento aprendendo o SQL utilizando o Microsoft SQL Server, vocês vão ver que o SQL que vocês vão aprender aqui, depois é facilmente transferido para você utilizar, por exemplo, o SQL que você vai aprender em outros bancos de dados relacionais.

A outra grande vantagem é o que nós chamamos de portabilidade. Fica muito fácil, já que há um padrão, de você migrar sistemas. Então um banco de dados Oracle, se ele quiser migrar para SQL Server ou para MySQL, que é outro banco de dados relacional, ou vice-versa, do SQL para o SQL Server e depois para o Oracle, isso ia ser muito fácil.

Claro que se você é um programador e está desenvolvendo uma aplicação de consulta de banco de dados relacional, por exemplo, você está utilizando um programa em Java ou em C#, que conversa com um banco de dados relacional, quanto mais próximo do padrão ANSI você utilizar, vai ficar mais fácil se você depois quiser mudar o acesso daquela sua aplicação de um banco de dados específico para outro.

Por exemplo, aquelas diferenças que eu mencionei de funções, que são pequenas diferenças que existem em cada um dos bancos de dados, se você quiser fazer uma coisa que depois seja facilmente transportado entre banco de dados, você evitar de usar essas funções no database e utilizá-las no seu programa.

Outra vantagem é a longevidade. Se o seu sistema utiliza relação de relatórios ou processos utilizando a linguagem SQL, nós temos uma garantia que eles vão funcionar durante muito, muito tempo. Principalmente nas normas de versões de banco de dados.

Porque sempre quando vem uma versão nova de banco de dados relacional, se ela continua seguindo o padrão ANSI, o padrão ANSI nunca deixa de utilizar uma regra. O máximo que acontece é que nos novos padrões ANSI novas regras são acrescentadas.

Então seu sistema nunca vai ficar fora de funcionamento quando você, por exemplo, for fazer um upgrade de uma versão de banco de dados mais nova, porque se você utilizou SQL padrão ANSI, aquilo você utilizou nunca vai deixar de funcionar.

Outra vantagem é a comunicação. O fato de todo mundo falar SQL permite que os sistemas possam facilmente se comunicar entre si. O processo que nós chamamos de ETL, de extração, transformação e carga de dados de um lugar para outro, ou sistemas por exemplo de integração, elas ficam muito mais fáceis de serem desenvolvidas, já que os 2 lados falam SQL padrão.

Outra vantagem é a liberdade de escolha. Como há um padrão na linguagem, quando a empresa for selecionar qual banco de dados relacional ela vai implementar, ela não vai ficar presa, por exemplo, à linguagem de desenvolvimento ou de comunicação de dados que cada banco relacional vai utilizar, porque é o padrão. Todo mundo fala SQL ANSI, então você nunca vai precisar levar em consideração o critério de usabilidade do banco de dados, já que todo mundo usa o mesmo padrão.

Se você quer decidir por um banco de dados na sua empresa, você vai utilizar outros parâmetros para julgar o melhor banco, como por exemplo, parâmetros de hardware, custo, armazenamento e assim por diante.

Só que é claro que essa padronização tem algumas desvantagens. Poucas, mas tem. A primeira é a falta de criatividade. O SQL possui alguns limites que podem não atender, por exemplo, as novas demandas, principalmente do mercado.

Por exemplo, com o advento das redes sociais e de grandes volumes de dados, que nós chamamos de big data. Ou seja, estamos transferindo para o banco de dados relacional a necessidade de, por exemplo, coletar todos os dados trafegados pela internet.

Se utilizarmos um banco de dados internacional para fazer isso, ele não vai suportar, porque ele foi feito para modelagem de processos da empresa, utilizando dados extremamente estruturados.

E quando olhamos para dados de rede social, de internet, estamos falando de estruturas que chamamos de não estruturadas e elas meio que quebram aquelas regras dos modelos relacionais. Tanto é que estão hoje em dia surgindo outros padrões de banco de dados diferentes do padrão do banco de dados relacional que chamamos de padrão no SQL ou no SEQUEL.

Esses bancos no SEQUEL atendem bem melhor as demandas, por exemplo, de redes sociais ou de tabelas que vão ter muito volume, nós chamamos de tabelas de big data. Mas estamos falando de estruturas que fogem do padrão ANSI e exigem um aprendizado um pouco mais focado nesses novos bancos de dados, caso você queira se capacitar neles.

Outra desvantagem é a falta de estruturação. Porque a linguagem SQL não é estruturada, ela não possui ifs, when, for, ou seja, comandos condicionais, como por exemplo em uma linguagem de programação normal, que você utiliza para fazer um programa como Java, C#, ela meio que é uma linguagem mais simples.

Mas para suprir essa falta de estruturação, os bancos de dados relacionais passaram, como por exemplo, Oracle, SQL Server, My SQL e outros, passaram a criar as suas próprias linguagens internas de programação, que acabam estruturando de uma maneira mais complexa a linguagem SEQUEL que aquele banco usa.

Mas nesse caso acabamos fugindo do padrão ANSI, porque esse tipo de estruturação em uma linguagem não muito bem estruturada, cada banco de dados utiliza suas próprias regras e aí ela acaba fugindo do padrão ANSI.

Mas hoje em dia os bancos de dados relacionais tem essa parte de programação que tenta suprir um pouco a falta do SQL não ser uma linguagem muito bem estruturada, principalmente em comandos condicionais, como eu falei como ifs, whens ou for.

Então era isso que eu queria falar com vocês sobre as vantagens e desvantagens da linguagem SQL. Um abraço e até o próximo vídeo.

Sobre o curso SQL Server: Introdução ao SQL com Microsoft SQL Server 2019

O curso SQL Server: Introdução ao SQL com Microsoft SQL Server 2019 possui 318 minutos de vídeos, em um total de 79 atividades. Gostou? Conheça nossos outros cursos de SQL e Banco de Dados em Data Science, ou leia nossos artigos de Data Science.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda SQL e Banco de Dados acessando integralmente esse e outros cursos, comece hoje!

Plus

  • Acesso a TODOS os cursos da plataforma

    Mais de 1200 cursos completamente atualizados, com novos lançamentos todas as semanas, em Programação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

  • Alura Língua (incluindo curso Inglês para Devs)

    Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.

12X
R$85
à vista R$1.020
Matricule-se

Pro

  • Acesso a TODOS os cursos da plataforma

    Mais de 1200 cursos completamente atualizados, com novos lançamentos todas as semanas, em Programação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

  • Alura Língua (incluindo curso Inglês para Devs)

    Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.

12X
R$120
à vista R$1.440
Matricule-se
Conheça os Planos para Empresas

Acesso completo
durante 1 ano

Estude 24h/dia
onde e quando quiser

Novos cursos
todas as semanas