Módulo 6: Linguagem de Programação IV 6.2. Bases de Dados Introdução à Linguagem SQL

Documentos relacionados
Banco de Dados I Introdução SQL

Banco de Dados. Professora: Luciana Faria

A linguagem SQL

MYSQL - PRIMEIROS COMANDOS CRIAÇÃCO DO BD E DAS TABELAS, INSERÇÃO E CONSULTA DE REGISTROS. create database [if not exists] <nome>

Bases de Dados. DDL Data Definition Language

Banco de dados. Conteúdo: DDL Prof. Patrícia Lucas

BANCO DE DADOS. Para a criação de um banco de dados, através de scripts SQL, deve-se usar a seguinte sintaxe: CREATE DATABASE <nome_banco_de_dados>

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR

BANCO DE DADOS GERENCIAL 1 A U L A 2

Sumário. SQL - Criação de Tabelas. Structured Query Language. SQL Versões. André Restivo. October 18, 2010

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

PSI Linguagem de Definição de dados. Módulo 15

Para criarmos um banco de dados no MySql, utilizamos à instrução:

Mysql. Quanto mais informações você busca, mais você evolui. Vitor Ramos. Disciplina de Banco de Dados

SQL Básica DDL. Prof. Marcos A. Schreiner. 21 de outubro de Curso de Licenciatura em Computação

Manipulação de Dados com SQL

SQL (Tópicos) Structured Query Language

Definição do esquema da base de dados. o esquema da BD é composto pelas definições de todas as tabelas da BD.

A linguagem SQL

LINGUAGEM SQL Linguagem usada em SGBD para: Definir estrutura de dados; Modificar dados em um banco de dados; Especificar restrições de segurança; Rea

Aula de SQL Comandos DDL. André Luiz de Oliveira Eduardo Raul Hruschka

Benvindo ao Curso de Introdução ao Firebird com Ferramenta de Relatórios!

Projeto e Administração de Banco de Dados

BCD29008 Banco de dados

Sumário: 1) Trabalhando com Constraints: - NOT NULL - UNIQUE - PRIMARY KEY - FOREIGN KEY - DEFAULT

MODELAGEM DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc.

Introdução em Banco de Dados

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.

Aula 06 Sistemas Embarcados LT38C

E-BOOK GUIA RÁPIDO DE SQL W W W. T R E I N A W E B.C O M. B R

IMPLEMENTAÇÃO DE BANCO DE DADOS

Material Teórico. Organização de Dados. Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque

Banco de Dados. Linguagem SQL

A Linguagem SQL. Tecnologia de Base de Dados. MSc. Eugénio. Macumbe

S U B G R U P O S D M L E D Q L : A L T E R A N D O E A P A G A N D O D A D O S E M U M A T A B E L A

Fundamentos de Banco de Dados Postgre com Sql

Escola Secundária de Albufeira. Comandos MySQL. (Páginas Web Dinâmicas: PHP e MySQL) Carlos Nunes

Linguagem de Consulta Estruturada (SQL)

FTIN FORMAÇÃO TÉCNICA EM INFORMÁTICA. Módulo de Programação Prof. Bruno Maciel

A U L A 3 S U B G R U P O S D M L E D Q L : I N S E R I N D O E P E S Q U I S A N D O D A D O S E M U M A T A B E L A

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL

SQL Básica. Andre Noel

MODELAGEM DE DADOS MODELO FÍSICO

BANCO DE DADOS PARA NINJAS

BANCO DE DADOS PARA WEB

Tarefa Orientada 8 Criação de tabelas

Banco de dados POO Márcio Delamaro. Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO

Modelagem Física e SQL

INTRODUÇÃO AO MYSQL PROF. ME. HÉLIO ESPERIDIÃO

Banco de Dados. -Aprendendo conceitos -Usando o SQL Conf para: -Conectar no banco de dados -Criar, alterar, excluir e consultar estruturas de tabelas

BANCO DE DADOS. Vinícius Pádua

SQL PostgreSQL. I Criação de Tabelas. Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida

SQL (Structured Query Language)

Marcelo Henrique dos Santos

Disciplina: Banco de Dados Tema: SQL Parte 2

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

SQL (Structured Query Language)

15 - Introdução às Bases de Dados

SQL (Structured Query Language)

Modelagem Física e SQL

