Pesquisar no blog:

Mostrando postagens com marcador SQL. Mostrar todas as postagens
Mostrando postagens com marcador SQL. Mostrar todas as postagens

terça-feira, 2 de abril de 2013

SQL - DML, DDL, DCL e TCL

SQL (Structured Query Language) é a uma linguagem utilizada em Sistemas Gerenciadores de Banco de Dados (SGBD). E, diferente de linguagens de programação, nos SGBDs sempre usamos a linguagem SQL, tendo pouquíssimas diferenças entre eles.
O SQL pode ser dividido em três categorias diferentes:

DML (Data Manipulation Language)
Linguagem de Manipulação de Dados: o significado do seu acrônimo é auto explicativo. São os comandos usados com as instâncias do banco de dados. Aqui vão alguns exemplos de comandos DML do SQL:

DDL (Data Definition Language)
Linguagem de Definição de Dados: são os comandos usados para definir o esquema (Estrutura) de um bando de dados. Exemplo de comandos DDL do SQL:
DCL (Data Control Language)
Linguagem de Controle de Dados: são comandos que sedem ou retiram privilégios de acesso a dados. Exemplos de comandos DCL do SQL:
  • GRANT
  • REVOKE
TCL (Transaction Controle Language)
Linguagem de Controle de Transações: são usadas para controlar mudanças feitas pelos comandos DML, podendo, por exemplo, voltar as instâncias ao modo que eram antes de um comando DML. Exemplo de comandos TCL do SQL:
  • COMMIT
  • SAVEPOINT
  • ROLLBACK
Instâncias: são os dados de um banco de dados em um determinados momentos (registros). As instâncias são modificadas com frequência.
Esquema: é a estrutura de um banco de dados. Exemplo: qual é a chave primária de uma tabela, quantos atributos uma determinada tabela tem, se é permitido valores nulos em um determinado atributo, etc.

segunda-feira, 21 de janeiro de 2013

Alterar valores das tabelas

Drop
Drop é o comando utilizado para eliminar uma tabela inteira de seus banco de dados, então utilize-a com cuidado.
Exemplo:
DROP table funcionarios;

Alter
Com o comando Alter podemos inserir novas colunas em nossas tabelas já existentes e também modifica-las ou excluí-las.
Inserir coluna:
ALTER table funcionarios ADD fun_cep varchar(8);
Alterar coluna:
ALTER table funcionarios modify fun_cep varchar(9);
Excluir coluna:
ALTER table funcionarios DROP fun_cep;

Obs.: em outros SGBD os comandos para inserir, modificar e excluir podem ser diferente.

Describe
Este comando nos da a descrição de todas as colunas da tabela:
describe clientes;
Na imagem acima podemos observar o resultado: é mostrada uma tabela que informa, respectivamente, todos os nossos campos, os tipos dos campos, se podem ser nulos (vazio), se são chave primária, e extra (outras características).

Update
O update altera os valores de um determinado registro ou coluna.
Exemplo:
UPDATE clientes SET cli_estado = "SP";
Neste exemplo acima todos os registros da coluna cli_estado são alterados para "SP".
Para alterarmos apenas um desses valores devemos usar a clausula WHERE.
Exemplo:
UPDATE clientes SET cli_estado = "SP" WHERE cli_codigo = 1;
Neste segundo exemplo definimos que será alterado para "SP" apenas o registro em que o cli_codigo for 1.

Delete
Com o comando delete podemos excluir registros de uma tabela.
Exemplo:
DELETE from clientes;
Essa é a forma mais simples de se usar, e todos os registros da tabela são excluídos. Porém, podemos usar com o DELETE a clausula WHERE da mesma forma que usamos no exemplo do UPDATE:
DELETE from clientes WHERE cli_codigo = 1;

quinta-feira, 17 de janeiro de 2013

Insert into - Manipulando dados das tabelas

Neste tutorial vou explicar como inserir dados em uma tabela.
Usamos o comando INSERT INTO para inserir dados em nossas tabelas.
Sua estrutura é:
INSERT INTO NOME_TABELA (dados_1, dados_2, ... dados_n);
Vamos antes, criar uma tabela onde armazenaremos os dados de clientes de uma empresa fictícia. Se você ainda não sabe como criar seu banco de dados e suas tabelas acesse: Criando um banco de dados no MySQL.
CREATE TABLE CLIENTES
(
cli_codigo integer,
cli_nome varchar(40),
cli_endereco varchar(40),
cli_cidade varchar(15),
cli_estado varchar(2),
cli_cpf varchar(11),
cli_sexo char(1),
cli_data_cadastro date
);

