150 likes | 272 Views
Universidade de Passo Fundo Tecnologia em Sistemas de Informação. TSI109- Fundamentos de Banco de Dados Prof. Alexandre Tagliari Lazzaretti lazzaretti@upf.br vitoria.upf.tche.br/~lazzaretti. SQL. SQL “ structured query language ” – linguagem padrão comercial e completa de
E N D
Universidade de Passo FundoTecnologia em Sistemas de Informação TSI109- Fundamentos de Banco de DadosProf. Alexandre Tagliari Lazzarettilazzaretti@upf.brvitoria.upf.tche.br/~lazzaretti
SQL SQL “structured query language” – linguagem padrão comercial e completa de definição e manipulação de banco de dados relaconais • SQL1: aprovado pelo grupo ANSI, em 1986 • SQL2: aprovado em 1992 • SQL3: aprovado em 1999 • SQL4: em andamento • Linguagens – DDL (Data Definition Language) – DML (Data Manipulation Language)
SQL - DDL • Criação do banco de dados CREATE DATABASE <CAMINHO E ARQUIVO> [USER ‘usuario’ PASSWORD ‘senha’] Exemplo: create database ‘c:\dados\teste.gdb’ user ‘SYSDBA’ PASSWORD ‘masterkey’ Observação: para alterar o usuário de senha padrão, primeiramente deve-se cadastrá-los no SGBD
SQL - DDL Criação de tabelas O comando CREATE TABLE: cria a tabela solicitada CREATE TABLE <nome da tabela> ( <descrição_das_colunas> ) ( <descrição_das_restrições> ) • <tabela>: nome da nova tabela a ser criada • <descrição_das_colunas> : lista de colunas (campos) e seus respectivos tipos de dados ( char, integer, decimal, date, ...) • <descrição_das_restrições>: restrições de chaves, integridade, domínio
SQL Exemplo: criação da tabela de diagnósticos CREATE TABLE DIAGNOSTICOS( CODIGODIAGNOSTICO INTEGER NOT NULL, DESCRICAO VARCHAR(150) NOT NULL, CONSTRAINT "PKDIAGNOSTICOS" PRIMARY KEY (CODIGODIAGNOSTICO) );
SQL • Definição de chaves • Chave primária: [constraint Pkdiagnostico]PRIMARY KEY (codigodiagnostico) • Chave estrangeira: FOREIGN KEY (campo tabela atual) references <tabela referenciada> (chave primaria na tabela referenciada) [cláusula] Cláusulas: - Delete: on delete restrict (default), on delete cascade, on delete set null - Update: on update restrict, on update cascade
SQL Modelo Lógico Modelo Físico (SQL) Cidades # codigo – integer, not null Nome – varchar(50), not null UF – varchar(2), not null Pessoas # codigo – integer, not null nome – varchar(50), not null @cidade – integer Create table cidades( Codigo integer not null, Nome varchar(50) not null, Uf varchar(2) not null, Primary key (codigo)); Create table pessoas( Codigo integer not null, Nome varchar(50) not null, Cidade integer, Primary key (codigo), Foreign key (cidade) references cidades (codigo));
SQL • Exclusão de tabelas • DROP table <nome_tabela> • Alteração de tabelas: • alter table <tabela> <cláusula de coluna> • Cláusulas de colunas: – ADD – adiciona um novo atributo – ALTER – altera um atributo – DROP [COLUMN] – apaga um atributo – DROP CONSTRAINT – apaga uma constraint
SQL • Cláusulas de exclusões de chave – DROP PRIMARY KEY <nome da chave primária> – DROP FOREIGN KEY <nome da chave estrangeira> Exemplos: • ADD ALTER TABLE PACIENTE ADD ENDERECO VARCHAR(50); – adiciona nova coluna com valor vazio para todas as linhas – não pode ter especificação NOT NULL • ALTER ALTER TABLE PACIENTE ALTER ENDERECO TYPE VARCHAR(70) • DROP ALTER TABLE PACIENTE DROP ENDERECO; ALTER TABLE PACIENTE DROP constraint fkpaciente
SQL • Cláusula check A cláusula CHECK especifica restrições de integridade, ou testes, que as linhas novas ou atualizadas devem atender para uma operação de inserção ou de atualização completar. Cada restrição deve ser uma expressão que produza um resultado booleano. Uma condição declarada na definição da coluna deve fazer referência apenas ao valor desta coluna, enquanto uma condição declarada como restrição da tabela pode fazer referência a várias colunas. Atualmente, as expresões de CHECK não podem conter subconsultas, nem fazer referência a variáveis que não sejam colunas da linha atual. – check (expressão)
SQL • Cláusula check Exemplos: 01. CREATE table cidades (cod_cid integer not null, nome_cid varchar(50) not null, uf varchar(2) not null, check(uf='RS' or uf='SC')); 02. ALTER table cidades add check(uf='RS' or uf='SC' or uf='PR')
SQL • Cláusula domain • Compreende uma enumeração dos valores para o domínio em questão. – CREATE domain (expressão) Exemplos: CREATE domain dnome varchar(30) CREATE table funcionarios(cod_fun integer not null, nome_fun dnome not null)
SQL • Índices • Criar índice • CREATE [unique] INDEX <nomeindice> on <nometabela> (<coluna(s)>) • Exemplo: Create unique index nomepac on pacientes (nome_pac) • Remover índice • DROP index <nomeindice> • Exemplo: DROP index nomepac
Alguns exemplos == INSERÇÃO DE UM NOVO ATRIBUTO === ALTER TABLE PESSOAS ADD PESCID INTEGER NOT NULL; == CRIAÇÃO DE CHAVE ESTRANGEIRA == ALTER TABLE PESSOAS ADD CONSTRAINT "FKPESSOA" FOREIGN KEY (PESCID) REFERENCES CIDADES (CODCID); == CRIAÇÃO DE CHAVE PRIMÁRIA === ALTER TABLE PESSOAS ADD CONSTRAINT "PKPESSOA" PRIMARY KEY (CODPES);