Sistemas de Informação e Bases de Dados 2012/2013. Linguagem SQL

PHP INTEGRAÇÃO COM MYSQL PARTE 1

SQL BÁSICO. Luiz Antônio Vivacqua Corrêa Meyer

FTIN FORMAÇÃO TÉCNICA EM INFORMÁTICA. Módulo de Programação Prof. Flávio Dantas

SQL. Prof. Roger Cristhian Gomes

UFG - Instituto de Informática

Acesso a Base de Dados Via Web


Revisão de Bancos de Dados

INTRODUÇÃO AO MYSQL. Eng. Computação

SQL. Linguagem de Definição de Dados (DDL) Tipos em SQL. Tipos Data/Tempo em SQL (cont.)

Banco de dados 1. Linguagem SQL DDL e DML Parte 2. Professor: Victor Hugo L. Lopes

Manipulando a base de dados

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 16. Escola Politécnica da Universidade de São Paulo

Aula 6 BD1 Modelo Relacional. Profa. Elaine Faria UFU

Banco de dados. Linguagens de Banco de Dados II. Wedson Quintanilha da Silva -

Caderno de Introdução Bases Dados

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Bancos (Bases) de Dados

SISTEMAS DE INFORMAÇÃO

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

Banco de Dados. Colégio Singular. Curso Profissionalizante: Informática

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre

Teste Exemplo Revisão da tentativa 1

P R O F. M E. H É L I O E S P E R I D I Ã O. Eng. Computação

O modelo relacional encontra-se padronizado pela indústria de informática. Ele é chamado de

MySql. Introdução a MySQL. Andréa Garcia Trindade

Preparação. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 10/12/2013

Flickr, shindotv/ / BASES DE DADOS. Laboratórios de Informática João Paulo Barraca, André Zúquete, Diogo Gomes

Triggers(Gatilhos) Tiago Alves de Oliveira

Instrução Create Table

Tarefa Orientada 9 Base de Dados Pagamentos

Agenda. Linguagem de Consulta SQL. 1. Introdução Histórico. 1. Introdução BD Relacionais

Importar e Exportar Dados

Técni n c i as e L i L n i g n u g age g ns n p ara r Ba B nc n o d e D ados I ACCESS

SQL Linguagem de Definição de Dados

Transcrição:

Curso Profissional de Técnico de Multimédia 12ºAno Disciplina: Sistemas de Informação Módulo 6: Linguagem de Programação IV 6.2. Bases de Dados 6.2.3. Introdução à Linguagem SQL Prof. Micael Alves

Bases de Dados Introdução à linguagem SQL A linguagem SQL é muito simples. Trata-se de uma linguagem que não é case sensitive e que conta com um número muito limitado de comandos. Contudo, esta linguagem será interligada com a linguagem PHP que se trata de uma linguagem case sensitive. Vários erros de sintaxe podem resultar desta combinação de linguagens, pelo que é importante manter os nomes (BD, tabelas, campos) sempre escritos da mesma forma.

Bases de Dados Introdução à linguagem SQL A linguagem SQL é muito simples. Trata-se de uma linguagem que não é case sensitive e que conta com um número muito limitado de comandos. Contudo, esta linguagem será interligada com a linguagem PHP que se trata de uma linguagem case sensitive. Vários erros de sintaxe podem resultar desta combinação de linguagens, pelo que é importante manter os nomes (BD, tabelas, campos) sempre escritos da mesma forma. Para já comecemos por distinguir o tipo de acções permitidas nesta linguagem.

Bases de Dados Introdução à linguagem SQL DDL Data Definition Language Create Database Criar BD Create Table Criar tabela Alter Table Alterar a estrutura de uma tabela Drop Table Eliminar uma tabela Drop Database Eliminar BD DML Data Manipulation Language Insert Inserir dados numa tabela Updade Alterar dados numa tabela Delete Apagar dados de uma tabela Select Efectuar consultas em tabelas

Bases de Dados Introdução à linguagem SQL Como se pode verificar pelas tabelas, todos os comandos DDL são estruturais. Permitem operar sobre a estrutura da BD e das suas tabelas não sendo possível a manipulação de informação. Por outro lado, os comandos associados com DML apenas permitem operar sobre a informação existente nas tabelas não sendo possível alterar a estrutura da BD. Como já se referiu, a BD será composta por tabelas. Cada uma dessas tabelas irá conter informação à qual se atribui o nome de registos.

Bases de Dados Introdução à linguagem SQL Cada um destes registos terá de ser identificado univocamente para que não seja confundido com outro qualquer presente na mesma tabela. Por exemplo, numa tabela Cidadão será normal existirem várias pessoas com o mesmo nome completo. Todavia, é possível distinguir essas pessoas devido ao seu Bilhete de Identidade (BI), que é diferente para cada uma delas. Em cada tabela, deverá escolher-se um campo, ou um conjunto de campos, que permitam identificar cada linha (ou registo) univocamente. Teremos assim a nossa chave primária da tabela. Vejamos um exemplo.

Bases de Dados Introdução à linguagem SQL TABELA JOGADOR NumAtleta NomeJogador Idade N o m e C l u b e Posicao 01256648 Deco 31 Chelsea Médio 01334567 Bruno Alves 30 FC Porto Defesa 02356444 C. Ronaldo 26 Real Madrid Avançado Nota: O nome das BDs, tabelas e campos das tabelas devem sempre ser escritos sem pontuação, acentos, espaços ou cedilhas.

Bases de Dados Introdução à linguagem SQL Quando as tabelas são representadas graficamente a chave primária é campo da tabela que se encontrar sublinhado. Neste caso, a tabela Jogador tem como chave primária o campo NumAtleta (Número de Atleta). Este é único para cada desportista permitindo distinguir cada um dos jogadores da tabela.

Bases de Dados Introdução à linguagem SQL No entanto, existe um outro campo que se encontra parcialmente sublinhado (NomeClube), representando uma chave externa. Este tipo de chave, como o nome indica, liga-se ao exterior, isto é, a outra tabela. Uma chave externa faz correspondência com uma chave primária de outra tabela. Vejamos a tabela Clube.

Bases de Dados Introdução à linguagem SQL TABELA CLUBE N o m e C l u b e País Idade Estádio FC Porto Portugal 115 Dragão Real Madrid Espanha 120 Santiago Bernabéu Manchester U. Inglaterra 100 Old Trafford A tabela anterior tem como chave primária o campo NomeClube. A existência de duas tabelas permite separar informações distintas.

Bases de Dados Introdução à linguagem SQL Não faria sentido colocar informações sobre um clube na tabela Jogador ou vice-versa. Desta forma é possível separar as informações mas garantindo que elas estão relacionadas através de uma chave externa. Esta, para além de garantir a interligação entre as tabelas permite ainda que os dados dessas tabelas coexistam como um só. Caso a informação fique sujeita a alterações (actualização, remoção) todas as tabelas que estão interligadas sofrem as mesmas alterações.

Bases de Dados Introdução à linguagem SQL Por exemplo, na tabela Clube se o Real Madrid fosse apagado da tabela todos os jogadores associados a este clube na tabela Jogador iriam desaparecer. Isto faz sentido pois não podem existir jogadores de um clube inexistente. Garante-se assim integridade entre as tabelas e estas não acumulam informação desnecessária (lixo). Este é um dos problemas que pode afectar o desempenho de uma BD a longo prazo.

Bases de Dados Introdução à linguagem SQL RELACIONAMENTO ENTRE TABELAS Jogador NumAtleta NomeJogador Idade N o m e C l u b e Posicao N 1 Clube NomeClube País Idade Estádio Relacionamento entre tabelas

Bases de Dados Introdução à linguagem SQL O relacionamento entre as tabelas faz-se entre a chave primária da tabela Clube e a chave externa da tabela Jogador. O seu relacionamento é 1:N, ou seja, 1 jogador apenas pode ter um clube mas um clube pode ter vários (N) jogadores no seu plantel. Existem mais dois tipos de relacionamentos para além do anterior (1:1 e N:M). Voltando finalmente ao MySQL, mas relembrando sempre o que se referiu anteriormente, comecemos por criar uma BD e posteriormente as suas tabelas.

Bases de Dados Aproveitando o exemplo anterior sobre futebol vamos começar por criar uma BD com este nome.

Criar BD Bases de Dados Para criarmos uma BD utilizamos o seguinte comando: CREATE DATABASE nome_bd_a_criar; Exemplo Como se pode verificar pelo comando o SQL não é uma linguagem case sensitive. Convém notar que todos os comandos terminam com um ponto e vírgula.

