Partilhar via


Lição 1: Criar e consultar objetos de banco de dados

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSistema de Plataforma de Análise (PDW)Base de dados SQL no Microsoft Fabric

Note

O caminho de aprendizado Introdução à consulta com o Transact-SQL fornece conteúdo mais aprofundado, juntamente com exemplos práticos.

Esta lição mostra como criar um banco de dados, criar uma tabela no banco de dados e, em seguida, acessar e alterar os dados na tabela. Como esta lição é uma introdução ao uso do Transact-SQL, ela não usa nem descreve as muitas opções disponíveis para essas instruções.

As instruções Transact-SQL podem ser escritas e enviadas ao Mecanismo de Banco de Dados das seguintes maneiras:

  • Usando o SQL Server Management Studio. Este tutorial pressupõe que você esteja usando o Management Studio, mas também pode usar o Management Studio Express, que está disponível para download gratuito no Centro de Download da Microsoft.

  • Usando o utilitário sqlcmd .

  • Conectando-se a partir de um aplicativo que você cria.

O código é executado no Mecanismo de Banco de Dados da mesma maneira e com as mesmas permissões, independentemente de como você envia as instruções de código.

Para executar instruções Transact-SQL no Management Studio, abra o Management Studio e conecte-se a uma instância do Mecanismo de Banco de Dados do SQL Server.

Prerequisites

Para concluir este tutorial, você precisa do SQL Server Management Studio e acesso a uma instância do SQL Server.

Se você não tiver uma instância do SQL Server, crie uma. Para criar um, selecione sua plataforma nos links a seguir. Se você escolher Autenticação SQL, use suas credenciais de logon do SQL Server.

Criar uma base de dados

Como muitas instruções Transact-SQL, a instrução CREATE DATABASE tem um parâmetro obrigatório: o nome do banco de dados. CREATE DATABASE também tem muitos parâmetros opcionais, como o local do disco onde você deseja colocar os arquivos de banco de dados. Quando você executa CREATE DATABASE sem os parâmetros opcionais, o SQL Server usa valores padrão para muitos desses parâmetros.

  1. Em uma janela do Editor de Consultas, digite, mas não execute o seguinte código:

    CREATE DATABASE TestData
    GO
    
  2. Use o ponteiro para selecionar as palavras CREATE DATABASEe pressione F1. O CREATE DATABASE artigo deve abrir. Você pode usar essa técnica para encontrar a sintaxe completa para CREATE DATABASE e para as outras instruções usadas neste tutorial.

  3. No Editor de Consultas, pressione F5 para executar a instrução e criar um banco de dados chamado TestData.

Quando você cria um banco de dados, o SQL Server faz uma cópia do model banco de dados e renomeia a cópia para o nome do banco de dados. Essa operação deve levar apenas alguns segundos, a menos que você especifique um tamanho inicial grande do banco de dados como um parâmetro opcional.

Note

A palavra-chave GO separa instruções quando mais de uma instrução é enviada em um único lote. GO é opcional quando o lote contém apenas uma instrução.

Criar uma tabela

Aplica-se a:Servidor SQLBanco de Dados SQL do AzureAzure Synapse AnalyticsSistema de plataforma de análise (PDW)

Para criar uma tabela, você deve fornecer um nome para a tabela e os nomes e tipos de dados de cada coluna na tabela. Também é uma boa prática indicar se valores nulos são permitidos em cada coluna. Para criar uma tabela, você deve ter a CREATE TABLE permissão e a ALTER SCHEMA permissão no esquema que conterá a tabela. A função de banco de dados fixa db_ddladmin tem essas permissões.

A maioria das tabelas tem uma chave primária, composta por uma ou mais colunas da tabela. Uma chave primária é sempre única. O Mecanismo de Banco de Dados impõe a restrição de que qualquer valor de chave primária não pode ser repetido na tabela.

Para obter uma lista de tipos de dados e links para uma descrição de cada um, consulte Tipos de dados.

Note

O Motor de Base de Dados pode ser instalado com distinção entre maiúsculas e minúsculas ou sem distinção. Se o Mecanismo de Banco de Dados for instalado como sensível a maiúsculas e minúsculas, os nomes dos objetos deverão ter sempre as mesmas maiúsculas e minúsculas. Por exemplo, uma tabela chamada OrderData é uma tabela diferente de uma tabela chamada ORDERDATA. Se o Mecanismo de Banco de Dados for instalado sem diferenciação entre maiúsculas e minúsculas, os dois nomes de tabela serão considerados a mesma tabela, e esse nome só poderá ser usado uma vez.