Agora como inserir dados nos registros que criamos?
Pois já temos nossa tabela, mais não há nada cadastrado dentro dela.
Acompanhe então o código para inserir um novo cliente em nossa tabela 'clientes':
INSERT INTO CLIENTES
(
cli_codigo, 
cli_nome, 
cli_endereco, 
cli_cidade, 
cli_estado, 
cli_cpf, 
cli_sexo, 
cli_data_cadastro
) VALUES 
(
1, 
'George Henrique Wurthmann', 
'Rua Anakin Skywalker', 
'Campinas', 
'SP', 
'33621522522', 
'M', 
'2012-01-17'
);

Depois do comando INSERT INTO CLIENTES informamos entre parenteses os registros onde serão armazenados os dados que vamos inserir nessa tabela. Em seguida, após o comando VALUES informamos entre os parenteses o dados a serem inseridos na tabela. Observe que os dados do tipo texto (varchar) e também o de data (date) são colocados entre aspas simples (').

segunda-feira, 14 de janeiro de 2013

Tipos de dados de um SGBD

Durante o armazenamento de informações em um banco de dados, deve-se analisar cuidadosamente qual o tipo do dado que sera armazenado.
Segue uma tabela com os tipos de dados básicos de um SGBD.

Tipo de dado
Descrição
char
 Uma string de caracteres com tamanho definido pelo usuário. Podemos usar a forma completa character no lugar de char.
varchar
 String de tamanho variável com o tamanho máximo especificado pelo usuário. Podemos usar a forma completa character varying no lugar de varchar.
int
Um número inteiro. Podemos usar em seu lugar a forma completa: integer.
smallint
Um número inteiro pequeno.
numeric
Um número de ponto flutuante (real) com precisão especificada pelo usuário. Exemplo: numeric(3,1) sendo um dos dígitos a esquerda reservado para o sinal.
double
Números de ponto flutuante (real) de precisão dupla.
float
Número de ponto flutuante (real).
date
Uma data de calendário contendo um ano (quatro dígitos), mês e dia do mês. Exemplo: ‘2013-01-14’
time
Hora do dia: Horas, minutos e segundos. Exemplo: ’21:43:00’
timestamp
Combinação de date e time. Exemplo: ‘2013-01-14 ’21:43:00’

fontes de pesquisa:
SILBERSCHATZ, Abraham. KORTH, Henry F.. SUDARXHAN, S.. Sistema de Banco de Dados. 5ª Ed.

sábado, 22 de dezembro de 2012

Criando um banco de dados no MySQL

O MySQL é um SGBD com licença GPL. O que quer dizer que ele é totalmente gratuito.
Por esse e outros motivos ele é um dos banco de dados mais utilizados.
Apesar disso veremos aqui a linguagem SQL que é também utilizada nos outros bancos de dados. Sendo assim esses comandos também serão válidos para outros bancos de dados.
Download MySQL para Windows.
Depois de instalar o MySQL você deve criar seu banco de dados através do Command Line Cliente.
Existem vários programa do tipo Front-end para manipular os seus banco de dados. Mais antes de conhece-los é interessante você usar as linhas de comandos para atividades mais simples. Isso fará com que você entenda melhor qualquer SGBD que você vá utilizar.
Com SQL utilizamos o comando create database bd01; para criar um banco de dados.
Sendo bd01 o nome que dei ao meu banco de dados.
Para ver seus databases use o comando show databases;

Observe na imagem que nosso banco de dados bd01 já foi criado. Vamos então acessa-lo com o comando use bd01;
Ainda não há nada dentro de nosso banco de dados. Se utilizarmos o comando show tables; recebemos a mensagem Empty set.
Para criar tabelas dentro do nosso banco de dados usamos o comando:
CREATE TABLE NOME
(
campo1 tipo,
campo2 tipo
...
);

Exemplo:
CREATE TABLE FUNCIONARIOS
(
fun_codigo integer,
fun_nome varchar(40),
fun_endereco varchar(40),
fun_cargo varchar(15),
fun_salario numeric(5,2),
fun_sexo char(1)
);


Neste comando criamos uma tabela com o nome FUNCIONARIOS e definimos 6 campos para ela:
fun_codigo: campo do código do funcionário do tipo inteiro (integer).
fun_nome: campo para armazenar o nome do funcionário. Seu tipo é de texto com até 40 caracteres.
fun_endereco: campo para armazenar o endereço do funcionário. Seu tipo é de texto com até 40 caracteres.
fun_cargo: campo para armazenar o cargo do funcionário. Seu tipo é de texto com até 15 caracteres.
fun_salario: campo para armazenar o salário do funcionário. Seu tipo é numérico com 5 casas a esquerda (antes de vírgula) e 2 a direita (depois da vírgula).
fun_sexo: campo para armazenar o sexo do funcionário. Seu tipo é de caractere. Podemos armazenar F (feminino) e M (masculino).
Existem diversas outras regras que podemos adicionar a estes campos. Nesse caso criamos uma tabela simples apenas para exemplificar melhor a criação de uma novo banco de dados.
Antes de criar seu banco de dados analise oque você realmente deve armazenar para não criar campos ou tabelas que não tenham real utilidade.