Select

Embed Size (px)

DESCRIPTION

c

Citation preview

SQL - Structured Query Language

SQL - Structured Query Language

1 Viso Geral de um Banco de Dados RelacionalTodos os dados de um banco de dados relacional so armazenados e exibidos em tabelas, as quais contm informaes a respeito de alguma coisa, ou entidade. As colunas da tabela contm informaes sobre os atributos destas entidades, cada linha armazena as informaes sobre os atributos de uma entidade em particular.

Todas as tabelas tm que ter uma chave primria, que deve ser uma coluna (ou grupo de colunas) baseada em um atributo identificador de uma linha. A funo da chave distinguir univocamente as linhas da tabela uma das outras.

Os sistemas relacionais possuem trs caractersticas importantes em comum: o usurio pode selecionar dados de apenas algumas colunas, algumas linhas, ou dados de mais de uma tabela ao mesmo tempo.

2 A Linguagem SQLSQL uma linguagem prpria para a realizao de operaes relacionais, ela gerencia um sistema relacional. Atravs de declaraes SQL, dados so recuperados, atualizados ou eliminados, colunas so alteradas, tabelas so criadas e eliminadas, e quaisquer outras modificaes so feitas na estrutura de um banco de dados.

Sua declaraes podem ser subdivididas em: queries, definio de dados, manipulao de dados e controle de dados.

Queries: recuperam dados de uma tabela do banco de dados. Nelas identificamos as tabelas, colunas e linhas, e o banco de dados nos fornece os dados especificados.

Definio de dados: determinam a estrutura do banco de dados. Criam, alteram ou eliminam componentes estruturais, como tabelas, vises e ndices.

Manipulao de dados: alteram o contedo do banco de dados incluindo novos dados, atualizando os existentes ou excluindo linhas.

Controle de dados: cadastram outros usurios ou determinam nveis de autoridade e privilgios para as tabelas e vises do banco de dados.

3 Queries3.1 Elementos Bsicos de uma Query: As Clusulas SELECT e FROMPor mais bsica que seja uma query, ela tem que ter pelo menos dois componentes (clusulas SELECT e FROM). Onde a clusula SELECT enumera os nomes das colunas desejadas, e a FROM especifica em quais tabelas as colunas esto.

O resultado da query exibido em forma de tabela e , s vezes, chamado de tabela-resultado. As linhas do resultado representam os dados que atendem as condies estabelecidas ou so o produto das operaes especificadas na query. Se no houver dados em nenhuma destas duas situaes, no sero selecionadas as linhas.

Supondo uma tabela Lista_de_Alunos da seguinte maneira:

Nome TermoCursoR.A. Ano Entrada

Marcos Scheide 1 BCC 01.0894.4 2001

Luiz Pereira 1 BCC 01.0670.5 2001

Marcelo Tizziane 3 BCC 01.0678.2 2000

Jos da Silva 5 BSI 99.4562.7 1999

Tabela1Se aplicarmos a seguinte SQL:

SELECT Nome, Termo, Curso

FROM Lista_de_Alunos

Teremos a seguinte tabela-resultado:

Nome TermoCurso

Marcos Scheide 1 BCC

Luiz Pereira 1 BCC

Marcelo Tizziane 3 BCC

Jos da Silva 5 BSI

Tabela2Resumidamente, conclumos que uma query, com apenas uma clusula SELECT e uma FROM, tem basicamente o formato:

Para todas as linhas,

SELECT o valor destas expresses

FROM estas tabelas.

Obs.: Podemos usar um asterisco (*) junto com a clusula SELECT para selecionarmos todas as colunas de uma tabela:

SELECT *

FROM Lista_de_Alunos

Esta SQL exibir a tabela-resultado com todos dados da tabela. 3.2 Restringindo a Query: A Clusula WHEREA clusula WHERE reduz o escopo da query focalizando apenas determinadas linhas. Uma query com a clusula WHERE retorna apenas os valores das linhas que atendam s condies especificadas na clusula WHERE. Podemos definir o formato de uma query com a clusula WHERE deste modo:

SELECT o valor destas expresses

FROM estas tabelas

Somente nas linhas WHERE estas condies foram atendidas.

As condies da clusula WHERE so chamadas de condies de pesquisa.

Por exemplo, se aplicarmos a seguinte query na tabela Lista_de_Alunos:

SELECT Nome, Curso

FROM Lista_de_Alunos

WHERE Curso = BCC;

Teremos a seguinte tabela-resultado:

Nome Curso

Marcos Scheide BCC

Luiz Pereira BCC

Marcelo Tizziane BCC

Tabela3O nome do curso BCC deve ser digitado entre apstrofes na query, pois uma seqncia de caracteres (se fosse nmero no usaria). Alm disso, deve ser digitado da maneira que se encontra na tabela. Se voc digitasse Bcc, no seria retornada nenhuma linha da tabela, pois a query diferencia letras maisculas de minsculas.

Na clusula WHERE, no necessrio citar somente colunas que apaream na clusula SELECT. A query anterior funcionaria do mesmo modo se fosse digitada assim:

SELECT Nome

FROM Lista_de_Alunos

WHERE Curso = BCC;

Porm no seria exibida a coluna Curso:

Nome

Marcos Scheide

Luiz Pereira

Marcelo Tizziane