sql
Downloads:
MySQL (site oficial)
Vertrigo (~15MB) (Suíte contendo o MySQL)
Xampp (~125MB) (Suíte contendo o MySQL)
Comandos básicos v14_04 Download
1KeyData (Site)
Comandos básicos de banco:
--- Criar um banco de dados -------------------------------------------------------------------
CREATE DATABASE [IF NOT EXISTS] biblioteca_bd; (if not exists é opcional)
Ex01: CREATE DATABASE biblioteca_bd;
--- Listar os bancos criados no servidor -----------------------------------------------------
SHOW DATABASES;
--- Selecionar o banco para manipulação --------------------------------------------------
USE bibioteca_bd; Seleciona o banco.
SELECT DATABASE(); Visualiza o banco selecionado.
--- Excluir o banco de dados -------------------------------------------------------------------
DROP DATABASE [IF EXISTS] biblioteca_bd; (if exists é opcional)
---------------------------------------------------------------------------------------------------------
Comandos básicos de tabela:
--- Exibir tabelas existentes no banco selecionado --------------------------------------
SHOW TABLES;
--- Criar tabela no banco de dados ----------------------------------------------------------
CREATE TABLE [IF NOT EXISTS] nome_tabela(
coluna1 tipo_dado constraints,
coluna2 tipo_dado constraints
);
Ex01:------------------
CREATE TABLE IF NOT EXISTS livro_tb(
id_livro INT(4) AUTO_INCREMENT PRIMARY KEY,
nome_livro VARCHAR(50),
preco_livro DECIMAL NOT NULL
);
--- Excluir campo de uma tabela -------------------------------------------------------------
ALTER TABLE nome_da_tabela DROP COLUMN nome_coluna;
--- Alterar tipo de dados de uma coluna ----------------------------------------------------
ALTER TABLE nome_da_tabela ALTER COLUMN nome_coluna INT(4);
--- Renomear uma tabela ----------------------------------------------------------------------
RENAME TABLE nome_antigo TO nome_novo;
--- Alias para Tabela/Coluna -------------------------------------------------------------------
Sintaxe: SELECT coluna AS apelido_coluna FROM tabela AS apelido_tabela;
Exemplo01: SELECT nome_livro AS livro FROM livros_tb;
Exemplo02: SELECT nome_livro AS livro, preco_livro AS preço FROM livros_tb;
---------------------------------------------------------------------------------------------------------
Inserção:
--- Inserir dados(registros) em uma tabela --------------------------------------------------------------
INSERT INTO nome_da_tabela (coluna1, coluna2, ...) VALUES (valor1, valor2, ...);
---------------------------------------------------------------------------------------------------------
Consultas:
--- Consultas simples ------------------------------------------------------------------------------
Ex01: SELECT coluna_especifica FROM tabela;
Ex02: SELECT * FROM tabela; (O " * " seleciona toda a tabela)
Ex03: SELECT coluna1, coluna2 FROM tabela; (Seleciona mais de uma coluna)
--- Consultas simples com ordenação -------------------------------------------------------
Ex01: SELECT * FROM tabela ORDER BY coluna ASC; (Ordem crescente, default)
Ex02: SELECT * FROM tabela ORDER BY coluna DESC; (Ordem decrescente)
--- Consultas simples com filtro WHERE(onde) ------------------------------------------
Ex01: SELECT * FROM tabela WHERE coluna = valor; (Consulta em toda a tabela)
Ex02: SELECT coluna FROM tabela WHERE coluna = valor; (Coluna específica)
Ex03: -- valor numérico - não usa aspas
SELECT nome_livro, data_publicacao
FROM tbl_livro
WHERE id_autor = 1; (Não usa aspas por ser numérico)
Ex04: -- string - usa aspas simples
SELECT id_autor, nome_autor
FROM tbl_livro
WHERE sobrenome = 'Silva'; (Usa-se aspas simples por ser string)
Ex05: -- Operadores lógicos (AND, OR ou NOT)
SELECT * FROM tbl_livro
WHERE id_livro > 2 AND id_autor < 3;
--- Consulta o último ID de uma coluna ----------------------------------------------------
SELECT MAX(id_livro) FROM livro_tb;
--- Consultar com um intervalo ---------------------------------------------------------------
Sintaxe:
SELECT * FROM tabela
WHERE coluna
BETWEEN valor1 AND valor2;
Exemplo:
SELECT * FROM tbl_livros
WHERE data_pub
BETWEEN '20160524' AND '20160801';:
--- Pesquisar item em uma coluna -------------------------------------------------------------
SELECT * FROM tabela WHERE coluna LIKE '%$item_pesquisa%' ORDER BY coluna;
--- Pesquisar item em duas ou mais colunas ------------------------------------------------
SELECT * FROM tabela WHERE (coluna1 LIKE '%$item_pesquisa%' OR coluna2 LIKE '%$item_pesquisa%') ORDER BY coluna;
% (percentual) = 0 ou mais caracteres
_ (underline) = Caractere único
NOT LIKE = inverso do LIKE
--- Consulta com expressões regulares -----------------------------------------------------
Exemplo01:
SELECT nome_livro FROM tabela
WHERE nome_livro REGEXP '^[FS]'; (consultar expressões regulares)
Exemplo02:
SELECT nome_livro FROM tabela
WHERE nome_livro REGEXP '[ng]$'; (consultar expressões regulares)
--- Consultar os livros mais emprestados em uma biblioteca --------------------------
SELECT titulo, COUNT(titulo)
FROM emprestimo_tb
GROUP BY titulo
HAVING COUNT(titulo)>0
ORDER BY COUNT(titulo)
DESC LIMIT 5;
--- Pesquisar em duas tabelas -----------------------------------------------------------------
SELECT * FROM questoes_tb
INNER JOIN categorias_tb
ON questoes_tb.id_categoria=categorias_tb.id_categoria
---------------------------------------------------------------------------------------------------------
Exclusão:
--- Excluir dados de uma tabela --------------------------------------------------------------
Sintaxe: DELETE FROM tabela WHERE coluna = valor;
Exemplo: DELETE FROM livros_tb WHERE id_autor = 5;
--- Excluir todos os dados de uma tabela sem excluir a tabela ----------------------
Sintaxe: TRUNCATE TABLE nome_tabela;
---------------------------------------------------------------------------------------------------------
Edição (Update):
--- Editar registro existente em uma tabela ------------------------------------------------
Sintaxe:
UPDATE tabela
SET coluna = novo_valor
WHERE coluna = valor_do_filtro; (sem WHERE, todos os registros serão alterados)
Ex01:
UPDATE tbl_livro
SET nome_livro = "Malba Tahan"
WHERE id_livro = 45;
---------------------------------------------------------------------------------------------------------
Backup (mysqldump):
Sintaxe para criar a cópia:
mysqldump -u root nome_banco > backup.sql
Ex01:
mysqldump -u root db_biblioteca > /home/bkp/db_biblioteca.sql
Ex02:
c:/xampp/mysql/bin/mysqldump -u root db_biblioteca > c:/xampp/mysql/bkp/db_biblioteca.sql
---------------------------------------------------------------------------------------------------------
Sintaxe para restaurar(voltar) a cópia:
mysq -u root -p banco_criado < backup.sql
Ex01:
Primeiro criar o banco (teste_restore)
CREATE DATABASE teste_restore;
Depois voltar o backup
mysql -u root -p teste_restore < /home/bkp/db_biblioteca.sql
SQL - Constraints (restrições):
AUTO_INCREMENT (Incremento de 1 para cada registro inserido, por padrão já assume também o NOT NULL)
NOT NULL (Não permite valor nulo na coluna, obrigando a ter um valor)
UNIQUE (valor único, garante que os dados não se repetem)
PRIMARY KEY (Chave primária, garante a unicidade dos dados "registros")
Para remover a primary key usa-se ALTER TABLE tabela DROP PRIMARY KEY;
Para adicionar a primary key usa-se ALTER TABLE tabela ADD PRIMARY KEY (COLUNA);
FOREIGN KEY (Chave estrangeira, para relacionar a tabela com outra)
ex: CONSTRAINT fk_id_autor FOREIGN KEY(id_autor) REFERENCES tbl_autores(id_autor);
DEFAULT (Valor padrão de inserção, caso não haja nenhum no momento) ex: UF
Funções de agregação:
MIN = Valor mínimo de uma coluna
MAX = Valor máximo de uma coluna
AVG = Média aritmética
SUM = Soma (total)
COUNT = Conta a quantidade de itens
--- Conta a quantidade de registros em uma tabela -------------------------------------
SELECT COUNT(*) FROM tabela;
--- Conta a quantidade de registros ignorando os repetidos --------------------------
SELECT COUNT(DISTINCT id_autor) FROM tbl_livro;
--- Seleciona o maior valor de uma coluna ------------------------------------------------
SELECT MAX(preco_livro) FROM tbl_livro;
--- Seleciona o menor valor de uma coluna -----------------------------------------------
SELECT MIN(preco_livro) FROM tbl_livro;
--- Retorna a média dos valores uma coluna ----------------------------------------------
SELECT AVG(preco_livro) FROM tbl_livro;
--- Retorna total dos valores uma coluna --------------------------------------------------
SELECT SUM(preco_livro) FROM tbl_livro;
---------------------------------------------------------------------------------------------------------
Expressões Regulares (REGEXP):
[...] - Qualquer caractere único em um intervalo ou conjunto especificado ([a-h], [^aeiou]);
[^...] - Qualquer caractere único que não esteja no intervalo ou conjunto especificado ([^a-h], [^aeiou]);
^ - Início da string;
$ -Fim da string;
a|b|c - Alternação (a ou b ou c).
Referências: