TRANSACT - SQL. Rua Domingos de Moraes, 770, bloco 2, conjunto 9 Vila Mariana - São Paulo - SP

Tamanho: px
Começar a partir da página:

Download "TRANSACT - SQL. Rua Domingos de Moraes, 770, bloco 2, conjunto 9 Vila Mariana - São Paulo - SP"

Transcrição

1 1 TRANSACT - SQL

2 2 O que é Datatype DML SELECT, INSERT, UPDATE e DELETE Utilização do comando SELECT Exibindo os dados de todas as colunas da tabela Funcionario Utilização do comando INSERT Utilização do comando UPDATE Utilização do comando DELETE A cláusula WHERE Critério Resumo IN / NOT IN BETWEEN /NOT BETWEEN LIKE / NOT LIKE / SCAPE IS NULL / IS NOT NULL A cláusula ORDER BY Ordenando pela posição da coluna Argumentos A cláusula TOP TOP n TOP n PERCENT TOP n, TOP n PERCENT WITH TIES com ORDER BY... 67

3 3 TOP n com UPDATE e DELETE A cláusula OUTPUT UPDATE com OUTPUT DELETE com OUTPUT Group By Funções de Totalização Utilizando Group By HAVING ROLLUP() CUBE() GROUPING SET() CASE Case com SELECT Case com ORDER BY Case com UPDATE Case com HAVING A cláusula UNION UNION UNION ALL GROUPING SETS() INTERSECT e EXCEPT Joins Transformando dados em informação... 97

4 4 INNER JOIN LEFT JOIN RIGHT JOIN FULL JOIN CROSS JOIN Join com mais de duas tabelas Evitando Ambiguidade UPDATE COM JOIN DELETE COM JOIN Joins entre tabelas que possuem Chaves Compostas SUBQUERY Subquery Introduzida com Operador de Comparação Subquery Introduzida com IN ou NOT IN Subquery Introduzida com EXISTS e NOT EXISTS Substituindo Subqueries Subqueries Aninhadas UPDATE COM SUBQUERY DELETE COM SUBQUERY

5 5 INTRODUÇÃO A utilização de databases para o armazenamentos de dados, surge nos anos 60, e o primeiro modelo a ser utilizado foi o Hierárquico, seguidos pelos modelos Rede, Relacionais, Dedutivo e o Objeto. A liguaguagem SQL surge com a criação do Modelo Relacional proposta pelo Dr. Edgard Frank Codd já nos anos 70. O QUE SIGNIFICA A SIGLA SQL SQL é o nome que foi atribuído á linguagem declarativa utilizada no tratamento de dados armazenados no formato relacional. A sigla SQL quer dizer Structured Query Language, ou seja, Linguagem Estruturada de Pesquisa e, foi idealizada e desenvolvida nos laboratórios da IBM USA. Quando criada recebeu outro nome, SEQUEL, que significava Structured English Query Language Linguagem Estruturada em Inglês para Pesquisa. A linguagem SEQUEL foi utilizada para demonstrar a viabilidade do modelo de armazenamento relacional idealizado pelo Dr. Cood.

6 6 Com o passar do tempo a liguagem teve seu nome alterado para SQL, mas lá nos Estados Unidos seu nome ainda é pronunciado como Sequel. Também com o passar do tempo, com sua aceitação e utilização pelos profissionais de banco banco de dados, a liguagem SQL acabou se tornando um padrão. Na realidade, surgiram vários dialétos desta liguagem e houve a necessidade de padronizar a sua utilização. Sendo assim, em 1986 ela foi padronizada pelo instituto ANSI e em 1987 pelo ISO. A padronização da SQL foi revista em 1992 e, justamente por isso passa a ser chamada de SQL-92 ou SQL2 Em 1999 houve outra revisão onde a linguagem passa a se chamar SQL:1999 ou SQL3. SQL é o nome que foi atribuído á linguagem declarativa utilizada no tratamento de dados armazenados no formato relacional.

7 7 Na padronização, os comandos da liguagem SQL foram agrupados de acordo com suas funções como segue: 1 DCL Data Control Language GRANT REVOKE 2 DDL Data Definition Language CREATE ALTER DROP 3 DML Data Manipulation Language SELECT INSERT UPDATE DELETE Apesar da padronização, ainda há uma certa diferença na sintaxe da SQL utilizada pelas empresas que desenvolvem os gerenciadores de banco de dados, e aqui neste tutorial, utilizamos a sintaxe da Microsoft e vamos começar pelas demonstrações dos comandos da DML.

8 8 DML DATA MANIPULATION LUANGUAGE Na tradução, DML significa Linguagem de Manipulação da Dados, como foi dito anteriormente, e ela abrange os comandos SELECT, INSERT, UPDATE E DELETE, ou seja, comandos para leitura, inclusão, alteração e exclusão de dados. Neste material, empregando a sintaxe Microsoft, exibimos a utilização detalhada da DML.

9 9 DATABASE, TABELAS E DATATYPES O QUE É UM DATABASE No SQL Server, um database é o nome que se dá para um conjunto de arquivos de dados e de transações. Todo database do SQL Server tem pelo menos dois arquivos, uma para armazenar dados de tabelas e de indices e o outro para armazenar as transações (comandos que inserem, alteram e excluem os dados de uma tabela). Esses databases poderão, se necessário, ter mais de um arquivo de dados e/ou mais de um arquivo de transações. Como o objetivo deste tutorial é exibir a forma de utilização dos comandos DML, vamos aqui criar um database com todas as opções definidas como default e com os arquivos de dados e de transações que o próprio SQL Server define durante a execução do comando CREATE DATABASE. Para tanto siga as instruções abaixo: Clique no menu Start / Programs / Microsoft SQL Server 2008/ SQL Server Management Studio.

10 10 Conecte-se no SQL Server, apenas clicando no botão Connect. Em seguida, na barra de menu, escolha a opção New Query. Surge para você uma área onde os comandos são digitados e executados. Escreva o comando abaixo para criar um database chamado 50minutos, com todas as opções de armazenamento e dimensionamento definidas como default: CREATE DATABASE [50minutos] Pressione a tecla F5 para executar o comando. Pronto, você já tem um database criado! Em seguida, escreva o comando abaixo para acessar o database 50minutos, selecione apenas esta linha e tecle F5 para executá-lo. USE [50minutos] Observe no alto e do lado esquerdo da sua tela, que aparece o nome 50minutos como o database corrente.

11 11 O QUE É UMA TABELA Uma Tabela é um objeto bidimensional, composta por Colunas e Linhas, onde os dados são armazenados dentro de um database. O exemplo abaixo exibe uma Tabela chamada Cliente, formada pelas Colunas Cod_Cli que representa um código definido para o cliente, Nome_Cli que representa o nome do cliente e Renda_Cli, que representa um valor para a renda dos clientes. Nesta Tabela ainda há 2 Linhas de dados inseridas. Temos o cliente cujo código é o número 1 e o nome é Agnaldo e o cliente de número 2 cujo nome é Renata: Cod_Cli Nome_Cli Renda_Cli 1 Agnaldo Renata O QUE É DATATYPE Data type, ou tipo de dado, é o formado no qual os dados de cada coluna de uma tabela são armazenados em disco.

12 12 O Microsoft SQL Server oferece vários datatypes que chamamos de built-in, ou seja, construídos internamente. Eles são divididos em categorias como, por exemplo, categoria dos datatypes numéricos, caracteres, data, hora, etc. Vamos utilizar alguns destes tipos de dados e, para atabela Cliente exibida acima, vamos atribuir para a coluna Cod_Cli o datatype int, que só aceitará que se insira nela, números inteiros. Para a coluna Nome_Cli vamos devinir o tipo de dado varchar(100), que só aceitará dados no formato caractere e que tenham até 100 dígitos. E para a coluna Renda_Cli vamos utilizar o datatype decimal(10,2), que aceitará dados numéricos com duas casas decimais. Para que você possa criar esta tabela, inserir suas duas linhas de dados e exibir seu conteúdo, siga as instruções abaixo. Na mesma tela e logo após você ter executado o comando USE [50minutos] para acessar este database, escreva os seguintes comandos: -- Criando a tabela Cliente CREATE TABLE Cliente ( Cod_Cli int, Nome_Cli varchar(100),

13 13 Renda_Cli decimal(10,2), ) Na sequência, selecione apenas co comando acima e tecle F5 para executá-lo. Para inserir os dados dos dois clientes em questão vamos utilizar o comando INSERT (que será visto em mais detalhes em outros tópicos deste tutorial). Então, escreva os comandos: -- Inserindo dois Registros, ou seja, duas Linhas de dados na tabela Cliente INSERT Cliente VALUES(1, Agnaldo, ) INSERT Cliente VALUES(2, Renata,500.00) Neste primeiro momento, selecione cada um dos comandos acima e tecle F5 para executálo. Obs: a - Quando você for inserir dados no formado caractere, você deve escrevê-los entre apostofo, como Agnaldo e Renata.

14 14 b - Você poderia ter selecionado os dois INSERTs de uma só vez para inserir os dois clientes ao mesmo tempo, mas como você está começando a trabalhar com a sintaxe da SQL é interessante que você execute os comandos um a um, assim se, por acaso, você cometer algum erro der sintaxe fica mais fácil detectá-lo e corrigí-lo. c - Você pode escrever qualquer comando da sintaxe SQL em letras maiúsculas ou minúsculas. d - Por causa do Collation padrão da instalação do software, o SQL Server não fará diferença no momento da pesquisa dos dados se, por acaso, você digitar Agnaldo, AGNALDO, agnaldo, etc. Enfim, o SQL Server vai gravar na Tabela os dados do jeito que você os digitar, mas por causa do Collation padão da instalação da iinstância, da criação do database e da definição da coluna que utilizamos em Nome_Cli, para encontrar os dados ele não fará diferenciação entre letras maiúsculas e minúsculas. e Collation é o nome que se dá ao conjunto de definiçao de idioma, ordenação, acentuação, etc, para o armazenamento e perquisa de dados em colunas caracteres. f Os comentários colocados nas demonstrações sempre aparecerão na cor verde e, podem ser escritos em apenas uma linha, utilizando para isso dois simbolos de subtração (--), Ou poderão ser comantários de várias linhas e, para tanto deverão ser escritos assim: /* Comentarios feitos em múltiplas Linhas

15 15 são chamados de Comentários em Bloco */ Nosso próximo passo será a exibição dos dados que acabaram de ser inseridos. Para tanto, na mesma tela, escreva o comando abaixo: SELECT * FROM Cliente Selecione apenas a linha acima e pressione F5 para executá-la. Note que os dados são exibidos na parte inferior da sua tela. Pronto! Agora você já tem um database, uma tabela com três colunas, e duas linhas de dados inseridas! Se você chegou até aqui, parabéns pelos primeiros passos na sintaxe SQL da Microsoft.

16 16 DML SELECT, INSERT, UPDATE E DELETE Como foi visto anteriormente, DML é um grupo de comandos da linguagem SQL que significa Data Manipulation Language Linguagem de Manipulação de Dados. Dela fazem parte os comandos SELECT, INSERT, UPDATE e DELETE. UTILIZAÇÃO DO COMANDO SELECT Como você já deve ter percebido, SELECT é o comando da liguagem SQL que utilizamos para selecionar/exibir os dados de uma tabela. A sintaxe da SQL nos permite exibir dados de várias maneiras atavés das váriações do comando SELECT. Para que você possa conhecer estas possibilidades de sintaxe vamos criar, no database 50minutos, uma outra tabela chamada Funcionario, vamos inserir nela cinco linhas de dados e assim trabalhar com este objeto.

