Referência Bibliográfica: CRIE BANCO DE DADOS EM MySql, Fábricio Augusto Ferrari.
1. Criando bando de dados Teste.
MYSQL> CREATE DATABASE Teste;
Verificando criação do banco.
MYSQL> SHOW DATABASES;
Caso queiram acrescentar outro banco de dados com o mesmo nome a seguinte mensagem vai retornar.
Ex: Can’t creat database ‘Teste’. Database exists.
Para evitar esta mensagem deve ser acrescentado ao comando CREATE DATABASE a clausula IF NOT EXISTS (“se não existir”).
MYSQL> CREATE DATABASE IF NOT EXISTS Teste;
Traduzindo o comando se não existir crie o banco de dados ”Teste”.
Para excluir um banco de dados use o comando DROP DATABASE.
MYSQL> DROP DATABASE Teste;
Se tentarmos apagar um banco de dados que não existe ele retornará a seguinte mensagem.
Ex: ERROR 1008 (HY000): Can’t drop database ‘Teste’; database doesn’t exists.
Para evitar esta mensagem e confirmar a exclusão do banco só se o mesmo existir use a clausula IF EXISTS;
MYSQL> DROP DATABASE IF EXISTS Teste;
Para selecionar um banco de dados utilizando o comando USE.
MYSQL> Use MeuDB;
A mensagem database changed indica que o banco de dados foi selecionado.
Sempre usar o comando show databases para ver o nome do banco porque este comando não permite clausulas como ,IF EXISTS etc..
Para criar tabelas básicas usando o comando CREATE TABLE.
MYSQL> CREATE TABLE Cadastro (Nome CHAR(15), Sobrenome CHAR(20));
Para verificar as tabelas do banco de dados use o comando SHOW TABLES.
MYSQL>SHOW TABLES;
Para analisar a estrutura de uma tabela usa-se o comando DESCRIB.
MYSQL> DESCRIBE cadastro;
Para inserir dados em uma tabela, quando os valores inseridos forem do tipo texto (CHAR) deverão especificados entre aspas duplas.
Sintax: INSERT nome_da_tabela VALUES (valor1, valor2,...).
MYSQL> INSERT Cadastro VALUES (Augusto, J. Vésica);
Para consultar os dados inseridos na tabela use a clausula.
MYSQL> SELECT * FROM Cadastro;
Criando estruturas de tabelas mais complexas.
MYSQL> CREATE TABLES Movimentacao (Codigo INT NOT NULL PRIMARY KEY AUTO_INCREMENT, Banco CHAR(10), Conta CHAR (10), Tipo CHAR(3), Numero CHAR(3), Date DATETIME, Valor DECIMAL(8,2) NOT NULL, Descricao VARCHAR(50));
Para visualizar estrutura da tabela.
MYSQL> DESCRIBE Movimentacao;
Alterando tipo de dados em uma tabela.
MYSQL> ALTER TABLE Movimentacao MODIFY Data DATE;
Inserindo uma linha na tabela Movimentacao.
MYSQL> INSERT Movimentacao VALUES (1, “Bradesco”, “1244-8”, “Dep”, “019”, “2007/1/12”, 1587.24, “Pgto aluguel sala”;
Inserindo dados na tabela Movimentacao porem com um comando mais articulado e complexo.
MYSQL> INSERT Movimentacao (Banco, Conta, Tipo, Numero, Data, Valor, Descricao) VALUES (“HSBC”, “31254-8”, “Saq”, “099”, “2007/02/04”, -415, “Saque “);
Para deletar uma movimentação de uma tabela usa-se o seguinte comando.
MYSQL>DELETE FROM Movimentacao WHERE Codigo=2;
Criando tabelas Projetos utilizando chaves compostas.
MYSQK>CREATE TABLE Projetos (Tipo CHAR(2) NOT NULL, Cod_Supervisor INT NOT NULL, PRIMARY KEY (Tipo, Cod_Supervisor), Descricao VARCHAR(30), Dara_Inicio DATE, Data_Fim DATE);
Verificando tabela projeto criada.
MYSQL> DESCRIBE Projetos;
Criando um INDICIE na tabela Movimentação para agilizar as operações de seleção.
MYSQL> ALTER TABLE Movimentacao ADD INDEX Data (Data);
O campo entre parêntese (Data) é o campo da tabela o Data de fora do parêntese é o nome do indicie.
Criando INDICE na tabela Cadastro.
MYSQL> ALTER TABLE Cadastro ADD INDEX NomeCompleto (Nome, Sobrenome).
Outra forma de criar indicies usando um comando e não uma clausula.
MYSQL> CREATE INDEX NomeCompleto ON Cadastro (Nome, Sobrenome);
Obs: Uma tabela pode conter 16 indicies e não pode passar os 256 caracteres.
Para excluir um indicie.
MYSQL>DROP INDEX nome_do_indice ON nome_da_tabela;
Para inserir valores padrões em campos obrigatórios.
MYSQL> ALTER TABLE Movimentacao MODFY Valor DECIMAL (8,2) NOT NULL DEFAULT 0;
Para excluir indicies em forma de clausulas.
MYSQL>ALTER TABLE nome _da_tabela DROP INDEX nome_do_indicies;
Obs: (A instrução toda vez que for inserido um registro no banco o SQL sem precisar preencher o campo valor ele adicionara ) automaticamente no campo.
Inserindo valor sem o campo. Inserindo uma linha na tabela faltando valore para serem preenchidos por default.
MYSQL> INSERT Movimentacao (Banco, Conta) VALUES (“Caixa”, “3211-5”);
Para o campo valor que é obrigatório será inserido 0.00 conforme definido.
Definir para campo Numero um novo valor padrão, que agora é NULL, alterando-o para 000. Usando a clausula SET DEFAULT, o enunciado ficará assim.
MYSQL> ALTER TABLE Movimentacao ALTER COLUMN Numero SET DEFAULT “000”;
Removendo valores default de tabelas.
MYSQL> ALTER TABLE Teste ALTER COLUMN Codigo DROP DEFAULT;
Para exclusão de uma tabela de uma tabela, o SQL disponibiliza a seguinte sintaxe.
MYSQL>DROP TABLE nome_da_tabela RESTRICT |CASCADE;
MYSQL>DROP TABLE IF EXISTS TESTE RESTRICT |CASCADE;
Este comando exclui a tabela fisicamente do banco. Pode-se usar RESTRIC ou CASCADE.
Para excluir apenas tabelas temporárias usa-se a clausula TEMPORARY;
MYSQL>DROP TEMPORARY TABLE IF EXISTS TESTE RESTRICT |CASCADE;
Obs: RESTRICT inibe a execução do comando caso existam relacionamentos entre a tabela que se deseja excluir e outros elementos do banco; CASCADE faz com que seja excluída não só não só a tabela especificada, mas também todos os elementos aos quais ele esteja ligada.
As tabelas podem ser excluídas mais de uma por vez separando por virgulas.
Pode se usar a clausula IF EXISTS para validar o nome da tabela digitada.
As tabelas no MySQL.
Nesta versão do MySql, para cada tabela são criados três arquivos físicos em disco, que se encontram na subpasta com o nome do banco de dados dentro da subpasta Data na pasta especificada na instalação.
A tabela “Movimentacao”, por exemplo, é gravada em disco sob forma dos três arquivos a seguir.
• Movimentacao.frm – este arquivo contém informações sobre o formato da tabela;
• Movimentacao.myd – é o arquivo no qual se encontram os dados contidos na tabela;
• Movimentacao.myi – trata-se do arquivo em que o MySQL armazena os indicies criados na tabela.
Excluir o indicie data da tabela Movimentacao.
MYSQL> DROP INDEX Data ON Movimentacao;
Alterando o nome de uma tabela.
MYSQL>ALTER TABLE Teste RENAME AS Primeiro_Teste;
Tipo de dados que só permite entradas definidas ENUM.
MYSQL> Tipo ENUM (“Dep”, “Saq”,”Tra”, “Pgt”) NOT NULL;
Obs: Se inserirmos um valor diferente destes definidos o MYSQK o desconciderará e, em seu lugar, iserirá uma zero, sem exibir qualquer tipo de erro.
Disponivel para todos dialetos SQL.
Conhecimento:
Dados do Tipo BLO’s = Sons, vídeos, imagens, textos grandes, etc.
Sobre o comando isert.
Obs: A clausula INTO é facultativa.
Obs: Opcionalmente, podemos indicar, antes do nome da tabela, o respectivo proprietário e o banco de dados à qual pertence. Opção muito útil para termos certeza quando temos dois bancos de dados contendo a mesma tabela.
Criando tabela pessoas.
MYSQL> CREATE TABLE Pessoas (Codigo INT NOT NULL PRIMARY KEY AUTO_INCREMENT, Nome VARCHAR(45), Sobrenome(55), DataNascimento DATE);
Para atualizar capôs na tabela pessoas usando UPDATE.
MYSQL> UPDATE Pessoas SET DataNascimento = “1946/06/26” WHERE Codigo = 2;
Para excluir um registro de uma tabela usando DELETE.
MSYQL> DELETE FROM Pessoas WHERE Codigo = 2;
Excluindo todos os Registro de uma tabela de uma só vez através do comando TRUNCATE.
MYSQL> TRUNCATE TABLE Pessoas;
Obs.: A diferença deste comando para o DELETE é que este não permite condições.
Criando tabela fornecedor.
MYSQL> CREATE TABLE Fornecedores (CodCli INT NOT NULL PRIMARY KEY AUTO_INCREMENT, RagSoc VARCHAR(50), Endereco VARCHAR(50), Cidade VARCHAR(30), CEP CHAR(9), Estado CHAR(2), CNPJ CHAR(18));
MYSQL> CREATE DATABASE Teste;
Verificando criação do banco.
MYSQL> SHOW DATABASES;
Caso queiram acrescentar outro banco de dados com o mesmo nome a seguinte mensagem vai retornar.
Ex: Can’t creat database ‘Teste’. Database exists.
Para evitar esta mensagem deve ser acrescentado ao comando CREATE DATABASE a clausula IF NOT EXISTS (“se não existir”).
MYSQL> CREATE DATABASE IF NOT EXISTS Teste;
Traduzindo o comando se não existir crie o banco de dados ”Teste”.
Para excluir um banco de dados use o comando DROP DATABASE.
MYSQL> DROP DATABASE Teste;
Se tentarmos apagar um banco de dados que não existe ele retornará a seguinte mensagem.
Ex: ERROR 1008 (HY000): Can’t drop database ‘Teste’; database doesn’t exists.
Para evitar esta mensagem e confirmar a exclusão do banco só se o mesmo existir use a clausula IF EXISTS;
MYSQL> DROP DATABASE IF EXISTS Teste;
Para selecionar um banco de dados utilizando o comando USE.
MYSQL> Use MeuDB;
A mensagem database changed indica que o banco de dados foi selecionado.
Sempre usar o comando show databases para ver o nome do banco porque este comando não permite clausulas como ,IF EXISTS etc..
Para criar tabelas básicas usando o comando CREATE TABLE.
MYSQL> CREATE TABLE Cadastro (Nome CHAR(15), Sobrenome CHAR(20));
Para verificar as tabelas do banco de dados use o comando SHOW TABLES.
MYSQL>SHOW TABLES;
Para analisar a estrutura de uma tabela usa-se o comando DESCRIB.
MYSQL> DESCRIBE cadastro;
Para inserir dados em uma tabela, quando os valores inseridos forem do tipo texto (CHAR) deverão especificados entre aspas duplas.
Sintax: INSERT nome_da_tabela VALUES (valor1, valor2,...).
MYSQL> INSERT Cadastro VALUES (Augusto, J. Vésica);
Para consultar os dados inseridos na tabela use a clausula.
MYSQL> SELECT * FROM Cadastro;
Criando estruturas de tabelas mais complexas.
MYSQL> CREATE TABLES Movimentacao (Codigo INT NOT NULL PRIMARY KEY AUTO_INCREMENT, Banco CHAR(10), Conta CHAR (10), Tipo CHAR(3), Numero CHAR(3), Date DATETIME, Valor DECIMAL(8,2) NOT NULL, Descricao VARCHAR(50));
Para visualizar estrutura da tabela.
MYSQL> DESCRIBE Movimentacao;
Alterando tipo de dados em uma tabela.
MYSQL> ALTER TABLE Movimentacao MODIFY Data DATE;
Inserindo uma linha na tabela Movimentacao.
MYSQL> INSERT Movimentacao VALUES (1, “Bradesco”, “1244-8”, “Dep”, “019”, “2007/1/12”, 1587.24, “Pgto aluguel sala”;
Inserindo dados na tabela Movimentacao porem com um comando mais articulado e complexo.
MYSQL> INSERT Movimentacao (Banco, Conta, Tipo, Numero, Data, Valor, Descricao) VALUES (“HSBC”, “31254-8”, “Saq”, “099”, “2007/02/04”, -415, “Saque “);
Para deletar uma movimentação de uma tabela usa-se o seguinte comando.
MYSQL>DELETE FROM Movimentacao WHERE Codigo=2;
Criando tabelas Projetos utilizando chaves compostas.
MYSQK>CREATE TABLE Projetos (Tipo CHAR(2) NOT NULL, Cod_Supervisor INT NOT NULL, PRIMARY KEY (Tipo, Cod_Supervisor), Descricao VARCHAR(30), Dara_Inicio DATE, Data_Fim DATE);
Verificando tabela projeto criada.
MYSQL> DESCRIBE Projetos;
Criando um INDICIE na tabela Movimentação para agilizar as operações de seleção.
MYSQL> ALTER TABLE Movimentacao ADD INDEX Data (Data);
O campo entre parêntese (Data) é o campo da tabela o Data de fora do parêntese é o nome do indicie.
Criando INDICE na tabela Cadastro.
MYSQL> ALTER TABLE Cadastro ADD INDEX NomeCompleto (Nome, Sobrenome).
Outra forma de criar indicies usando um comando e não uma clausula.
MYSQL> CREATE INDEX NomeCompleto ON Cadastro (Nome, Sobrenome);
Obs: Uma tabela pode conter 16 indicies e não pode passar os 256 caracteres.
Para excluir um indicie.
MYSQL>DROP INDEX nome_do_indice ON nome_da_tabela;
Para inserir valores padrões em campos obrigatórios.
MYSQL> ALTER TABLE Movimentacao MODFY Valor DECIMAL (8,2) NOT NULL DEFAULT 0;
Para excluir indicies em forma de clausulas.
MYSQL>ALTER TABLE nome _da_tabela DROP INDEX nome_do_indicies;
Obs: (A instrução toda vez que for inserido um registro no banco o SQL sem precisar preencher o campo valor ele adicionara ) automaticamente no campo.
Inserindo valor sem o campo. Inserindo uma linha na tabela faltando valore para serem preenchidos por default.
MYSQL> INSERT Movimentacao (Banco, Conta) VALUES (“Caixa”, “3211-5”);
Para o campo valor que é obrigatório será inserido 0.00 conforme definido.
Definir para campo Numero um novo valor padrão, que agora é NULL, alterando-o para 000. Usando a clausula SET DEFAULT, o enunciado ficará assim.
MYSQL> ALTER TABLE Movimentacao ALTER COLUMN Numero SET DEFAULT “000”;
Removendo valores default de tabelas.
MYSQL> ALTER TABLE Teste ALTER COLUMN Codigo DROP DEFAULT;
Para exclusão de uma tabela de uma tabela, o SQL disponibiliza a seguinte sintaxe.
MYSQL>DROP TABLE nome_da_tabela RESTRICT |CASCADE;
MYSQL>DROP TABLE IF EXISTS TESTE RESTRICT |CASCADE;
Este comando exclui a tabela fisicamente do banco. Pode-se usar RESTRIC ou CASCADE.
Para excluir apenas tabelas temporárias usa-se a clausula TEMPORARY;
MYSQL>DROP TEMPORARY TABLE IF EXISTS TESTE RESTRICT |CASCADE;
Obs: RESTRICT inibe a execução do comando caso existam relacionamentos entre a tabela que se deseja excluir e outros elementos do banco; CASCADE faz com que seja excluída não só não só a tabela especificada, mas também todos os elementos aos quais ele esteja ligada.
As tabelas podem ser excluídas mais de uma por vez separando por virgulas.
Pode se usar a clausula IF EXISTS para validar o nome da tabela digitada.
As tabelas no MySQL.
Nesta versão do MySql, para cada tabela são criados três arquivos físicos em disco, que se encontram na subpasta com o nome do banco de dados dentro da subpasta Data na pasta especificada na instalação.
A tabela “Movimentacao”, por exemplo, é gravada em disco sob forma dos três arquivos a seguir.
• Movimentacao.frm – este arquivo contém informações sobre o formato da tabela;
• Movimentacao.myd – é o arquivo no qual se encontram os dados contidos na tabela;
• Movimentacao.myi – trata-se do arquivo em que o MySQL armazena os indicies criados na tabela.
Excluir o indicie data da tabela Movimentacao.
MYSQL> DROP INDEX Data ON Movimentacao;
Alterando o nome de uma tabela.
MYSQL>ALTER TABLE Teste RENAME AS Primeiro_Teste;
Tipo de dados que só permite entradas definidas ENUM.
MYSQL> Tipo ENUM (“Dep”, “Saq”,”Tra”, “Pgt”) NOT NULL;
Obs: Se inserirmos um valor diferente destes definidos o MYSQK o desconciderará e, em seu lugar, iserirá uma zero, sem exibir qualquer tipo de erro.
Disponivel para todos dialetos SQL.
Conhecimento:
Dados do Tipo BLO’s = Sons, vídeos, imagens, textos grandes, etc.
Sobre o comando isert.
Obs: A clausula INTO é facultativa.
Obs: Opcionalmente, podemos indicar, antes do nome da tabela, o respectivo proprietário e o banco de dados à qual pertence. Opção muito útil para termos certeza quando temos dois bancos de dados contendo a mesma tabela.
Criando tabela pessoas.
MYSQL> CREATE TABLE Pessoas (Codigo INT NOT NULL PRIMARY KEY AUTO_INCREMENT, Nome VARCHAR(45), Sobrenome(55), DataNascimento DATE);
Para atualizar capôs na tabela pessoas usando UPDATE.
MYSQL> UPDATE Pessoas SET DataNascimento = “1946/06/26” WHERE Codigo = 2;
Para excluir um registro de uma tabela usando DELETE.
MSYQL> DELETE FROM Pessoas WHERE Codigo = 2;
Excluindo todos os Registro de uma tabela de uma só vez através do comando TRUNCATE.
MYSQL> TRUNCATE TABLE Pessoas;
Obs.: A diferença deste comando para o DELETE é que este não permite condições.
Criando tabela fornecedor.
MYSQL> CREATE TABLE Fornecedores (CodCli INT NOT NULL PRIMARY KEY AUTO_INCREMENT, RagSoc VARCHAR(50), Endereco VARCHAR(50), Cidade VARCHAR(30), CEP CHAR(9), Estado CHAR(2), CNPJ CHAR(18));