O que é e pra que serve o SQL Server
Bem, SQL é uma linguagem de consulta de banco de dados que utiliza um padrão que chamamos de “padrão ansi”, que é basicamente muito parecido em diversos bancos de dados relacionais do mercado.
Ele surgiu inicialmente no final dos anos 80 como um projeto em parceria com a Sybase (uma outra empresa de banco de dados), e eles fizeram o seu desenvolvimento juntos, até 1994, quando houve uma separação e a Microsoft seguiu com o banco de dados SQL Server.
O SQL Server, não é somente um banco de dados relacional, ele tem uma série de outras estruturas, como por exemplo, uma estrutura de banco de dados multidimensional e uma estrutura de criação de relatórios, além de ter uma ferramenta de manipulação de dados que chamamos de “integration services”.
O objetivo desta carreira SQL Server, é dar ênfase apenas ao banco de dados relacional.
Outra coisa que eu gostaria de falar antes de começarmos esse curso, para que possamos nivelar as expectativas de você, aluno.
O objetivo desse curso específico, SQL com SQL Server, visa dois grupos de alunos.
O primeiro grupo, é aquele cara que nunca viu SQL Server, aquele cara que não conhece a ferramenta da Microsoft. Ele pode até ter experiência de trabalhar com banco de dados relacionais em outros bancos, mas gostaria de conhecer o SQL Server.
E nós temos o segundo grupo, que seria aquele aluno que nunca viu um banco de dados e quer conhecer a linguagem SQL.
Para esse segundo grupo de alunos, esse curso será realmente um curso introdutório. Nós iremos ver definições bem básicas do que é uma tabela, o que é um campo, um registro.
Vamos aprender comandos básicos de criação de tabelas, de inclusão, alteração e exclusão de dados, e de consulta de dados bem simples, usando como exemplo o SQL Server.
Então, se você é aquele cara que já conhece a linguagem SQL, já trabalha com o Oracle ou o db2 e quer conhecer o SQL Server, eu gostaria de deixar claro a vocês que esse curso vai ser bem introdutório. Ele tem como objetivo dar uma pincelada geral de tudo.
Claro que se você quiser conhecer como é o SQL Server e como manipulados as coisas usando esse banco de dados da Microsoft, siga com a gente, mas deixando bem claro que não vou entrar a fundo nesses comandos específicos de inclusão, alteração, consulta e criação de esquemas de banco de dados. Falarei sobre isso de uma maneira superficial.
Nessa nossa carreira de SQL Server, em cursos posteriores, aí sim eu vou entrar bem a fundo sobre cada um desses assuntos.
Veremos aqui no futuro algo mais detalhado de manipulação de dados; um curso bem detalhado de consultas de SQL, para consultar dados do Banco de dados; e finalmente, um curso detalhado no possível, porque esse assunto é muito vasto, de uma linguagem chamada “TSQL” ou “Transact-SQL”, que é usado para construir funções complexas de manipulação de dados.
O que temos de fazer primeiro?
- Instalar o SQL Server recente
- Instalar o SQL Server Management Studio recente
- Configurar o SQL Server
Primeiros passos
Vamos colocar algumas definições existentes dentro de um banco de dados no SQL Server. Essas definições são muito importantes. Se você nunca viu nada de banco de dados, continue nesse vídeo.
Se você já conhece o banco de dados, pode assistir esse vídeo também, porque podemos rever algumas definições, mas o importante aqui é a pessoa que nunca viu banco de dados, conhecer quais os objetos e quais entidades existem dentro dessa estrutura.
Então, a primeira grande divisão do SQL Server, é o que chamamos de “banco de dados”, ou seja, num servidor SQL Server, eu posso ter um ou mais bancos de dados.
A primeira coisa quando vou desenhar uma base de dados SQL Server, é construir o banco de dados. Então, ela é a primeira entidade do servidor SQL Server.
Esse banco de dados possui dentro dele diversas subdivisões, várias coisas dentro dele que compõem um banco de dados. Eu vou estar mostrando agora aqui, as principais, as que veremos nesse e nos outros cursos de SQL Server.
Bem, a primeira entidade básica é a tabela. É na tabela em que o dado está armazenado. A tabela possui campos que são basicamente colunas, e possui registros, que são as linhas.
Fazendo uma comparação, uma tabela é como se fosse uma planilha de Excel com colunas já previamente definidas, ou seja, quando eu crio uma tabela, já vou dizer quantas colunas ela vai ter e qual vai ser o tipo de informação que vai estar dentro de cada coluna, ou já usando a nomenclatura do SQL Server, campos.
Ou seja, cada campo deste, possui um único tipo, e todo dado que estiver nessa coluna, só pode ser desse tipo. O que são esses tipos? São números, caracteres, caracteres alfanuméricos, campos binários onde vou salvar por exemplo bytes de um arquivo. Esses tipos, é claro, nós veremos a frente com mais detalhes.
Claro que os registros são as linhas. Não existe um limite de linhas ou registros para cada tabela. Quando eu crio uma tabela, a única coisa que fixo nela são: o número de campos que ela vai ter e qual é o tipo de cada campo.
A tabela também possui uma definição chamada “chave primária“.
O que é chave primária?
Eu associo alguns campos a essa entidade chamada “chave primeira”, e quando o campo estiver associado a chave primária, o seu conteúdo não pode se repetir dentro das linhas ou do registros.
Vamos dar um exemplo. Digamos que eu tenha uma tabela que seja o cadastro de clientes e eu digo que um dos campos dessa tabela é o CPF do cliente. Se eu disser que CPF é uma chave primária, eu não vou pode ter mais de uma linha, ou mais de um registro, ou então, mais de um cliente com o mesmo CPF.
Porque se existir com o mesmo CPF, e o se CPF fizer parte da chave primária, o banco de dados, vai me retornar um erro.
Eu posso ter chaves primárias compostas. Por exemplo, digamos que eu tenha uma tabela com produtos e eu diga que não posso vender o mesmo produto para um mesmo cliente.
Então, se eu disser que o código do produto e o código do cliente são chaves primárias, eu nunca vou poder ter dois ou mais registros com o mesmo cliente e o mesmo produto. Então, a chave primária, é isso. Ela pode ser associada a um único campo ou a vários campos.
Também nós temos o que chamamos de “chave estrangeira”. A chave estrangeira é uma ligação entre uma tabela e outra. Chamamos aqui de “relacionamento”. É claro, o nosso banco de dados SQL Server, é uma banco de dados relacional. Esse nome “relacional” vem porque eles possuem tabelas que se relacionam.
A relação entre as tabelas, é a chave estrangeira.
A chave estrangeira é basicamente o seguinte, se eu digo que o campo de uma tabela é chave estrangeira de outro campo de outra tabela, significa que o conteúdo desses campos deve ser o mesmo.
Exemplo: eu tenho duas tabelas, uma de cadastro de clientes e a outra de vendas. Nas duas tabelas, eu tenho o campo CPF. Na primeira tabela, eu tenho o campo CPF para o cadastro de clientes, inclusive deve ser chave primária dela. Na segunda tabela, que é a de vendas, eu tenho o CPF do cliente que fez a compra.
Quando eu digo que o campo CPF da tabela de vendas tem como chave estrangeira o campo CPF da tabela de clientes, significa que quando eu colocar uma venda, se eu colocar um CPF que não exista na tabela de clientes, o banco de dados vai me dar um erro, isso porque o conteúdo do campo CPF da tabela de vendas deve ser o mesmo que o conteúdo na tabela de clientes, porque eles são chaves estrangeiras. Há uma relação entre esses dois campos.
Bem, então, vamos continuar as definições. Uma tabela também pode ter um índice. O que é o índice? É basicamente é uma estrutura que facilita a minha busca.
Digamos que eu queira, por exemplo, buscar o cliente cujo CPF é “999”. Se por acaso o campo CPF não possui índice, o que o banco de dados vai fazer? Ele vai percorrer cada registro da minha tabela e ir testando, “esse cara é o CPF “999”? Não, opa, próximo”, “ele é o “999”? Não, vou para o próximo”, e assim ele vai seguindo registro a registro, até ele achar o registro em que o cliente é o “999” e vai me retornar o resultado.
Agora, se eu crio um índice, ele automaticamente vai buscar todos os CPFs existentes, colocar numa outra estrutura e já dizer o posicionamento daquele CPF no registro.
Então, por exemplo, se eu quero buscar o cliente “999” e o código CPF desse cliente é índice, o que o banco de dados vai fazer é, ao invés de ir na tabela linha a linha, vai na tabela de índice, que é menor, mais enxuta, vai buscar rapidamente o CPF “999” e lá vai dizer o seguinte “o cliente “999” está na posição 28″.
Então, ele vai direto na tabela, lá na posição 28 e busca o cliente. Consultas em banco de dados cujos critérios de busca forem índices, vão ficar muito, mas muito mais rápidas.
Uma observação: quando um campo é chave primária, automaticamente ele também é índice. Isso é uma coisa transparente para gente. Ao dizer que tal campo na tabela é chave primária, ele será índice automaticamente.
Então, um banco de dados possui diversas tabelas, e o número de tabelas por banco de dados também não tem limites.
Porém, eu posso pegar um grupo de tabelas dentro do mesmo banco de dados e criar como se fosse uma classificação para ele. Isso nós chamamos de “esquemas”.
Se eu não falar nada, o SQL Server irá criar a minha tabela num esquema padrão, chamado “dbo”. Então, todo banco de dados, ao ser criado, já tem um esquema chamado “dbo”, mas eu posso criar um esquema novo, dentro do meu banco de dados e todas as tabelas que eu criar, eu digo “essa tabela que vou criar vai fazer parte do esquema x,y,z”.
Também existe uma outra entidade dentro de um banco de dados, chamada “visão” (ou do inglês, view). A visão é uma estrutura lógica dentro do banco de dados, na verdade, não existe fisicamente.
Mas o que é essa estrutura lógica? Digamos que eu faça uma consulta numa tabela, ou uma consulta entre várias tabelas se relacionando entre si. Nós vamos ver lá na frente, que eu posso fazer consultas relacionando uma ou mais tabelas.
E digamos que eu tenha como resultado uma lista de valores. Eu posso pegar esse resultado desta consulta e dizer que ela é uma “view” (visão). A partir daquele momento, eu olha essa visão como se fosse uma nova tabela, mas ela não existe fisicamente, é na verdade, uma consulta a outras tabelas onde essas sim, são físicas.
Eu posso ter uma coisa em cascata: posso ter uma visão que vem de outra visão, que vem de outra visão, que finalmente chega à tabelas. Uma outra entidade importante dentro do banco de dados são as “procedures”. As “procedures” são processos que vão processar alguma coisa no meu banco de dados.
Essas “procedures” podem fazer manipulação de dados, ou seja, pegar dados de uma tabela e colocar em outros, fazer cálculos e esse cálculos salvarem outra tabelas…
Como podem ser o que nós chamamos de “funções“, que na verdade, vão trazer um resultado. Eu posso criar uma função no SQL Server que me retorne, por exemplo, o último dia do mês, ou a próxima segunda-feira a contar do dia de hoje.
Eu posso usar essa função dentro, como o parâmetro para o uso de uma “procedure”, ou até mesmo para gravação de dados em uma tabela.
A outra estrutura importante é a “trigger”. A “trigger”, nada mais é do que um conjunto de comandos que podem ser procedures, funções ou simplesmente um comando único de manipulação de dados, que será executado quando algo acontecer numa tabela.
O que é que pode acontecer numa tabela?
Ela pode ter dados novos inseridos nela, dados alterados, ou então, dados excluídos delas. Então, quando uma informação é atualizada numa tabela, ela pode disparar uma trigger, e essa trigger faz alguma coisa.
Nem toda tabela tem trigger. Isso, é você que está projetando o banco de dados, que vai programar.
As trigger são muito usadas, por exemplo: quando eu atualizo uma tabela, eu automaticamente tenho que disparar um processo de cálculo ou um outro processo para que aquela informação, também seja salva numa segunda tabela.
Nós definimos nessa aula quatro importantes entidades de um banco de dados: tabelas, que possuem suas características, como os campos, os registros, chaves primárias e estrangeiras. Definimos as visões, as procedures (funções) e as triggers.
Claro, a entidade banco de dados SQL Server tem mais coisas, ou melhor: um banco de dados SQL Server possui mais entidades, mas essas são as mais importantes e serão vistas não somente nesses cursos, como nos cursos subsequentes dessa carreira de SQL Server.
Leave a Reply