17 Acessando o database 50minutos Use 50minutos Criando a tabela Funcionário CREATE TABLE Funcionario ( Cod_Func int, Nome_Func varchar(100), Sexo_Func char(1), Sal_Func Decimal(10,2), Data_Func Datetime, ) --- Inserindo dados na tabela Funcionario INSERT Funcionario VALUES(1,'Marcos','M', ,Getdate()) INSERT Funcionario VALUES(2,'Paulo','M', ,Getdate()) INSERT Funcionario VALUES(3,'Roberta','F', ,Getdate()) INSERT Funcionario VALUES(4,'Cristina','F',578.25,Getdate()) INSERT Funcionario VALUES(5,'José','M',600.00,Getdate())

18 18 EXIBINDO OS DADOS DE TODAS AS COLUNAS DA TABELA FUNCIONARIO Para exibir os dados de todas as colunas de uma determinada tabela você pode utilizar uma das duas sintaxes exibidas abaixo. 1 Exibindo os dados de todas as colunas de uma tabela utilizando asterisco para representá-las: --Exibindo os dados de todas as colunas de uma tabela SELECT * FROM Funcionario 2 Exibindo os dados de todas as colunas de uma tabela especificando o nome de uma por uma: --Exibindo os dados de todas as colunas de uma tabela SELECT Cod_Func, Nome_Func, Sexo_Func, Sal_Func, Data_Func FROM Funcionario

19 Exibindo os dados de todas as colunas de uma tabela na ordem desejada Você já deve ter percebido que para exibir os dados de todas as colunas da tabela em outra ordem que não seja a da definição de sua estrutura, basta escrever o nome das colounas na sequência em que desejar exibí-las. -- Exibindo os dados de todas as colunas de uma tabela na sequência desejada SELECT Sexo_Func, Data_Func, Cod_Func, Nome_Func, Sal_Func FROM Funcionario 4 Exibindo os dados de algunas colunas de uma tabela Agora ficou fácil, para exibir os dados de alguns colunas de uma tabela, basta escrever apenas seus nomes no comando SELECT e executá-lo.

20 20 Exemplo_01 -- Exibindo os dados de algumas colunas de uma tabela -- na sequência desejada SELECT Cod_Func, Nome_Func, Data_Func FROM Funcionario Exemplo_02 -- Exibindo os dados de algumas colunas de uma tabela -- na sequência desejada SELECT Data_Func, Cod_Func, Nome_Func FROM Funcionario 5 Exibindo dados de uma tabela utilizando Alias no nome das colunas Demonstração das sintaxes disponíveis no Microsoft SQL Server Se você observou os dados retornados pelo SQL Server quando executou qualquer um dos comandos acima, deve ter observado que ele apresenta a primeira linha resposta com o próprio nome atribuído á cada uma das colunas, que no nosso caso é: Cod_Func, Nome_Func, Sexo_Func, Sal_Func e Data_Func.

21 21 É normal que os desenvolvedores de banco de dados atribuam nomes abreviados para as colunas de suas tabelas pois é mais fácil trabalhar com nomes curtos ao escrever as queries. Só que isso pode não ficar claro para o usuário que vai utilizar, por exemplo, um relatório se você deixar que estes nomes se apresentem para ele como estão na definição da estrutura da tabela. Nós sabemos, por exemplo, o que armazena a coluna Sal_Func, mas para um usuário pode ser que não esteja claro que ela representa o salário de cada funcionário inserido neste objeto. Assim sendo, para que possamos gerar relatórios mais claros para nossos usuários podemos atribuir apelidos para os nomes de cada uma das colunas. Estes apelidos são chamados de Alias e a Microsoft nos permite escrever os alias de várias maneiras. Estas maneiras são exibidas abaixo. -- Atribuindo apelidos às colunas de uma tabela -- Primeira sintaxe: SELECT Cod_Func Nome_Func Sexo_Func Sal_Func AS Código, AS Nome, AS Sexo, AS Salário,

22 22 Data_Func AS Data FROM Funcionario --Segunda Sintaxe: SELECT Cod_Func Nome_Func Sexo_Func Sal_Func Data_Func Código, Nome, Sexo, Salário, Data FROM Funcionario -- Terceira Sintaxe: SELECT Código = Cod_Func, Nome = Nome_Func, Sexo = Sexo_Func, Salário = Sal_Func, Data = Data_Func FROM Funcionario -- Quarta sintaxe: SELECT Cod_Func AS [Código do Funcionario],

23 23 Nome_Func Sexo_Func Sal_Func Data_Func AS [Nome do Funcionario], AS [Sexo do Funcionario], AS [Salário do Funcionario], AS [Data do Funcionario] FROM Funcionario -- Quinta Sintaxe: SELECT Cod_Func Nome_Func Sexo_Func Sal_Func Data_Func AS "Código do Funcionario", AS "Nome do Funcionario", AS "Sexo do Funcionario", AS "Salário do Funcionario", AS "Data do Funcionario" FROM Funcionario -- Sexta Sintaxe: SELECT Cod_Func Nome_Func Sexo_Func Sal_Func Data_Func AS 'Código do Funcionario', AS 'Nome do Funcionario', AS 'Sexo do Funcionario', AS 'Salário do Funcionario', AS 'Data do Funcionario' FROM Funcionario

24 24 --Sétima Sintaxe: SELECT Cod_Func Nome_Func Sexo_Func Sal_Func Data_Func [Código do Funcionario], [Nome do Funcionario], [Sexo do Funcionario], [Salário do Funcionario], [Data do Funcionario] FROM Funcionario --Oitava Sintaxe: SELECT Cod_Func Nome_Func Sexo_Func Sal_Func Data_Func "Código do Funcionario", "Nome do Funcionario", "Sexo do Funcionario", "Salário do Funcionario", "Data do Funcionario" FROM Funcionario --Nona Sintaxe: SELECT Cod_Func Nome_Func Sexo_Func 'Código do Funcionario', 'Nome do Funcionario', 'Sexo do Funcionario',

25 25 Sal_Func Data_Func 'Salário do Funcionario', 'Data do Funcionario' FROM Funcionario -- Décima Sintaxe: SELECT [Código do Funcionario] = Cod_Func, [Nome do Funcionario] = Nome_Func, [Sexo do Funcionario] = Sexo_Func, [Salário do Funcionario] = Sal_Func, [Data do Funcionario] = Data_Func FROM Funcionario -- Décima primeira Sintaxe: SELECT "Código do Funcionario" = Cod_Func, "Nome do Funcionario" = Nome_Func, "Sexo do Funcionario" = Sexo_Func, "Salário do Funcionario" = Sal_Func, "Data do Funcionario" = Data_Func FROM Funcionario

26 26 -- Decima Sengunda Sintaxe SELECT 'Código do Funcionario' = Cod_Func, 'Nome do Funcionario' = Nome_Func, 'Sexo do Funcionario' = Sexo_Func, 'Salário do Funcionario' = Sal_Func, 'Data do Funcionario' = Data_Func FROM Funcionario Obs.: É claro que, apenas na execução de um único SELECT, podemos utilizar as sintaxes exibidas acima misturadas umas com as outras, mas lógicamente é muito melhor, muito mais elegante que se tenha um padrão para a sua utilização. 6 Exibindo dados de colunas virtuais Se você observar, a tabela Funcionario não possui, em sua estrutura, a coluna Nacionalidade. Mas suponha que, por um motivo qualquer, você precise exibir a coluna Nacionalidade onde nos dados aparece a palavra Basileira para todos as pessoas inseridas nesta tabela. Você poderia acrescentar esta nova coluna na tabela executando, para tanto, o comando ALTER TABLE. Mas aqui não é o caso. Suponha que você deseja apenas exibir a nacinalidade brasileira para todos os funcionários apenas uma úniva vez. Sendo assim, basta que você execute um dos comandos abaixo:

27 27 -- Exibindo todas as colunas mais uma virtual SELECT *,'Brasileira' AS Nacionalidade FROM Funcionario -- Exibindo todas as colunas mais uma virtual SELECT Cod_Func Nome_Func Sexo_Func Sal_Func Data_Func 'Brasileira' AS Código, AS Nome, AS Sexo, AS Salário, AS Data, AS Nacionalidade FROM Funcionario -- Exibindo algumas colunas e uma virtual SELECT Cod_Func Nome_Func Sexo_Func 'Brasileira' AS Código, AS Nome, AS Sexo, AS Nacionalidade FROM Funcionario

28 28 Obs.: Com relação ao apelido das colunas, obviamente você poderá utilizar, das sintaxes apresentadas anteriormente, aquela que desejar. Para efeito de demonstração neste tutorial estamos utilizando a primeira das sintaxes exibidas no ítem Exibindo cálculos em colunas virtuais Agora vamos supor que você precise exibir quanto seria o novo salário de cada funcionário se lhes fosse aplicado um aumento de 10% e um aumento salarial de 20%. Só que, na realidade, você não deseja realmente aplicar o aumento promovendo uma alteração nos dados, você deseja apenas visualizar os novos valores. Sendo assim, você consegue os resultados desejados escrendo o comando abaixo. -- Exibindo aumento de salário com colunas virtuais SELECT Cod_Func Nome_Func Sal_Func AS Código, AS Nome, AS [Salário Real], Sal_Func * 1.1 AS [Salário com 10%], Sal_Func * 1.2 AS [Salário com 20%], 'Brasileira' AS Nacionalidade FROM Funcionario

29 29 Observe também que é possível exibir colunas virtuais como é o caso da nacionalidade e como é o caso dos aumentos salariais num mesmo SELECT. -- Exibindo aumentos de salário e a nacionalidade com colunas virtuais SELECT Cod_Func Nome_Func Sal_Func AS Código, AS Nome, AS [Salário Real], Sal_Func * 1.1 AS [Salário com 10%], Sal_Func * 1.2 AS [Salário com 20%], 'Brasileira' AS Nacionalidade FROM Funcionario 8 Exibindo apenas uma vez os dados repetidos de uma tabela DISTINCT Para a demonstração deste tópico, insira os dados abaixo, na tabela Funcionario. INSERT Funcionario VALUES(6,'Marcia','F', ,Getdate()) INSERT Funcionario VALUES(7,'Paula','F', ,Getdate()) INSERT Funcionario VALUES(8,'Roberto','M', ,Getdate()) INSERT Funcionario VALUES(9,'Cristian','M',578.25,Getdate()) INSERT Funcionario VALUES(10,'Mariana','F',600.00,Getdate())

