fundamentos de sql - parte 1 de 8
DESCRIPTION
Apresentação 1 de uma sério de 8 do Curso de Extensão de Fundamentos de SQL do Centro Universitário UNA. Belo Horizonte - Minas Gerais, BrasilTRANSCRIPT
Fundamentos de SQL
Microsoft SQL Server 2005
Curso de curta duração
Emiliano Eloi <[email protected]>
1
Objetivos
• Ser capaz se fazer intervenções nos dados de bancos de dados que utilizem esta linguagem.– Definições das bases de dados.– Manipulação dos dados.– Recuperação dos dados.
• Compreender Diagrama de Entidade-Relacionamento (DER).
• Pensar em SQL.
2
Lista de Verificação
Micro computado ligado.Teclado e mouse.Autenticação no Windows. Internet Explorer funcionando.Microsoft SQL Server Management
Studio.
3
Para estudar
http://msdn.microsoft.com/pt-br/express/aa718378.aspx
4
Conteúdo• Definição de dados
– CREATE TABLE, ALTER TABLE
• Manipulação de dados– INSERT, UPDATE, DELETE
• Transações– COMMIT, ROLLBACK
• Funções– SUBSTRING, GETDATE
• Recuperação de dados– SELECT, JOIN
• Conceitos básicos Banco de Dados, Entidade-Relacionamento e SGDB. 5
Cláusula SELECT
Cada expressão da cláusula SELECT se transforma em uma coluna no conjunto de resultados retornados pela consulta. As expressões podem ser nomes simples de colunas, podem gerar um novo valor usando um valor de coluna como entrada ou podem não ter nada haver com nenhuma coluna. A cláusula SELECT especifica os elementos de dados individuais que você quer que a sentença retorne.
6
Cláusula SELECT - Usando
SELECT ID_ALUNO, NM_NOME_ALUNO, NM_EMAIL_ALUNO, NM_PSS_ALUNO
7
Cláusula FROM
Use a cláusula FROM para especificar a fonte dos dados que você quer recuperar. O caso mais simples é se especificar uma única tabela ou visualização na cláusula FROM de uma sentença SELECT
8
Cláusula FROM - Usando
SELECT ID_ALUNO, NM_NOME_ALUNO, NM_EMAIL_ALUNO, NM_PSS_ALUNO
FROM TBL_ALUNOS
9
Cláusula WHERE
Use a cláusula WHERE para restringir os resultados da query a somente aquelas linhas de interesse. Raramente você ira querer todas as linhas de uma tabela. Na maioria das vezes você querer as linhas que atendam a um critério especifico.
10
Cláusula WHERE - Usando
SELECT ID_ALUNO, NM_NOME_ALUNO, NM_EMAIL_ALUNO, NM_PSS_ALUNO
FROM TBL_ALUNOSWHERE NM_PSS_ALUNO = 'BRIGIDAROES'
11
Comando USE
Altera o contexto de banco de dados para o banco de dados especificado.
USE DB_ESCOLINHA
12
Comentário
Os comentários são importantes para identificar cada instrução e dar sentido na sua utilização.
-- Comentário de uma linha/*Comentário de inúmeraslinhas*/
13
Networking
Vamos fazer negócio?
14
Exercícios
1) A tabela de origem dos dados é especificada na cláusula SELECT? Justifique.2) É natural precisar retornar 100% dos dados de uma tabela?3) Busque seus dados da Base de dados.
1) Base de dados: DB_ESCOLINHA2) Tabela: TBL_ALUNOS3) Colunas: ID_ALUNO, NM_NOME_ALUNO
15
Predicado
Predicados são condições que se escreve na clausula WHERE (também nas cláusulas ON e HAVING) de uma sentença de SQL que determinam que registros são afetadas ou retornadas por essa sentença.
O Predicado
NM_NOME_ALUNO = 'Emiliano Eloi'
retorna somente os dados do aluno específico.
16
Predicado - LIKE
Os predicados LIKE e NOT LIKE lhe oferecem recursos básicos de reconhecimento de padrões. Você pode usar os caracteres por cento (%) e sublinhado (_) para o reconhecimento de qualquer numero de caracteres ou qualquer caractere específico, respectivamente. Para encontrar todos os pais que contêm no seu nome 'Silva', especifique:
17
Predicado – LIKE – Usando
SELECT ID_PAI, NM_NOME_PAI, NM_EMAIL_PAI, NM_PSS_PAI
FROM TBL_PAIS WHERE NM_SOBRENOME_PAI LIKE '%Silva%‘
Maria Aparecida da Silva DuarteTatiane Silva BarbosaSilva e Souza Amanda Almeida
18
Predicado – LIKE – Usando
Para encontrar todas os pais que possui o primeiro nome 'Maria', especifique:SELECT ID_PAI,
NM_NOME_PAI, NM_EMAIL_PAI, NM_PSS_PAI
FROM TBL_PAIS WHERE NM_NOME_PAI LIKE ‘Maria%'Maria Aparecida da Silva DuarteTatiane Maria BarbosaSilva e Souza Amanda Almeida
19
Predicado – LIKE – Usando
Para encontrar todos os pais que possui o '230' nos três últimos dígitos do CEP, especifique:SELECT ID_PAI,
NM_NOME_PAI, NM_EMAIL_PAI, NM_PSS_PAI
FROM TBL_PAIS WHERE NM_CEP_PAI LIKE '%230‘307302303073023530630230 30750444
20
Predicado – LIKE – Usando
Ou ainda, use:SELECT ID_PAI,
NM_NOME_PAI, NM_EMAIL_PAI, NM_PSS_PAI
FROM TBL_PAIS WHERE NM_CEP_PAI LIKE ‘______230‘307302303073023530630230 30750444
21
Transações
Uma transação é um conjunto de operações tratado como uma unidade. Ou todas as operações que compõem a unidade são concluídas ou nenhuma delas é.
22
Transações – Usando
Iniciar a transação
BEGIN TRANSACTION DEMOSTRACAO
Tornar a transação permanente. Confirmar a transação.
COMMIT TRANSACTION DEMOSTRACAO
Voltar a transação, abortar.
ROLLBACK TRANSACTION DEMOSTRACAO23
Tratamento de Erro
Um grupo de instruções pode ser incluído em um bloco TRY. Se ocorrer um erro no bloco TRY, o controle passará para outro grupo de instruções que está incluído em um bloco CATCH.
BEGIN TRYSELECT NM_CEP_ALUNO FROM TBL_ALUNOS
END TRYBEGIN CATCH
PRINT 'Houve um erro'END CATCH 24
Cláusula INSERT
Use a sentença INSERT para inserir novos registros em uma tabela. Os valores na cláusula VALUES correspondem às colunas listadas após o nome da tabela:
INSERT INTO TBL_DISCIPLINAS (ID_DISCIPLINA,NM_NOME_DISCIPLINA)VALUES (5, 'Educação Física')
25
ExemploUSE DB_ESCOLINHABEGIN TRY
BEGIN TRANSACTION INSERIR_ALUNO-- INSERIR MÃEINSERT INTO TBL_PAIS (ID_PAI, NM_NOME_PAI, NM_SOBRENOME_PAI,
NM_PSS_PAI, NM_CEP_PAI)VALUES (10,'Tatiane','Silva', 'TATIANESILV','30730-230')-- INSERIR ALUNOINSERT INTO TBL_ALUNOS
(ID_ALUNO, NM_NOME_ALUNO, NM_SOBRENOME_ALUNO, NM_PSS_ALUNO, NM_CEP_ALUNO)VALUES (10,'Tatiane','Silva', 'TATIANESILV','30730-230')COMMIT TRANSACTION INSERIR_ALUNOPRINT 'INSERIDO COM SUCESSO!'
END TRYBEGIN CATCH
ROLLBACK TRANSACTION INSERIR_ALUNOPRINT 'HOUVE UM ERRO NA INSERSAO!'PRINT ERROR_MESSAGE()
END CATCH 26
SEQUEL
História do SQL começa em 1970 com a publicação por E. F. Codd, no ACM Journal, de um artigo intitulado “A RelationalModel of Data for Large Shared Data Banks”. O modelo proposto por Codd é hoje considerado a base de trabalho para qualquer Sistema de Gestão de Base de Dados Relacional (SGBDR).A primeira implementação da linguagem SEQUEL foi realizada pela IBM e tinha por objetivo a implementação do modelo de Codd. A evolução desta linguagem veio a dar origem ao SQL.A primeira implementação comercial de SQL foi realizada pela Relational Software, Inc., hoje conhecida por Oracle Corporation.Nos dias de hoje, a linguagem SQL é considerada um standard dos Sistemas de Gestão de Base de Dados Relacionais (SGBDR); por isso, todos os fabricantes a integram nos seu produtos.
27
O dialeto
O Transact-SQL é central para usar o SQL Server. Todos os aplicativos que se comunicam com uma instância do SQL Server o fazem enviando instruções Transact-SQL ao servidor, independentemente da interface do usuário do aplicativo.
28
Banco de Dados
Os bancos de dados são ferramentas desenvolvidas com a finalidade de ajudar a organizar e recuperar dados de forma eficiente. Seu conceito não está diretamente vinculado a informática ou a qualquer meio eletrônico. Desse modo pode-se dizer que uma agenda, uma lista telefônica ou até uma enciclopédia são um banco de dados, pois a informação armazenada nesses meios está organizado e pode ser facilmente recuperada. utilizando essa mesma linha de raciocínio, não se poderia classificar um romance, por exemplo, como um banco de dados, pois a informação contida em uma romance, como as falas dos personagens, não pode ser facilmente recuperadas e não está armazenada de forma organizada.
29