(Estudo) - Resumo SQL
(Estudo) - Resumo SQL
(Estudo) - Resumo SQL
que todos os comandos sero executados no database declarado CREATE TABLE xxx_xxx ( nome_do_campo tipo_do_campo ) ; - - cria uma tabela
(tamanho_do_campo)
- - para uma melhor visualizao de uma sintaxe SQL, costuma-se digitar os COMANDOS em MAIUSCULO e os valores em minusculos - - no se usa espaos em nome de databases e tabelas, caso precisa de espao use_ (underline) - - quando criar as tabelas, no esquea que antes do primeiro campo, deve se abrir parenteses ,e so fechar quando criar o ultimo campo - - para separar cada campo use virgula - - quando acabar de criar os campos, aps o ultimo parentese no esquea de usar ; Tipos de campo: CHAR - quantidade limitada de caracteres VARCHAR - aceita at 255 caracteres BLOB - aceita + de 255 caracteres INT - numeros inteiros DEC (x,x) (numero de casas antes da virgula,.numero de casa depois da virgula) DATE - data TIME - hora DATETIME - data/hora futura TIMESTAMP - data/hora atual DROP TABLE xxx; - - apaga uma tabela INSERT INTO xxx (campo1, campo2, campo3) VALUES (valor1,valor2,valor3) ; - - insere valores na tabela - - LEMBRE-SE que os valores precisam estar na mesma ordem que os nomes das colunas - - existem 3 formas de inserirmos dados em nosso banco: 1 citado acima, quando vc declara todos os campos da tabela e depois declara todos os valores 2 - vc pode emitir a declarao de campos, para isso aps a clausula INSERT INTO xxx, use a clausula VALUES, porm a ordem dos dados devem est na mesma ordem dos campos 3 - vc pode tambm deixar alguns campos de fora na insero de dados, porm a ordem dos dados devem respeitar a ordem dos campos declarados - - somente use aspas nos valores quando eles forem de algum tipo de caracter, caso for numeros no necessario NULL - - quando nenhum valor informado ao campo, ele se torna um campo NULL., campos com valor NULL so DIFERENTES de ZERO e em branco (campos em branco so campos que contm um (espao em branco (_) no caso demostrado o uso do _ se refere a um espao) - - caso queira que algum campo de sua tabela seja de preencimento obrigatrio, aps a declarao do tamanho do campo, use a clausula NOT NULL - - caso queira que algum campo j tenha um valor padro, aps a declarao do tamanho do campo, use a clausula DEFAULT x
SELECT * FROM nome_tabela - - seleciona todos os registros de uma tabela - - * coringa SELECT * FROM nome_tabela WHERE nome_campo = xx - - seleciona todos os registros, quando o valor em nome_campo for igual a xx - - falando de aspas novamente, temos um problema. E se caso queremos guardar no banco uma informao do tipo Grovers Mill? Lembra que o SQL interpreta qualquer aspa como declarao de caracter, portanto neste caso quando desejamos inserir um dado com aspas no nosso banco devemos proceder assim: Grover\s Mill ou Grovers Mill. A barra invertida nos diz que isso somente um apstrofo, no quer declarar nada. SELECT nome_campo, nome_campo2 FROM nome_tabela - - seleciona apenas os campos declarados entre SELECT e FROM, ou seja no trar todos os campos da tabela. - - uma boa pratica selecionarmos apenas os campos ao qual queremos consultar, para aumentarmos o desempenho de nossa aplicao. SELECT * FROM nome_tabela WHERE nome_campo3 = xx AND nome_campo4 = yy - - seleciona somente os registros que tenham os valores iguais a xx e yy na mesma linha. Note que para isso foi usada o operador AND (E), que quer dizer nome_campo3 = xx E nome_campo4 = yy - - at agora s usamos o operador = (igual),para comparar nossos registros, mas podemos podemos usar os seguintes operadores aritmeticos: <> (diferente), > (maior), < (menor), <= (menor e igual) e => (igual e maior) - - no caso de caracteres, tambm e possivel usar esses operadores,j que o SQL usar a ordem alfabetica para comparar os registros. SELECT nome_campo FROM nome_tabela WHERE nome_campox = 1 OR nome_campoy = 2 - - nesse caso usamos mais um operador lgico, o OR (ou). Com essa consulta ele nos trar todos os registros que tenham o campox = 1 e tambm todos os registros que tenham o campoy = 2. SELECT * FROM nome_tabela WHERE nome_campo IS NULL - - com esse comando ele nos trara todos os registros quando o campo nome_campo = NULL - - caso queira selecionar todos os registros que no tenham campo NULL, use NOT NULL SELECT * FROM nome_tabela WHERE nome_campo LIKE %CA - - note que usamos agora mais um coringa, no caso o %, essa consulta nos diz para trazer todos os registros onde um valor do campo nome_campo termine com CA ex: casCA, plaCA Podemos usa-lo de diversas formas como no fim CA%, aqui ele esta dizendo para nos trazer todos os registros que comeam com CA. ex: CAchorro, CAsa SELECT * FROM nome_tabela WHERE nome_campo LIKE _im - - consulta os nomes com apenas um caractere antes de im como Sim, Kim, Tim. - - pode-se usar quantos _ quiser, ex: ___im utilizei 3 _ SELECT * FROM nome_tabela WHERE nome_campo BETWEEN 30 AND 60 - - seleciona todos os registros, quando o valor do campo nome_campo estiver entre 30 e 60 SELECT * FROM nome_tabela WHERE nome_campo IN (1,2) - - seleciona todos os registros, quando o valor do campo nome_campo for 1 ou 2. Semelhante ao operador OR, porem mais simples de usar. Se fosse com o operador OU, para cada valor teriamos que digitar uma linha. SELECT * FROM nome_tabela WHERE nome_campo NOT IN (1,2) - - seleciona todos os registros, quando no campo nome_campo NO tiver o valor 1 ou 2 DELETE FROM nome_tabela WHERE nome_campo = 1 - - deleta todos os registros da tabela, quando o nome_campo for igual a 1 - - CUIDADO AO USAR O DELETE, SEMPRE ESTIPULE UMA CONDIO, CASO CONTRARIO ELE APAGAR TODOS OS REGISTROS DE SUA TABELA ex: DELETE FROM nome_tabela
- - o exemplo acima no contem nenhuma condio, logo ele apagara todos os registros da tabela. - - vc pode usar todos os operadores aprendidos at aqui para montar sua condio para usar o DELETE. UPDATE nome_tabela SET nome_campo = novo valor WHERE nome_campo = 10 - - atualiza o nome_campo com o novo valor, quando o nome_campo tiver o valor = 10 - - caso no utilize WHERE ele ir atualizar todos os campos da tabela com o novo valor Escolha o objeto principal, aquele que voce quer que sua tabela descreva (Qual o objeto principal que voce quer que seja o assunto principal da tabela) Faa uma lista das informaes que voce precisa saber sore seu nico objeto principal quando estiver utilizando a tabela (Como vc utilizara essa tabela) Usando a lista das informaes, divida a informao sobre aquele objeto principal em pedaos que possa utilizar para organizar sua tabela (Maneira mais facil de fazer a consulta desta tabela) FAZER DADOS ATOMICOS O PRIMEIRO PASSO PARA CRIAR UMA TABELA NORMAL Dados atmicos menor pedao de dados que no pode ou no deve ser dividido REGRA 1: uma coluna com dados atomicos no pode conter muitos valores do mesmo tipo de dados nesta coluna REGRA 2: uma tablea com dados atomicos no pode conter multiplas colunas com o mesmo tipo de dados Beneficio de tabelas normais Tabelas normais no tero dados duplicados, o que reduzir o tamanho de seu banco de dados Com menos dados para pesquisar, suas consultas sero mais rapidas METADE DO CAMINHO PARA PRIMEIRA FORMA NORMAL 1NF Cada linha de dados deve conter dados atmicos Cada linha de dados deve ter um identificador nico, conhecido como CHAVE PRIMARIA Uma chave primaria uma COLUNA na sua tabela que torna cada registro nico, ou seja, jamais ele deve ser repetido. A chave primaria no pode ser NULL A chave primaria deve ser atribuida no momento em que o registro inserido A chave primaria deve ser compacta Os valores da chave primaria no podem ser alterados A melhor chave primria pode ser uma NOVA chave primria Por exemplo: criar uma coluna que contenha um nmero nico, e podemos chama-la de ID Criar uma chave primara normalmente algo que fazemos ao utilizar o cdigo CREATE TABLE DESCRIBLE nome_tabela - - mostra a estrutura da tabela, como nome dos campos, tipos, NULL,key, default... SHOW CREATE TABLE nome_tabela - - retorna o comando CREATE TABLE que foi usado para criar a tabela indicada - - pode ser usado com COLUMNS FROM nome_tabela, CREATE DATABASE nome_database, INDEX FROM nome_tabela e WARNINGS Adicionando uma CHAVE PRIMARIA a uma nova tabela CREATE TABLE nome_tabela ( id_contato INT NOT NULL ... PRIMARY KEY (id_contato)
esta coluna ser nossa chave primara indicamos a coluna que ser a nossa chave primria
- - podemos dizer ao SQL que ele incremente nossa chave primria de 1 em 1 automaticamente, para isso use a clausula: id_contato INT NOT NULL AUTO_INCREMENT - - caso for M$ SQL ao inves de AUTO_INCREMENT usa-se INDEX junto com o valor inicial e o valor de acrescimo Quando adicionamos valores em uma coluna que chave primaria e que se auto incremente, devemos especificar que o valor do campo NULL Adicionando uma CHAVE PRIMARIA a uma tabela existente ALTER TABLE nome_tabela ADD COLUMN nova_coluna_pk INT NOT NULL AUTO_INCREMENT FIRST ADD PRIMARY KEY (nome_coluna_pk) - - vemos uma nova clausula: FIRST, ela nos diz que a nova coluna seja a primeira da nossa tabela, oque recomendado. ALTER TABLE nome_tabela ADD COLUMN nova_coluna tipo_tipo tamanho_coluna AFTER nome_coluna - - com esse comando AFTER, diremos que a nova coluna ser adicionada depois da coluna nome_coluna, pois por padro ela posicionada no final da tabela - - pode se usar as palavras-chaves FIRST, AFTER, BEFORE, LAST, SECOND, THIRD... Alteraes de tabelas CHANGE mudar o nome e os tipos de dados de uma coluna j existente MODIFY modifica os tipos de dados e a posio de uma coluna existente (no altera o nome da coluna) ADD adiciona uma coluna a sua batela voce escolhe os tipos de dados DROP uma coluna da sua tabela ALTER TABLE nome_tabela RENAME TO novo_nome - - com esse nome alteramos o nome de uma tabela existente ALTER TABLE nome_tabela CHANGE COLUMN nome_antigo nome_novo tipo tamanho - - troco o nome antigo da coluna por um novo nome, alm de poder trocar o tipo e o tamanho dos dados ALTER TABLE nome_tabela CHANGE COLUMN nome_antigo nome_antigo tipo tamanho - -caso queira somente trocar o tipo de dados ou tamanho, vc no precisa usar esse comando, existe o comando: ALTER TABLE nome_tabela MODIFY COLUMN nome_coluna tipo tamanho - - nesse caso somente alteramos o tipo e tamanho de dados ALTER TABLE nome_tabela DROP COLUMN nome_coluna - - note que para deletar uma coluna, antes foi necessrio dizer ao SQL que queriamos alterar uma tabela ALTER TABLE nome_tabela DROP PRIMARY KEY - - com esse comando a tabela passa a no possuir uma chave primaria, mas a coluna com os dados permanecem intactas. ALTER TABLE nome_tabela CHANGE nome_coluna1 nome_coluna2 INT (x) NOT NULL --adiciona o parametro AUTO_INCREMENT a uma coluna existente --e para remover o AUTO_INCREMENT ALTER TABLE nome_tabela CHANGE nome_coluna nome_coluna NULL *AUTO_INCREMENT deve ser sempre do tipo INT e nunca ter o valor NULL
AUTO_INCREMENT
INT
(x)
NOT