30 30 INSERT Funcionario VALUES(11,'Roberto','M', ,Getdate()) INSERT Funcionario VALUES(12,'Cristian','M',578.25,Getdate()) INSERT Funcionario VALUES(13,'Mariana','F',600.00,Getdate()) Se você observar, inserimos alguns valores repetidos na tabela Funcionario. Sendo assim, temos mais de um funcionario com o mesmo nome, mais de um com o mesmo valor salarial e, mais de um funcionario do sexo feminino, como mais de um do sexo masculino. Existe uma cláusula na liguagem SQL, utilizada com o comando SELECT, que nos permite exibir apenas uma vez os valores que estiverem repetidos nos dados a serem exibidos. Por exemplo, ao executarmos a query abaixo, o SQL Sever nos retornará apenas uma vez a letra F e apenas uma vez a letra M, muito embora as duas letras tenham sido inseridas várias vezes na mesma coluna. SELECT DISTINCT Sexo_Func FROM Funcionario A query abaixo exibirá apenas uma vez cada valor inserido. Sendo assim considerando, por exemplo, que o salário de 2500,00 tenha sido inserido duas vezes na tabela, o comando abaixo apresentará este valor apenas uma vez. SELECT DISTINCT Sal_Func FROM Funcionario

31 31 A query abaixo exibirá apenas uma vez os dados repetidos considerando os valores das duas colunas a seram exibidas. SELECT DISTINCT Nome_Func,Sal_Func FROM Funcionario Portanto, quando quiser daber quais os valores existentes em um determinado conjunto de dados a serem retornados e quiser ver apenas uma vez cada conjunto destes valores, utiliza a cláusula DISTINCT para isso.

32 32 UTILIZAÇÃO DO COMANDO INSERT Como você já deve ter percebido, INSERT é o comando da liguagem SQL que utilizamos para incluir os dados de uma tabela. Para que você possa conhecer estas possibilidades de sintaxe da utilização deste comando vamos acessar o database [50minutos], e fazer algumas demonstrações, utilizando para isso, a tabela Funcionario, já criada anteriormente Para tanto, abra uma nova query no SQL Server Management Studio e em seguida execute os comandos abaixo, selecionando-os um a um e teclando F5 para cada nova execução. 1 INSERT e INSERT INTO Quando trabalhamos com a linguagem SQL do Microsoft SQL Server, nos acostumamos a inserir dados em uma tabela escrevendo apenas a seguinte cláusula: INSERT <NomeTabela> VALUES(valores para cada coluna separados por vírgula). Acontece que, o comando da linguagem SQL ANSI pra inclusão de dados em uma determinada tabela é na verdade INSERT INTO.

33 33 INSERT INTO <NomeTabela> VALUES(valores para cada coluna separados por vírgula). Então você já deve ter percebido que a sintaxe SQL da Microsoft nos permite omitir a cláusula INTO na execução de inclusões de dados nas tabelas de um sistema. Execute os códigos abaixo e perceba que os dois vão funcionar perfeitamente e inserem os mesmos dados, do mesmo jeito na tabela Funcionario: -- INSERT e INSERT INTO INSERT Funcionario VALUES(1,'Marcos','M', ,Getdate()) GO INSERT INTO Funcionario VALUES(1,'Marcos','M', ,Getdate()) 2 INSERT Posicional e INSERT Declarativo Chamamos de INSERT Posicional o comando que insere dados em uma tabela passando os valores para as colunas na mesma ordem em que foram escritas na criação da mesma. Neste caso não há a necessidade de escrever o nome de cada coluna onde estamos inserindo os valores, pois presume-se que estamos passando-os na sequência de sua criação.

34 34 Observe o código abaixo: -- Insert Posicional sem a cláusula INTO INSERT Funcionario VALUES(1,'Marcos','M', ,Getdate()) -- Insert Posicional com a cláusula INTO INSERT INTO Funcionario VALUES(1,'Marcos','M', ,Getdate()) Já no INSERT Declarativo, como o próprio nome já indica, nós declaramos a ordem das colunas na qual passaremos os valores durante uma inclusão de dados. Esta forma de escrita do comando INSERT é interessante porque nos permite inserir os dados para as colunas passando os valores na sequência em que desejarmos, sem a necessidade de obedecer a order utilizada na criação da tabela. Observe: -- Insert Declarativo sem a cláusula INTO INSERT Funcionario (Sexo_Func,Data_Func,Cod_Func,Sal_Func, Nome_Func) VALUES('M',GETDATE(),1, ,'Marcos')

35 35 -- Insert Declarativo com a cláusula INTO INSERT INTO Funcionario (Sexo_Func,Data_Func,Cod_Func,Sal_Func, Nome_Func) VALUES('M',GETDATE(),1, ,'Marcos') A utilização do INSERT Declarativo é útil quando queremos inserir dados em apenas algumas colunas da tabela, fazendo com que o SQL Server insira nas colunas restantes valores nulos ou valores padrão (default) se houver algum declarado para estas culunas. Observe o código abaixo, onde estamos omitindo a inclusão de dados para a coluna Data_Func. INSERT Funcionario (Cod_Func,Sal_Func, Nome_Func) VALUES(1, ,'Marcos')

36 36 3 INSERT com uma cláusula VALUES A partir da versão 2008 do Microsoft SQL Server podemos utilizar a sintaxe abaixo, onde escrevemos apenas uma vez o comando completo e na sequência passamos apenas uma lista de valores que desejamos inserir de uma só vez. Observe que podemos utilizar ou não a cláusula INTO aqui também. INSERT Funcionario VALUES (1,'Marcos','M', ,Getdate()), (2,'Paulo','M', ,Getdate()), (3,'Roberta','F', ,Getdate()), (4,'Cristina','F',578.25,Getdate()), (5,'José','M',600.00,Getdate()) 4 INSERT com SELECT A composição do comando SELECT com o comando INSERT é utilizada para copiar dados de uma tabela para outra. Podemos utilizar estes nos comandos nos seguintes casos:

37 37 Caso_01 Estruturas iguais Suponha que você tenha criado a tabela Empregado, cuja estrutura segue no código abaixo, e que precise copiar para ela os dados da tabela Funcionario. CREATE TABLE Empregado ( Cod_Emp int, Nome_Emp varchar(100), Sexo_Emp char(1), Sal_Emp Decimal(10,2), Data_Emp Datetime, ) Observando que a estrutura das duas tabelas é a mesma, podemos escrever o comando abaixo para realizar a cópia desejada: INSERT Empregado SELECT * FROM Funcionario

38 38 Caso_02 Estruturas diferentes, com a tabela que recebe os dados tendo menos colunas que a tabela origem. Suponha agora qua a tabela para a qual você deseja copiar dados seja essa cujo código segue abaixo. CREATE TABLE Auxiliar ( Cod_Aux int, Nome_Aux varchar(100), Sexo_Aux char(1), ) Note que neste caso temos que utilizar o comando SELECT, obtendo da tabela Funcionário apenas os dados que correspondem às colunas da tabela Auxiliar. INSERT Auxiliar SELECT Cod_Func,Nome_Func,Sexo_Func FROM Funcionario

39 39 Caso_03 Estruturas diferentes, com a tabela que recebe os dados tendo mais colunas que a tabela origem. Agora você tem a tabela Auxiliar, com uma coluna (Nac_Estag Nacionalide do Estagiário) para a qual não há valor na tabela origem. CREATE TABLE Estagiario ( Cod_Estag int, Nome_Estag varchar(100), Sexo_Estag char(1), Sal_Estag Decimal(10,2), Data_Estag Datetime, Nac_Estag varchar(100), ) Então para copiar dados de Funcionario para Estagiário teremos que utilizar um dos comandos abaixo: -- Inserindo um catactere em branco na coluna Nac_Estag INSERT Estagiario SELECT *, ' ' FROM Funcionario

40 40 -- Inserindo a palavra Brasileira na coluna Nac_Estag INSERT Estagiario SELECT *, 'Brasileira' FROM Funcionario -- Inserindo um valor Nulo na coluna Nac_Estag INSERT Estagiario SELECT *, Null FROM Funcionario Poderíamos também utiilizar a palavra Default no lugar da coluna Nac_Estag, se na tabela Estagiário houvesse um valor definido para ela. A sintaxe seria essa: -- Inserindo o valor Default na coluna Nac_Estag INSERT Estagiario SELECT *, Default FROM Funcionario Caso_04 Quando a tabela que recebe os dados tem coluna que pode receber Null ou Default Neste caso você utilizaria o INSERT Declarativo para passar os valores desejados.

41 41 Vamos Supor que na tabela Estagiário, já haja um valor Default definido para a coluna Nac_Estag e que você deseje inserir um valor nulo para a Data_Estag. Então seu comando deveria ser escrito assim -- Inserindo dados na tabela Estagiario, deixando que o próprio SQL -- Server insira valores nas colunas Nac_Estag e Data_Estag INSERT Estagiario (Cod_Estag,Nome_Estag,Sexo_Estag,Sal_Estag) SELECT Cod_Func, Nome_Func,Sexo_Func,Sal_Func FROM Funcionario Obs.: Quando inserimos um Null em uma coluna estamos determinando que o SQL Server a deixe sem valor algum. Portanto Null quer dizer ausência de valor!

42 42 UTILIZAÇÃO DO COMANDO UPDATE UPDATE é o comando que utilizamos para modificar os dados em uma ou mais colunas. 1 A cláusula SET Em todo e qualquer comando UPDATE você deverá escrever UMA cláusula SET, para se referenciar a(s) coluna(s) que deseja alterar. Por exemplo: no script abaixo, estamos criandos uma tabela chamada Pessoa no database [50minutos]. Estamos também inserindo cinco registro nesta tabela Use [50Minutos] CREATE TABLE Pessoa ( Cod_Pes int, Nome_Pes varchar(100), Sexo_Pes char(1), Sal_Pes Decimal(10,2), Data_Pes Datetime,

43 43 ) Inserindo dados na tabela Pessoa INSERT Pessoa VALUES(1,'Marcos','M', ,Getdate()) INSERT Pessoa VALUES(2,'Paulo','M', ,Getdate()) INSERT Pessoa VALUES(3,'Roberta','F', ,Getdate()) INSERT Pessoa VALUES(4,'Cristina','F', ,Getdate()) INSERT Pessoa VALUES(5,'José','M', ,Getdate()) Suponha que você precise modificar o valor da coluna Sal_Pes aplicando para todas as pessoas da tabela um aumento salarial de 10%. Para tanto você teria que escrever um comando UPDATE. Veja abaixo: UPDATE Pessoa SET Sal_Pes = Sal_Pes * 1.1 Suponha agora que você precise modificar os dados da tabela pessoa da seguinte maneira: a) Acrescente o sobrenome da Silva para todas as pessoas, b) Altere o valor da coluna Sexo_Pes para X c) Aplique mais de aumento salarial para todos.

44 44 O comando UPDATE para este caso tem que ser escrito assim: UPDATE Pessoa SET Nome_Pes = Nome_Pes + 'da Silva', Sexo_Pes = 'x', Sal_Pes = Sal_Pes A cláusula FROM Para o comando UPDATE a cláusula FROM é opcional. Portanto você poderia escrever os UPDATEs anteriores assim, se quisesse: Utilizando a cláusula FROM UPDATE Pessoa SET Sal_Pes = Sal_Pes * 1.1 FROM Pessoa

45 45 UPDATE Pessoa SET Nome_Pes = Nome_Pes + 'da Silva', Sexo_Pes = 'x', Sal_Pes = Sal_Pes FROM Pessoa UTILIZAÇÃO DO COMANDO DELETE É com o comando DELETE que excluímos dados de uma tabela. É possível excluir valores de apenas uma coluna? Se esta for também a sua dúvida, é só pensar que o comando DELETE excluir linhas da tabela. Não dá para excluir valor de apenas uma coluna. Podemos sim alterar o valor da mesma, mas quando se trata de DELETE ele retirará da tabela os valores de uma (ou mais) linha(s) inteira(s)! 1 DELETE com e sem a clásula FROM Para o comando UPDATE a Microsoft aceita as três formas de sintaxe abaixo: -- Excluindo dados da tabela Pessoa DELETE Pessoa DELETE Pessoa FROM Pessoa DELETE FROM Pessoa

