SQL
SQL
TABELA CLIENTES
NOME EMAIL IDADE
José jose@mail.com 32
Antonio antonio@mail.com 19
CHAVE PRIMÁRIA / PRIMARY KEY
Primeiramente, a Chave Primária é usada quando precisamos dos
seguintes objetivos em uma tabela:
Ter unicidade de um registro
Que esse registro NÃO seja nulo
Ou que esse registro possa identificar a tabela
Portanto, a Chave Primária (PRIMARY KEY) identifica uma tabela
por meio da unicidade de um registro e por sua obrigatoriedade de
não ser nulo.
Contudo, uma tabela só pode ter apenas uma Chave Primária, que
geralmente é o ID ou COD ou algo do tipo.
* = PRIMARY KEY
TABELA PRODUTOS
CODIGO* NOME ESTOQUE PREÇO
01* MOUSE 500 32,50
02* TECLADO 10 300,00
OBS: uma chave primária pode ser criada a partir de duas outras
chaves, gerando assim uma chave composta. Por exemplo: ao
juntar os campos ‘cpf’ e ‘nome’, temos uma identificação única
formada por dois campos (chave composta).
CHAVE ESTRANGEIRA/FOREIGN KEY
A Chave Estrangeira é, sobretudo, sinônimo de relacionamento
entre tabelas. Por quê?
Porque uma Chave Estrangeira nada mais é do que a Chave
Primária de uma tabela ‘colocada’ em outra tabela. E por que é
feito isso?
(ela aponta para a chave primaria de outra tabela)
Resumidamente, a Chave Estrangeira, além de conectar tabelas,
tem mais esses propósitos:
Ela impede que você adicione um valor inválido no ID de uma
tabela
Ela impede que você exclua um registro caso ele faça
referência em outra tabela
Traduzindo: não é possível adicionar um valor que não existe em
uma chave primária para o campo referenciado como chave
estrangeira.
Ela também não vai deixar você excluir um dado da sua tabela,
sem que antes você o exclua da tabela original, a que você faz
referência utilizando a Chave Estrangeira.
Entretanto, ao contrário da Chave Primária, uma tabela pode ter
mais de uma Chave Estrangeira.
* = chave primaria º = chave estrangeira
ALUNOS MATRICULA
ALUNOº DA TABELA
NOME* CODIGO* MATRICULA SE REFERENCIA
IDADE ALUNOº A NOME* DA TABELA
ENDEREÇO
ALUNO
O QUE É SQL?
SQL significa “Structured Query Language”, ou “Linguagem de
Consulta Estruturada”, em português. Resumidamente, é uma
linguagem de programação para lidar com banco de dados
relacional (baseado em tabelas). Foi criado para que vários
desenvolvedores pudessem acessar e modificar dados de uma
empresa simultaneamente, de maneira descomplicada e unificada.
E se quiser conferir cursos sobre o tema, confira os links abaixo:
O QUE É E COMO USAR O MYSQL?
O MySQL é um sistema gerenciador de banco de dados relacional
de código aberto usado na maioria das aplicações gratuitas para
gerir suas bases de dados. O MySQL utiliza a linguagem SQL
(Structure Query Language – Linguagem de Consulta Estruturada),
que é a linguagem mais popular para inserir, acessar e gerenciar o
conteúdo armazenado num banco de dados.
******************************************************
DML (Linguagem de Manipulação de Dados) : É um conjunto de
instruções usada nas consultas e modificações dos dados
armazenados nas tabelas do banco de dados.
DDL (Linguagem de Definição de Dados): É um conjunto de
instruções usado para criar e modificar as estruturas dos objetos
armazenados no banco de dados.
DCL (Linguagem de Controle de Dados): São usados para controle
de acesso e gerenciamento de permissões para usuários em no
banco de dados. Com eles, pode facilmente permitir ou negar
algumas ações para usuários nas tabelas ou registros (segurança
de nível de linha).
TCL (Linguagem de Controle de Transações): São usados para
gerenciar as mudanças feitas por instruções DML . Ele permite que
as declarações a serem agrupadas em transações lógicas.
ACID NA TRANSAÇÃO
O que é uma transação?
Tudo aqulio que você pede ao banco, ele processa e te responde é
uma transação.
ACID é um conceito que se refere às quatro propriedades de
transação de um sistema de banco de dados: Atomicidade,
Consistência, Isolamento e Durabilidade.
ATOMICIDADE: Em uma transação envolvendo duas ou mais
partes de informações discretas, ou a transação será executada
totalmente ou não será executada, garantindo assim que as
transações sejam atômicas.
CONSISTÊNCIA: A transação cria um novo estado válido dos dados
ou em caso de falha retorna todos os dados ao seu estado antes
que a transação foi iniciada.
ISOLAMENTO: Uma transação em andamento mas ainda não
validada deve permanecer isolada de qualquer outra operação, ou
seja, garantimos que a transação não será interferida por
nenhuma outra transação concorrente.
DURABILIDADE: Dados validados são registados pelo sistema de
tal forma que mesmo no caso de uma falha e/ou reinício do
sistema, os dados estão disponíveis em seu estado correto.
DATAS
Date(data)
DateTime(datas e horas)
TimeSatamp()
Time(somente hora)
Year(somente ano)
ESPACIAL
Geometry
Point
Polygon
MultyPolygon
SHOW DATABASES;
/mostra os bancos que existem no servidor.
USE cadastro;
/selecionou o banco cadastro para ser o utilizado no momento.
CREATE TABLE pessoas(
Id int NOT NULL AUTO_INCREMENT,
nome varchar(30) NOT NULL,
nascimento date,
sexo Enum('M', 'F'),
altura decimal(3,2),
peso decimal(5,2),
nacionalidade varchar(20) DEFAULT 'Brasil ',
PRIMARY KEY(id)
)
/criou uma tabela com o nome pessoas, e colocou nela os campos
id, nome, nascimento, sexo, altura, peso e nacionalidade. Cada
campo tem declarado ao seu lado seu tipo primitivo, e os campos
id, nome e nacionalidade receberam parametros.
Id -> recebeu o parametro NOT NULL, o que quer dizer que esse
campo não pode ficar vazio, não pode ser nulo. Ele também
recebeu o AUTO-INCREMENT, o que significa que o preenchimento
ira ocorrer automaticamente.
nome -> recebeu o NOT NULL, o que quer dizer que esse campo
não pode ficar vazio.
nacionalidade -> com o DEFAULT foi estabelecido que ‘Brasil’ será
o padrão desse campo, ou seja, caso nada for colocado nesse
campo, ‘Brasil’ irá preencher.
PRIMARY KEY(id) -> determinou que a chave primaria da tabela
sera o campo id. Ou seja ele vai sero o identificador unico das
linhas, nunca podendo ser nulo.
DESCRIBE cadastro;
/mostra as propriedades da tabela cadastro, como seus campos a
nulidade dos campos e qual campo é a chave primaria.
UPDATE cursos
SET nome = 'HTML5'
WHERE idcurso = '1';
/este comando atualizou um registro, no caso um registro de
nome para ‘HTML5’.
O parametro WHERE faz com que sejam atualizados somente os
registros em que existam na mesma linha queum idcurso com o
valor de 1.
SET -> COLOCA, DETERMINA.
UPDATE cursos
SET nome = 'PHP', ano = '2015'
WHERE idcurso = '4';
/este comando atualizou alguns registros, no caso os registros de
nome e ano, atualizando o ano para ‘2015’ e o nome para ‘PHP’.
O parametro WHERE faz com que sejam atualizados somente os
registros em que existam na mesma linha queum idcurso com o
valor de 4.
UPDATE cursos
SET nome = 'Java', carga= '40', ano = '2015'
WHERE idcurso = '5'
LIMIT 1;
/este comando atualizou alguns registros, no caso os registros de
nome, carga e ano, atualizando o ano para ‘2015’, carga para ‘40’ o
nome para ‘Java’.
O parametro WHERE faz com que sejam atualizados somente os
registros em que existam na mesma linha queum idcurso com o
valor de 5.
LIMIT 1 -> o parametro define o limite de linhas que serão afetadas
pelo comando, se fosse LIMIT 2, duas linhas poderiam ser
afetadas, caso cumprissem os requisitos do WHERE.
UPDATE cursos
SET ano = '2050', carga= '400'
WHERE ano = '2018';
/este comando atualizou alguns registros, no caso os registros de
carga e ano, atualizando o ano para ‘2050’, e para carga para ‘400’.
O parametro WHERE faz com que sejam atualizados somente os
registros em que existam na mesma linha queum ano com o valor
de 2018.
UPDATE cursos
SET ano = '2018', carga= '40'
WHERE ano = '2050'
LIMIT 1;
/este comando atualizou alguns registros, no caso os registros de
carga e ano, atualizando o ano para ‘2018’, e para carga para ‘40’
O parametro WHERE faz com que sejam atualizados somente os
registros em que existam na mesma linha queum ano com o valor
de 2018.