Alternar a conexão do Editor de Consultas para o banco de dados TestData

Em uma janela do Editor de Consultas, digite e execute o código a seguir para alterar sua conexão com o TestData banco de dados.

USE TestData
GO

Criar a tabela

Em uma janela do Editor de Consultas, digite e execute o código a seguir para criar uma tabela chamada Products. As colunas na tabela são denominadas ProductID, ProductName, Pricee ProductDescription. A ProductID coluna é a chave primária da tabela. int, varchar(25), money, e varchar(max) são todos os tipos de dados. Somente as Price colunas e ProductionDescription não podem ter dados quando uma linha é inserida ou alterada. Esta instrução contém um elemento opcional (dbo.) chamado esquema. O esquema é o objeto de banco de dados que possui a tabela. Se você for um administrador, dbo é o esquema padrão. dbo significa proprietário do banco de dados.

CREATE TABLE dbo.Products
    (ProductID int PRIMARY KEY NOT NULL,
    ProductName varchar(25) NOT NULL,
    Price money NULL,
    ProductDescription varchar(max) NULL)
GO

Inserir e atualizar dados numa tabela

Agora que você criou a Products tabela, está pronto para inserir dados na tabela usando a INSERT instrução. Depois que os dados forem inseridos, você alterará o conteúdo de uma linha usando uma UPDATE instrução. Use a WHEREUPDATE cláusula da instrução para restringir a atualização a uma única linha. As quatro instruções introduzem os dados seguintes.

ProductID ProductName Price ProductDescription
1 Clamp 12.48 Braçadeira de bancada
50 Aparafusadora 3.17 Cabeça plana
75 Barra de pneus Ferramenta para troca de pneus.
3000 Suporte de 3 mm 0.52

A sintaxe básica é: INSERT, nome da tabela, lista de colunas e, em seguida, VALUESuma lista dos valores a serem inseridos. Os dois hífenes na frente de uma linha indicam que a linha é um comentário e o texto é ignorado pelo compilador. Neste caso, o comentário descreve uma variação admissível da sintaxe.

Inserir dados numa tabela

  1. Execute a instrução a seguir para inserir uma linha na Products tabela que foi criada na tarefa anterior.

    -- Standard syntax
    INSERT dbo.Products (ProductID, ProductName, Price, ProductDescription)
        VALUES (1, 'Clamp', 12.48, 'Workbench clamp')
    GO
    

    Se a inserção for bem-sucedida, prossiga para a próxima etapa.

    Se a inserção falhar, pode ser porque a Product tabela já tem uma linha com esse ID de produto. Para continuar, exclua todas as linhas da tabela e repita a etapa anterior. TRUNCATE TABLE exclui todas as linhas da tabela.

    Execute o seguinte comando para excluir todas as linhas da tabela:

    TRUNCATE TABLE TestData.dbo.Products;
    GO
    

    Depois de truncar a tabela, repita o INSERT comando nesta etapa.

  2. A seguinte instrução mostra como pode alterar a ordem na qual os parâmetros são fornecidos, trocando a posição de ProductID e ProductName na lista de campos (entre parênteses) e na lista de valores.

    -- Changing the order of the columns
    INSERT dbo.Products (ProductName, ProductID, Price, ProductDescription)
        VALUES ('Screwdriver', 50, 3.17, 'Flat head')
    GO
    
  3. A instrução a seguir demonstra que os nomes das colunas são opcionais, desde que os valores estejam listados na ordem correta. Essa sintaxe é comum, mas não é recomendada porque pode ser mais difícil para outras pessoas entenderem seu código. NULL é especificado para a Price coluna porque o preço deste produto ainda não é conhecido.

    -- Skipping the column list, but keeping the values in order
    INSERT dbo.Products
        VALUES (75, 'Tire Bar', NULL, 'Tool for changing tires.')
    GO
    
  4. O nome do esquema é opcional, desde que você esteja acessando e alterando uma tabela em seu esquema padrão. Como a ProductDescription coluna permite valores nulos e nenhum valor está sendo fornecido, o nome e o valor da ProductDescription coluna podem ser completamente descartados da instrução.

    -- Dropping the optional dbo and dropping the ProductDescription column
    INSERT Products (ProductID, ProductName, Price)
        VALUES (3000, '3 mm Bracket', 0.52)
    GO
    

Atualizar a tabela de produtos

Digite e execute a seguinte UPDATE instrução para alterar o ProductName do segundo produto de Screwdriver, para Flat Head Screwdriver.

UPDATE dbo.Products
    SET ProductName = 'Flat Head Screwdriver'
    WHERE ProductID = 50