46 46 Obs: a) DELETE é difererente de DROP. O comando DROP elimina objetos de um database. Por exemplo, se você executar o comando DROP TABLE Pessoa, estará eliminando a tabela do database! Já o comando DELETE, como visto logo acima, exclui apenas os dados. b) Até este momento, quando utilizamos os comandos SELECT, UPDATE e DELETE, afetamos todos os registros da tabela. Talvez você esteja se perguntando como temos que fazer para ler, alterar e excluir apenas alguns registros da tabela e não todos. Bom, neste caso você teria que utilizar a cláusula WHERE, que é o nosso próximo assunto.

47 47 A CLÁUSULA WHERE A cláusula WHERE é utilizada da mesma forma, ou seja, com a mesma sintaxe para os comandos SELECT, UPDATE e DELETE. Ela serve para que possamos escolher qual (ou quais) registro(s) da(s) tabela(s) desejamos ler, alterar ou eliminar. Para que possamos escolher quais registros desejamos que nosso comando afete vamos precisar utiilizar operadores para fazer a seleção dos mesmos. 1 Operadores e Critérios de Pesquisa É através dos operadores que podemos dizer para o SQL Server qual dados deve ser afetado pelos comandos DML. Para que possamos fazer demonstrações da utilização da cláusula WHERE vamos executar o script abaixo, que cria uma tabela chamada Produto, no database [50minutos] e insere 10 registros de dados.

48 Use [50minutos] CREATE TABLE Produto ( Cod_Prod Nome_Prod Tipo_Prod Qtd_Prod Val_Prod int, char(50), char(20), int, decimal(10,2) ) INSERT Produto VALUES(1,'Geladeira','Cozinha',500, ) INSERT Produto VALUES(2,'Armário','Cozinha',700,300.00) INSERT Produto VALUES(3,'Sofá','Sala',200, ) INSERT Produto VALUES(4,'Cama','Quarto',300,500.00) INSERT Produto VALUES(5,'Fogão','Cozinha',400,700.00) INSERT Produto VALUES(6,'Guarda-Roupa','Quarto',500, ) INSERT Produto VALUES(7,'Poltrona','Sala',600,Null) INSERT Produto VALUES(8,'Estante','Sala',800,400.00) INSERT Produto VALUES(9,'Penteadeira','Quarto',200,300.00) INSERT Produto VALUES(10,'Cadeira','Cozinha',1000,150.00)

49 49 Os operadores de comparação são: Igual (=) Diferente (<> ou!=) Maior (>) Maior ou Igual (>=) Menor (<) Menou ou Igual (<=) Não Maior (!>) Não Menor (!<) Vejamos alguns exemplo: a) Suponha que você deseje obter os dados da tabela Produto, mas apenas do Produto cujo código é igual a 1. Para tento você teria que escrever o comando abaixo: SELECT * FROM Produto WHERE Cod_Prod = 1

