Escolar Documentos
Profissional Documentos
Cultura Documentos
SQL e SGBDs
https://sites.google.com/site/ckennedyfc/faetec
StructuredQueryLanguage(SQL)
y y y y Linguagem declarativa para bancos de dados relacionais. Criada pela IBM no incio de 1970 (mais de 40 anos!). SQL92 Define um padro mnimo. Alm do padro, os fabricantes de SGBD normalmente criam seus prprios recursos para o gerenciamento e manipulao de bancos de dados relacionais.
Linguagens do SQL
y y y y y DDL (Data DefinitionLanguage): Linguagem usada para a definio da estrutura do banco de dados (CREATE, ALTER E DROP). DML (Data ManipulationLanguage): Linguagem usada para a manipulao de dados (INSERT, UPDATE e DELETE). DCL (Data ControlLanguage): Linguagem usada para controle de acesso a manipulao dos dados (GRANT, REVOKE, PASSWORD, USER, VIEW). DTL (Data TransactionLanguage): Usada para o controle de transaes (START TRANSACTION, COMMIT, ROLLBACK). DQL (Data QueryLanguage): Linguagem usada para a consulta de dados (SELECT, FROM, WHERE, ORDER BY, GROUP BY, HAVING, DISTINCT).
Funes de Agregao
y y y y y AVG:Utilizada para calcular a mdia dos valores de um campo determinado. COUNT:Utilizada para devolver o nmero de registros da seleo. SUM: Utilizada para devolver a soma de todos os valores de um campo determinado. MAX:Utilizada para devolver o valor mais alto de um campo especificado. MIN:Utilizada para devolver o valor mais baixo de um campo especificado.
y y
Char(quantidade_caracteres) VarChar(quantidade_caracteres)
MySQL
y y y SGDB relacional. Usa SQL como linguagem. Muito usado em sistemas Web.
Banco de Dados
Criao de um banco de dados: y CREATE DATABASENOME_DO_BANCO
Exemplo: y y DROP DATABASE BD_ESCOLA; OBS: Para usar o banco de dados no MySQL, usar o comando USE NOME_DO_BANCO.
Criao de Tabela: CREATE TABLE NOME_DA_TABELA ( NOME_CAMPO1 TIPO_CAMPO, NOME_CAMPO2 TIPO CAMPO, NOME_CAMPO_N TIPO CAMPO ) Criao de Tabela Exemplo: CREATE TABLE CLIENTE (ID_CLIENTE INT, NOME VARCHAR(50) ) Alterao de uma Tabela: y Uma tabela alterada a partir do comando ALTER TABLE.
Incluso de um novo campo: y y ALTER TABLE NOME_TABELA ADD COLUMN NOME_CAMPO TIPO_CAMPO
Excluso de um campo(usar o comando drop): y ALTER TABLE CLIENTE DROP COLUMN NOME_CAMPO
Exemplo: ALTER TABLECLIENTE DROP COLUMN EMAIL; Alterao do tipo de um campo: ALTER TABLE CLIENTE DROP COLUMN NOME_CAMPO Exemplo: ALTER TABLECLIENTE DROP COLUMN EMAIL;
DROP TABLECLIENTE
Comandos do MySQL
y y Usar o comando SHOW TABLES para ver as tabelas do banco. Usar o comando DESC para ver a estrutura de uma tabela.
Restries de Integridade
y y y Campos obrigatrios (no nulos) Chaves primrias Chaves estrangeiras
CREATE TABLE CLIENTE (ID_CLIENTE INT NOT NULL, NOME VARCHAR(50) NOT NULL, TELEFONE VARCHAR(20) )
Alterao de um Campo
y Usar o seguinte comando (MySQL):
ALTER TABLENOME_TABELA MODIFYCAMPO TIPO (NOT NULL). Exemplo 1: ALTER TABLEFORNECEDORMODIFYNOME VARCHAR(30) NOT NULL Exemplo 2: ALTER TABLECLIENTEMODIFY EMAILVARCHAR(100);
CREATE TABLE NOME_DA_TABELA ( NOME_CAMPO1 TIPO_CAMPO NOT NULLPRIMARY KEY, NOME_CAMPO2 TIPO CAMPO, NOME_CAMPO_N TIPO CAMPO )
Chave Primria-Exemplo 1
CREATE TABLE CLIENTE (ID_CLIENTE INT NOT NULL PRIMARY KEY, NOME VARCHAR(50) NOT NULL, TELEFONE VARCHAR(20) )
CREATE TABLE NOME_DA_TABELA ( NOME_CAMPO1 TIPO_CAMPO NOT NULL, NOME_CAMPO2 TIPO CAMPO, NOME_CAMPO_N TIPO CAMPO, PRIMARY KEY(NOME_CAMPO_1,...,CAMPO_N) )
Importante
Os campos que constituem a chave primria no podem ter valor nulo. Portanto, usar NOT NULL para todos os campos da chave primria.
Chaves Estrangeiras - 1
y A primeira forma para criar uma chave estrangeira durante a criao da tabela.
CREATE TABLE NOME_TABELA ( CAMPO NOME_CAMPO TIPO, FOREIGN KEY (CAMPO1,...,CAMPO_N) REFERENCES TABELA (CAMPO1,..., CAMPO_N)
Chaves Estrangeiras - 2
y y A segunda forma para criar uma chave estrangeira alterando a tabela. Vantagem: possibilidade de dar um nome para a chave estrangeira.
ALTER TABLE NOME_TABELA ADD CONSTRAINT NOME_CHAVE FOREIGN KEY (CAMPO1,...,CAMPO_N) REFERENCES TABELA (CAMPO1,..., CAMPO_N)
ALTER TABLE NOME_TABELA DROP CONSTRAINT NOME Exemplo: ALTER TABLE VEICULO DROP CONSTRAINT FK_CLIENTE