Olá pessoal, voltamos com nosso curso básico de SQL Server. Acompanhem:

Tabelas do Sistema – Após instalarmos o SQL Server, são criados alguns bancos de dados que permitem ao software gerenciar os sistemas de usuários, fazendo assim com que a integridade e a segurança dos dados sejam mantidas. Esses bancos de dados são chamados de bancos de dados gerenciais. Dentro deles, são criadas tabelas por meio da instalação do SQL Server, que recebem o nome de system tables. Abaixo descrevo estes bancos de dados:

- Resource – Este banco possui todos os objetos de sistema do SQL Server, os quais são visualizados de forma lógica no esquema sys de todos os bancos de dados. O Resource, que é um banco de dados somente leitura, não possui metadados ou dados dos usuários. Ele permite a rápida atualização de versões e o fácil rollback dos pacotes de serviços. Importante salientar que, em hipótese alguma, devemos mover ou renomear o arquivo do banco de dados Resource pois, se isso acontecer, o SQL Server não será iniciado.

- Master – O banco Master é o responsável por efetuar os registros de todas as informações do nível do sistema. Ele registra as informações para iniciar o SQL Server, contas de login, configurações referentes ao sistema e a existência de outros bancos de dados e seus arquivos. Se este banco estiver indisponível, torna-se inviável iniciar o SQL Server.

- TEMPDB – Este é o banco responsável por manter todo o tipo de armazenamento temporário, inclusive o de tabelas de caráter temporário. Ele é considerado um recurso global, visto que armazena tabelas e stored procedures temporárias que podem ser acessadas por todos os usuários que estiverem conectados. Todas as vezes que o SQL Server é iniciado, este banco é recriado, o que significa que sempre há uma cópia limpa do banco de dados quando o sistema é iniciado. Dessa forma, quando o SQL é encerrado, não existem conexões ativas, sendo que entre uma sessão e outra não há itens a serem salvos em um banco de dados tempdb. Vale ressaltar que não podemos fazer o backup ou restaurar esse banco de dados.

- MODEL – Este banco é usado como modelo para criar todos os outros bancos de dados. Dessa forma, quando solicitamos a criação de um novo banco de dados ao SQL Server, este copia todos os objetos armazenados no MODEL para o novo banco de dados. Caso sejam feitas alterações sobre este banco de dados, todos aqueles criados posteriormente também refletirão tais modificações.

- MSDB – Este banco é usado pelo SQL Server Agent com a finalidade de registrar operadores e programar a execução de jobs e de alerts. O msdb é utilizado para realizar o armazenamento de dados não apenas pelo SQL Server Agent, mais também pelo SQL Server Management Studio. Um histórico completo de backup e restauração online é mantido pelo SQL Server no banco de dados msdb. Esses dados são usados pelo SQL Server a fim de criar um planejamento de restauração do banco de dados e aplicar backups de log de transação. Recomenda-se realizar um backup do msdb com freqüência caso esse banco sofra constantes alterações. Caso esse banco seja danificado, as informações referentes ao backup e à restauração são perdidas, bem como as informações utilizadas pelo SQL Server Agent.

Visualizando os bancos de dados do sistema – Caso você deseje visualizar os bancos de dados do sistema, faça o seguinte: abra o SQL Server, vá a janela Object Explorer (F8), expanda a opção Databases e expanda a opção System Databases, como mostra a imagem a seguir:


Se você quiser ver os databases via instrução SQL, crie uma nova query e digite SELECT * FROM SYSDATABASES. Veja o resultado abaixo:


Criação de Tabelas –  Os dados de um sistema são armazenados em objetos denominados tabelas. Cada uma das colunas de uma tabela refere-se a um atributo associado a uma determinada entidade. Os datatypes, ou seja, os formatos usados para a gravação dos dados no disco (descritos um a um anteriormente), deverão ser especificados para cada coluna da tabela. Ok, após descrever de forma resumida a parte teórica, vamos a prática. Para criarmos uma tabela, devemos usar a instrução CREATE TABLE, desde que criemos esta tabela em um banco de dados existente. No exemplo abaixo, crio e me conecto ao database Clientes e crio uma tabela simples de Cliente:


De forma simplificada é assim que criamos nossas tabelas, lembrando sempre de usar esta estrutura CREATE TABLE NomeDaTabela ( ), dentro dos parênteses vai toda a estrutura da minha tabela, como os nomes das colunas e os tipos de dados referentes as colunas. Para exibir minha tabela criada uso a instrução SELECT, que será abordado com o uso dos comandos DML.

Comandos DML – Os comandos Data Manipulation Language, ou apenas DML são utilizados para realizar inclusões, consultas, exclusões e alterações de dados presentes em registros. Por estes comandos, estas tarefas podem ser executadas em vários registros de diversas tabelas ao mesmo tempo.

Os DML responsáveis pelas funções citadas acima são INSERT, SELECT, UPDATE e DELETE, respectivamente. Como dito anteriormente, neste artigo irei falar sobre os dois primeiros mostrando os conceitos e alguns exemplos práticos no SQL Server.

Insert – Usamos o comando Insert para incluir dados em uma ou mais colunas de uma tabela. Este comando tem a seguinte sintaxe:

INSERT [INTO] NomedaTabela [(nomesdascolunas)] VALUES (Valores)

 Os valores entre colchetes, são opcionais, ou seja, você pode usar somente

INSERT NomedaTabela VALUES (Valores)

 Os valores descritos junto ao comando INSERT são transformados em uma ou mais linhas da tabela. Os nomes das colunas nas quais os dados serão inseridos devem ser separados por vírgulas.

 As colunas que não foram declaradas no comando INSERT podem apresentar um valor padrão, caso essa definição seja configurada pelo usuário, ou o valor NULL.

 Vamos tomar como exemplo a tabela de clientes abaixo:


 Para fazê-la, precisamos fazer o uso da instrução INSERT, como mostra a imagem a seguir:


Se você perceber, na imagem da tabela há 4 registros e na imagem acima, do Insert, tem apenas 3. Já explico o porque disso.

 Existem dois tipos de INSERT, o posicional e o declarativo. O posicional deve ser usado quando precisamos incluir dados de acordo com a ordem física das colunas. O Insert da imagem acima é um exemplo disso. Já o Insert declarativo deve ser usado quando desejamos incluir dados na tabela de modo que possamos escolher a ordem dos valores a serem inclusos. Neste tipo de Insert, que nosso 4º que está faltando, nossa instrução fica como a imagem abaixo:


 Neste exemplo, o resultado será o mesmo, já que usei a mesma ordem do Insert posicional, mais fica a dica se você quiser alterar a ordem e ver o resultado. Para ver os resultados, você terá que usar a instrução SELECT, instrução essa que abordarei na próxima parte de nosso mini-curso.

Na próxima parte, como já dito, continuaremos falando dos comandos DML, abordando o SELECT.

Quaisquer dúvidas, postem.

Abraços.

Até o próximo artigo!