BANCO DE DADOS Linguagem de definição de dados - SQL INTRODUÇÃO A linguagem SQL (Structure Query Language) surgiu no início dos anos 70, como resultado de um projeto da IBM para desenvolvimento de uma linguagem que se adequasse ao modelo relacional. A linguagem SQL é basicamente uma linguagem de consulta a banco de dados, sendo ela relacional, isto é, ela é ideal para o tratamento de dados relacionados, aqueles que podem ser arranjados em uma tabela. Utilizando a linguagem SQL pode se criar tabelas e também acessar os dados ali cadastrados A ESTRUTURA DA LINGUAGEM SQL A linguagem de programação SQL é formada por um grupo muito grande de comandos que podem ser executados para os mais diversos objetivos. Estes comandos são divididos em: DDL DML LINGUAGEM DE DEFINIÇÃO DE DADOS (DATA DEFINITION LANGUAGE -DDL) Fornece comandos para a criação e modificação das tabelas do modelo de banco de dados, bem como a remoção de tabelas e criação de índices.os principais comandos que fazem parte da DDL são: Create Table, Drop Table e Alter Table; LINGUAGEM DE MANIPULAÇÃO DE DADOS( DATA MANIPULATION LANGUAGE -DML) Inclui uma linguagem de consulta aos dados das tabelas. Compreende os comandos para inserir, remover e modificar informações em um BD. Os comandos básicos da DML são: Select, Insert, Update e Delete. QUAIS SÃO OS TIPOS DE DADOS EM SQL? Varchar (n) Bit (n) Bit Varying Date Time QUAIS SÃO OS TIPOS DE DADOS EM SQL? Integer (Int) Decimal Float Real OPERADORES Lógicos - Or, And, Not Relacionais - >, <, >=,<>, Like, Between Aritméticos - +, - ,* ,/ Conjunturais - Any, All, Exist, In FUNÇÕES AVG MAX MIN COUNT SUM Média Maior Valor Mínimo Contar Somar EXEMPLOS DDL Criar uma tabela NOME COLUNAS CHAVES RESTRIÇÕES CREATE TABLE CLIENTE ID_CLIENT NOM E E CPF TEL EXEMPLOS DDL CREATE TABLE CLIENTE (ID_CLIENTE INT(11) NOT NULL, NOME VARCHAR (50), CPF VARCHAR(50), TEL VARCHAR (50), PRIMARY KEY (ID_CLIENTE) ); ID_CLIENT NOM E E CPF TEL EXEMPLOS DDL CREATE TABLE PEDIDO (ID_PEDIDO INT (14) NOT NULL, ID_CLIENTE INT (11), DATAVENDA DATE, PRIMARY KEY (ID_PEDIDO) FOREIGN KEY (ID_CLIENTE) REFERENCES CLIENTE(ID_CLIENTE)); ID_PEDIDO ID_CLIENTE DATAVENDA EXEMPLOS DDL Remover uma tabela - DROP TABLE Alterar uma tabela - ALTER TABLE ALTER TABLE - Altera uma tabela ALTER TABLE nome_tabela RENAME novo_nome DROP TABLE - Excluir uma tabela DROP TABLE nome_tabela Alterando uma tabela, adicionando uma nova coluna: ALTER TABLE CLIENTES ADD COLUMN (TELEFONE VARCHAR(10) NOT NULL); Alterando uma tabela, modificando uma coluna: ALTER TABLE CLIENTES MODIFY COLUMN (TELEFONE VARCHAR(12)); EXEMPLOS DML Inserir um registro INSERT INTO NOME_TABELA (COLUNAS) VALUES (VALORES PARA AS COLUNAS) INSERT INTO 'PRODUTO' (ID_PRODUTO, NOME, PREÇO) VALUES( 1, 'VIOLÃO', '550') ID_PRODUTO NOME PREÇO 001 VIOLÃO 550 EXEMPLOS DML SELECT - COMANDO MAIS IMPORTANTE PROCESSAMENTO DE CONSULTAS CLÁUSULAS SELECT = O QUE FROM= DE ONDE WHERE= CONDIÇÃO SELECT * todos os campos: seleção FROM PRODUTO WHERE NOME='VIOLÃO' EXEMPLOS DML -SELECT SELECT CLIENTE.NOME, PROJEÇÃO PEDIDO.DATA FROM CLIENTE, PEDIDO WHERE PEDIDO.DATA BETWEEN '21/06/2010' AND '30/06/2010' ATIVIDADES Com base no modelo de dados a seguir, escreva com os comandos SQL que realizam cada uma das tarefas solicitadas. Itens Produto Codigo_produto Integer NN (PK) Descricao_Produto Varchar(30) NN Preco_Produto Float NN Cod_Prod Integer NN (PFK) NumNF Integer NN (PFK) Num_Item Integer NN Qde_Item Float NN Pertence Legenda PK - Chave Primária NN- Not Null PFK- Chave primária e estrangeira Nota_Fiscal Numero_NF Integer NN (PK) Data_NF Date NN Valor_NF Float NN OUTROS COMANDOS SQL Operadores AND / OR SELECT nome_coluna1, nome_coluna2, ..., nome_colunaN FROM nome_tabela WHERE condição1 AND condição2 SELECT nome_coluna1, nome_coluna2, ..., nome_colunaN FROM nome_tabela WHERE condição1 OR condição2 ORDER BY Ordena a apresentação dos dados SELECT nome_coluna1, nome_coluna2, ..., nome_colunaN FROM nome_tabela ORDER BY nome_coluna ASC | DESC LIKE Condição para seleção de linhas (registros) da tabela usando textos SELECT nome_coluna1, nome_coluna2, ..., nome_colunaN FROM nome_tabela WHERE nome_coluna LIKE padrão BETWEEN (semelhante ao AND) SELECT nome_coluna1, nome_coluna2, ..., nome_colunaN FROM nome_tabela WHERE nome_coluna BETWEEN valor1 AND valor2 UPDATE Atualiza valor armazenado na tabela UPDATE nome_tabela SET nome_coluna1 = valor1, nome_coluna2 = valor2, ..., nome_colunaN = valorN WHERE condição DELETE Excluir dados da tabela DELETE nome_tabela WHERE condição FUNÇÕES AGREGADORAS SUM() – soma de valores SELECT SUM (nome_coluna) FROM nome_tabela COUNT() - contagem de linhas (registros) SELECT COUNT (nome_coluna) FROM nome_tabela AVG() - média aritmética de valores SELECT AVG (nome_coluna) FROM nome_tabela FUNÇÕES AGREGADORAS MAX () - o maior valor de uma coluna da tabela SELECT MAX (nome_coluna) FROM nome_tabela MIN () - o menor valor de uma coluna da tabela SELECT MIN (nome_coluna) FROM nome_tabela GROUP BY – agrupar os dados, utilizando uma função agregadora SELECT nome_coluna1, função_agregadora (nome_coluna2) FROM nome_tabela GROUP BY nome_coluna1 FUNÇÕES AGREGADORAS HAVING SELECT nome_coluna1, função_agregadora (nome_coluna2) FROM nome_tabela GROUP BY nome_coluna1 HAVING função_agregadora (nome_coluna2) condição