0 valutazioniIl 0% ha trovato utile questo documento (0 voti)
54 visualizzazioni38 pagine
O documento discute MySQL e banco de dados SQL, incluindo MySQL Workbench para gerenciamento de bancos de dados, segurança do MySQL, linguagem SQL e comandos DDL para criação e gerenciamento de bancos de dados e tabelas.
O documento discute MySQL e banco de dados SQL, incluindo MySQL Workbench para gerenciamento de bancos de dados, segurança do MySQL, linguagem SQL e comandos DDL para criação e gerenciamento de bancos de dados e tabelas.
O documento discute MySQL e banco de dados SQL, incluindo MySQL Workbench para gerenciamento de bancos de dados, segurança do MySQL, linguagem SQL e comandos DDL para criação e gerenciamento de bancos de dados e tabelas.
Breno Santana Santos brenosantos@itatechjr.com.br AGENDA MySQL e MySQL Workbench Sistema de Segurana do MySQL Linguagem SQL Gerenciamento de Banco de Dados e Tabelas Linguagem DDL MYSQL E MYSQL WORKBENCH SGBD Open Source SQL desenvolvido, distribudo e mantido pela Oracle Corporation. Principais caractersticas: Software com dupla licena (GNU e Comercial); Rpido; Multitarefa; Multiusurio; SGBD SQL Robusto; BD Relacional; MYSQL E MYSQL WORKBENCH Escalvel; Fcil Usabilidade; Trabalha em Cliente / Servidor; Escrito em C e C++; Testado com grande nmero de diferentes compiladores; Suportado por vrios SO, ou seja, multiplataforma; Suportado por vrias linguagens de programao: C#, Java, PHP, etc; MYSQL E MYSQL WORKBENCH Sistema de privilgios e senha muito flexvel e seguro, e que habilita verificao baseada em hosts, ou seja, utiliza o sistema de segurana e autenticao UNIX; Suporta grandes BDs, que contm 50 milhes de registros. Segundo o fabricante, existem clientes que possuem em seu servidor 200.000 tabelas e cerca de 5.000.000.000 de registros; Permite conexo TCP / IP. MYSQL E MYSQL WORKBENCH O MySQL Workbench uma ferramenta grfica que permite trabalhar com Servidores e Banco de Dados MySQL. MySQL Workbench possui cinco principais funcionalidades: Desenvolvimento SQL: Criao e gerenciamento de conexes para os servidores de banco de dados. Permite executar comandos SQL por meio de um editor SQL. Substituto do Query Browser; Modelagem de Dados: Criao de modelos grficos de seu esquema do banco de dados (Projeto Lgico), bem como a engenharia reversa, a partir do Projeto Fsico gerar o modelo grfico do Projeto Lgico. Substituto do DB Designer 4; MYSQL E MYSQL WORKBENCH Administrao de Servidores: Permite criar e administrar instncias do servidor. Substituto do Server Administrator; Migrao de Dados: Permite voc migrar o seu banco de dados para o SQL Server, PostgreSQL e outros SGBDs; Suporte ao MySQL Enterprise: Suporta os produtos do Enterprise como o MySQL Enterprise Backup e MySQL Audit. SISTEMA DE SEGURANA DO MYSQL Possui um avanado sistema de segurana. A cada conexo, solicitada uma senha. As senhas dos usurios so criptografadas por um algoritmo semelhante ao processo de autenticao de login do UNIX. A principal forma de gerenciamento de segurana a concesso / revogao de permisses aos usurios que podem acessar o banco de dados. Caso necessite alterar as senhas dos usurios, veja o tutorial de segurana (TUTORIAL SEGURANA MYSQL.pdf). LINGUAGEM SQL Os SGBDs precisam fornecer linguagens para definir e manter um BD. Assim, foi desenvolvida a linguagem SQL, tambm conhecida como Linguagem de Consulta Estruturada (Structured Query Language). Desenvolvida pela IBM para ser a linguagem declarativa para manipular BD. LINGUAGEM SQL Tornou-se um padro ANSI como linguagem padro de manipulao de dados de um BD Relacional (BDR), apesar que algumas empresas criam dialetos especficos do SQL apenas disponveis nos seus produtos (SGBDs). Permite manipular o BDR e seus objetos. Dividida em trs categorias: DDL: Linguagem de Definio de Dados; DML: Linguagem de Manipulao de Dados; DCL: Linguagem de Controle de Dados. LINGUAGEM SQL A linguagem DDL um conjunto de comandos SQL que permite definir (criar), alterar ou remover objetos do BD, assim como o prprio BD. Em sntese, afeta a estrutura dos objetos do BD. Os principais comandos so: Create; Alter; Drop; Rename; Truncate. LINGUAGEM SQL A linguagem DML um conjunto de comandos SQL que permite o acesso e manipulao dos dados de uma tabela em um BD. A linguagem DML pode ser dividida em: Alto Nvel, Declarativa ou No Procedural: Informa-se o que quer. Composta pelos comandos Insert, Update, Delete, Select, etc; Baixo Nvel ou Procedural: Informa-se como quer. Composta por laos de repeties, condicionais, cursores, etc. LINGUAGEM SQL A linguagem DCL um conjunto de comandos SQL que permite o gerenciamento de usurios e permisses em um BD. Os principais comandos so: Grant (concesso de permisses); Revoke (revogao de permisses). Esse tipo de linguagem no ser abordada no curso, somente as linguagens DDL e DML. GERENCIAMENTO DE BANCO DE DADOS E TABELAS Consiste na criao, manipulao e remoo de objetos e dados do BD, bem como essas operaes relacionadas ao prprio BD. GERENCIAMENTO DE BANCO DE DADOS E TABELAS Criao de um Banco de Dados: Diversos BDs separam as informaes de domnios diferentes em um servidor de banco de dados. Sintaxe: CREATE DATABASE DB_NOME; CREATE SCHEMA DB_NOME; Exemplo: CREATE DATABASE ESCOLA; CREATE DATABASE LIVRARIA; CREATE SCHEMA EMPRESA; GERENCIAMENTO DE BANCO DE DADOS E TABELAS Utilizar um BD como BD corrente ou default para uso: Sintaxe: USE DB_NOME; Exemplo: USE ESCOLA; USE LIVRARIA; USE EMPRESA; GERENCIAMENTO DE BANCO DE DADOS E TABELAS Visualizao / Listagem dos As bases de dados BDs contidos no MySQL: information_schema, Sintaxe: mysql e test so BDs criados automaticamente pelo SHOW DATABASES; MySQL para teste ou SHOW SCHEMAS; armazenamento de configuraes. GERENCIAMENTO DE BANCO DE DADOS E TABELAS Remoo de um Banco de Dados: Sintaxe: DROP DATABASE DB_NOME; DROP SCHEMA DB_NOME; Exemplo: DROP DATABASE ESCOLA; DROP DATABASE LIVRARIA; DROP SCHEMA EMPRESA; GERENCIAMENTO DE BANCO DE DADOS E TABELAS Criao de Tabelas: As tabelas dividem os dados de um BD a fim de agrup-los segundo as suas correlaes. Toda coluna ou atributo possui um tipo de dado associado. No MySQL temos vrios tipos de dados definidos pelo sistema (pr-definidos). Tipos de dados pr-definidos so: Inteiro: TINYINT, SMALLINT, MEDIUMINT, INT, INTEGER, BIGINT; Nmero Exato: DECIMAL, NUMERIC; GERENCIAMENTO DE BANCO DE DADOS E TABELAS Ponto Flutuante: DOUBLE, FLOAT, REAL; Data e Hora: DATE, DATETIME, TIME; Caracter: CHAR, VARCHAR; Tipos Enumerados: ENUM. Para os tipos de dados Inteiro, Nmero Exato e Ponto Flutuante, podemos informar a quantidade de dgitos (preciso, tamanho), bem como se a coluna ser UNSIGNED (admite valor absoluto, ignora o zero) ou ZEROFILL (preenche os espaos vazios com zero). Ainda para os tipos Nmero Exato e Ponto Flutuante, podemos informar a quantidade de casas decimais (escala). GERENCIAMENTO DE BANCO DE DADOS E TABELAS Para o tipo de dado Caracter, VALOR DECIMAL(10,2) podemos informar a UNSIGNED ZEROFILL quantidade de caracteres NOME VARCHAR(200) (preciso, tamanho). DATA_NASCIMENTO Exemplos: DATE CODIGO INT HORARIO DATETIME COD_CIDADE INT(10) HORAS TIME ZEROFILL SEXO ENUM(M, F) VALOR DOUBLE SEXO ENUM(M, F) VALOR NUMERIC GERENCIAMENTO DE BANCO DE DADOS E TABELAS Para criar tabelas, utiliza-se o comando CREATE TABLE. necessrio definir os nomes das colunas e seus tipos de dados. Definir as restries para as colunas (NOT NULL, NULL), se necessrio. Definir os valores padres para as colunas, se necessrio. Definir o ENGINE, ou seja, o tipo da tabela, se necessrio. O MySQL possui vrios tipos de tabelas, sendo que o padro MyISAM. GERENCIAMENTO DE BANCO DE DADOS E TABELAS O MyISAM permite maior desempenho, porm, no permite relacionamento entre tabelas por meio de chaves estrangeiras. Para utilizar relacionamentos entre tabelas por meio de chaves estrangeiras, recomendado o uso do tipo InnoDB, mas esse tipo mais lento que o MyISAM. Os tamanhos mximos para a preciso e escala de um tipo de dado so, respectivamente, 255 e 30. Deve-se analisar cuidadosamente o uso do tipo de dado VARCHAR, pois esse tipo permite degradao de desempenho. GERENCIAMENTO DE BANCO DE DADOS E TABELAS Sintaxe:
CREATE TABLE TB_NOME (
NOME_ATRIBUTO TIPO_DADO [RESTRIES], ... NOME_ATRIBUTO TIPO_DADO [RESTRIES] )ENGINE = TIPO_ENGINE; GERENCIAMENTO DE BANCO DE DADOS E TABELAS Exemplo:
CREATE TABLE TB_ALUNO (
MATRICULA INT NOT NULL, NOME VARCHAR(50) NOT NULL, ENDERECO VARCHAR(50) NOT NULL, TELEFONE VARCHAR(15) NULL, IDADE SMALLINT(3) NOT NULL ZEROFILL, ALTURA DECIMAL(10,2) NOT NULL UNSIGNED, DATA_MATRICULA DATETIME DEFAULT (NOW()) ) ENGINE = MyISAM; GERENCIAMENTO DE BANCO DE DADOS E TABELAS As colunas de uma tabela podem ter a propriedade de autoincremento, ou seja, o MySQL atribui o valor automaticamente, permitindo que uma coluna seja incrementada a cada insero de novos registros, identificando-os unicamente. Uso da clusula AUTO_INCREMENT. Somente para os tipos de dados Inteiro e Ponto Flutuante. Somente uma coluna por tabela. A coluna deve ser uma chave (PRIMARY KEY, UNIQUE KEY ou KEY) ou um campo indexado (INDEX). GERENCIAMENTO DE BANCO DE DADOS E TABELAS Exemplo:
CREATE TABLE TB_ALUNO (
MATRICULA INT NOT NULL AUTO_INCREMENT, NOME VARCHAR(50) NOT NULL, ENDERECO VARCHAR(50) NOT NULL, TELEFONE VARCHAR(15) NULL, IDADE SMALLINT(3) NOT NULL ZEROFILL, ALTURA DECIMAL(10,2) NOT NULL UNSIGNED, DATA_MATRICULA DATETIME DEFAULT (NOW()), INDEX(MATRICULA) ) ENGINE = MyISAM; GERENCIAMENTO DE BANCO DE DADOS E TABELAS Alterao de Tabelas: Alterao da estrutura de uma tabela. Permite: Incluso, modificao, substituio e remoo de colunas; Incluso e remoo de restries; Alterao do identificador (nome) da tabela. GERENCIAMENTO DE BANCO DE DADOS E TABELAS Sintaxe: ALTER TABLE TB_NOME ESPECIFICAES; Especificaes: Incluso de Coluna: ADD COLUMN NOME_ATRIBUTO TIPO_DADO [RESTRIES]; Substituio de Coluna: CHANGE COLUMN ANTIGO_NOME_ATRIBUTO NOVO_NOME_ATRIBUTO TIPO_DADO [RESTRIES]; Alterao de Coluna: MODIFY COLUMN NOME_ATRIBUTO TIPO_DADO [RESTRIES]; GERENCIAMENTO DE BANCO DE DADOS E TABELAS Remoo de Coluna: DROP COLUMN NOME_ATRIBUTO; Renomeao de Tabela: RENAME TO NOVO_TB_NOME; RENAME AS NOVO_TB_NOME. GERENCIAMENTO DE BANCO DE DADOS E TABELAS Exemplo: ALTER TABLE TB_ALUNO ADD COLUMN NM_RESPONSAVEL VARCHAR(50) NOT NULL;
ALTER TABLE TB_ALUNO ADD COLUMN VALOR_MENSAL
DECIMAL(10,2) NOT NULL, SITUACAO TINYINT(1);
ALTER TABLE TB_ALUNO CHANGE COLUMN TELEFONE
FONE_RESPONSAVEL VARCHAR(15) NOT NULL; GERENCIAMENTO DE BANCO DE DADOS E TABELAS Exemplo: ALTER TABLE TB_ALUNO MODIFY COLUMN MATRICULA BIGINT NOT NULL;
ALTER TABLE TB_ALUNO DROP COLUMN ALTURA;
ALTER TABLE TB_ALUNO RENAME TO ALUNO_COLEGIO;
GERENCIAMENTO DE BANCO DE DADOS E TABELAS Remoo de Tabelas: Remove a tabela do BD corrente. Sintaxe: DROP TABLE TB_NOME; Exemplo; DROP TABLE TB_ALUNO; GERENCIAMENTO DE BANCO DE DADOS E TABELAS Renomeao de Tabelas: Renomeia uma tabela do BD corrente. Sintaxe: RENAME TABLE TB_NOME TO NOVO_TB_NOME; Exemplo; RENAME TABLE TB_ALUNO TO ALUNO_COLEGIO; GERENCIAMENTO DE BANCO DE DADOS E TABELAS Eliminao dos Registros de Tabelas: Esvazia uma tabela do BD corrente, ou seja, remove todos os registros. Sintaxe: TRUNCATE TABLE TB_NOME; Exemplo; TRUNCATE TABLE TB_ALUNO; GERENCIAMENTO DE BANCO DE DADOS E TABELAS Listagem de Tabelas de um BD: Sintaxe: SHOW TABLES FROM DB_NOME; SHOW TABLES IN DB_NOME; GERENCIAMENTO DE BANCO DE DADOS E TABELAS Visualizao da Estrutura de Tabelas: Permite visualizar a estrutura de uma tabela: colunas, tipos de dados e restries. Sintaxe: DESCRIBE TB_NOME; DESC TB_NOME; SHOW COLUMNS FROM TB_NOME; SHOW COLUMNS IN TB_NOME; GERENCIAMENTO DE BANCO DE DADOS E TABELAS Visualizao da Estrutura de Tabelas: Exemplo: