select avançados
Bom dia.
Gente eu preciso aprender select avançado, para poder trabalhar em uma empresa de alimentos, onde dentro do select presicar ter relatorios com datas e somas.
Eu faço o curso Sistemas para Internet estou no 4º semestre, dei banco de dados no 3º semestre, mas estudei mais o basico, criação de tabela, select simplis.
Tem como vcs me ajudarem?
Thiane Rocha
Curtidas 0
Respostas
Milton França
16/09/2010
Bom dia Thiane, me diga primeiro o que é pra vc um SELECT simples, tem como vc colocar um exemplo pra eu saber apartir de qual ponto posso te ajudar?
GOSTEI 0
Thiane Rocha
16/09/2010
select * from cadastro where Nome = joao and endereço = rua jose
select * from vendas where compra <2 and numero = 1
é esse tipo de select que eu eu sei, com atualizar, deletar, apagar essas coisas.
mas o seletc avanço sei quase nada.
Obrigada pela sua atenção.
GOSTEI 0
Wilson Junior
16/09/2010
De uma olhada neste link http://ultradownloads.uol.com.br/download/Apostila-de-SQL-Server/
Tem uma apostila bem explicativa.
Espero ter colaborado.
Tem uma apostila bem explicativa.
Espero ter colaborado.
GOSTEI 0
Thiane Rocha
16/09/2010
Valeu Wilson.
Vou dar uma olhadinha depois darei o retorno.
Bjus
GOSTEI 0
Milton França
16/09/2010
Vamos começar da forma mais simples até atingirmos um nível mais complexo:
Lista de colunas da cláusula SELECT
Ex. 1 Recuperar o nome dos alunos de cada curso e nome do curso
SELECT Aluno.Nome, Curso.Nome FROM Aluno, Curso
WHERE Aluno.CodCurso = Curso.CodCurso
Na Cláusula WHERE estou adicionando a condição para garantir que os alunos mostrados tem alguma referencia de algum curso (no caso CodCurso) da tabela Curso.
Lista dos Alunos aprovados e o uso de Literal como coluna
Ex. 2
SELECT A.Nome As 'Aluno', 'Aprovado' As 'Situação' FROM Aluno A, Turma T
WHERE A.Num_Matricula = T.Num_Matricula AND T.media >= 7
A Cláusula WHERE permite mostrar os alunos que tem matrícula e o operador lógico AND vai garantir a exibição somente dos alunos que além de ter matrícula terá que ter média igual ou superior que 7.
Observe que neste exemplo estou alterando os nomes dos cabeçalhos das colunas.
Mostrar nome o dia e mes de nascimento dos alunos
SELECT Nome, DAY(DataNascimento) As 'Dia', MONTH(DataNascimento) As 'Mês' FROM Aluno
WHERE CodCurso = 111
Neste caso a cláusula WHERE filtrará o resultado mostrando apenas os alunos que estão no determinado curso.
veja se está sendo útil, daí eu continuarei... té mais
GOSTEI 0
Thiane Rocha
16/09/2010
Nilton
esse 'AS" é do comando mesmo do sql?
ex:
SELECT Nome, DAY(DataNascimento) As 'Dia', MONTH(DataNascimento) As 'Mês' FROM Aluno
WHERE CodCurso = 111
GOSTEI 0
Eriley Barbosa
16/09/2010
Thiane esse as pode ser suprimido:
SELECT Nome, DAY(DataNascimento) Dia, MONTH(DataNascimento) Mes FROM Aluno
WHERE CodCurso = 111
GOSTEI 0
Ader Santos
16/09/2010
Nilton
esse 'AS" é do comando mesmo do sql?
ex:
SELECT Nome, DAY(DataNascimento) As 'Dia', MONTH(DataNascimento) As 'Mês' FROM Aluno
WHERE CodCurso = 111
Thiane o 'AS' é um comando do SQL para nomear o resultado de uma expressão. Neste exemplo quando aparecer o resultado deste SELECT, na expressão DAY(DataNascimento) o título da coluna vai ser 'Dia", e da expressão MONTH(DataNascimento) o título da coluna será 'Mês'. Ok?
GOSTEI 0
Milton França
16/09/2010
É isto mesmo, caro Eder, este "As" eu costumo dizer para os meus alunos que trauzido significa "Como" então serve para trocar o nome do cabeçalho da coluna para o nome sugerido logo após a referencia "As"
GOSTEI 0
Milton França
16/09/2010
Agora usando o DISTINCT
Ex.
SELECT Curso.Nome As 'Curso' FROM Aluno, Curso
WHERE Aluno.CodCurso = Curso.CodCurso
O objetivo deste SELECT é recuperar todos os cursos com alunos inscritos, porém haverá cursos repetidos nos resultados desta pesquisa, para evitar estes registros duplicados usaremos o exemplo seguinte:
Ex.
SELECT DISTINCT Curso.Nome As 'Curso' FROM Aluno, Curso
WHERE Aluno.CodCurso = Curso.CodCurso
GOSTEI 0
Getulio Fraga
16/09/2010
Ok, eu até já consigo fazer select destes tipos, mas tenho dificuldades em procurar por uma referência nula. Por exemplo, e seu precisasse saber quais cursos não há alunos inscritos?
Obrigado.
Obrigado.
GOSTEI 0
Marcos Kruger
16/09/2010
Existe muitas formas de fazer consultas SQL, entender o que se está fazendo principalmente a lógica feita é o caminho para conseguir aprender como montar consultas.
Trazer curso sem alunos inscritos.
Trazer curso sem alunos inscritos.
Exemplo 1: select Curso.* from Curso where Curso.codCurso not in(select Aluno.CodCurso from Aluno) Exemplo 2: select Curso* from Curso where not exists(select top 1 1 from Aluno where Aluno.codCurso = Curso.codCurso)
GOSTEI 0
Alisson Santos
16/09/2010
Select avançado varia muito do que vai necessitar.
Pois existem varios tipos de selects.
O que necessitaria nesse caso.
Pois existem varios tipos de selects.
O que necessitaria nesse caso.
GOSTEI 0
Luciana Silveira
16/09/2010
Oi Thianne, boa tarde.
Acho que os colegas já deram bastante dicas.
Também é possível construir subconsultas (subqueries), openrowsets, unions, procedures, views, functions, cursores etc... vai depender da sua necessidade e lógica dos relatórios que precisa construir.
Segue um link excelente - http://www.criarweb.com/sql/
Espero ter ajudado. Boa sorte.
Acho que os colegas já deram bastante dicas.
Também é possível construir subconsultas (subqueries), openrowsets, unions, procedures, views, functions, cursores etc... vai depender da sua necessidade e lógica dos relatórios que precisa construir.
Segue um link excelente - http://www.criarweb.com/sql/
Espero ter ajudado. Boa sorte.
GOSTEI 0
Tiago
16/09/2010
Procure entender bastante a lógica do sql, como realizar as consultas, funções,subqueries e etc.... dai quando estiver preparada, você poderia ver também a questão da linguagem extendida. Por exemplo:T-SQL,PL-SQL.
GOSTEI 0