A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Bancos de Dados SQL Server 2012 SQL DML - Data Manipulation Language)

Apresentações semelhantes


Apresentação em tema: "Bancos de Dados SQL Server 2012 SQL DML - Data Manipulation Language)"— Transcrição da apresentação:

1 Bancos de Dados SQL Server 2012 SQL DML - Data Manipulation Language)

2 DML – Data Manipulation Language Uso de Transações Inserção de dados Exclusão de dados Modificação de Dados Considerações de desempenho

3 Uso de Transações Inicio da transação – Explicita – Autocommit – Implícita Finalização da Transação – COMMIT (comando) – ROLLBACK (comando) BEGIN TRANSACTION UPDATE savings... UPDATE checking... COMMIT TRANSACTION BEGIN TRANSACTION UPDATE savings... UPDATE checking... COMMIT TRANSACTION

4 Inserção de dados Inserindo uma linha de dados usando a cláusula Values Usando o comando INSERT…SELECT Criando uma Tabela com o SELECT INTO Inserindo dados Parciais Inserindo dados pelo uso de restrições do tipo DEFAULT

5 Inserindo uma linha de dados usando a cláusula Values Deve obedecer às Constraints existentes ou a transação a qual o INSERT faz parte falhará A lista de colunas especifica a colunas de destino Especifique uma lista de valores correspondente (à lista de colunas) USE northwind INSERT customers (customerid, companyname, contactname, contacttitle,address, city, region, postalcode, country, phone,fax) VALUES ('PECOF', 'Pecos Coffee Company', 'Michael Dunn','Owner', '1900 Oak Street', 'Vancouver', 'BC','V3F 2K1', 'Canada', '(604) 555-3392','(604) 555-7293') GO USE northwind INSERT customers (customerid, companyname, contactname, contacttitle,address, city, region, postalcode, country, phone,fax) VALUES ('PECOF', 'Pecos Coffee Company', 'Michael Dunn','Owner', '1900 Oak Street', 'Vancouver', 'BC','V3F 2K1', 'Canada', '(604) 555-3392','(604) 555-7293') GO

6 USE northwind INSERT customers SELECT substring(firstname, 1, 3) + substring (lastname, 1, 2),lastname, firstname, title, address, city,region, postalcode, country, homephone, NULL FROM employees GO USE northwind INSERT customers SELECT substring(firstname, 1, 3) + substring (lastname, 1, 2),lastname, firstname, title, address, city,region, postalcode, country, homephone, NULL FROM employees GO Usando o comando INSERT…SELECT Todas as linhas retornadas pelo SELECT serão inseridas A Tabela objeto da inserção já deve existir Assegure-se que os tipos de dados são compatíveis Determine se Defaults existem ou se NULLs são permitidos

7 Criando uma Tabela com o SELECT INTO Usada para criar uma Tabela e inserir linhas na mesma numa operação única É mais comum se criar uma Tabela temporária local (#) ou global (##) Crie aliases (apelidos) de colunas ou especifique nomes de colunas na Lista do Select para gerar os nomes das colunas para a nova Tabela USE northwind SELECT productname AS products,unitprice AS price,(unitprice * 1.1) AS tax INTO #pricetable FROM products GO USE northwind SELECT productname AS products,unitprice AS price,(unitprice * 1.1) AS tax INTO #pricetable FROM products GO

8 Inserindo dados Parciais USE northwind INSERT shippers (companyname) VALUES ('Fitch & Mather') GO USE northwind INSERT shippers (companyname) VALUES ('Fitch & Mather') GO Inserindo novos dados USE northwind SELECT * FROM shippers WHERE companyname = 'Fitch & Mather GO USE northwind SELECT * FROM shippers WHERE companyname = 'Fitch & Mather GO Verificando dados inseridos shipperidshipperid 37 companynamecompanyname Fitch & Mather phonephone Null Allows Null Values Exemplo 1 Exemplo 2

9 Inserindo dados pelo uso de restrições do tipo DEFAULT Palavra-chave DEFAULT – Insere valores Default para as colunas especificadas – Colunas devem ter um valor default ou aceitar valores Null Palavra-chave DEFAULT VALUES – Insere valores DEFAULT para todas as colunas – Colunas devem ter um valor default ou aceitar valores Null USE northwind INSERT shippers (companyname, phone) VALUES ('Kenya Coffee Co.', DEFAULT) GO USE northwind INSERT shippers (companyname, phone) VALUES ('Kenya Coffee Co.', DEFAULT) GO

10 Exclusão de dados Usando o comando DELETE Usando o comando TRUNCATE TABLE Excluindo linhas baseado em dados de outras Tabelas

11 Usando o comando DELETE O comando DELETE exclui uma ou mais linhas de uma Tabela à menos que se use a cláusula Where Cada linha excluída é logada no log de transações USE northwind DELETE orders WHERE DATEDIFF(MONTH, shippeddate, GETDATE()) >= 6 GO USE northwind DELETE orders WHERE DATEDIFF(MONTH, shippeddate, GETDATE()) >= 6 GO

12 USE northwind TRUNCATE TABLE orders GO USE northwind TRUNCATE TABLE orders GO Usando o comando TRUNCATE TABLE O comando TRUNCATE TABLE exclui todas as linhas de uma O SQL Server mantém a estrutura da Tabela e objetos associados Somente a desalocação de páginas inteiras de dados é logada no log de transações

13 Excluindo linhas baseado em dados de outras Tabelas Utilizando-se uma cláusula FROM adicional – O primeiro FROM indica a tabela a ser modificada – O segundo FROM especifica os critérios que restringem a ação do comando DELETE Especificando-se condições na cláusula Where – Subqueries determinam quais linhas serão excluídas

14 Modificação de Dados Modificando linhas baseado em dados da própria Tabela Modificando linhas baseado em dados de outras Tabelas

15 USE northwind UPDATE products SET unitprice = (unitprice * 1.1) GO USE northwind UPDATE products SET unitprice = (unitprice * 1.1) GO Modificando linhas baseado em dados da própria Tabela Cláusula WHERE especifica quais linhas modificar A palavra-chave SET especifica os Novos dados Valores novos devem ser do mesmo tipo das colunas Modificações não são feitas se houverem violações das restrições de integridade

16 Modificando linhas baseado em dados de outras Tabelas Como o comando UPDATE funciona – Nunca atualiza a mesma linha duas vezes – Requer prefixo para Tabelas com nomes de colunas ambíguos Pode-se especificar as linhas a serem alteradas usando JOINS – Usando a cláusula FROM Especificando-se as linhas a serem alteradas usando Subqueries – Correlacionando a subquery com a Tabela a ser modificada

17 Considerações de Desempenho Todas as modificações de dados ocorrem dentro de uma transação Alocação de novas páginas de dados pode ocorrer Atualização de índices pode gerar sobrecarga adicional Índices podem ajudar na busca das linhas a serem alteradas

18 Práticas Recomendadas Sempre escreva um comando SELECT que seleciona os dados a serem modificados/excluídos antes de escrever o comando UPDATE/DELETE propriamente dito Sempre inclua a cláusula Where nos comandos DELETE e UPDATE


Carregar ppt "Bancos de Dados SQL Server 2012 SQL DML - Data Manipulation Language)"

Apresentações semelhantes


Anúncios Google