Os vídeos mostram na prática como é feita a instalação e configuração do XAMPP para o desenvolvimento em PHP. Para saber mais sobre o XAMPP veja este post.
Mostrando postagens com marcador tutorial. Mostrar todas as postagens
Mostrando postagens com marcador tutorial. Mostrar todas as postagens
Constraint NOT NULL
Por padrão uma tabela pode guardar valores nulos.
A constraint NOT NULL garante que uma coluna não irá aceitar valores nulos. Ou seja, um campo sempre terá necessariament um valor. Isto significa que você não poderá inserir um novo registro ou atualizar um existente sem ter um valor para esta coluna.
O seguinte SQL garante que a coluna 'id' e a coluna 'sobrenome' não irão aceitar valores nulos:
A constraint NOT NULL garante que uma coluna não irá aceitar valores nulos. Ou seja, um campo sempre terá necessariament um valor. Isto significa que você não poderá inserir um novo registro ou atualizar um existente sem ter um valor para esta coluna.
O seguinte SQL garante que a coluna 'id' e a coluna 'sobrenome' não irão aceitar valores nulos:
CREATE TABLE Persons (Fonte
id int NOT NULL,
sobrenome varchar(255) NOT NULL,
nome varchar(255),
endereco varchar(255),
cidade varchar(255)
)
Contraints no SQL
Constraints são usadas para limitar os dados que podem ser inseridos em uma tabela.
Constranints podem ser especificadas quando a tabela é criada (com o comando CREATE TABLE) ou depois que a tabela é criada (com o comando ALTER TABLE).
Nós estaremos focando nas seguintes constraints:
Fonte
Constranints podem ser especificadas quando a tabela é criada (com o comando CREATE TABLE) ou depois que a tabela é criada (com o comando ALTER TABLE).
Nós estaremos focando nas seguintes constraints:
- NOT NULL
- UNIQUE
- PRIMARY KEY
- FOREIGN KEY
- CHECK
- DEFAULT
Fonte
Criando tabelas com o comando CREATE TABLE
O comando CREATE TABLE é usado para criar uma tabela em um banco de dados.
Sintaxe do CREATE TABLE
Exemplo de CREATE TABLE
Agora nós queremos criar uma tabela chamada Pessoas que contém cinco colunas: id, sobrenome, nome, endereco e cidade.
A tabela Pessoas vazia ficará assim:
Para inserir valores nesta tabela basta usar o comando INSERT INTO.
Fonte
Sintaxe do CREATE TABLE
1:CREATE TABLE table_name
2:(
3:nome_coluna1 tipo_dado,
4:nome_coluna2 tipo_dado,
5:nome_coluna3 tipo_dado,
6:....
7:)
O tipo de dado especifica que tipo de dado a coluna pode guardar. Para uma referencia completa sobre todos os tipos de dados disponíveis visite a nossa referencia sobre os tipos de dados diponíveis ou a documentação do seu banco de dados.Exemplo de CREATE TABLE
Agora nós queremos criar uma tabela chamada Pessoas que contém cinco colunas: id, sobrenome, nome, endereco e cidade.
1:CREATE TABLE Persons (
2: id int,
3: sobrenome varchar(255),
4: nome varchar(255),
5: endereco varchar(255),
6: cidade varchar(255)
7:)
A coluna id é do tipo int e guarda um número. As colunas sobrenome, nome, endereco e cidade são do tipo varchar com um tamanho máximo de 255 caracteres.A tabela Pessoas vazia ficará assim:
| id | sobrenome | nome | endereco | cidade |
|---|---|---|---|---|
Para inserir valores nesta tabela basta usar o comando INSERT INTO.
Fonte
Criando bancos de dados com o comando CREATE DATABASE
O comando CREATE DATABASE é usado para criar um banco de dados.
A Sintaxe do CREATE DATABASE
1:CREATE DATABASE database_nameExemplo de CREATE DATABASEAgora vamos criar o banco de dados my_db:
1:CREATE DATABASE my_dbTabelas podem ser criadas com o comando CREATE TABLE.Fonte
O operador UNION
O operador UNION combina dois ou mais comandos SELECT agrupando os seus resultados distintos.
Observe que cada comando SELECT no UNION deve ter a mesma quantidade de colunas, as colunas devem ser de tipos de dados similares e tambem as colunas devem estar na mesma ordem.
Sintaxe do UNION
Sintaxe do UNION ALL
Exemplo de UNION
Observe as seguintes tabelas:
Funcionarios_Europeus:
Funcionarios_Americanos:
Agora nós queremos listar todos os funcionários europeus e americanos:
Nota: Este comando não pode ser usado para listar todos os funcionários Europeus e Americanos. No exemplo acima nos temos dois funcionários com nomes iguais e apenas um deles será mostrado. O comando UNION mostra somente valores distintos.
Exemplo de UNION ALL
Agora nos queremos listar todos os funcionarios Europeus e Americanos:
Fonte
Observe que cada comando SELECT no UNION deve ter a mesma quantidade de colunas, as colunas devem ser de tipos de dados similares e tambem as colunas devem estar na mesma ordem.
Sintaxe do UNION
1:SELECT nome_coluna(s) FROM nome_tabela1
2:UNION
3:SELECT nome_coluna(s) FROM nome_tabela2
Nota: O operador UNION seleciona somente os valores distintos por padrão. Para permitir valores duplicados, use o UNION ALL.Sintaxe do UNION ALL
1:SELECT nome_coluna(s) FROM nome_tabela1
2:UNION ALL
3:SELECT nome_coluna(s) FROM nome_tabela2
Nota: Os nomes das colunas no resultset de um UNION são sempre iguais aos nomes de colunas do primeiro comando SELECT no UNION.Exemplo de UNION
Observe as seguintes tabelas:
Funcionarios_Europeus:
| id | nome |
|---|---|
| 01 | Hansen, Ola |
| 02 | Svendson, Tove |
| 03 | Svendson, Stephen |
| 04 | Pettersen, Kari |
Funcionarios_Americanos:
| id | nome |
|---|---|
| 01 | Turner, Sally |
| 02 | Kent, Clark |
| 03 | Svendson, Stephen |
| 04 | Scott, Stephen |
Agora nós queremos listar todos os funcionários europeus e americanos:
1:SELECT nome FROM Funcionarios_Europeus
2:UNION
3:SELECT nome FROM Funcionarios_Americanos
O resultado ficará assim:| nome |
|---|
| Hansen, Ola |
| Svendson, Tove |
| Svendson, Stephen |
| Pettersen, Kari |
| Turner, Sally |
| Kent, Clark |
| Scott, Stephen |
Nota: Este comando não pode ser usado para listar todos os funcionários Europeus e Americanos. No exemplo acima nos temos dois funcionários com nomes iguais e apenas um deles será mostrado. O comando UNION mostra somente valores distintos.
Exemplo de UNION ALL
Agora nos queremos listar todos os funcionarios Europeus e Americanos:
1:SELECT nome FROM Funcionarios_Europeus
2:UNION ALL
3:SELECT nome FROM Funcionarios_Americanos
Resultado:| nome |
|---|
| Hansen, Ola |
| Svendson, Tove |
| Svendson, Stephen |
| Pettersen, Kari |
| Turner, Sally |
| Kent, Clark |
| Svendson, Stephen |
| Scott, Stephen |
Fonte
O join FULL JOIN
A palavra FULL JOIN retorna linhas quando elas aparecem em qualquer das tabelas.
Sintaxe do FULL JOIN
A tabela Pessoas
A tabela Pedidos
Agora nos queremos listar todas as pessoas pessoas e pedidos existentes.
We use the following SELECT statement:
A pesquisa com FULL JOIN retornará todas as linhas da tabela da esquerda (Pessoas) e todas as linhas da tabela da direita (Pedidos). Se existem linhas em Pessoas que não tem Pedidos ou se existem Pedidos que não são de Pessoas estas linhas também serão listadas.
Fonte
Sintaxe do FULL JOIN
1:SELECT nome_coluna(s)Exemplo de FULL JOIN
2:FROM nome_tabela1
3:RIGHT JOIN nome_tabela2
4:ON nome_tabela1.nome_coluna = nome_tabela2.nome_coluna
A tabela Pessoas
| id | sobrenome | primeiro_nome | endereco | cidade |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
A tabela Pedidos
| id | numero | pessoa_id |
|---|---|---|
| 1 | 77895 | 3 |
| 2 | 44678 | 3 |
| 3 | 22456 | 1 |
| 4 | 24562 | 1 |
| 5 | 34764 | 15 |
Agora nos queremos listar todas as pessoas pessoas e pedidos existentes.
We use the following SELECT statement:
1:SELECT
2: pes.sobrenome,
3: pes.primeiro_nome,
4: ped.numero
5:FROM Pessoas
6: FULL JOIN Pedidos ON pes.id = ped.pessoa_id
7:ORDER BY pes.sobrenome
O resultado será o seguinte:| sobrenome | primeiro_nome | numero |
|---|---|---|
| Hansen | Ola | 22456 |
| Hansen | Ola | 24562 |
| Pettersen | Kari | 77895 |
| Pettersen | Kari | 44678 |
| Svendson | Tove | |
| 34764 |
A pesquisa com FULL JOIN retornará todas as linhas da tabela da esquerda (Pessoas) e todas as linhas da tabela da direita (Pedidos). Se existem linhas em Pessoas que não tem Pedidos ou se existem Pedidos que não são de Pessoas estas linhas também serão listadas.
Fonte
O join RIGHT JOIN
A palavra RIGHT JOIN retorna todas as linhas da tabela da direita (nome_tabela2), mesmo se não existe a linha da tabela da esquerda (nome_tabela1).
A sintaxe do RIGHT JOIN
Exemplo de RIGHT JOIN
A tabela Pessoas
A tabela Pedidos
Agora nós queremos listar todos os pedidos que são de pessoas, se houver, das tabelas acima.
A pesquisa com RIGHT JOIN retorna todas as linhas da tabela da direita (Pedidos), mesmo se não existem pessoas correspondentes.
Fonte
A sintaxe do RIGHT JOIN
1:SELECT nome_coluna(s)
2:FROM nome_tabela1
3:RIGHT JOIN nome_tabela2
4:ON nome_tabela1.nome_coluna = nome_tabela2.nome_coluna
Nota: Em alguns bancos de dados o RIGHT JOIN é chamado de RIGHT OUTER JOIN.Exemplo de RIGHT JOIN
A tabela Pessoas
| id | sobrenome | primeiro_nome | endereco | cidade |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
A tabela Pedidos
| id | numero | pessoa_id |
|---|---|---|
| 1 | 77895 | 3 |
| 2 | 44678 | 3 |
| 3 | 22456 | 1 |
| 4 | 24562 | 1 |
| 5 | 34764 | 15 |
Agora nós queremos listar todos os pedidos que são de pessoas, se houver, das tabelas acima.
1:SELECT
2: pes.sobrenome,
3: pes.primeiro_nome,
4: ped.numero
5:FROM Pessoas
6:RIGHT JOIN Pedidos
7:ON pes.id = ped.pessoa_id
8:ORDER BY pes.sobrenome
O resultado será o seguinte:| sobrenome | primeiro_nome | numero |
|---|---|---|
| Hansen | Ola | 22456 |
| Hansen | Ola | 24562 |
| Pettersen | Kari | 77895 |
| Pettersen | Kari | 44678 |
| 34764 |
A pesquisa com RIGHT JOIN retorna todas as linhas da tabela da direita (Pedidos), mesmo se não existem pessoas correspondentes.
Fonte
O join LEFT JOIN
A palavra LEFT JOIN retorna todas as linhas da tabela da esquerda (nome_tabela1), mesmo que não existam linhas correspondentes na tabela da direita (nome_tabela2)
Sintaxe do LEFT JOIN
Exemplo de LEFT JOIN
A tabela Pessoas
A tabela Pedidos
Agora nós queremos listar todas as pessoas e os seus pedidos, se houver.
Fonte
Sintaxe do LEFT JOIN
1:SELECT nome_coluna(s)
2:FROM nome_tabela1
3:LEFT JOIN nome_tabela2
4:ON nome_tabela1.nome_coluna = nome_tabela2.nome_coluna
Nota: Em alguns SGDBs o LEFT JOIN é chamado LEFT OUTER JOIN.Exemplo de LEFT JOIN
A tabela Pessoas
| id | sobrenome | primeiro_nome | endereco | cidade |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
A tabela Pedidos
| id | numero | pessoa_id |
|---|---|---|
| 1 | 77895 | 3 |
| 2 | 44678 | 3 |
| 3 | 22456 | 1 |
| 4 | 24562 | 1 |
| 5 | 34764 | 15 |
Agora nós queremos listar todas as pessoas e os seus pedidos, se houver.
1:SELECT
2: pes.sobrenome,
3: pes.primeiro_nome,
4: ped.numero
5:FROM Pessoas
6:LEFT JOIN Pedidos
7:ON pes.id = ped.pessoa_id
8:ORDER BY pes.sobrenome
O resultado será:| LastName | FirstName | OrderNo |
|---|---|---|
| Hansen | Ola | 22456 |
| Hansen | Ola | 24562 |
| Pettersen | Kari | 77895 |
| Pettersen | Kari | 44678 |
| Svendson | Tove |
Fonte
O join INNER JOIN
A palavra INNER JOIN retorna linhas quando existe o registro em ambas as tabelas.
Sintaxe do INNER JOIN
A tabela Pessoas
A tabela Pedidos
Agora nos queremos listar todas as pessoas que tem pedidos:
O resultado será o seguinte:
A palavra INNER JOIN retorna linhas quando existe pelo menos um registro em ambas as tabelas. Se existem linhas na tabela Pessoas que não tem registros na tabela de Pedidos, estas linhas NÃO serão mostradas.
Fonte
Sintaxe do INNER JOIN
1:SELECT nome_coluna(s)
2:FROM nome_tabela1 alias_tabela_1
3:INNER JOIN nome_tabela2 alias_tabela_2
4:ON alias_tabela1.nome_coluna = alias_tabela2.nome_coluna
Exemplo de INNER JOINA tabela Pessoas
| id | sobrenome | primeiro_nome | endereco | cidade |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
A tabela Pedidos
| id | numero | pessoa_id |
|---|---|---|
| 1 | 77895 | 3 |
| 2 | 44678 | 3 |
| 3 | 22456 | 1 |
| 4 | 24562 | 1 |
| 5 | 34764 | 15 |
Agora nos queremos listar todas as pessoas que tem pedidos:
1:SELECT
2: pes.sobrenome,
3: pes.primeiro_nome,
4: ped.numero
5:FROM Pessoas pes
6:INNER JOIN Pedidos ped
7:ON pes.id = ped.pessoa_id
8:ORDER BY pes.sobrenome
O resultado será o seguinte:
| sobrenome | primeiro_nome | numero |
|---|---|---|
| Hansen | Ola | 22456 |
| Hansen | Ola | 24562 |
| Pettersen | Kari | 77895 |
| Pettersen | Kari | 44678 |
A palavra INNER JOIN retorna linhas quando existe pelo menos um registro em ambas as tabelas. Se existem linhas na tabela Pessoas que não tem registros na tabela de Pedidos, estas linhas NÃO serão mostradas.
Fonte
Joins no SQL
Joins são usados para pesquisar dados de duas ou mais tabelas baseado em um relacionamento entre algumas colunas destas tabelas.
Tabelas em um banco de dados geralmente estão relacionadas entre sí por meio de chaves.
Uma chave primária é uma coluna (ou uma combinação de colunas) com um valor único para cada linha. Cada valor de chave primária deve ser único na tabela. O propósito é juntar dados entre tabelas sem repetir todos os dados em toda tabela.
Veja a tabela Pessoas:
Observe que a coluna 'id' é a chave primária da tabela Pessoas. Isto significa que não pode haver duas linhas com o mesmo valor de 'id'. A coluna 'id' distingue duas pessoas se elas têm o mesmo nome.
Agora nos temos a tabela Pedidos:
Perceba que a coluna 'id' é a chave primária na tabela Pedidos e que a coluna 'pessoa_id' refere-se às pessoas na tabela Pessoas sem usar os seus nomes. O relacionamento entre as tabelas Pessoas e Pedidos se dá pela coluna 'pessoa_id' na tabela de Pedidos.
Diferentes tipos de JOINS
Antes de continuar com os exemplos vamos listar os tipos de JOIN que podem ser usados e as diferenças entre eles.
Tabelas em um banco de dados geralmente estão relacionadas entre sí por meio de chaves.
Uma chave primária é uma coluna (ou uma combinação de colunas) com um valor único para cada linha. Cada valor de chave primária deve ser único na tabela. O propósito é juntar dados entre tabelas sem repetir todos os dados em toda tabela.
Veja a tabela Pessoas:
| id | sobrenome | primeiro_nome | endereco | cidade |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
Observe que a coluna 'id' é a chave primária da tabela Pessoas. Isto significa que não pode haver duas linhas com o mesmo valor de 'id'. A coluna 'id' distingue duas pessoas se elas têm o mesmo nome.
Agora nos temos a tabela Pedidos:
| id | numero | pessoa_id |
|---|---|---|
| 1 | 77895 | 3 |
| 2 | 44678 | 3 |
| 3 | 22456 | 1 |
| 4 | 24562 | 1 |
| 5 | 34764 | 15 |
Perceba que a coluna 'id' é a chave primária na tabela Pedidos e que a coluna 'pessoa_id' refere-se às pessoas na tabela Pessoas sem usar os seus nomes. O relacionamento entre as tabelas Pessoas e Pedidos se dá pela coluna 'pessoa_id' na tabela de Pedidos.
Diferentes tipos de JOINS
Antes de continuar com os exemplos vamos listar os tipos de JOIN que podem ser usados e as diferenças entre eles.
- INNER JOIN: Retorna uma linha quando o registro existe nas duas tabelas.
- LEFT JOIN: Retorna todas as linhas da tabela da esquerda mesmo que o registro não exista na da direita.
- RIGHT JOIN: Retorna todas as linhas da tabela da direita, mesmo que o registronão exista na da esquerda.
- FULL JOIN: Retorna todas as linhas mesmo que o registro não exista em uma das tabelas.
Aliases ou apelidos no SQL
No SQL um alias ou apelido é um nome que pode ser dado para uma tabela ou coluna no contexto de uma pesquisa. Isto pode ser bom se você tem uma consulta muito grande ou nomes de tabelas e colunas complexos.
Um alias pode ser qualquer coisa mas geralmente é pequeno.
Sintaxe de Alias para tabelas
Considere que nos temos duas tabelas: uma chamada Pessoas e outra chamada Pedidos.
Vamos dar para as tabelas os aliases 'pes' para Pessoas e 'ped' para pedidos.
Queremos listar todos os pedidos feitos por 'Ola Hansen':
Fonte
Um alias pode ser qualquer coisa mas geralmente é pequeno.
Sintaxe de Alias para tabelas
1:SELECT nome_coluna(s)
2:FROM nome_tabela
3:AS nome_alias
SQL Alias Syntax for Columns 1:SELECT nome_coluna AS nome_alias
2:FROM nome_tabela
Exemplo de aliasConsidere que nos temos duas tabelas: uma chamada Pessoas e outra chamada Pedidos.
Vamos dar para as tabelas os aliases 'pes' para Pessoas e 'ped' para pedidos.
Queremos listar todos os pedidos feitos por 'Ola Hansen':
1:SELECT
2: ped.id,
3: pes.sobrenome,
4: pes.primeiro_nome
5:FROM Pessoas AS pes, Pedidos AS ped
6:WHERE
7: ped.pessoa_id = pes.id AND
8: pes.sobrenome = 'Hansen' AND
9: pes.primeiro_nome = 'Ola'
A mesma pesquisa feita sem o uso de aliases ficaria: 1:SELECT
2: Pedidos.id,
3: Pessoas.sobrenome,
4: Pessoas.primeiro_nome
5:FROM Pessoas, Pedidos
6:WHERE
7: Pedidos.pessoa_id = Pessoas.id AND
8: Pessoas.sobrenome = 'Hansen' AND
9: Pessoas.primeiro_nome = 'Ola'
Como você pode ver pelos dois comandos SELECT acima usar aliases pode tornar pesquisas mais fáceis tanto de escrever como de ler.Fonte
O operador BETWEEN
O operador BETWEEN seleciona um conjunto de dados entre dois valores. Os valores podem ser números, textos ou datas.
Sintaxe do BETWEEN
Data a tabela abaixo:
Nós queremos selecionar as pessoas com o sobrenome que alfabeticamente esta entre 'Hansen' e 'Pettersen' na tabela acima:
Nota: O operador BETWEEN é tratado diferentemente em diferentes SGDBs.
Em alguns SGDBs as pessoas que tem o sobrenome 'Hansen' ou 'Pettersen' não serão incluidas porque o operador BETWEEN só seleciona os valores que estão entre, excluindo os valores de teste.
Em outros SGDBs, pessoas com o sobrenome 'Hansen' e 'Pettersen' serão listadas, e em outros somente o primeiro valor de teste será incluido. Sendo assim, verifique o seu SGDB e esteja consciente das diferenças.
Exemplo 2
Para mostrar os valores que estão fora dos limites do exemplo anterior, nós usamos NOT BETWEEN:
Fonte
Sintaxe do BETWEEN
1:SELECT nome_coluna(s)Exemplo do operador BETWEEN
2:FROM nome_tabela
3:WHERE nome_coluna BETWEEN valor1 AND valor2
Data a tabela abaixo:
| id | sobrenome | primeiro_nome | endereco | cidade |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
Nós queremos selecionar as pessoas com o sobrenome que alfabeticamente esta entre 'Hansen' e 'Pettersen' na tabela acima:
1:SELECT * FROM PessoasO resultado será:
2:WHERE sobrenome
3:BETWEEN 'Hansen' AND 'Pettersen'
| id | sobrenome | primeiro_nome | endereco | cidade |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
Nota: O operador BETWEEN é tratado diferentemente em diferentes SGDBs.
Em alguns SGDBs as pessoas que tem o sobrenome 'Hansen' ou 'Pettersen' não serão incluidas porque o operador BETWEEN só seleciona os valores que estão entre, excluindo os valores de teste.
Em outros SGDBs, pessoas com o sobrenome 'Hansen' e 'Pettersen' serão listadas, e em outros somente o primeiro valor de teste será incluido. Sendo assim, verifique o seu SGDB e esteja consciente das diferenças.
Exemplo 2
Para mostrar os valores que estão fora dos limites do exemplo anterior, nós usamos NOT BETWEEN:
1:SELECT * FROM PessoasO resultado será:
2:WHERE sobrenome
3:NOT BETWEEN 'Hansen' AND 'Pettersen'
| id | sobrenome | primeiro_nome | endereco | cidade |
|---|---|---|---|---|
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
Fonte
O operador IN
O operador IN permite que você especifique vários valores em uma cláusula WHERE.
Sintaxe do operador IN
Consideremos a tabela Pessoas:
Agora nós queremos selecionar as pessoas quem tem o sobrenome igual a 'Hansen' ou 'Pettersen':
Fonte
Sintaxe do operador IN
1:SELECT nome_coluna(s)
2:FROM nome_tabela
3:WHERE nome_coluna IN (valor1,valor2,...)
Exemplo do operador INConsideremos a tabela Pessoas:
| id | sobrenome | primeiro_nome | endereco | cidade |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
Agora nós queremos selecionar as pessoas quem tem o sobrenome igual a 'Hansen' ou 'Pettersen':
1:SELECT * FROM Pessoas
2:WHERE sobrenome IN ('Hansen','Pettersen')
O resultado será o seguinte:| id | sobrenome | primeiro_nome | endereco | cidade |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
Fonte
O operador LIKE
O operador LIKE é usado em uma cláusula WHERE para pesquisar por um padrão especificado em uma coluna.
A sintaxe do LIKE
Dada a tabela abaixo:
Nos queremos selecinar as pessoas que vivem em uma cidade que começa com 'S':
O resultado da pesquisa acima será:
Agora nós queremos selecionar as pessoas que vivem em uma cidade cujo nome termina com 'S':
Agora vamos procurar as pessoas que vivem em uma cidade em que o nome que contém as letras 'tav':
O resultado será:
Também é possível selecionar as pessoas que vivem em uma cidade em que o nome NÃO CONTÉM o padrão 'tav' usando a palavra NOT:
Usando o padrão _
O padrão _ substitui apenas um caractere no texto.
Vamos por exemplo selecionar as pessoas cujo nome tem 3 letras e termina com 'la':
Queremos agora selecionar as pessoas têm o sobrenome começando com 'S' seguido de qualquer caractere seguido de 'end' seguido de outro caractere e terminando com 'on':
Além destes padrões de pesquisa, que são comummente encontrados nos SGCBs, os bancos de dados também oferecem outros padrões como Expressões Regulares que podem ser úteis em outras situações.
Fonte
A sintaxe do LIKE
1:SELECT nome_coluna(s)Exemplos do operador LIKE
2:FROM nome_tabela
3:WHERE nome_coluna LIKE padrao
Dada a tabela abaixo:
| id | sobrenome | primeiro_nome | endereco | cidade |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
Nos queremos selecinar as pessoas que vivem em uma cidade que começa com 'S':
1:SELECT * FROM Pessoas
2:WHERE cidade LIKE 'S%'
O símbolo % pode ser usado para definir um padrão (letras faltando no padrão) tanto antes como depois do padrão.O resultado da pesquisa acima será:
| id | sobrenome | primeiro_nome | endereco | cidade |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
Agora nós queremos selecionar as pessoas que vivem em uma cidade cujo nome termina com 'S':
1:SELECT * FROM Pessoas
2:WHERE cidade LIKE '%s'
O resultado para esta pesquisa será:| id | sobrenome | primeiro_nome | endereco | cidade |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
Agora vamos procurar as pessoas que vivem em uma cidade em que o nome que contém as letras 'tav':
1:SELECT * FROM Pessoas
2:WHERE cidade LIKE '%tav%'
O resultado será:
| id | sobrenome | primeiro_nome | endereco | cidade |
|---|---|---|---|---|
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
Também é possível selecionar as pessoas que vivem em uma cidade em que o nome NÃO CONTÉM o padrão 'tav' usando a palavra NOT:
1:SELECT * FROM Pessoas
2:WHERE cidade NOT LIKE '%tav%'
O resultado será o seguinte:| id | sobrenome | primeiro_nome | endereco | cidade |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
Usando o padrão _
O padrão _ substitui apenas um caractere no texto.
Vamos por exemplo selecionar as pessoas cujo nome tem 3 letras e termina com 'la':
1:SELECT * FROM Pessoas
2:WHERE primeiro_nome LIKE '_la'
O resultado será:| id | sobrenome | primeiro_nome | endereco | cidade |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
Queremos agora selecionar as pessoas têm o sobrenome começando com 'S' seguido de qualquer caractere seguido de 'end' seguido de outro caractere e terminando com 'on':
1:SELECT * FROM Pessoas
2:WHERE sobrenome LIKE 'S_end_on'
O resultado será:| id | sobrenome | primeiro_nome | endereco | cidade |
|---|---|---|---|---|
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
Além destes padrões de pesquisa, que são comummente encontrados nos SGCBs, os bancos de dados também oferecem outros padrões como Expressões Regulares que podem ser úteis em outras situações.
Fonte
Limitando a quantidade de registros em uma pesquisa
Quando se trabalha com tabelas muito grandes a quantidade de registros retornados em uma pesquisa pode se tornar um problema de performance.
Sendo assim o os SGDBs em geral oferecem um meio de se limitar a quantidade de registros retornados em uma pesquisa. Este é um dos exemplos de comandos não padronizdos pelo ANSI.
A cláusula LIMIT no MySQL
No MySQL a palavra usada para limitar a quantidade de registros retornados é LIMIT:
Sintaxe:
Consideremos a seguinte tabela de Pessoas:
Agora nós queremos selecionar somente os 2 primeiros registros da tabela:
Sendo assim o os SGDBs em geral oferecem um meio de se limitar a quantidade de registros retornados em uma pesquisa. Este é um dos exemplos de comandos não padronizdos pelo ANSI.
A cláusula LIMIT no MySQL
No MySQL a palavra usada para limitar a quantidade de registros retornados é LIMIT:
Sintaxe:
1:SELECT nome_coluna(s)
2:FROM nome_tabela
3:LIMIT numero
Exemplo: 1:SELECT *
2:FROM Pessoas
3:LIMIT 5
Sintaxe no Oracle 1:SELECT nome_coluna(s)
2:FROM nome_tabela
3:WHERE ROWNUM <= numero
Exemplo: 1:SELECT *
2:FROM Pessoas
3:WHERE ROWNUM <=5
Exemplo de SELECT LIMITConsideremos a seguinte tabela de Pessoas:
| id | sobrenome | primeiro_nome | endereco | cidade |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
| 4 | Nilsen | Tom | Vingvn 23 | Stavanger |
Agora nós queremos selecionar somente os 2 primeiros registros da tabela:
1:SELECT * FROM Pessoas LIMIT 2
O resultado será o seguinte:| id | sobrenome | primeiro_nome | endereco | cidade |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
Criando um ambiente para trabalhar com SQL
Antes de começar no SQL é importante criar um ambiente de trabalho, ou melhor dizendo, instalar um banco de dados que você pode usar para testar os comandos e ir se familiarizando com a idéia. Nós vamos dar aqui os passos para a instalação do MySQL por meio do XAMPP que é bem simples e funciona muito bem.
- Faça o download o XAMPP (Se ainda não tiver seguido a instalação dele nos posts anteriores, caso tenha, vá para o passo 4).
- A opção do link é a Selfextracting 7-ZIP archive então terminado o download basta executar o arquivo xampp-win32-1.7.1.exe e escolher o diretorio da instalação (Vamos assumir que você escoleu a pasta C:\xampp que é a padrão).
- Depois de terminada a instalação abra a pasta C:\xampp no explorer.
- Execute o arquivo xampp_start.exe
- Uma janela de comando deve aparecer. Não feche esta janela!!
- Abra o Firefox, ou o Internet explorer e entre no endereço http://localhost. Deve aparecer pra você o painel de controle do XAMPP. (Na primeira vez que você entra, você vê antes do painel uma tela para escolher a sua linguagem. Escolha, e vá para o painel.)
- No painel entre no link phpMyAdmin que aparece no menu esquerdo do painel.
- Você deverá ver uma imagem como esta:
- Esta é a interface do phpMyAdmin que se conecta ao MySQL. Ai você pode criar o banco de dados my_db escrevendo my_db no campo 'Criar novo Banco de Dados' e clicando em 'Criar'. Além disso, ai você pode criar tabelas, usuários, permissões e muito mais.
O comando DELETE
O comando DELETE é usado para excluir linhas em uma tabela.
A sintaxe do DELETE
Exemplo de DELETE
A tabela Pessoas
Agora nós queremos excuir a pessoa 'Jakob Tjessem' na tabela Pessoas.
O comando para esta ação é o seguinte:
Excluindo todas as linhas
É possível excluir todas as linhas em uma tabela sem excluir a tabela. Isto significa que a estrutura da tabela, atributos e índices ficará intactos.
Fonte
A sintaxe do DELETE
1:DELETE FROM nome_tabela
2:WHERE coluna=valor
Nota: Observe a cláusula WHERE na sintaxe do DELETE. A cláusula WHERE especifica que registro ou registros devem ser excluídos. Se você omitir a cláusula WHERE, TODOS OS REGISTROS serão EXCLUÍDOS.Exemplo de DELETE
A tabela Pessoas
| id | sobrenome | primeiro_nome | endereco | cidade |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
| 4 | Nilsen | Johan | Bakken 2 | Stavanger |
| 5 | Tjessem | Jakob | Nissestien 67 | Sandnes |
Agora nós queremos excuir a pessoa 'Jakob Tjessem' na tabela Pessoas.
O comando para esta ação é o seguinte:
1:DELETE FROM Pessoas
2:WHERE sobrenome='Tjessem' AND primeiro_nome='Jakob'
A tabela Pessoas ficará da seguinte forma:| id | sobrenome | primeiro_nome | endereco | cidade |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
| 4 | Nilsen | Johan | Bakken 2 | Stavanger |
Excluindo todas as linhas
É possível excluir todas as linhas em uma tabela sem excluir a tabela. Isto significa que a estrutura da tabela, atributos e índices ficará intactos.
1:DELETE FROM nome_tabela
ou 1:DELETE * FROM table_name
Nota: Tenha muito cuidado excluindo registros. Você não pode desfazer este comando.Fonte
O comando UPDATE
O comando UPDATE é usado para atualizar registros existentes.
A sintaxe do UPDATE
Um exemplo de UPDATE
A tabela Pessoas:
Agora nos queremos atualizar a pessoa "Jakob Tjessem" na tabela Pessoas:
Nos temos que usar o seguinte comando:
Atenão com o comando UPDATE!
Tenha muito cuidado atualizando registros. Se nós tivéssemos omitido a cláusula WHERE no exemplo acima da seguinte forma:
Fonte
A sintaxe do UPDATE
1:UPDATE nome_tabela
2:SET coluna1=valor1, coluna2=valor2,...
3:WHERE coluna_pesquisa=valor
Nota: Observe a cláusula WHERE na sintaxe do UPDATE. A cláusula WHERE especifica que registro ou registros devem ser atualizados. Se você omitir a cláusula WHERE, TODOS OS REGISTROS serão atualizados!Um exemplo de UPDATE
A tabela Pessoas:
| id | sobrenome | primeiro_nome | endereco | cidade |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
| 4 | Nilsen | Johan | Bakken 2 | Stavanger |
| 5 | Tjessem | Jakob |
Agora nos queremos atualizar a pessoa "Jakob Tjessem" na tabela Pessoas:
Nos temos que usar o seguinte comando:
1:UPDATE Pessoas
2:SET endereco='Nissestien 67', cidade='Sandnes'
3:WHERE sobrenome='Tjessem' AND primeiro_nome='Jakob'
Depois de atualizada a tabela Pessoas ficará assim:| id | sobrenome | primeiro_nome | endereco | cidade |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
| 4 | Nilsen | Johan | Bakken 2 | Stavanger |
| 5 | Tjessem | Jakob | Nissestien 67 | Sandnes |
Atenão com o comando UPDATE!
Tenha muito cuidado atualizando registros. Se nós tivéssemos omitido a cláusula WHERE no exemplo acima da seguinte forma:
1:UPDATE Pessoas
2:SET endereco='Nissestien 67', cidade='Sandnes'
A tabela Pessoas ficaria assim:| id | sobrenome | primeiro_nome | endereco | cidade |
|---|---|---|---|---|
| 1 | Hansen | Ola | Nissestien 67 | Sandnes |
| 2 | Svendson | Tove | Nissestien 67 | Sandnes |
| 3 | Pettersen | Kari | Nissestien 67 | Sandnes |
| 4 | Nilsen | Johan | Nissestien 67 | Sandnes |
| 5 | Tjessem | Jakob | Nissestien 67 | Sandnes |
Fonte
Assinar:
Postagens (Atom)