6. PROGRAMAÇÃO SQL PARA MySQL

 

        A linguagem de programação SQL (Structured Query Language), linguagem de consulta estruturada, surgiu na década de 70, em um dos laboratórios da empresa estadunidense IBM, tornando-se a linguagem padrão para bancos de dados relacionais.

 

Neste manual, retirado da sexta parte do livro do livro PHP-GENERATOR, Criação de Aplicativos com PHP e MySQL, serão mostrados alguns exemplos básicos de programação SQL, testados em um banco de dados MySQL.

 

Nesses exemplos, o nomes de bancos, tabelas e campos não estão entre os sinais de crase. Caso isso seja exigido em sua versão do MySQL, acrescente esse sinal em suas sintaxes.

 

6.3. Exibindo bancos de dados existentes.

SHOW DATABASES;

 

6.4. Criando um novo banco de dados chamado

sistema”.

CREATE DATABASE sistema;

 

 

6.5. Colocando um banco de dados já existente em uso.

USE test;

 

6.6. Criando uma tabela chamada “cidades” em um banco já existente chamado “test”. Se o banco de dados “test já estiver em uso. por meio do comento USE “test, é desnecessário informá-lo antes do nome da tabela “cidades”.

CREATE TABLE test.cidades (codigo INT( 6 ) UNSIGNED NOT NULL AUTO_INCREMENT,

 

nome VARCHAR(50),

uf VARCHAR(2),

 

PRIMARY KEY ( codigo ) ) ;

UNSIGNED significa que código é um numero positivo, ou seja, maior que zero.

 

6.7. Exibindo tabelas do banco de dados “test”.

SHOW tables;

 

6.8. Exibindo informações sobre a tabela cidades, do banco de dados “test.

DESCRIBE test.cidades;

 

 

 

 

 

 

6.9. Inserindo dados na tabela “cidades” do banco de

dados “test”.

INSERT INTO test.cidades (codigo,nome,uf) VALUES ("","LOANDA","PR");

INSERT INTO test.cidades (codigo,nome,uf) VALUES ("","ROSANA","SP");

INSERT INTO test.cidades (codigo,nome,uf) VALUES ("","RIO DE JANEIRO","RJ");

INSERT INTO test.cidades (codigo,nome,uf) VALUES ("","NOVO HORIZONTE","SP");

INSERT INTO test.cidades (codigo,nome,uf) VALUES ("","NOVO HORIZONTE","BA");

Observe que, em VALUES, codigo não é informado porque na criação da tabela ele foi definido como número inteiro, não nulo, de auto-incremento.

 

6.10. Selecionando registros inseridos na tabela “cidades” do banco de dados testpara consulta de dados.

Seleciona todos os registros da tabela cidades

SELECT * FROM test.cidades;

Seleciona apenas os campos especificados de todos os registros

SELECT codigo,nome FROM test.cidades;

 

Seleciona apenas os registros em que o campo uf='SP'

SELECT * FROM test.cidades WHERE uf='SP';

 

Seleciona apenas os registros em que o campo uf='SP' ou 'PR'

SELECT * FROM test.cidades WHERE uf='SP' or uf='PR';

 

Seleciona apenas os registros em que o campo nome='NOVO HORIZONTE' e uf='SP'

SELECT * FROM test.cidades WHERE nome='NOVO HORIZONTE' and uf='SP';

 

Seleciona todos os campos de todos os registros em ordem crescente pelo campo nome

SELECT * FROM test.cidades ORDER BY nome;

 

Seleciona todos os campos de todos os registros em ordem decrescente pelo campo nome

SELECT * FROM test.cidades ORDER BY nome DESC;

 

Seleciona todos os registros em que o campo nome contém o texto 'HORIZONTE'

SELECT * FROM test.cidades WHERE nome LIKE '%HORIZONTE%'

 

6.11. Alterando registros inseridos na tabela cidades” do banco de dados test

Altera o conteúdo atual pelo conteúdo especificado em SET para o registro em que codigo = 1

UPDATE test.cidades SET codigo="",nome="CAMPINAS",uf="SP" WHERE codigo=1;

 

6.12. Deletando registros inseridos na tabela “cidades” do banco de dados “test

Exclui o registro em que codigo = 12

DELETE FROM test.cidades WHERE codigo = 12;

 

Exclui todos os registros em que uf='PR'

DELETE FROM test.cidades WHERE uf = 'PR';

Limpa todos os dados da tabela zerando o auto-incremento do campo codigo

TRUNCATE TABLE test.cidades;

 

6.13. Alterando a estrutura de uma tabela

Altera o campo nome para 40 caracteres

ALTER TABLE test.cidades MODIFY nome VARCHAR(40)

 

Altera inserindo uma nova coluna chamada tamanho no inicio

ALTER TABLE test.cidades ADD tamanho INT(15) FIRST;

 

Altera inserindo uma nova coluna chamada cep no final

ALTER TABLE test.cidades ADD cep VARCHAR(15);

 

Altera inserindo uma nova coluna chamada regiao depois da coluna uf

ALTER TABLE test.cidades ADD regiao VARCHAR(15) AFTER uf;

 

Altera excluindo o campo cep e a coluna cep

ALTER TABLE test.cidades DROP cep

 

Altera renomeando-a para localidades

ALTER TABLE cidades RENAME localidades

 

 

6.14. Copiando ou renomeando uma tabela de dados

Copia a tabela cidades e toda sua estrutura para a tabela localidades

CREATE TABLE localidades SELECT * FROM cidades;

 

Renomeia tabela cidades para municipios

RENAME TABLE test.cidades TO test.municipios;

 

6.15. Exportando e importando tabela de dados (muito útil na realização de backups de tabelas)

Exporta uma tabela de dados para um arquivo txt

SELECT * FROM test.cidades INTO OUTFILE '/tmp/cidades.txt' FIELDS TERMINATED BY '#' LINES TERMINATED BY '\n';

 

Importa uma tabela de dados

LOAD DATA LOCAL INFILE '/tmp/cidades.txt' INTO TABLE cidades FIELDS TERMINATED BY '#' LINES TERMINATED BY '\n';

Onde: o simbolo sustenido(#) separa um campo de outro e (\n) é um quebra de linha, fazendo com que cada registro seja exportado para uma nova linha no arquivo texto.

 

6.16. Removendo uma tabela ou um banco de dados

Remove permanentemente a tabela cidades

DROP TABLE test.cidades;

 

Remove permanentemente o banco de dados test

DROP DATABASE test;

 

6.17. Manutenção de tabelas de dados

Remove permanentemente a tabela cidades

DROP TABLE test.cidades;

 

Remove permanentemente o banco de dados test

DROP DATABASE test;