GO

Ler dados de uma tabela

Use a SELECT instrução para ler os dados em uma tabela. A SELECT instrução é uma das mais importantes Transact-SQL declarações, e há muitas variações na sintaxe. Para este tutorial, você trabalhará com cinco versões básicas.

Ler os dados numa tabela

  1. Digite e execute as instruções a seguir para ler os Products dados na tabela.

    -- The basic syntax for reading data from a single table
    SELECT ProductID, ProductName, Price, ProductDescription
        FROM dbo.Products
    GO
    
  2. Você pode usar um asterisco (*) para selecionar todas as colunas da tabela. O asterisco é para consultas ad hoc. Em código permanente, forneça a lista de colunas para que a instrução retorne as colunas previstas, mesmo que uma nova coluna seja adicionada à tabela posteriormente.

    -- Returns all columns in the table
    -- Does not use the optional schema, dbo
    SELECT * FROM Products
    GO
    
  3. Você pode omitir colunas que não deseja retornar. As colunas são retornadas na ordem em que são listadas.

    -- Returns only two of the columns from the table
    SELECT ProductName, Price
        FROM dbo.Products
    GO
    
  4. Use uma WHERE cláusula para limitar as linhas que são retornadas ao usuário.

    -- Returns only two of the records in the table
    SELECT ProductID, ProductName, Price, ProductDescription
        FROM dbo.Products
        WHERE ProductID < 60
    GO
    
  5. Você pode trabalhar com os valores nas colunas à medida que eles são retornados. O seguinte exemplo Price executa uma operação matemática na coluna. As colunas que foram alteradas dessa maneira não têm um nome, a menos que você forneça um usando a AS palavra-chave.

    -- Returns ProductName and the Price including a 7% tax
    -- Provides the name CustomerPays for the calculated column
    SELECT ProductName, Price * 1.07 AS CustomerPays
        FROM dbo.Products
    GO
    

Funções úteis em uma instrução SELECT

Para obter informações sobre algumas funções que você pode usar para trabalhar com dados em SELECT instruções, consulte os seguintes artigos:

Criar visualizações e procedimentos armazenados

Uma exibição é uma instrução armazenada SELECT e um procedimento armazenado é uma ou mais instruções Transact-SQL que são executadas como um lote.

As vistas são consultadas como tabelas e não aceitam parâmetros. Os procedimentos armazenados são mais complexos do que as exibições. Os procedimentos armazenados podem ter parâmetros de entrada e saída e podem conter instruções para controlar o fluxo do código, como IF instruções e WHILE . É uma boa prática de programação usar procedimentos armazenados para todas as ações repetitivas no banco de dados.

Neste exemplo, você usa CREATE VIEW para criar um modo de exibição que seleciona apenas duas das colunas da Products tabela. Em seguida, você usa CREATE PROCEDURE para criar um procedimento armazenado que aceita um parâmetro de preço e retorna apenas os produtos que custam menos do que o valor do parâmetro especificado.

Criar uma visualização

Execute a instrução a seguir para criar uma vista que executa uma instrução SELECT e retorna ao utilizador os nomes e preços dos nossos produtos.

CREATE VIEW vw_Names
   AS
   SELECT ProductName, Price FROM Products;
GO

Testar a visualização

As visualizações são tratadas como tabelas. Use uma SELECT instrução para aceder uma vista.

SELECT * FROM vw_Names;
GO

Criar um procedimento armazenado

A instrução a seguir cria um nome pr_Namesde procedimento armazenado , aceita um parâmetro de entrada chamado @VarPrice do tipo de dados money. O procedimento armazenado imprime a instrução Products less than concatenada com o parâmetro de entrada que é alterado do tipo de dados money para o tipo de dados varchar(10) de caractere. Em seguida, o procedimento executa uma SELECT instrução na exibição, passando o parâmetro de entrada como parte da WHERE cláusula. Isso retorna todos os produtos que custam menos do que o valor do parâmetro de entrada.

CREATE PROCEDURE pr_Names @VarPrice money
   AS
   BEGIN
      -- The print statement returns text to the user
      PRINT 'Products less than ' + CAST(@VarPrice AS varchar(10));
      -- A second statement starts here
      SELECT ProductName, Price FROM vw_Names
            WHERE Price < @VarPrice;
   END
GO

Testar o procedimento armazenado

Para testar o procedimento armazenado, digite e execute a instrução a seguir. O procedimento deve retornar os nomes dos dois produtos inseridos na tabela Products da Lição 1 com um preço inferior a 10.00.

EXECUTE pr_Names 10.00;
GO