Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Sistema 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.
- Instale o SQL Server Management Studio.
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.
- Windows: Baixe o SQL Server 2022 Developer Edition.
- Linux: Guia de início rápido: execute imagens de contêiner do SQL Server Linux com o Docker.
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.
Em uma janela do Editor de Consultas, digite, mas não execute o seguinte código:
CREATE DATABASE TestData GOUse o ponteiro para selecionar as palavras
CREATE DATABASEe pressione F1. OCREATE DATABASEartigo deve abrir. Você pode usar essa técnica para encontrar a sintaxe completa paraCREATE DATABASEe para as outras instruções usadas neste tutorial.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 Analytics
Sistema 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
Execute a instrução a seguir para inserir uma linha na
Productstabela que foi criada na tarefa anterior.-- Standard syntax INSERT dbo.Products (ProductID, ProductName, Price, ProductDescription) VALUES (1, 'Clamp', 12.48, 'Workbench clamp') GOSe a inserção for bem-sucedida, prossiga para a próxima etapa.
Se a inserção falhar, pode ser porque a
Producttabela 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; GODepois de truncar a tabela, repita o
INSERTcomando nesta etapa.A seguinte instrução mostra como pode alterar a ordem na qual os parâmetros são fornecidos, trocando a posição de
ProductIDeProductNamena 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') GOA 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 aPricecoluna 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.') GOO nome do esquema é opcional, desde que você esteja acessando e alterando uma tabela em seu esquema padrão. Como a
ProductDescriptioncoluna permite valores nulos e nenhum valor está sendo fornecido, o nome e o valor daProductDescriptioncoluna 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
Digite e execute as instruções a seguir para ler os
Productsdados na tabela.-- The basic syntax for reading data from a single table SELECT ProductID, ProductName, Price, ProductDescription FROM dbo.Products GOVocê 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 GOVocê 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 GOUse uma
WHEREclá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 GOVocê pode trabalhar com os valores nas colunas à medida que eles são retornados. O seguinte exemplo
Priceexecuta 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 aASpalavra-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