Strings (Cadeia de caracteres):
char(n)
char(n) BINARY (Case sensitive)
varchar(n)
varchar(n) BINARY (Case sensitive)
TINYTEXT (Pequeno texto, um memo)
TEXT (texto, um memo)
MEDIUMTEXT (texto meio longo, um memo)
LONGTEXT (texto longo, um memo)
Numéricos:
int
smallint
numeric(p,d)
decimal(p,d)
double precision
float(n)
Data e hora:
date
time
datetime
year
timestamp
Para criar um tabela:
sintaxe: CREATE TABLE
<tabela>
(
<CAMPO1> tipo [NOT NULL [UNIQUE]]
<CAMPO2> tipo [NOT NULL [UNIQUE]]
. . .
PRIMARY KEY ( <CAMPO1> [,<CAMPO2 ...>])
)
Exemplo 3-1. Primeira tabela
CFP_CLIENTE, não vazio e único, com 11 caracteres,
NOME_CLIENTE com 20 caracteres,
RUA_CLIENTE com 30 caracteres,
CIDADE_CLIENTE com 30 caracteres
e torne o campo CPF_CLIENTE a chave primária.
CREATE TABLE CLIENTE ( CFP_CLIENTE CHAR(11) NOT NULL PRIMARY KEY, NOME_CLIENTE CHAR(20) NOT NULL, RUA_CLIENTE CHAR(30), CIDADE_CLIENTE CHAR(30) )
Exemplo 3-2. Segunda tabela
COD_PRODUTO não vazio,único e do tipo numérico,
DESCRICAO_PRODUTO com 15 caracteres,
VLR_UNITARIO do tipo ponto flutuante,
e torne o campo COD_PRODUTO a chave primária.
CREATE TABLE produto ( COD_PRODUTO INT NOT NULL PRIMARY KEY, DESCRICAO_PRODUTO CHAR(15) NOT NULL, VLR_UNITARIO DECIMAL(8,2), )
Para apagar uma tabela, índice ou visão.
sintaxe: DROP <TABLE | INDEX> <elemento>
Para alterar a estrutura (quantidade, tipo e tamanho de campos) da tabela.
Criando um consulta (query) com base em tabela(s).
sintaxe: SELECT <CAMPO1> [, <CAMPO2> ...]
FROM <tabela1>
WHERE <condição>
Exemplo 3-11. Consultando registros na tabela
Listar todos os campos da tabela produto que o código do produto seja 100.
SELECT * FROM produtos WHERE cod_produto = 100
Exemplo 3-12. Consulta ordenada
Selecione e apresente todos os dados de todos os produto ordenado pelo descrição do produto.
SELECT * FROM produtos ORDER BY descricao_produto;
ORDER BY
Descrição: Especifica a ordenação do resultado retornado por uma sentença SELECT;
Exemplo 3-13. Utilizando a sentença ORDER BY
Selecione e apresente todos os dados de todos os produto ordenado pelo descrição do produto.
SELECT * FROM produtos ORDER BY descricao_produto;
GROUP BY
Descrição: Especifica um campo/coluna/atributo do resultado retornado para formação de um grupo;
Quando houver de apagar linhas (tuplas/"registros").
sintaxe: DELETE FROM <tabela> WHERE <condição>
Quando queremos incluir mais uma linha (tupla) na tabela (relação).
sintaxe: INSERT INTO <tabela> (<campo1> [, <campo2> ...]) VALUES (<valor1> [, <valor2>...])
Para alterar os campos (atributos) de uma tabela (relação).
sintaxe: UPDATE <tabela> SET <campo1> = <expressão/valor1> WHERE <condição>
Tabela 3-1. Os caracteres curingas em operações com strings
% (caracter de porcentagem) | mais de um caracter |
_ (caracter underscore) | apenas um caracter |
Exemplo 3-18. Uso de caracteres curingas
"Empr%" corresponde a qualquer string que possua no início os caracteres : E, m, p, r. O restante não importa. Então: "Empresa" e "Empreendedor" são válidos.
"_u_" corresponde a qualquer string de três caracteres apenas, sendo a segunda letra "u".
Exemplo 3-19. Uso de caracteres curingas em queries SQL
Apresente todas os clientes que possuam no nome completo o sobrenome "Correia".
SELECT * FROM CLIENTES WHERE NOME_CLIENTE LIKE "%Correia%"
Selecione e exiba todos os Clientes que no nome a primeira letra seja "K".
SELECT * FROM CLIENTES WHERE NOME_CLIENTE LIKE "K%"
Retornando um valor simples as funções tomam como entrada um conjunto ou subconjunto de valores. São cinco funções agregadas: AVG (média), MIN (mínimo), MAX (máximo), SUM (soma) e COUNT (contagem).
Exemplo 3-20. Uso de funções agregadas
Apresentar a média do saldo de todas as agências do país de código 55.
select AVG(saldo) from conta where cod_pais_agencia = 55
Exemplo 3-21. Outro exemplo de funções agregadas
Listar o nome de cada agência e a média do saldo encontrada em cada uma.
select nome_agencia, AVG(saldo) from conta GROUP BY nome_agencia
Exemplo 3-22. Mais um exemplo de funções agregadas
Exiba a quantidade de linhas (tuplas/"registros") em na tabela cliente.
select COUNT(*) from cliente
Exemplo 3-23. Outro exemplo de funções agregadas
Liste o saldo médio para cada cliente que mora em Recife e tenha ao menos três contas.
select de.nome_cliente, AVG(co.saldo) from depositante AS de, conta AS co, cliente AS cl where de.num_conta, = co.num_conta AND de.cod_cliente = cl.cod_cliente AND cl.cidade_cliente = "Recife" GROUP BY de.cod_cliente having COUNT(distinct de.num_conta) >= 3