Listar BDs Bases de Dados Para verificarmos se a nossa BD se encontra criada podemos listar as BDs através do seguinte comando: SHOW databases; Exemplo Listar BDs

Usar a BD Bases de Dados Após a criação de uma BD é necessário dizer ao programa qual a BD que queremos utilizar para posteriormente lhe podermos adicionar tabelas. Isto é conseguido através da seguinte instrução: USE nome_bd_a_usar; Exemplo Seleccionar BD

Criar tabela Bases de Dados Uma vez criada a BD e seleccionada para utilização podemos começar a criar as suas tabelas. A instrução para o efeito é a seguinte USE TABLE nome_tabela (campo1 tipo de dados1, campo2 tipo de dados2, campon tipo de dadosn); Exemplo Criar Tabela

Criar tabela Bases de Dados Como pode verificar os nomes atribuídos aos campos da tabela são isentos de caracteres como cedilhas, acentos, pontuação ou espaços em branco. O tipo de dados mais comuns são Varchar, que são caracteres em número variável e que geralmente identificamos como strings. No caso de se tratar de um número inteiro devemos associar o campo a um Integer (ver, por exemplo, o campo Idade).

Criar tabela Bases de Dados No caso de se tratar de um número decimal podemos, por exemplo, usar o tipo Real (ou Float). Existem muitos outros relacionados com tipos numéricos, strings, data, tempo ou geometria. Devem ser utilizados conforme as necessidades de cada campo da tabela. Como deve ter reparado, após cada tipo de dados intruduzse um valor entre parênteses. Este corresponde ao número de caracteres máximos reservados para cada campo criado. Quando um dos campos é chave primária é necessário acrescentar Primary Key a seguir ao tipo de dados (ver campo nomeclube).

Listar tabelas Bases de Dados Após a criação de uma tabela podemos visualizá-las. A instrução é a seguinte: SHOW tables; Exemplo Listar Tabelas

Listar campos da tabela Bases de Dados Se pretendermos visualizar os campos de uma tabela podemos fazê-lo através do seguinte comando: DESCRIBE nome_tabela; Exemplo Listar campos de uma tabela

Listar campos da tabela Bases de Dados Na figura anterior existem informações importantes, como a particularidade do campo NULL da chave primária se encontrar com o valor NO. Isto significa que o campo nunca pode ser nulo, visto tratarse de uma chave primária, ou seja, de preenchimento obrigatório. Na coluna Key verifica-se que o campo nomeclube é de facto a chave primária (PRI).

Bases de Dados Alterar a estrutura da tabela Após a criação de uma tabela podemos alterar a sua estrutura através do seguinte comando: ALTER TABLE nome_tabela tipo_de_alteração; Como foi referido anteriormente a chave externa da tabela jogador para a tabela clube não foi criada propositadamente. Neste momento podemos aproveitar esta anomalia para atribuir a chave externa através do comando ALTER TABLE.

Alterar a estrutura da tabela Exemplo 1 Bases de Dados Alter Table ADD

Alterar a estrutura da tabela Esta referência deveria contudo ter sido criada na altura em que se criou a tabela através do seguinte comando: CREATE TABLE jogador (numatleta varchar(30) Primary Key, nomejogador varchar(30), idade int(3), nomeclube varchar(30) References clube(nomeclube), posicao varchar(30)); O comando ALTER TABLE permite ainda três outros tipos de alterações. Para além de ADD aceita MODIFY, DROP e CHANGE. Vejamos alguns exemplos: Bases de Dados

Alterar a estrutura da tabela Exemplo 2 ALTER TABLE jogador modify clube varchar(90); Esta alteração permite modificar o tipo de dados do campo clube da tabela jogador. Exemplo 3 Bases de Dados ALTER TABLE jogador change posicao pos varchar(90); Esta alteração permite mudar o nome do campo posicao para pos. É sempre necessário acrescentar o tipo de dados no campo substituto.

Bases de Dados Alterar a estrutura da tabela Exemplo 4 ALTER TABLE jogador drop posicao; Esta alteração permite apagar o campo posicao da tabela.

Eliminar tabela Bases de Dados Para eliminar uma determinada tabela usa-se o seguinte comando: DROP TABLE nome_tabela;

Eliminar tabela Bases de Dados Exemplo Eliminar Tabela

