Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do
AzureInstância
Gerenciada de SQL do AzurePDW (Analytics Platform System)
Banco de dados SQL no Microsoft Fabric
Note
O roteiro de aprendizagem Introdução à consulta com Transact-SQL fornece conteúdo mais detalhado, juntamente com exemplos práticos.
Esta lição mostra como criar um banco de dados, criar uma tabela no banco de dados e, então, 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 várias 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 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 como um download gratuito do Centro de Download da Microsoft.
Usando o utilitário sqlcmd .
Conectando de um aplicativo criado por você.
O código é executado da mesma maneira no Mecanismo de Banco de Dados 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 de Mecanismo de Banco de Dados do SQL Server.
Prerequisites
Para concluir este tutorial, você precisa de acesso ao SQL Server Management Studio e a uma instância do SQL Server.
- Instale o SQL Server Management Studio.
Se você não tiver uma instância de SQL Server, crie uma. Para criar uma, selecione a plataforma nos links a seguir. Se você escolher Autenticação do SQL, use suas credenciais de logon do SQL Server.
- Windows: baixe o SQL Server 2022 Developer Edition.
- Linux: Início Rápido: Executar imagens de contêiner do SQL Server Linux com o Docker.
Criar um banco de dados
Como muitas instruções Transact-SQL, a instrução CREATE DATABASE possui um parâmetro obrigatório: o nome do banco de dados. O CREATE DATABASE também tem muitos parâmetros opcionais, como o local de disco onde você deseja armazenar 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 destes 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, em seguida, pressione F1. O artigoCREATE DATABASEdeve abrir. Você pode usar esta técnica para localizar a sintaxe completa deCREATE DATABASEe para as outras instruções que são usadas neste tutorial.No Editor de Consultas, pressione F5 para executar a instrução e criar um banco de dados denominado
TestData.
Ao criar um banco de dados, o SQL Server faz uma cópia do banco de dados model e renomeia a cópia para o nome do banco de dados. Esta operação deve levar somente 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:SQL Server
Banco de Dados SQL do Azure
Azure Synapse Analytics
PDW (Analytics Platform System)
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 permissão CREATE TABLE , além da permissão ALTER SCHEMA 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 de uma ou mais colunas da tabela. Uma chave primária sempre é exclusiva. O Mecanismo de Banco de Dados aplica a restrição que nenhum valor de chave primária 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 Mecanismo de Banco de Dados pode ser instalado diferenciando ou não maiúsculas e minúsculas. Se o Mecanismo de Banco de Dados for instalado diferenciando maiúsculas e minúsculas, os nomes de objeto sempre terão o mesmo tipo (em maiúsculas ou em minúsculas). Por exemplo, uma tabela denominada OrderData é diferente de uma tabela denominada ORDERDATA. Se o Mecanismo de Banco de Dados estiver instalado como sem distinção entre maiúsculas e minúsculas, esses dois nomes de tabela serão considerados como sendo a mesma tabela, e esse nome poderá ser usado somente uma vez.
Alternar a conexão do Editor de Consulta com 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 banco de dados TestData .
USE TestData
GO
Criar a tabela
Em uma janela do Editor de Consultas, digite e execute o seguinte código para criar uma tabela chamada Products. As colunas na tabela são nomeadas ProductID, ProductName, Pricee ProductDescription. A coluna ProductID é a chave primária da tabela.
int, varchar(25), moneye varchar(max) são todos tipos de dados. Somente as colunas Price e ProductionDescription podem não ter dados quando uma linha for inserida ou alterada. Essa instrução contém um elemento opcional (dbo.) chamado de um esquema. O esquema é o objeto do banco de dados que possui a tabela. Se você for um administrador, dbo será o esquema padrão.
dbo representa o 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 em uma 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 instrução UPDATE . Use a WHERE cláusula da UPDATE instrução para restringir a atualização a uma única linha. As quatro instruções inserem os dados a seguir.
| ProductID | ProductName | Price | ProductDescription |
|---|---|---|---|
| 1 | Clamp | 12.48 | Grampo do Workbench |
| 50 | Screwdriver | 3.17 | Cabeça plana |
| 75 | Barra de Pneus | Ferramenta para trocar pneus. | |
| 3000 | Colchete 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 hifens antes 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 em uma tabela
Execute a instrução a seguir para inserir uma linha na tabela
Productsque 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 tiver sucesso, vá para a próxima etapa.
Se a inserção falhar, pode ser porque a
Producttabela já tem uma linha com essa ID do produto. Para continuar, exclua todas as linhas na tabela e repita a etapa anterior. TRUNCATE TABLE exclui todas as linhas da tabela.Execute o seguinte comando para excluir todas as linhas na tabela:
TRUNCATE TABLE TestData.dbo.Products; GODepois de truncar a tabela, repita o comando
INSERTnesta etapa.A instrução a seguir mostra como você pode alterar a ordem na qual os parâmetros são fornecidos alternando o posicionamento 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. Esta sintaxe é comum, mas não é recomendada, pois possivelmente outras usuários terão dificuldade para compreender o código.
NULLé especificado para a colunaPriceporque o preço desse 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 coluna
ProductDescriptionpermite valores nulos e nenhum valor está sendo fornecido, o nome de colunaProductDescriptione o valor podem ser descartados completamente 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 instrução UPDATE a seguir para alterar o ProductName do segundo produto de Screwdriverpara 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 instruções Transact-SQL mais importantes e há muitas variações na sintaxe. Para este tutorial, você trabalhará com cinco versões básicas.
Ler os dados em uma tabela
Digite e execute as instruções seguintes para ler os dados na tabela
Products.-- 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 na 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 se uma coluna nova for adicionada posteriormente à tabela.-- 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 cláusula
WHEREpara limitar as linhas que serã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 elas forem retornadas. O exemplo seguinte executa uma operação matemática na coluna
Price. Colunas que foram alteradas dessa maneira não têm um nome, a menos que você forneça um, usando a palavra-chaveAS.-- 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 exibiçõ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 visualizações são consultadas como tabelas e não aceitam parâmetros. Procedimentos armazenados são mais complexos que 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 e WHILE instruções. É uma boa prática de programação usar procedimentos armazenados para todas as ações repetitivas no banco de dados.
Para este exemplo, você usa CREATE VIEW para criar uma exibição que seleciona apenas duas das colunas na 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 exibição
Execute a instrução a seguir para criar uma exibição que executa uma instrução SELECT e retorna os nomes e preços de nossos produtos para o usuário.
CREATE VIEW vw_Names
AS
SELECT ProductName, Price FROM Products;
GO
Teste a exibição
Exibições são tratadas como tabelas. Use uma instrução SELECT para acessar uma exibição.
SELECT * FROM vw_Names;
GO
Criar um procedimento armazenado
A instrução a seguir cria um pr_Namesde nome de procedimento armazenado, aceita um parâmetro de entrada denominado @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 de caractere varchar(10) . Depois, o procedimento executa uma instrução SELECT na exibição, passando o parâmetro de entrada como parte da cláusula WHERE . 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 , na Lição 1, com um preço menor que 10.00.
EXECUTE pr_Names 10.00;
GO