Ifes - Campus Cacheir de Itapemirim Banc de Dads DIEGO BARCELOS RODRIGUES dbarcels@ifes.edu.br 2015 (2015/1) 1
Agenda Breve revisã ds Cnceits Básics SQL (Linguagem de Cnsulta Estruturada) Subdivisões da Linguagem DDL (Linguagem de Definiçã de Dads) CREATE DROP ALTER
Vims que... Banc de Dads (Database) cnsiste em uma estrutura cmputacinal cmpartilhada e integrada que armazena dads (em um cnjunt de arquivs), sejam eles d usuári u metadads. pde ser classificad cm: mnusuári multiusuári grup de trabalh empresarial peracinal, transacinal u de prduçã hmlgaçã data warehuse (armazém de dads) centralizad distribuíd
Vims que... O Sistema de Gerenciament de Banc de Dads (SGBD) é um cnjunt de prgramas que gerenciam Bancs de Dads e cntrlam acess as dads armazenads age cm um intermediári entre usuári e Banc de Dads; é únic md de acess as dads de uma Database; transfrma lógic para físic e físic para lógic; gerencia a segurança, a integridade ds dads e rtinas de backup e restauraçã. Pr cnsequência, SGBD frnece vantagens cm: aprimrament d cmpartilhament, segurança e integraçã ds dads; minimizaçã de incnsistências; aument de prdutividade d usuári final.
Vims que... Sã basicamente 4 s tips de usuáris de bancs de dads: DBA Administra SGBD s e Bancs de Dads Aplicaçã Externa acessa s dads utilizads em perações diárias da empresa. Usuári ad hc acessa diretamente SGBD para realizaçã cnsultas u transações sem estar vinculad a uma aplicaçã que acessa BD. Prgramadr desenvlve aplicações utilizand um ambiente de desenvlviment que integra LP s e SQL, prduzind geradres de relatóri e frmuláris.
Vims que... Sã basicamente 3 (três) tips de visões das estruturas cmputacinais de armazenament que cnsituem banc de dads: Metadads Dads d Usuári (BD) Backup e Lg de Transações Mas que tds s usuáris tem a visã de uma única estrutura devid a SGBD ser únic mei de acess as dads.
SQL SQL Structured Query Language u Linguagem de Cnsulta Estruturada Cnsiste n métd de acess básic a Banc de Dads através d SGBDR. Subdivisões: DDL Linguagem de Definiçã de Dads DML Linguagem de Manipulaçã de Dads DCL Linguagem de Cntrle de Dads DTL Linguagem de Transaçã de Dads (Begin Tran, Cmmit e Rllback) DQL Linguagem de Cnsulta de Dads (Select)
SQL DDL Cnstituída pr cmands SQL respnsáveis pela definiçã (criaçã, alteraçã u remçã) de databases, tabelas, restrições, etc. Sã apenas três cmand: CREATE para a criaçã de um bjet n banc DROP para remçã de um bjet n banc ALTER para alteraçã de um bjet n banc Pdem ser aplicads as mais variads bjets de um banc de dads: tabelas, views, índices, databases, etc.
SQL DDL Exempls: CREATE TABLE ALTER TABLE DROP TABLE CREATE INDEX ALTER INDEX DROP INDEX CREATE VIEW ALTER VIEW DROP VIEW CREATE SCHEMA ALTER SCHEMA DROP SCHEMA
SQL DDL CREATE TABLE Sinpse básica: CREATE TABLE nme_tabela ( nme_cluna_1 tip_cluna_1 [ [NOT] NULL ] [ DEFAULT <valr> ]... /* Os três pnts representam mais definições de clunas */ [, nme_cluna_n tip_cluna_n [ [NOT] NULL] ] [, CONSTRAINT PrefixRestrica_NmeRestrica Tip_Restrica ( lista_de_clunas cndica ) [ REFERENCES NmeTabela_Referenciada ( lista_de_clunas ) ] ]... /* Os três pnts representam mais definições de restrições */ );
SQL DDL CREATE TABLE Sinpse básica: Onde n é um númer natural e: - PrefixRestrica pde ser: PK para restrições PRIMARY KEY FKn UN para restrições FOREIGN KEY para restrições UNIQUE CK para restrições CHECK - Nme_Restrica será uma abreviaçã u nme da própria tabela quand se tratar de restrições PRIMARY KEY, FOREIGN KEY e UNIQUE. Quand fr uma restriçã CHECK Nme_Restrica deve retratar a cndiçã. Exempl: CONSTRAINT CK_Emp_Salari_Psitiv CHECK (Salari > 0)
SQL DDL CREATE TABLE Sinpse básica: CREATE TABLE nme_tabela ( nme_cluna_1 tip_cluna_1 [[NOT] NULL] ); [, nme_cluna_n tip_cluna_n [[NOT] NULL] ] [, CONSTRAINT PK_nme_tabela PRIMARY KEY (lista_de_clunas)] [, CONSTRAINT UN_nme_restrica UNIQUE (lista_de_clunas)] [, CONSTRAINT FK_nme_restrica FOREIGN KEY (lista_de_clunas) references nme_tabela_refenciada(lista_de_clunas)] [, CONSTRAINT FK_nme_restrica FOREIGN KEY (lista_de_clunas) references nme_tabela_refenciada(lista_de_clunas)] [, CONSTRAINT CK_nme_restrica CHECK (cndiçã_01)] [, CONSTRAINT CK_nme_restrica CHECK (cndiçã_n)]
SQL DDL CREATE TABLE Exempl O códig abaix cria uma tabela vazia chamada departament : CREATE TABLE departament ( Cd_Dpt INTEGER NOT NULL, Nm_Dpt VARCHAR(40) NOT NULL, Ger_Dpt CHAR(7), DtIniciGer DATE, Lcal_Dpt CHAR(500) NOT NULL, CONSTRAINT PK_Empregad PRIMARY KEY (Cd_Dpt) );
SQL DDL CREATE TABLE Códig para criaçã da tabela empregad: CREATE TABLE empregad ( Matr_Emp CHAR(7) NOT NULL, Nm_Emp VARCHAR(40) NOT NULL, Cpf_Emp CHAR(11) NOT NULL, Dpt_Emp INTEGER, Sal_Emp NUMERIC(12,2) NOT NULL, DtAd_Emp DATE, /* Data de Admissa d Empregad */ CONSTRAINT PK_Empregad PRIMARY KEY (matricula), CONSTRAINT UN_Empregad UNIQUE (Cpf), CONSTRAINT CK01_salari CHECK (salari > 0) );
SQL DDL ALTER TABLE Sinpse básica: ADD {COLUMN def_cl CONSTRAINT def_restr} DROP {COLUMN CONSTRAINT} TYPE nv_tip_da_cluna ALTER TABLE nm_tab ALTER COLUMN nm_cl DROP {NOT NULL DEFAULT} SET {NOT NULL DEFAULT valr_default} RENAME TO nv_nme_da_tabela COLUMN nm_cl TO nv_nme_da_cluna Onde: def_cl: nme_cluna tip_cluna [ [[NOT] NULL] DEFAULT valr_default] def_restr: nme_restrica tip_restr { cnd. lista_cls [references nm_tab lista_cls] }
SQL DDL ALTER TABLE Exempls: ALTER TABLE empregad ADD COLUMN End_Emp VARCHAR(500) NOT NULL ALTER TABLE empregad DROP COLUMN End_Emp ALTER TABLE empregad ADD CONSTRAINT FK01_Empregad FOREIGN KEY (Cd_Dpt) REFERENCES Departament(Cd_Dpt) ALTER TABLE empregad ALTER COLUMN Dpt_Emp TYPE SMALLINT ALTER TABLE empregad ALTER COLUMN End_Emp DROP NOT NULL ALTER TABLE empregad ALTER COLUMN Dpt_Emp SET NOT NULL ALTER TABLE empregad ALTER COLUMN DtAdmissa_Emp SET DEFAULT nw() ALTER TABLE empregad RENAME TO Emplyee ALTER TABLE empregad RENAME Dpt_Emp TO Dep_Emp
SQL DDL DROP TABLE Exempls: DROP TABLE ALUNO DROP TABLE PROFESSOR DROP TABLE DISCIPLINA
SQL DML INSERT INTO Sinpse básica: INSERT INTO nme_tabela (lista_de_clunas) VALUES (respectivs_valres_das_clunas) Exempl: INSERT INTO empregad (Matr_Emp,Nm_Emp, Cpf_Emp, Dpt_Emp, Sl_Emp, DtAd_Emp) VALUES ( 2003509, Jse Dias, 12312312312, 9, 1789.00, 2011-01-09 ) O cmand acima insere uma linha na tabela empregad.
SQL DML DELETE Sinpse básica: DELETE FROM nme_tabela WHERE <cndica> Exempl: DELETE FROM empregad WHERE Dpt_Emp = 9 O cmand DELETE acima apaga tdas as linhas da tabela empregad que estiverem cm valr 9 na cluna Dpt_Emp.
SQL DML UPDATE Sinpse básica: UPDATE nme_tabela SET nme_cluna = nv_valr [WHERE <cndiçã>] Exempl: UPDATE nme_tabela SET Dpt_Emp = 1 WHERE Dpt_Emp = 9 O cmand acima atualiza (altera u mdifica) para 1 valr da cluna Dpt_Emp de tdas as linhas que estiverem cm valr 9 nesta mesma cluna. Se remverms a cláusula WHERE tds s valres na cluna Dpt_Emp serã atualizads para 1.
EXERCÍCIO Criar s cmends de definiçã d seguinte mdel: