BANCO DE DADOS
Estudo de um Linguagem para Banco
de Dados
help
Use meuBanco;
Show databases;
(Mostra todos os bancos de dados)
Show tables;
(Mostra todas as tabelas do banco de dados)
Show table status;
(Mostra todas as tabelas do banco de dados
detalhando seu status atual)
Show columns from minhaTabela; (Mostra todas as colunas de minhaTabela)
Show create table minhaTabela
(mostra o script de criação da tabela especificada)
Drop database meuBanco
(Deleta meuBanco)
Drop table minhaTabela;
(Deleta a minhaTabela)
O Script abaixo serve para fazer o backup do banco de dados MySql no linux para adapta-lo para windows é só trocar os caminhos e os comandos
#!/bin/sh
# mysqlBackup.sh
DATA=`/bin/date +%Y%m%d`
# LOCAL armazena o nome do arquivo de backup, neste caso # o diretório é /home/fabio/backup, configure aqui o seu # diretório de backup LOCAL="/home/fabio/backup/meuBanco-$DATA.sql" # variáveis do MySQL HOST="localhost" USER="armenio" PASSWORD="jujuba" DATABASE="meuBanco"
mysqldump -h $HOST -u $USER -p$PASSWORD nomeBanco > $LOCAL
SQL SERVER
CREATE DATABASE MeuBanco
/*Criação do Banco de dados com o nome de “MeuBanco”*/
MY SQL
CREATE DATABASE MeuBanco;
/*Criação do Banco de dados com o nome de “MeuBanco”*/
CREATE DATABASE
DDL – Data Definition Language
SELECIONANDO BANCO DE DADOS CRIADO
SQL SERVERUSE MeuBanco
MY SQL
SQL SERVER
CREATE TABLE MinhaTabela(
Codigo int primary key not null identity, Nome varchar(100) not null
); /*Criação da tabela no banco de dados */
MY SQL
CREATE TABLE alunos(
Codigo int auto_increment not null PRIMARY KEY, Pessoa int,
Constraint foreign key(pessoa) references Pessoa(Codigo) ); /*Criação da tabela no banco de dados */
CREATE TABLE
DDL – Data Definition Language
SQL SERVER
CREATE TABLE IF NOT EXISTS MinhaTabela( Codigo int primary key not null identity, Nome varchar(100) not null
); /*Criação da tabela no banco de dados */
MY SQL
CREATE TABLE IF NOT EXISTS alunos(
Codigo int auto_increment not null PRIMARY KEY, Pessoa int,
Constraint foreign key(pessoa) references Pessoa(Codigo) ); /*Criação da tabela no banco de dados */
DDL – Data Definition Language
MY SQL
CREATE TABLE IF NOT EXISTS alunos(
Codigo int auto_increment not null PRIMARY KEY, Pessoa int,
Constraint foreign key(pessoa) references Pessoa(Codigo) ON DELETE Cascade
); /*Criação da tabela no banco de dados com deleção de todos os registros da tabela referenciada*/
CREATE TABLE COM ON DELETE | ON UPDATE (CASCATE | SET NULL | NO ACTION)
MY SQL
CREATE TABLE IF NOT EXISTS alunos(
Codigo int auto_increment not null PRIMARY KEY, Pessoa int,
Constraint foreign key(pessoa) references Pessoa(Codigo) ON UPDATE Cascade
DDL – Data Definition Language
SQL SERVER
CREATE TABLE MinhaTabela(
Codigo int primary key not null identity, Sexo character(1) not null check(sexo=‘F’ or sexo=‘M’),
Nome varchar(100) not null
); /*Criação da tabela no banco de dados */
MY SQL
CREATE TABLE alunos(
Codigo int auto_increment not null PRIMARY KEY, Pessoa int,
Sexo character(1) not null check(sexo=‘F’ or sexo=‘M’), Constraint foreign key(pessoa) references Pessoa(Codigo) ); /*Criação da tabela no banco de dados */
SQL SERVER
DROP DATABASE MeuBanco
/*Deleção do Banco de dados com o nome de “MeuBanco”*/
MY SQL
DROP DATABASE MeuBanco;
/*Deleção do Banco de dados com o nome de “MeuBanco”*/
DELETAR DATABASE
SQL SERVER
DROP TABLE MinhaTabela
/*Deleção da tabela MinhaTabela no banco de dados */
MY SQL
DROP TABLE MinhaTabela;
/*Deleção da tabela MinhaTabela no banco de dados */
DELETAR TABLE
CRIAÇÃO de Tabelas
com chave estrangeira
CREATE TABLE xpto (
campo int NOT NULL,
FOREIGN KEY(campo) REFERENCES Tabela(campo)
);
ALTER TABLE xpto
ADD CONSTRAINT FOREIGN KEY(ID_CHAVE) REFERENCES Tabela(ID_CHAVE);
Diretamente no Create Table
Alterando a Tabela
ALTER TABLE xpto
ADD NovoCampo int,
ADD FOREIGN KEY(NovoCampo) REFERENCES Tabela(ID_CHAVE);
Alterando a Tabela Add Campo Foreign key
ALTER TABLE xpto
ADD NovoCampo int,
ADD CONSTAINT ‘nomeConstraint’ FOREIGN KEY(NovoCampo) REFERENCES
Tabela(ID_CHAVE);
ALTERAR TABELA
CREATE TABLE xpto (
campo int NOT NULL,
FOREIGN KEY(campo) REFERENCES
Tabela(campo)
);
UPDATE TABLE xpto
ADD CONSTRAINT nomeConstraint FOREIGN KEY(campoXpto)
REFERENCES Tabela(campo);
ALTER TABLE `meuBanco`.`minhaTabela`
MODIFY COLUMN `meuCampo` int null;
Criando tabela
Adicionando chave estrangeira em tabela existente
ALTERAR TABELA
ALTER TABLE minhaTabela ADD COLUMN NovoCampo int not null;
ALTER TABLE curso MODIFY column Seq int after Codigo;
DELETANDO INDEX de Tabelas
Sintaxe MySql
ALTER TABLE table_name DROP INDEX index_name
Sintaxe SQL Server
DROP INDEX index_name
DQL – Data Query Language
SQL SERVER (SELECT sem FROM)
SELECT campo1 As Primeiro, campo2 As Segundo, ..., campoN As Ultimo
MY SQL (SELECT sem FROM)
SELECT campo1 As Primeiro, campo2 As Segundo, ..., campoN As Ultimo
SQL SERVER (SELECT COM FROM)
SELECT campo1, campo2, ..., campon FROM Tabela
(*)WHERE Condicao1, Condicao2,...,CondicaoN
MY SQL (SELECT COM FROM)
SELECT campo1, campo2, ..., campon FROM Tabela
(*)WHERE Condicao1, Condicao2,...,CondicaoN;
DML – Data Manipulation Language
SQL SERVERSELECT campo1, campo2, ..., campon FROM Tabela
(*)WHERE Condicao1, Condicao2,...,CondicaoN
MY SQL
SELECT campo1, campo2, ..., campon FROM Tabela
(*)WHERE Condicao1, Condicao2,...,CondicaoN;
SQL SERVER
DELETE Tabela
WHERE Condicao1, Condicao2,...,CondicaoN;
MY SQL
DELETE FROM Tabela
WHERE Condicao1, Condicao2,...,CondicaoN;
SQL SERVER
UPDATE Tabela
SET campo1=Valor1, campo2=Valor2, ..., campoN=ValorN
WHERE Condicao1, Condicao2,...,CondicaoN
MY SQL
UPDATE Tabela
SET campo1=Valor1, campo2=Valor2, ..., campoN=ValorN
WHERE Condicao1, Condicao2,...,CondicaoN
DELETE
INSERT
FUNCÕES
Estudo de um Linguagem para Banco
de Dados
SELECT AddDate(CampoData, Interval 30 Day)
FROM Tabela
SELECT AddTime(CampoTime, Interval 00:30:00)
FROM Tabela
Funções Internas
MySql
SELECT *
FROM Tabela
LIMIT 3
Traz os 3 primeiros registros da seleção
Adiciona 30 dias no campoData
Pode se usar valores negativos
Adiciona um tempo ao campoTime
SELECT *
FROM Tabela
ORDER BY(Campo)
Ordena os registros pelo campo
especificado
SELECT *
FROM Tabela
GROUP BY(Campo)
Agrupa os registros pelo(s) campo(s)
especificado(s)
SELECT * FROM Tabela1
UNION
SELECT * FROM Tabela2
Une a seleção 1 com a seleção 2 em
uma única seleção
SELECT current_date
Funções Internas
MySql
SELECT max(campo) FROM Tabela
Funções Internas
MySql
Seleciona o maior valor de uma tabela
baseando no campo especificado
SELECT min(campo) FROM Tabela
Seleciona o menor valor de uma tabela
baseando no campo especificado
SELECT count(distinct(campo)) FROM Tabela
Conta a quantidade de valores não repetidos
SELECT count(campo) FROM Tabela
Conta a quantidade de registros existentes
dentro de Tabela baseando-se em campo
SELECT lcase(campo) FROM Tabela
Retorna o campo digitado minúsculo
Equivalente ao
lower(campo)
SELECT ucase(campo)
FROM Tabela
Retorna o campo digitado maiúsculo
Equivalente ao
upper(campo)
SELECT replace(campo, ’old’, ’new’)
FROM Tabela
Substitui no campo especificado, o novo valor
pelo antigo valor
CASE case_value
WHEN when_value THEN statement
[WHEN when_value THEN statement ...]
[ELSE statement]
END as ‘Apelido’
or
CASE
WHEN search_condition THEN statement
[WHEN search_condition THEN statement ...]
[ELSE statement]
END as ‘Apelido’
*Obs.: não se usa *. Os demais campos devem ser mencionados se necessários.
CASE Statement
MySql
SELECT
CASE WHEN campo=‘F’ THEN ‘Feminino’
ELSE ‘Masculino’
end
FROM MinhaTabela;
Sintaxe ->
SELECT
If(campo=valor, condiçãoVerdadeira, CondiçãoFalsa) as Apelido,
DemaisCampos
FROM minhaTabela
IF Statement
DELIMITER $$/*delimita os comando atraves do delimitador*/
DROP FUNCTION IF EXISTS `meuBanco`.` minhaFuncao ` $$
CREATE FUNCTION ` meuBanco `.`test` () RETURNS INT
BEGIN
return (select count(codigo) from minhaTabela);
END $$
DELIMITER ;
Criando Funções
MySql
Retorna a quantidade de
registro da tabela
especificada quando
fizermos um
SELECT minhaFuncao()
Ligação de Tabelas
JOIN
une duas tabelas que possuem campos em comum;
Codigo Nome Departamento
1 Leandra Vendas 2 Romero Compras
Codigo Nome Vendedor
1 Antonio 1
2 Ana Paula 1
Codigo Nome Departamento Codigo Nome Vendedor
1 Leandra Vendas 1 Antonio Leandra
1 Leandra Vendas 2 Ana Paula Leandra
Vendedor
Cliente
SELECT *
FROM Vendedor v
JOIN Cliente c ON c.Vendedor = v.Codigo (*)WHERE <Condição>
Ligação de Tabelas
Vendedor
Codigo Nome Departamento
1 Leandra Vendas 2 Romero Compras
Cliente
Codigo Cliente Vendedor
1 Antonio 1
2 Ana Paula 1
Codigo Nome Departamento Codigo Cliente Vendedor
1 Leandra Vendas 1 Antonio Leandra
1 Leandra Vendas 2 Ana Paula Leandra
2 Romero Compras NULL NULL NULL
RIGHT JOIN
Une todos os registros da tabela da direita com a tabela da esquerda;
SELECT *
FROM Cliente v