Eliminar BD Bases de Dados Para eliminar uma determinada BD usa-se o seguinte comando: DROP DATABASE nome_bd;

Eliminar BD Bases de Dados Exemplo Eliminar BD

Eliminar BD Bases de Dados Desta forma terminam todos os conceitos relacionados com comandos DDL. Seguemse todos os comandos DML.

Inserir dados em tabelas Bases de Dados Uma vez criadas as tabelas é desde logo possível adicionar dados às mesmas. Para isso usa-se o comando: INSERT nome_tabela VALUES (valor1, valor2,, valorn);

Inserir dados em tabelas Exemplo Bases de Dados Inserir Dados em Tabela

Inserir dados em tabelas Bases de Dados Pelo exemplo anterior verifica-se que todos os tipos de dados String se encontram entre aspas. No caso dos dados serem numéricos não se podem introduzir aspas ou esses valores serão encarados como Strings. Deve-se igualmente ter em atenção a ordem pela qual se inserem os valores na tabela. Esta deve respeitar a ordem pela qual os campos foram criados (ver CREATE TABLE) ou arriscamo-nos a introduzir informação nos campos errados (por exemplo, inserir a idade do jogador no nome do jogador).

Inserir dados em tabelas Bases de Dados Antes da inserção, se tivermos dúvidas, devemos realizar um DESCRIBE nome_tabela; para verificar como se encontram ordenados os campos da tabela. No caso de pretender inserir mais do que um jogador em simultâneo bastará acrescentar informação sobre os diferentes jogadores separados por vírgulas. A instrução termina novamente com um ponto e vírgula. Vejamos:

Inserir dados em tabelas Bases de Dados Inserir vários registos

Bases de Dados Listar (Pesquisar) dados de tabelas Para vermos o conteúdo de uma tabela usamos o comando SELECT: SELECT nomes_das_colunas FROM nome_tabela;

Listar (Pesquisar) dados de tabelas Exemplo Bases de Dados Listar conteúdo de uma Tabela

Bases de Dados Listar (Pesquisar) dados de tabelas No exemplo anterior, optou-se por listar todos os campos da tabela Jogador. Contudo, é possível listar apenas alguns campos da tabela. Por exemplo: Listar alguns campos de uma Tabela

Bases de Dados Listar (Pesquisar) dados de tabelas A ordem pela qual se indicam os campos a listar durante a execução do SELECT será a ordem pela qual os campos serão apresentados no ecrã (da esquerda para a direita). É possível alterar a ordem pela qual os dados nos serão mostrados. Mais à frente veremos com maior pormenor as formas de pesquisar dados numa BD. Aqui reside a parte mais importante da linguagem SQL.

Bases de Dados Actualizar dados em tabelas Os dados presentes nas tabelas estão constantemente a necessitar de alterações. Por exemplo, a idade dos jogadores altera todos os anos pelo que é necessário actualizar esse campo do registo. Todavia, não faz sentido pensar em apagar o registo desse jogador e inseri-lo novamente, apenas com a idade diferente. Existe um comando em SQL (UPDATE) que permite manter toda a estrutura do registo alterando apenas um campo, ou os que forem necessários actualizar. UPDATE nome_tabela SET nome_campo1=valor1, nome_campo2=valor2,, nome_campon=valorn WHERE condição;

Bases de Dados Actualizar dados em tabelas Actualizar um registo

Bases de Dados Actualizar dados em tabelas Neste exemplo inseriu-se um novo comando: WHERE. Este é o comando selector (filtro). Ao realizar um UPDATE deste género sem a condição WHERE todos os jogadores da tabela passariam a ter idade igual a 31 anos. Para podermos seleccionar apenas o jogador (neste caso Bruno Alves) é necessário impor uma condição que permita, sem margem para dúvidas, que apenas a idade deste jogador seja alterada. Isso apenas é conseguido através do identificador único do registo (chave-primária) que neste caso é o número de atleta, daí ter acrescentado à query numatleta= 898776.

Apagar dados de tabelas Exemplo Bases de Dados Apagar Jogador

Bases de Dados Actualizar dados em tabelas Mais uma vez foi necessário acrescentar o comando selector WHERE para a execução desta acção sobre a BD. Se não o fizéssemos todos os jogadores seriam apagados da tabela. Garantiu-se assim que apenas o jogador com o número de atleta igual a 898776 fosse apagado dos registos.