50 50 b) Se desejasse exibir apenas os dados dos Produtos do tipo Cozinha, teria que escrever o commando a seguir: SELECT * FROM Produto WHERE Tipo_Prod = 'Cozinha' Operadores Lógicos E (AND) Ou (OR) Negação (NOT) Obviamente é possivel escrever mais de uma condição para a cláusula WHERE, como no exemplo abaixo, onde desejamos obter todos os dados do Produto do tipo `Cozinha, mas que tenham também o valor maior do que Para atingir este objetivo escrevemos o comando abaixo: SELECT * FROM Produto WHERE Tipo_Prod = 'Cozinha' AND Val_Prod > Poderíamos também querer exibir todos os valores dos Produto to tipo Cozinha OU dos Produtos com valor acima de

51 51 Para tanto precisaríamos escrever o comando abaixo: SELECT * FROM Produto WHERE Tipo_Prod = 'Cozinha' OR Val_Prod > E assim, segue. Se você precisar, poderá colocar quantas condições precisar na cláusula WHERE, sendo que se houver mais de uma, elas deverão ser escritas utilizando os operadores lógicos AND e/ou OR. Se você precisasse de todos os produtos que não forem do tipo Cozinha poder escrever o código abaixo: SELECT * FROM Produto WHERE Tipo_Prod!= 'Cozinha' Ou poderá substitui-lo por este: SELECT * FROM Produto WHERE Tipo_Prod <> 'Cozinha'

52 52 Eu poderia escrever a query abaixo para obter todos os produtos que o valor não seja maior do que : SELECT * FROM Produto WHERE Val_Prod!> Eu conseguiria obter os mesmos dados com o commando que segue: SELECT * FROM Produto WHERE Val_Prod <= Suponha que você queira exibir os dados dos Produtos cujos códigos sejam 2, 4 e 6. Você deseja obter da tabela os três produtos. Para conseguir isso terá que escrever o código abaixo: SELECT * FROM Produto WHERE Cod_Prod = 2 OR Cod_Prod = 4 OR Cod_Prod = 6

53 53 Operadores para tartar conjunto de valores Mas com se utilizar o critério de pesquisa IN poderá substituir o codigo anterior pelo que segue e conseguirá os mesmos dados. SELECT * FROM Produto WHERE Cod_Prod IN (2,4,6) Imagine agora que seja necessário que você obtenha da tabela todos os Produtos menos os de código 2, 4 e 6. Pata tanto terá que escrever o código abaixo: SELECT * FROM Produto WHERE Cod_Prod <> 2 AND Cod_Prod <> 4 AND Cod_Prod <> 6 Mas com se utilizar NOT IN poderá obter os mesmos valores. SELECT * FROM Produto WHERE Cod_Prod NOT IN (2,4,6)

54 54 Operadores para faixas de Valores O comando abaixo nos dará todos os produtos cujo valor estejam na faixa de e (inclusive os produtos que custarem e ). SELECT * FROM Produto WHERE Val_Prod >= AND Val_Prod <= Os mesmos dados podem ser obtidos utilizando-se o critério de pesquisa BETWEEEN: SELECT * FROM Produto WHERE Val_Prod BETWEEN AND O comando abaixo nos dará todos os produtos cujo valor estejam fora da faixa de e : SELECT * FROM Produto WHERE Val_Prod < OR Val_Prod > Os mesmos dados podem ser obtidos utilizando-se os critérios de pesquisa NOT BETWEEEN:

55 55 SELECT * FROM Produto WHERE Val_Prod NOT BETWEEN AND Operadores para tartar colunas do tipo charactere Escrevendo o SELECT abaixo obtemos todos os Produtos cujo nome seja exatamente Geladeira: SELECT * FROM Produto WHERE Nome_Prod = 'Geladeira' Porém se desejarmos obter todos os produtos que o nome comece, contenha ou termine com uma determinada letra ou sílaba teremos que utilizar o crítério de pesquisa LIKE e para obter os dados negando a existência dos mesmos critérios, teremos que utilizar NOT LIKE. Observe exemplos abaixo: -- Obtendo todos os Produtos cujo nome começa com a legra G. SELECT * FROM Produto WHERE Nome_Prod LIKE 'G%'

56 56 -- Obtendo todos os Produtos que tenha as sílabas eira em qualquer -- posição, início, meio ou fim. SELECT * FROM Produto WHERE Nome_Prod LIKE '%eira%' -- Selecione todos os Produtos cujo nome termine com a letra O. SELECT * FROM Produto WHERE Nome_Prod LIKE '%o' -- Selecione os dados de todos os produtos onde o nome tenha até cinco letras. Observe que cada letra é representada aqui por um traçinho SELECT * FROM Produto WHERE Nome_Prod LIKE ' ' -- Selecione todos os Produtos, onde o nome Não comece com a letra G, SELECT * FROM Produto WHERE Nome_Prod NOT LIKE 'G%' -- Obtendo todos os Produtos que Não tenha as sílabas eira em -- qualquer posição, início, meio ou fim. SELECT * FROM Produto WHERE Nome_Prod NOT LIKE '%eira%'

57 57 -- O exemplo a seguir exibe todos os Produtos cujo nome comece com -- qualquer letra, contenha a sequência de letrar ei e contenha logo -- em seguida, qualquer letra, diferente de a. SELECT * FROM Produto WHERE Nome_Prod LIKE '%ei_%'escape 'a' -- O exemplo abaixo exibe os dados de todos os produtos, cujo nome não -- é Nulo SELECT * FROM Produto WHERE Nome_Prod IS NOT NULL -- O exemplo abaixo exibe os dados de todos os produtos, cujo nome é -- Nulo SELECT * FROM Produto WHERE Nome_Prod IS NULL

58 58 Resumo dos Critérios de Avaliação IN / NOT IN Critério BETWEEN /NOT BETWEEN Resumo Pesquisa dados em uma tabela com base na existência [ou não] dos mesmos em uma lista de valores, Pesquisa dados em uma tabela com base na existência [ou não] dos mesmos em uma faixa de valores. LIKE / NOT LIKE / SCAPE Pesquisa dados em uma tabela, verificando sua existência [ou não] comparando-os com palavras ou parte delas em uma determinada coluna. O critério SCAPE, exclui uma ou mais letras dos resultados desejados. IS NULL / IS NOT NULL Pesquisa dados em uma tabela com base na ausência [ou não] de valores. Obs.: a) Todos os exemplos exibidos anteriormente podem ser utilizados com os comandos UPDATE e DELETE com a mesma sintaxe exibida anteriormente, e podem também ser utilizados para compor um critério de pesquisa mais complexo: SELECT * FROM Produto WHERE Nome_Prod LIKE '%A'

59 59 AND Val_Prod BETWEEN AND AND Qtd_Prod > 200 UPDATE Produto SET Qtd_Prod = Qtd_Prod WHERE Nome_Prod LIKE '%A' AND Val_Prod BETWEEN AND AND Qtd_Prod > 200 DELETE Produto WHERE Nome_Prod LIKE '%A' AND Val_Prod BETWEEN AND AND Qtd_Prod > 200 b) Podemos utilizar também como critérios de pesquisa as funções CONTAINS() e FREETEXT(). c) Temos também a possibilidade de utilizar em cláusula WHERE os critérios de pesquisa ALL, SOME ANY e EXISTS NOT EXISTS, mas estes são escritos com subqueries. As subqueries são vistas no próximo tutorial.

60 60 A CLÁUSULA ORDER BY A cláusula ORDER BY é utilizada no comando SELECT com o intuito de exibir dados de forma ordenada. A ordenação pode ser feita por uma ou mais coulnas, e estas podem estar armazenadas no formato numérico, caracter, data e data/hora. Para exemplificar as explicações sobre esta clausula, vamos criar a tabela Material no database [50minutos], como mostra o script abaixo: Use [50minutos] CREATE TABLE Material ( Cod_Mat int, Tipo_Mat char(1), Nome_Mat char(50), Qtd_Mat int, Val_Mat decimal(10,2)

61 61 ) INSERT Material VALUES (1,'A','Caderno Espiral',100,12.50) (2,'A','Lápis Preto',500,1.50) (3,'A','Lápis de Cor',600,7.50) (4,'A','Caneta Azul',800,5.50) (5,'B','Caneta Preta',150,5.50) (6,'B','Caderno Brochura',200,10.00) (7,'B','Borracha Macia',900,5.50) (8,'B','Borracha Colorida',1000,1.50) (9,'C','Apontador Colorido',2000,5.50) (10,'C','Régua de Madeira',3500,9.00) (11,'C','Régua de Plástico',2586,10.00) (12,'C','Folhas de Papel',2587,5.50) Se você prestar atenção poderá observar que, na coluna Nome_Mat (que representa o nome dos materiais inseridos na tabela), os dados foram inseridos sem obedecer a nenhuma ordenação específica.

62 62 Suponha então que você precisasse gerar um relatório que exiba todos os dados da tabela Material em ordem alfebética do nome. Para cumprir com esta tarefa basta escrever e executar o código abaixo: SELECT * FROM Material ORDER BY Nome_Mat ORDENANDO PELA POSIÇÃO DA COLUNA Podemos orderna os dados a serem exibidos pelo nome da coluna ou pela posição da mesma em duas situações. Ordenando pela posição da coluna na tabela Observe que a coluna Nome_Mat é a terceira coluna da estrutura da tabela Material. Sendo assim, se você escrever o comando abaixo, obterá os dados na mesma ordenação feita anteriormente. SELECT * FROM Material ORDER BY 3

63 63 Ordenando pela posicão da coluna na lista de colunas do SELECT O comando abaixo também exibe os dados ordenados pela coluna Nome_Mat, que neste caso é a segunda coluna da select list. SELECT Cod_Mat,Nome_Mat,Val_Mat FROM Material ORDER BY 2 ARGUMENTOS Podemos utilizar argumetos em cada uma das colunas que escrevermos na cláusula ORDER BY. ASC Ascendente Para apresentar os dados ordenados de forma crescente, portanto ascendente, utilizamos o argumento ASC, que por sinal, já é o argumento utilizado como default no SQL Server. SELECT * FROM Material ORDER BY Nome_Mat ASC SELECT * FROM Material ORDER BY 3 ASC

64 64 Portanto escrevendo ASC, ou não, os dados serão apresentados com a mesma ordenação DESC Decrescente Para apresentar os dados de forma decrescente utilizamos o argumento DESC. SELECT * FROM Material ORDER BY Nome_Mat DESC SELECT * FROM Material ORDER BY 3 DESC COLLATE A ordenação feita pelo COLLATE só se aplica às colunas que tenhas os datatypes char, varchar, nchar e nvarchar. SELECT * FROM Material ORDER BY Nome_Mat COLLATE Latin1_General_CI_AS_KS_WS

65 65 SELECT * FROM Material ORDER BY 3 COLLATE Latin1_General_CI_AS_KS_WS Obs: Resumidamente falando, collate é um conjuntos de definições referentes aos dados armazenados em colunas do tipo caractere. O collation define, por exemplo, que uma coluna caractere possa armazenar as letras e dígitos referentes à um determinado idioma. O Collation define também a forma (binary ou dictionary) em que os dados são ordenados quando um comando order by é executado sobre esta coluna. O Collation também define se o SQL Server fará diferença, ou não, entre as letras maiúsculas e minúsculas durante uma pesquisa, define também se ele fará diferença entre letras acentuadas ou não. A CLÁUSULA TOP A cláusula TOP é utilizada para apresentar os primeiros registros a serem apresentados em uma pesquisa. A cláusula TOP também poderá ser utilizada em pesquisas que contenham a cláusula WHERE com todas as sintaxes exibidas nos ítens do tópico 4. O SQL Server obtem os dados da tabela de acordo com os critérios da cláusula WHERE e exibe os n primeiros registros, conforme especificado logo após a cláusula TOP. TOP N A letra n que acompanha a cláusula TOP é uma expressão numérica que representa a quantidade de primeiros registros que se deseja obter em uma pesquisa. Observe os exemplos que seguem:

66 66 -- Apresenta o primeiro registro deste conjunto de dados SELECT TOP 1 * FROM Material -- Apresenta os dois primeiros registros deste conjunto de dados SELECT TOP 2 * FROM Material -- Apresenta os três primeiros registros deste conjunto de dados SELECT TOP 3 * FROM Material TOP N PERCENT As cláusulas TOP n PERCENT são utilizadas para que o SQL Server obtenha exiba os n por cento (n%) dos dados retornados por uma deterimanda pesquisa -- Apresenta 10% dos registro retornados por este SELECT SELECT TOP 10 PERCERNT * FROM Material

67 67 -- Apresenta 20% dos registro retornados por este SELECT SELECT TOP 20 PERCENT * FROM Material TOP N, TOP N PERCENT WITH TIES COM ORDER BY A cláusula WITH TIES pode ser utilizada com TOP n e com TOP n PERCENT, mas deverá ser acompanhada pelas cláusulas ORDER BY. O SQL Server apresenta os n primeiros registros (com base no valor absoluto ou no percentual) trazendo os outros registros cujo valor da coluna escrita na cláusula ORDER BY seja igual ao valor do último registro apresentado. Por exemplo, no comando abaixo, serão apresentados os cinco primeiros registros da tabela material, porém outras linhas de dados poderão ser exibidas se houver outros registros cujo valor do material(val_mat) seja igual ao valor do quinto material deste conjunto de valores. SELECT TOP 5 WITH TIES Nome_Mat,Val_Mat FROM Material ORDER BY Val_Mat Estas cláusulas são úteis para se obter, por exemplo, o material mais caro ou mais barato desta tabela. Observe os exemplos:

68 68 -- Exibindo os materiais mais baratos da tabela SELECT TOP 1 WITH TIES Nome_Mat,Val_Mat FROM Material ORDER BY Val_Mat -- Exibindo os materiais mais caros da tabela SELECT TOP 1 WITH TIES Nome_Mat,Val_Mat FROM Material ORDER BY Val_Mat DESC TOP N COM UPDATE E DELETE Você também pode utilizar a cláusula TOP com os comandos UPDATE e DELETE para dizer para o SQL Server alterar ou excluir os n primairos registros de uma tabela. -- Aumenta em 10% o valor dos 5 primeiros materiais da tabela UPDATE TOP 5 Materiais SET Val_Mat = Val_Mat 1.1

69 69 -- Exclui os 3 primeiros materiais da tabela DELETE TOP 3 FROM Materiais A CLÁUSULA OUTPUT A cláusula OUTPUT serve para que você possa obter os dados antes, ou depois, deles serem alterados ou excluídos de uma tabela. Obter os dados quer dizer exibi-los ou salva-los em uma outra tabela. Para exemplificar a cláusula vamos utilizar a tabela abaixo com os dados que seguem: Use [50minutos] CREATE TABLE Bonus ( Cod_Bonus int, Cod_Cli int, Data_Bonus Val_Bonus smalldatetime, decimal(10,2)

70 70 ) INSERT Bonus VALUES (1,2,Getdate(),50.00,) (1,1,Getdate(),150.00,) (1,3,Getdate(),80.00,) CREATE TABLE Premio ( Cod_Premio int, Cod_Cli int, Data_Premio Val_Premio smalldatetime, decimal(10,2) ) Observe que a tabela Bonus recebe dados e que a tabela Premio é criada, mas permanece vazia.

71 71 UPDATE COM OUTPUT -- Altera os dados da tabela, e exibe os dados de todas as colunas -- com os valores anteriores à alteração UPDATE Bonus SET Val_Bonus = Val_Bonus * 1.1 OUTPUT DELETED.* -- Altera os dados da tabela, e exibe os dados de todas as colunas -- com os valores após à alteração UPDATE Bonus SET Val_Bonus = Val_Bonus * 1.1 OUTPUT INSERTED.* -- Altera os dados da tabela, e exibe os valores de cod_cli e Val_Bonus -- como eles eram antes de ocorrer a alteração UPDATE Bonus SET Val_Bonus = Val_Bonus * 1.1 OUTPUT DELETED.Cod_Cli,DELETED.Val_Bonus

72 72 -- Altera os dados da tabela, e exibe os novos valores de cod_cli e -- Val_Bonus UPDATE Bonus SET Val_Bonus = Val_Bonus * 1.1 OUTPUT INSERTED.Cod_Cli,INSERTED.Val_Bonus -- Altera os dados da tabela, mas salva os valores antigos em outra -- tabela UPDATE Bonus SET Val_Bonus = Val_Bonus * 1.1 OUTPUT DELETED.* INTO Premio DELETE COM OUTPUT -- Exclui os dados da tabela Bonus e exibe os valores que foram -- excluídos DELETE Bonus OUTPUT DELETED.*;

73 73 -- Exclui os dados da tabela Bonus e exibe os valores que foram -- excluídos DELETE Bonus OUTPUT DELETED.Cod_Bonus, DELETED.Val_Bonus Exclui todos os dados da tabela, mas os salva em outra tabela antes -- de excluir. DELETE Pessoa OUTPUT DELETED.Nome_Pes INTO Premio GROUP BY GROUP BY é uma cláusula que utilizamos para produzir totalizações com agrupamentos de dados. As totalizações são feitas através das built-on functions Sum(), Count(), Max(), Min(), Avg(), entre outras e os agrupamentos são feitos com os argumentos HAVING, RULLUP(), CUBE(), GROUPING SET(). Para exemplificar, execute o script abaixo:

74 USE [50minutos] DROP TABLE Produto CREATE TABLE Produto ( Cod_Prod int Not Null, Cod_Tipo char(1) Not Null, Cod_Linha tinyint Nome_Prod varchar(50) Not Null, Not Null, Qtd_Prod int Not Null, Val_Prod decimal(10,2) Not Null ) INSERT Produto VALUES(1,'A',1,'Mesa',100,500.00), (2,'B',1,'Sofá',200, ), (3,'A',2,'Mesa',100,200.00), (4,'A',2,'Armário',300,200.00), (5,'C',1,'Cama',500, ), (6,'B',1,'Poltrona',100,250.00),

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR SQL Structured Query Language, ou Linguagem de Consulta Estruturada, foi desenvolvida pela IBM nos anos 70 para demonstrar a viabilidade do modelo relacional para bancos de dados. No final dos anos 80

Leia mais

SQL (Tópicos) Structured Query Language

SQL (Tópicos) Structured Query Language SQL (Tópicos) Structured Query Language ISI Introdução aos Sistemas de Informação SQL (Tópicos) 1 SQL: componentes SQL / DDL (Data Definition Language) Permite definir os Esquemas de Relação Permite definir

Leia mais

SQL. Prof. Roger Cristhian Gomes

SQL. Prof. Roger Cristhian Gomes SQL Prof. Roger Cristhian Gomes SQL SQL - Structured Query Language Linguagem de acesso e manipulação de sistemas de base de dados computacionais que segue o padrão ANSI Existem diferenças entre as versões

Leia mais

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL. LINGUAGEM SQL SQL CREATE DATABASE MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL. SQL CREATE TABLE SQL NOT NULL O valor NOT NULL obriga que o campo contenha sempre

Leia mais

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language)

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language) AULA 8 8.1. OBJETIVO DA AULA Relembrar conceitos e recursos básicos apresentados nas aulas anteriores, dar continuidade nas codificações iniciadas e ainda não finalizadas, explorar acesso a banco de dados

Leia mais

Rápida revisão do Modelo Relacional

Rápida revisão do Modelo Relacional Rápida revisão do Modelo Relacional Conceito de relação Tuplas e atributos Rápida revisão do Modelo Relacional Regras de integridade Entidade: Deve existir uma chave primária com valor único e não-nulo.

Leia mais

Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José;

Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José; MySQL SQL (Structured Query Languagem ) Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José; Inicialmente - Sequel

Leia mais

Banco de Dados I Introdução SQL

Banco de Dados I Introdução SQL Banco de Dados I Introdução SQL Frederico Queiroga fredericoqueiroga@gmail.com https://sites.google.com/site/fredericoqueiroga/ Linguagem SQL Aspectos Gerais: Independência do fabricante: Está incorporada

Leia mais

A linguagem SQL

A linguagem SQL SQL 2008.1 A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão

Leia mais

Banco de Dados. Professora: Luciana Faria

Banco de Dados. Professora: Luciana Faria Banco de Dados Professora: Luciana Faria Introdução ao linguagem é a SQL (Structured Query Language) Linguagem de Consulta Estruturada Para se utilizar, administrar, e trabalhar com um banco de dados é

Leia mais

Laboratório de Banco de Dados II Aula 04. Prof. Érick de Souza Carvalho

Laboratório de Banco de Dados II Aula 04. Prof. Érick de Souza Carvalho Laboratório de Banco de Dados II Aula 04 Prof. Érick de Souza Carvalho 1 SQL (Structured Query Language ) Prof. Érick de Souza Carvalho 2 SQL Structured Query Language - Introdução É uma Linguagem para

Leia mais

BANCO DE DADOS. Para a criação de um banco de dados, através de scripts SQL, deve-se usar a seguinte sintaxe: CREATE DATABASE <nome_banco_de_dados>

BANCO DE DADOS. Para a criação de um banco de dados, através de scripts SQL, deve-se usar a seguinte sintaxe: CREATE DATABASE <nome_banco_de_dados> BANCO DE DADOS 1. Scripts de criação de banco de dados Para a criação de um banco de dados, através de scripts SQL, deve-se usar a seguinte sintaxe: CREATE DATABASE Onde:

Leia mais

A U L A 3 S U B G R U P O S D M L E D Q L : I N S E R I N D O E P E S Q U I S A N D O D A D O S E M U M A T A B E L A

A U L A 3 S U B G R U P O S D M L E D Q L : I N S E R I N D O E P E S Q U I S A N D O D A D O S E M U M A T A B E L A BANCO DE DADOS GERENCIAL 1 A U L A 3 S U B G R U P O S D M L E D Q L : I N S E R I N D O E P E S Q U I S A N D O D A D O S E M U M A T A B E L A CONCEITOS LINGUAGEM DE MANIPULAÇÃO DE DADOS (DML) A linguagem

Leia mais

Banco de Dados. -Aprendendo conceitos -Usando o SQL Conf para: -Conectar no banco de dados -Criar, alterar, excluir e consultar estruturas de tabelas

Banco de Dados. -Aprendendo conceitos -Usando o SQL Conf para: -Conectar no banco de dados -Criar, alterar, excluir e consultar estruturas de tabelas Banco de Dados -Aprendendo conceitos -Usando o SQL Conf para: -Conectar no banco de dados -Criar, alterar, excluir e consultar estruturas de tabelas O que é banco de dados? São conjuntos de registros dispostos

Leia mais

ANÁLISE E PROJETO DE BANCO DE DADOS

ANÁLISE E PROJETO DE BANCO DE DADOS ANÁLISE E PROJETO DE BANCO DE DADOS SQL FELIPE G. TORRES SQL A linguagem SQL (Struct Query Language) é utilizada como padrão em bancos de dados relacionais. Seu desenvolvimento foi originalmente no início

Leia mais

saída durante o runtime Usando Functions de uma Única Linha para Personalizar Relatórios Mostrar as diferenças entre as functions SQL de uma única

saída durante o runtime Usando Functions de uma Única Linha para Personalizar Relatórios Mostrar as diferenças entre as functions SQL de uma única Tópicos do Curso: Introdução Listar os principais recursos do Banco de Dados Oracle 10g Apresentar uma visão geral de: componentes, plataforma de internet, servidor de aplicações e suite do desenvolvedor

Leia mais

E-BOOK GUIA RÁPIDO DE SQL W W W. T R E I N A W E B.C O M. B R

E-BOOK GUIA RÁPIDO DE SQL W W W. T R E I N A W E B.C O M. B R 101010101 001010101 101010100 E-BOOK GUIA RÁPIDO DE SQL INTRODUÇÃO Este é um guia rápido de SQL criado pela equipe do TreinaWeb e serve principalmente para iniciantes na linguagem. SQL é a sigla em inglês

Leia mais

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com 02/06/2016 SUMÁRIO SQL DDL DML SQL (STRUCTURED

Leia mais

Banco de Dados. José Antônio da Cunha CEFET RN

Banco de Dados. José Antônio da Cunha CEFET RN Banco de Dados José Antônio da Cunha CEFET RN Sub-consulta(Subquery) as subqueries permitem que você obtenha dados de uma tabela com base na existência desses dados em outra ou outras tabelas. Sub-consultas

Leia mais

BCD29008 Banco de dados

BCD29008 Banco de dados BCD29008 Banco de dados Linguagem SQL Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/bcd 21 de agosto de 2017

Leia mais

Para criarmos um banco de dados no MySql, utilizamos à instrução:

Para criarmos um banco de dados no MySql, utilizamos à instrução: Databases Os objetos que fazem parte de um sistema de banco de dados são criados dentro de um database, uma estrutura lógica responsável por manter a estrutura de tabelas com seus dados. Para criarmos

Leia mais

Manipulação de Dados com SQL

Manipulação de Dados com SQL Manipulação de Dados com SQL Wendel Melo Faculdade de Computação Universidade Federal de Uberlândia www.facom.ufu.br/~wendelmelo Banco de Dados I manipulação de dados com SQL 2 Structured Query Language

Leia mais

IMPLEMENTAÇÃO DE BANCO DE DADOS

IMPLEMENTAÇÃO DE BANCO DE DADOS IMPLEMENTAÇÃO DE BANCO DE DADOS MODULO 2 LINGUAGEM SQL CONTEÚDO 2. LINGUAGEM SQL 2.1 Linguagens de Definição de Dados (DDL) 2.1.1 Criação de tabela: CREATE 2.1.2 Alteração de Tabela: ALTER 2.1.3 Exclusão

Leia mais

Licenciatura em Informática

Licenciatura em Informática Licenciatura em Informática Unidade Curricular Sistemas de Gestão de Bases de Dados Database Management Systems Objetivos -Administrar, criar e manter mecanismos de segurança em bases de dados SQL; -Criar,

Leia mais

José Antônio da Cunha CEFET - RN. José Antônio - CEFET-RN

José Antônio da Cunha CEFET - RN. José Antônio - CEFET-RN José Antônio da Cunha CEFET - RN Para totalizar dados, ou seja, somar, contar, calcular média, obter o maior e o menor valores existentes, utilizamos as seguintes funções oferecidas pelo SQL: Função Sintaxe

Leia mais

BANCO DE DADOS PARA WEB

BANCO DE DADOS PARA WEB BANCO DE DADOS PARA WEB PROF. FABIANO TAGUCHI http://fabianotaguchi.wordpress.com fabianotaguchi@gmail.com BANCO DE DADOS O banco de dados será de fundamental importância para a criação de páginas dinâmicas,

Leia mais

MYSQL - PRIMEIROS COMANDOS CRIAÇÃCO DO BD E DAS TABELAS, INSERÇÃO E CONSULTA DE REGISTROS. create database [if not exists] <nome>

MYSQL - PRIMEIROS COMANDOS CRIAÇÃCO DO BD E DAS TABELAS, INSERÇÃO E CONSULTA DE REGISTROS. create database [if not exists] <nome> 1. Manuseio do banco de dados MYSQL - PRIMEIROS COMANDOS CRIAÇÃCO DO BD E DAS TABELAS, INSERÇÃO E CONSULTA DE REGISTROS As seguintes instruções manuseiam o banco de dados: cria o banco mostra os bancos

Leia mais

Múltiplas Tabelas. Disciplina de Banco de Dados

Múltiplas Tabelas. Disciplina de Banco de Dados Múltiplas Tabelas Uma das grandes características de um sistema de banco de dados relacional é a capacidade de interagir com múltiplas tabelas relacionadas. Precisamos lembrar que para relacionar tabelas

Leia mais

As Instruções DML. As Instruções de manipulação de dados(dml) em SQL são representados por: Modificam o estado do banco de dados:

As Instruções DML. As Instruções de manipulação de dados(dml) em SQL são representados por: Modificam o estado do banco de dados: As Instruções DML As Instruções de manipulação de dados(dml) em SQL são representados por: Modificam o estado do banco de dados: o INSERT - permite a inclusão de novos registros (linhas) nas tabelas o

Leia mais

Page 1. Prof. Constantino Jacob

Page 1. Prof. Constantino Jacob Tópicos Introdução à SQL Definição Tipos de Operações Instrução SELECT Sintaxe básica Operações relacionais de restrição, projeção e junção Instruções DML Delete, Update e Insert Instruções DDL Create

Leia mais

Linguagem de Consulta Estruturada SQL- DML

Linguagem de Consulta Estruturada SQL- DML Linguagem de Consulta Estruturada SQL- DML INTRODUÇÃO A SQL - Structured Query Language, foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation

Leia mais

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL Objetivo: No curso Oracle 11G Introdução ao Oracle, SQL, PL/SQL será abordado desde a introdução da tecnologia do banco de dados em questão como todos os conceitos

Leia mais

MODELAGEM DE DADOS - INTRODUÇÃO AO SQL: DML. Prof. Angelo Augusto Frozza, M.Sc.

MODELAGEM DE DADOS - INTRODUÇÃO AO SQL: DML. Prof. Angelo Augusto Frozza, M.Sc. MODELAGEM DE DADOS - INTRODUÇÃO AO SQL: DML Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza DML Data Manipulation Language Linguagem de Manipulação de Dados Comandos básicos: Insert Update

Leia mais

PROGRAMA. 3.SQL Básico. 3.1 Criação de tabelas 3.2 Queries simples 3.3 Subqueries 3.4 Agregação. Prof. Dr. Marcos Tsuzuki

PROGRAMA. 3.SQL Básico. 3.1 Criação de tabelas 3.2 Queries simples 3.3 Subqueries 3.4 Agregação. Prof. Dr. Marcos Tsuzuki PROGRAMA 3.SQL Básico 3.1 Criação de tabelas 3.2 Queries simples 3.3 Subqueries 3.4 Agregação 1 3.SQL Básico A linguagem SQL foi desenvolvida para o ambiente relacional, podendo ser adaptada a ambientes

Leia mais

BANCO DE DADOS GERENCIAL 1 A U L A 2

BANCO DE DADOS GERENCIAL 1 A U L A 2 BANCO DE DADOS GERENCIAL 1 A U L A 2 N Í V E I S D E V I S Ã O, S U B G R U P O D D L : C R I A N D O B A N C O D E D A D O S, C R I A N D O T A B E L A S, E S T R U T U R A D A T A B E L A CONCEITOS :

Leia mais

Agenda. Linguagem de Consulta SQL. 1. Introdução Histórico. 1. Introdução BD Relacionais

Agenda. Linguagem de Consulta SQL. 1. Introdução Histórico. 1. Introdução BD Relacionais Linguagem de Consulta SQL Profa. Carla A. Lima Reis SQL Agenda Introdução Histórico BD relacionais Linguagem SQL Definição de BD Manipulação de BD com SQL Consultas SQL Consultas com várias tabelas Subconsultas

Leia mais

Linguagem SQL. ENG1518 Sistemas de Informação Gerenciais Prof. Marcos Villas

Linguagem SQL. ENG1518 Sistemas de Informação Gerenciais Prof. Marcos Villas Linguagem SQL ENG1518 Sistemas de Informação Gerenciais Prof. Marcos Villas villas@puc-rio.br SQL Linguagem padrão de acesso tabelas em um banco de dados relacional Permite definir e manipular dados DML

Leia mais

Banco de Dados. Linguagem SQL

Banco de Dados. Linguagem SQL Banco de Dados Linguagem SQL 1 A linguagem SQL: história Em junho de 1970, o matemático Edgar Frank Codd, publicou o artigo "A Relational Model of Data for Large Shared Data Banks" na revista "Communications

Leia mais

Oracle Database: Fundamentos de SQL e PL/SQL

Oracle Database: Fundamentos de SQL e PL/SQL Oracle University Contact Us: 0800 891 6502 Oracle Database: Fundamentos de SQL e PL/SQL Duration: 5 Days What you will learn Este curso apresenta os fundamentos de SQL e PL/SQL e as vantagens das linguagens

Leia mais

Manipulando a base de dados

Manipulando a base de dados Manipulando a base de dados Uma base de dados pode ser manipulada com quatro operações básicas: Incluir, Apagar, Alterar e Pesquisar. Vale lembrar que como toda linguagem para computadores, o MySQL tem

Leia mais

Banco de Dados. Prof. Antonio

Banco de Dados. Prof. Antonio Banco de Dados Prof. Antonio SQL - Structured Query Language O que é SQL? A linguagem SQL (Structure query Language - Linguagem de Consulta Estruturada) é a linguagem padrão ANSI (American National Standards

Leia mais

Utilizando o Postgres - comandos SQL para a manipulação de dados

Utilizando o Postgres - comandos SQL para a manipulação de dados Utilizando o Postgres - comandos SQL para a manipulação de dados SELECT A declaração SELECT é utilizada para selecionar os dados de um banco de dados. SELECT nome FROM clientes WHERE A cláusula WHERE é

Leia mais

José Antônio da Cunha

José Antônio da Cunha José Antônio da Cunha CEFET-RN Natal, 10 de maio de 2013 Auditando operações DML com OUPUT Imagine o seguinte cenário: você possui uma tabela muito importante em seu banco de dados e gostaria de implantar

Leia mais

Structured Query Language (SQL)

Structured Query Language (SQL) SQL Histórico Structured Query Language (SQL) Foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation Language) para suas primeiras tentativas

Leia mais

Introdução em Banco de Dados

Introdução em Banco de Dados Introdução em Banco de Dados Aula07 ComandosSQLeMySQL Prof: Franciel MySQL é um banco de dados cliente servidor gratuito É simples, tem alto desempenho, é disponível para várias plataformas e é robusto

Leia mais

Fundamentos de Banco de Dados Postgre com Sql

Fundamentos de Banco de Dados Postgre com Sql Fundamentos de Banco de Dados Postgre com Sql Prof. Luiz Claudio Ferreira de Souza Prof. Luiz Claudio F. de Souza 1 Obtenha os Slids no endereço www.luizclaudiofs.blogspot.com Prof. Luiz Claudio F. de

Leia mais

26/04/2017 Triggers no SQL Server: teoria e prática aplicada em uma situação real

26/04/2017 Triggers no SQL Server: teoria e prática aplicada em uma situação real www.devmedia.com.br [versão para impressão] Link original: http://www.devmedia.com.br/articles/viewcomp.asp?comp=28194 Triggers no SQL Server: teoria e prática aplicada em uma situaçã o real Veja neste

Leia mais

SQL Linguagem de Manipulação de Dados SQL DML SQL DML. Exemplo Modelo Relacional. Exemplo ME-R SQL DML CONTINUAÇÃO...

SQL Linguagem de Manipulação de Dados SQL DML SQL DML. Exemplo Modelo Relacional. Exemplo ME-R SQL DML CONTINUAÇÃO... Ciência da Computação GBC043 Sistemas de Banco de Dados SQL Linguagem de Manipulação de Dados Profa. Maria Camila Nardini Barioni camila.barioni@facom.ufu.br Bloco B - sala 1B137 SQL DML CONTINUAÇÃO...

Leia mais

Pesquisas em Tabelas

Pesquisas em Tabelas Projeto e Administração de Banco de Dados Pesquisas em Tabelas Objetivo Nesta unidade você vai estudar sobre pesquisas em linguagem SQL incluindo comandos de junção de tabelas. Introdução Agora que temos

Leia mais

Fundamentos de SQL. Curso: Técnico em Redes de Computadores Disciplina: Tecnologias e Linguagem de Banco de dados Professor: Rodrigo da Rocha

Fundamentos de SQL. Curso: Técnico em Redes de Computadores Disciplina: Tecnologias e Linguagem de Banco de dados Professor: Rodrigo da Rocha Fundamentos de SQL Curso: Técnico em Redes de Computadores Disciplina: Tecnologias e Linguagem de Banco de dados Professor: Rodrigo da Rocha SQL - Introdução SQL-Structured Query Language (Linguagem de

Leia mais

Banco de Dados. Prof. Dr. Joel da Silva SQL - Introdução

Banco de Dados. Prof. Dr. Joel da Silva SQL - Introdução 1 Banco de Dados Prof. Dr. Joel da Silva SQL - Introdução 2 SQL - Introdução SQL-Structured Query Language (Linguagem de Consulta Estruturada) Apesar do QUERY, não é apenas de consulta (inclusão, alteração,...)

Leia mais

TLBD II Instruções SQL

TLBD II Instruções SQL TLBD II Instruções SQL Os comandos SQL podem dividir-se em três grandes categorias: DML - Data Manipulation Language - trabalha com linhas; DDL - Data Definition Language - trabalha com objetos; DCL -

Leia mais

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 17. Escola Politécnica da Universidade de São Paulo

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 17. Escola Politécnica da Universidade de São Paulo PCS3413 Engenharia de So-ware e Banco de Dados Aula 17 Escola Politécnica da Universidade de São Paulo 1 SQL STRUCTURED QUERY LANGUAGE Manipulação de dados operações de modificam o estado das tabelas:

Leia mais

Revisão de Bancos de Dados

Revisão de Bancos de Dados Revisão de Bancos de Dados Conceitos Básicos 1. Defina o que é um banco de dados e o que é um sistema gerenciador de bancos de dados (SGBD). 2. Defina as arquiteturas de software em duas camadas (cliente/servidor)

Leia mais

Escola Secundária de Albufeira. Comandos MySQL. (Páginas Web Dinâmicas: PHP e MySQL) Carlos Nunes

Escola Secundária de Albufeira. Comandos MySQL. (Páginas Web Dinâmicas: PHP e MySQL) Carlos Nunes Escola Secundária de Albufeira Comandos MySQL (Páginas Web Dinâmicas: PHP e MySQL) (csmnunes@gmail.com) 2009/2010 Criar Base de Dados CREATE DATABASE basededados; Apagar Base de Dados DROP DATABASE basededados;

Leia mais

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Introdução à Banco de Dados. Nathalia Sautchuk Patrício Introdução à Banco de Dados Nathalia Sautchuk Patrício Histórico Início da computação: dados guardados em arquivos de texto Problemas nesse modelo: redundância não-controlada de dados aplicações devem

Leia mais

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita: SQL Laboratório de Computação para Ciências Módulo II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional em Ensino

Leia mais

S U B G R U P O S D M L E D Q L : A L T E R A N D O E A P A G A N D O D A D O S E M U M A T A B E L A

S U B G R U P O S D M L E D Q L : A L T E R A N D O E A P A G A N D O D A D O S E M U M A T A B E L A BANCO DE DADOS GERENCIAL 1 A U L A 4 S U B G R U P O S D M L E D Q L : A L T E R A N D O E A P A G A N D O D A D O S E M U M A T A B E L A INDEPENDÊNCIA DOS DADOS A habilidade de modificar a definição

Leia mais

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Manipulação de Dados Banco de Dados SQL DML SELECT... FROM... WHERE... lista atributos de uma ou mais tabelas de acordo com alguma condição INSERT INTO... insere dados em uma tabela DELETE

Leia mais

Preparação. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 10/12/2013

Preparação. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 10/12/2013 Linguagem de Manipulação de Dados (DML) Estudo Dirigido A Linguagem SQL Preparação Criar um banco de dados denominado Escola ; Criar a tabela, como especificado abaixo: # RA Numeric(8) Nome Serie Turma

Leia mais

BANCO DE DADOS PARA NINJAS

BANCO DE DADOS PARA NINJAS BANCO DE DADOS PARA NINJAS PARANGABA RONNISON REGES VIDAL Ceará, 25 de Outubro de 2016 ROTEIRO l Conhecimento Pra que usar? Ferramentas SGBD's Consultas (Jutsu) Linguagem de Consulta PRA QUE USAR? PRA

Leia mais

Mysql. Quanto mais informações você busca, mais você evolui. Vitor Ramos. Disciplina de Banco de Dados

Mysql. Quanto mais informações você busca, mais você evolui. Vitor Ramos. Disciplina de Banco de Dados Mysql Quanto mais informações você busca, mais você evolui. Vitor Ramos SQL Structured Query Language - Linguagem de Consulta Estruturada Desenvolvida pela IBM, nos anos 70; Inicialmente chamada SEQUEL

Leia mais

Preparação criar tabela. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 12/11/2018

Preparação criar tabela. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 12/11/2018 Linguagem de Manipulação de Dados (DML) Estudo Dirigido A Linguagem SQL Preparação criar tabela Criar um novo arquivo de banco de dados chamado Escola Criar a tabela, como especificado abaixo: Create table

Leia mais

Modelagem Física e SQL

Modelagem Física e SQL Programação em Banco de Dados - Parte 1 Modelagem Física e SQL Prof. Pablo Passos prof.pablo.passos@gmail.com SQL - Um modelo físico é gerado a partir de um modelo lógico já construído. A geração dos objetos

Leia mais

MySql. Introdução a MySQL. Andréa Garcia Trindade

MySql. Introdução a MySQL. Andréa Garcia Trindade MySql Introdução a MySQL Andréa Garcia Trindade Introdução O que é Banco de Dados SGBD MYSQL Tipos de Tabelas Tipos de Dados Linguagem SQL Comandos SQL O que é um Banco de Dados? Conjuntos de dados Grupo

Leia mais

mod._1_teoria_sistemas de bancos de dados.doc

mod._1_teoria_sistemas de bancos de dados.doc SISTEMAS DE BANCOS DE DADOS Os Sistemas de Bancos de Dados apareceram para acabar com os problemas e desvantagens dos tradicionais Sistemas de Processamento de Arquivos, onde os registros permanentes eram

Leia mais

SQL BÁSICO. Luiz Antônio Vivacqua Corrêa Meyer

SQL BÁSICO. Luiz Antônio Vivacqua Corrêa Meyer SQL BÁSICO Luiz Antônio Vivacqua Corrêa Meyer SQL (Structured Query Language) Início na década de 70 pela IBM com o nome de SEQUEL. Em 1980 o produto mudou seu nome para SQL. American National Standards

Leia mais

Oracle Database 10g: Fundamentos de SQL e PL/SQL

Oracle Database 10g: Fundamentos de SQL e PL/SQL Oracle University Contact Us: 0-800-167225 Oracle Database 10g: Fundamentos de SQL e PL/SQL Duration: 5 Dias O que é que gostaria de aprender Conheça os fundamentos de SQL e PL/SQL usando o SQL Developer

Leia mais

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL SQL TGD/JMB 1 Projecto de Bases de Dados Linguagem SQL SQL TGD/JMB 2 O que é o SQL? SQL ("ess-que-el") significa Structured Query Language. É uma linguagem standard (universal) para comunicação com sistemas

Leia mais

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO Disciplina: Banco de Dados I Professor: Prof. Me. Everton

Leia mais

A linguagem SQL

A linguagem SQL SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão recebeu o nome de

Leia mais

Comandos de Manipulação

Comandos de Manipulação SQL - Avançado Inserção de dados; Atualização de dados; Remoção de dados; Projeção; Seleção; Junções; Operadores: aritméticos, de comparação,de agregação e lógicos; Outros comandos relacionados. SQL SQL

Leia mais

Linguagem de Consulta Estruturada SQL- DML

Linguagem de Consulta Estruturada SQL- DML Linguagem de Consulta Estruturada SQL- DML INTRODUÇÃO A SQL - Structured Query Language, foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation

Leia mais

LINGUAGEM SQL Linguagem usada em SGBD para: Definir estrutura de dados; Modificar dados em um banco de dados; Especificar restrições de segurança; Rea

LINGUAGEM SQL Linguagem usada em SGBD para: Definir estrutura de dados; Modificar dados em um banco de dados; Especificar restrições de segurança; Rea BANCO DE DADOS Prof. Fabiano Taguchi http://fabianotaguchi.wordpress.com fabianotaguchi@hotmail.com SQL A Structed Query Language foi desenvolvida em 1974 nos laboratório da IBM em San José na Califórnia,

Leia mais

PHP INTEGRAÇÃO COM MYSQL PARTE 1

PHP INTEGRAÇÃO COM MYSQL PARTE 1 INTRODUÇÃO PHP INTEGRAÇÃO COM MYSQL PARTE 1 Leonardo Pereira leonardo@estudandoti.com.br Facebook: leongamerti http://www.estudandoti.com.br Informações que precisam ser manipuladas com mais segurança

Leia mais

Técni n c i as e L i L n i g n u g age g ns n p ara r Ba B nc n o d e D ados I ACCESS

Técni n c i as e L i L n i g n u g age g ns n p ara r Ba B nc n o d e D ados I ACCESS Técnicas e Linguagens para Banco de Dados I ACCESS Criando um Banco de Dados 1 2 3 4 5 6 7 8 Tipos de Relações existentes nos Bancos de Dados Relacionamentos 1 1 Um para Um : neste tipo de Relação,

Leia mais

Tarefa Orientada 17 Scripts

Tarefa Orientada 17 Scripts Tarefa Orientada 17 Scripts Objectivos: Declaração de variáveis escalares Declaração de variáveis do tipo tabela Tabelas temporárias Estruturas Condicionais Estruturas de Repetição Tratamento de erros

Leia mais

SISTEMAS DE INFORMAÇÃO

SISTEMAS DE INFORMAÇÃO Prof. Rhyan Ximenes SISTEMAS DE INFORMAÇÃO Disciplina: Banco de Dados II E x c e l ê n c i a n o s e u f u t u r o fluci anofei j ao.com. br Semest r e: º Turma: 02 Turno: Noite Dat a: 21/06/13 Not a:

Leia mais

Bancos (Bases) de Dados

Bancos (Bases) de Dados Bancos (Bases) de Dados Aula #8 SQL Prof. Eduardo R. Hruschka * Slides baseados no material elaborado pelas professoras: Cristina D. A. Ciferri Elaine P. M. de Souza SQL (Structured Query Language) Linguagem

Leia mais

Banco de Dados. Marcio de Carvalho Victorino www.dominandoti.eng.br. Exercícios SQL

Banco de Dados. Marcio de Carvalho Victorino www.dominandoti.eng.br. Exercícios SQL Banco de Dados Exercícios SQL 1 TRF (ESAF 2006) 32. Analise as seguintes afirmações relacionadas a Bancos de Dados e à linguagem SQL: I. A cláusula GROUP BY do comando SELECT é utilizada para dividir colunas

Leia mais

Introdução ao PostgreSQL

Introdução ao PostgreSQL Introdução ao PostgreSQL Fontes Karine Reis Ferreira karine@dpi.inpe.br Gilberto Câmara gilberto@dpi.inpe.br Gilberto Ribeiro de Queiroz gribeiro@dpi.inpe.br Marcos André Gonçalves - UFMG Parte 3 Aula

Leia mais

Sumário SELECT + FROM

Sumário SELECT + FROM Sumário 1 Introdução SQL - Perguntas André Restivo Faculdade de Engenharia da Universidade do Porto October 18, 2010 2 3 Operadores de Conjuntos 4 5 Agregações 6 Ordenações e Limites 7 Sub-perguntas 8

Leia mais

Linguagem SQL (Parte I)

Linguagem SQL (Parte I) Universidade Federal de Sergipe Departamento de Sistemas de Informação Itatech Group Jr Softwares Itabaiana Site: www.itatechjr.com.br E-mail: contato@itatechjr.com.br Linguagem SQL (Parte I) Introdução

Leia mais

Unidade 5 05/11/2008. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Redes de Computadores

Unidade 5 05/11/2008. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Redes de Computadores Faculdade INED Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Redes de Computadores Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan 1 Unidade 5 5.1 Conceitos do projeto físico.

Leia mais

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível

Leia mais

Projeto de Banco de Dados

Projeto de Banco de Dados Projeto de Banco de Dados Laboratório de Banco de Dados Prof. Luiz Antônio Vivacqua C. Meyer (luiz.vcm@gmail.com) Sintaxe Geral SELECT [ALL/DISTINCT] coluna1, coluna2,..., colunan FROM nome_tabela1, nome_tabela2,...,

Leia mais

Linguagem de Consulta Estruturada (SQL)

Linguagem de Consulta Estruturada (SQL) Linguagem de Consulta Estruturada (SQL) SQL SQL (Structured Query Language), ou Linguagem de Consulta Estruturada. Usada em Bancos de Dados Relacionais. É padronizada (SQL ANSI). ANSI (American National

Leia mais

SQL - Perguntas. André Restivo. Faculdade de Engenharia da Universidade do Porto. February 24, 2012

SQL - Perguntas. André Restivo. Faculdade de Engenharia da Universidade do Porto. February 24, 2012 SQL - Perguntas André Restivo Faculdade de Engenharia da Universidade do Porto February 24, 2012 André Restivo (FEUP) SQL - Perguntas February 24, 2012 1 / 46 Sumário 1 Introdução 2 Seleccionar e Filtrar

Leia mais

Modelagem Física e SQL

Modelagem Física e SQL Programação em Banco de Dados - Parte 1 Modelagem Física e SQL Prof. Pablo Passos prof.pablo.passos@gmail.com SQL - Um modelo físico é gerado a partir de um modelo lógico já construído. A geração dos objetos

Leia mais

edsoncs@gmail.com www.linkedin.com/in/edsonhu Agenda Banco de Dados Relacional Modelo Descritivo Modelo Conceitual Modelo Lógico Arquitetura Cliente/Servidor Componentes SQL Server Management Studio (SSMS)

Leia mais

Oracle Database 11g: Introdução à Linguagem SQL Novo

Oracle Database 11g: Introdução à Linguagem SQL Novo Oracle University Contact Us: 0800 891 6502 Oracle Database 11g: Introdução à Linguagem SQL Novo Duration: 5 Days What you will learn Neste curso, os alunos aprendem os conceitos de bancos de dados relacionais.

Leia mais

P R O F. M E. H É L I O E S P E R I D I Ã O. Eng. Computação

P R O F. M E. H É L I O E S P E R I D I Ã O. Eng. Computação P R O F. M E. H É L I O E S P E R I D I Ã O Eng. Computação BANCO DE DADOS Podemos entender por banco de dados qualquer sistema que reúna e mantenha organizada uma série de informações relacionadas a um

Leia mais

Aula 06 Sistemas Embarcados LT38C

Aula 06 Sistemas Embarcados LT38C Aula 06 Sistemas Embarcados LT38C Prof. Lucas Ricken Garcia 2017/1 Introdução a Banco de Dados Coleção de dados relacionados. Fatos conhecidos que podem ser registrados e possuem significado implícito.

Leia mais

INTRODUÇÃO AO MYSQL PROF. ME. HÉLIO ESPERIDIÃO

INTRODUÇÃO AO MYSQL PROF. ME. HÉLIO ESPERIDIÃO INTRODUÇÃO AO MYSQL PROF. ME. HÉLIO ESPERIDIÃO HeidiSQL É um programa que permite acessar o SGDB Mysql. Pode ser adquirido gratuitamente na internet. Não é necessário instalar. Possui versão portável.

Leia mais

Projeto e Administração de Banco de Dados

Projeto e Administração de Banco de Dados Projeto e Administração de Banco de Dados Linguagens de Definição de Manipulação de Dados Objetivo Nesta unidade você vai estudar sobre a linguagem SQL e os principais comandos para definição e manipulação

Leia mais

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível de independência do

Leia mais

Tarefa Orientada 8 Criação de tabelas

Tarefa Orientada 8 Criação de tabelas Tarefa Orientada 8 Criação de tabelas Objectivos: Iniciar o MS SQL Server Manegement Studio Criar tabelas Especificar tipos de dados Definir restrições Alterar as definições de uma tabela Eliminar uma

Leia mais

PTR 2580 / PTR5919 Sistemas Inteligentes de Transportes (ITS)

PTR 2580 / PTR5919 Sistemas Inteligentes de Transportes (ITS) PTR 2580 / PTR5919 Sistemas Inteligentes de Transportes (ITS) ATIVIDADE PRÁTICA 1 (Lab_ITS_01) Laboratório de Sistemas Gerenciadores de Bancos de Dados DOCENTE Prof. Dr. Claudio Luiz Marte ROTEIRO Letícia

Leia mais

O modelo relacional encontra-se padronizado pela indústria de informática. Ele é chamado de

O modelo relacional encontra-se padronizado pela indústria de informática. Ele é chamado de Introdução O modelo relacional encontra-se padronizado pela indústria de informática. Ele é chamado de padrão SQL (Structured Query Language). O padrão SQL define precisamente uma interface SQL para a

Leia mais

A U L A 1 0 C R I A N D O V I E W S V I E W S ( V I S Õ E S )

A U L A 1 0 C R I A N D O V I E W S V I E W S ( V I S Õ E S ) BANCO DE DADOS GERENCIAL 1 A U L A 1 0 C R I A N D O V I E W S V I E W S ( V I S Õ E S ) VIEW é uma instrução SQL que retorna dados e é salva no banco de dados com um nome, ou seja, passa a ser um objeto

Leia mais