My SQL Mauro Csar Lopes Introduo 1132020 2
- Slides: 100
My. SQL Mauro César Lopes
Introdução 11/3/2020 2
Bancos de Dados - Exemplos n n n My. SQL Postgre. SQL Oracle SQLServer (Microsoft) DB 2 (IBM) 11/3/2020 3
Tipos de Campos n n n Numéricos Binários Strings Data e Hora Geométricos 11/3/2020 4
Campos Numéricos Podem apresentar as seguintes características: n n n 11/3/2020 UNSIGNED ZEROFILL AUTO_INCREMENT 5
Campos Numéricos (2) n n n n TINYINT[(M)] SMALLINT [(M)] MEDIUMINTINT [(M)] BIGINT [(M)] FLOAT [(M, D)] DOUBLE [(M, D)] DECIMAL [(M[, D])] 11/3/2020 6
Campos Binários Armazenam tipos de dados conhecidos como binários. n BIT n TYNYBLOB n BLOB (Binary Large OBject) n MEDIUMBLOB n LONGBLOB 11/3/2020 7
Campos String n n n n CHAR(M) – strings de tamanho fixo VARCHAR(M) – strings de tamanho variável TINYTEXT MEDIUMTEXT ENUM - enumeração SET - conjunto 11/3/2020 8
Data e Hora n n n DATE (3 bytes) suporte a ano, mês, dia TIME (3 bytes) valor hora do dia DATETIME (8 bytes) YEAR (1 byte) – dois ou quatro dígitos TIMESTAMP (4 bytes) – formato customizável armazena um valor combinado de DATE e TIME 11/3/2020 9
Geométricos n n n POINT LINESTRING POLYGON MULTIPOINT MULTILINESTRING MULTIPOLYGON 11/3/2020 10
Operadores Aritméticos n n soma subtração multiplicação divisão 11/3/2020 11
Operadores Lógicos n n n and or not 11/3/2020 12
Operadores de comparação n n n < = > <= >= <> 11/3/2020 13
Outros operadores n n n n like between in exists all any some 11/3/2020 14
Funções de Agregação n n n count() min () max () avg () sum () 11/3/2020 15
Iniciando o My. SQL em ambiente Linux n n /etc/init. d/mysql start /etc/init. d/mysql stop 11/3/2020 16
Arquivo de Configuração (ambiente Linux) n /etc/mysql/my. cnf arquivo de configuração do My. SQL 11/3/2020 17
Arquivos de Configuração (2) n n n /usr/share/doc/My. SQL-servercommunity-5. 0. 51 a/my-huge. cnf /usr/share/doc/My. SQL-servercommunity-5. 0. 51 a/my-large. cnf /usr/share/doc/My. SQL-servercommunity-5. 0. 51 a/my-medium. cnf 11/3/2020 18
Arquivos de Configuração (3) n n /usr/share/doc/My. SQL-servercommunity-5. 0. 51 a/my-small. cnf /usr/share/doc/My. SQL-servercommunity-5. 0. 51 a/my-innodb-heavy 4 G. cnf 11/3/2020 19
Verificando se o My. SQL está em execução root@ubuntu-server: /etc/apache 2# ps auxw | grep mysqld root 3652 0. 0 0. 2 1716 528 ? S 19: 44 0: 00 /bin/sh /usr/bin/mysqld_safe mysql 3714 0. 0 6. 4 126744 16624 ? Sl 19: 44 0: 00 /usr/sbin/mysqld --basedir=/usr -datadir=/var/lib/mysql --user=mysql --pidfile=/var/run/mysqld. pid --skip-external -locking --port=3306 -socket=/var/run/mysqld. sock root 3716 0. 0 0. 2 1640 532 ? S 19: 44 0: 00 logger -p daemon. err -t mysqld_safe -i -t mysqld 11/3/2020 20
Comandos básicos do My. SQL Solicita o password. Usa usuário corrente $ mysql –p mysql> create database <database>; mysql> use <database>; mysql> show fields from <tabela>; mysql> status; mysql> connect; 11/3/2020 21
Comandos básicos do My. SQL (2) n n show databases; # exibe todos os databases existentes use <database>; # usa um database específico show tables; # exibe todas as tabelas no database corrente desc <table>; # exibe a estrutura de uma tabela 11/3/2020 22
Comando mysqladmin – cliente para administração do servidor My. SQL n Uso: mysqladmin [OPTIONS] command. . n Para maiores informações, digite: $ man mysqladmin n 11/3/2020 23
Exemplos de uso – comando mysqladmin n n mysqladmin –u <user> <password> cria um usuário no My. SQL $ mysqladmin -u root ping $ mysqladmin -u root processlist $ mysqladmin -u root status $ mysqladmin -u root 11/3/2020 24
Logando com um usuário específico n n $ mysql –u root –p $ mysql-admin & 11/3/2020 25
Exemplos mysql>select current_date, version(), user(), now(); mysql> select current_date, version(), user(), now(); +-------+----------------+-----------+ | current_date | version() | user() | now() | +-------+----------------+-----------+ | 2008 -02 -21 | 4. 1. 20 | root@localhost | 2008 -02 -21 10: 57: 05 | +-------+----------------+-----------+ 1 row in set (0. 00 sec) 11/3/2020 26
Criação de Database n n n mysql> mysql> 11/3/2020 create database test; show databases; use database magagerie show tables for <database>; drop database <database>; 27
Criação de Tabelas create [temporary] table <nome> (<colunas) [<opções avançadas>]; Formato das colunas: n <nome coluna> <tipo de dado> [NULL| NOT NULL] [default <valor>] [auto_increment] [primary key | index] n 11/3/2020 28
Criação de Tabelas create table noticias ( id int(5) not null auto_increment, nome char(30) not null, sobrenome char(30) not null, cidade char(5) not null, estado char(2) not null, email char(80), data date not null. hora time not null. subtitulo char(200), texto text not null, ver char(3) default 'off', primary key (id), unique (id) ); 11/3/2020 29
Métodos de funcionamento e armazenamento n n n n n My. ISAM não suporta transações Inno. DB MERGE Memory (HEAP) Berkeley. DB (BDB) EXAMPLE ARCHIVE CSV BLACKHOLE 11/3/2020 30
Diferenças entre My. ISAM e Inno. DB My. ISAM Inno. DB Suporte a índices Sim Suporte a transações Não SIM (ACID) Nenhum Tabela Linha Nome de uso Tipos de dados não suportados Nível de bloqueio 11/3/2020 31
Exemplos show tables; exibe todas as tabelas do database corrente Duas forma de chamar o comando describe: n describe <nome da tabela>; n desc <nome da tabela>; n 11/3/2020 32
Índices n Create [<tipo de índice>] index <nome do indice> on <nome da tabela>(<colunas>); Três tipos de índices: n UNIQUE n FULLTEXT n SPATIAL 11/3/2020 33
Visões (Views) n n n create view <nome> as <expressão SQL>; alter view <nome> as <expressão SQL>; drop view <nome>; 11/3/2020 34
Segurança e Direitos de Acesso 11/3/2020 35
Criação/Remoção de Usuários n n create user <usuario> [identified by password(‘<senha>’)]; drop user <usuario>[@<dominio>]; 11/3/2020 36
Definindo nova senha set password for ‘<usuario>’ = password(‘<senha>’); n SET PASSWORD = PASSWORD(‘<senha>’); altera a senha do usuário corrente. OBS: OBS para remover a senha do usuários root digite o comando: SET PASSWORD = PASSWORD(‘’); n 11/3/2020 37
Observação Observe que após a criação de um novo usuário é necessário adicionar permissões aos novos usuários n grant all on *. * to <usuario>’@’<dominio> identified by ‘<senha>’; OBS: é necessário criar “permissões” para os domínios ‘localhost’ e ‘%’. n 11/3/2020 38
Observação n Após criar, alterar ou excluir um acesso manualmente utilizando expressões SQL, é necessário executar o comando FLUSH PRIVILEGES para que o My. SQL atualize suas informações imediatamente. 11/3/2020 39
Exemplo n n n grant all on *. * to 'maurocl'@'localhost' identified by ‘maurocl-pwd'; grant all on *. * to 'maurocl'@‘%' identified by ‘maurocl-pwd'; grant all on persondb. * to ‘persondb’ identified by ‘abcdefg’; 11/3/2020 40
Tipos de Privilégios n n n n alter permite alterar a estrutura das tabelas select permite realizar consultas SQL insert update delete index permite o gerenciamento de índices create permite criar bancos de dados e tabelas drop 11/3/2020 41
Exibindo privilégios n n n show grants for ‘root’@’localhost’; show grants for maurocl@localhost; show grants for maurocl@'%'; 11/3/2020 42
Alterando as permissões de acesso de um usuário n grant <privilegio> [(colunas)] on <banco>. <tabela> to ‘<usuario>’@’<dominio>’ identified by ‘<senha>’ with grant option; 11/3/2020 43
Sintaxe do comando GRANT n GRANT priv_type [(column_list)] [, priv_type [(column_list)]]. . . ON [object_type] {tbl_name | *. * | db_name. *} TO user [IDENTIFIED BY [PASSWORD] 'password'] [, user [IDENTIFIED BY [PASSWORD] 'password']]. . . [REQUIRE NONE | [{SSL| X 509}] [CIPHER 'cipher' [AND]] [ISSUER 'issuer' [AND]] [SUBJECT 'subject']] [WITH with_option [with_option]. . . ] object_type = TABLE | FUNCTION | PROCEDURE with_option = GRANT OPTION | MAX_QUERIES_PER_HOUR count | MAX_UPDATES_PER_HOUR count | MAX_CONNECTIONS_PER_HOUR count | MAX_USER_CONNECTIONS count 11/3/2020 44
Comando para criação de um usuário GRANT select, insert, update, delete, index, alter, create, drop on <tabela>. * to <user> identified by ‘<password>‘ with grant option; 11/3/2020 45
Executando um comando a partir de um arquivo externo mysql –h <hostname> –D <database> u <user> -p < arquivo. sql Conecta-se ao banco de dados <database> localizado no <hostname> usando usuário <user> e executa o comando SQL presente em <arquivo. sql> Obs: quando desejarmos fornecer o password é necessário que não exista nenhum espaço entre o parâmetro –p e a password. Por exemplo, p<password> 11/3/2020 46
Extensões PHP para acessar o My. SQL n n My. SQL para versões anteriores a versão 4. 1 do My. SQLi (Improved My. SQL) para versão 4. 1 ou posterior 11/3/2020 47
Transações n Uma transação pode ser caracterizada pelo conjunto de operações que devem ser executadas havendo atomicidade, ou seja, todas as operações são realizadas ou nenhuma é realizada. 11/3/2020 48
Transações n n n START TRANSACTION (BEGIN, BEGIN WORK) SAVEPOINT <nome>; ROLLBACK TO SAVEPOINT <nome>; COMMIT; 11/3/2020 49
Transações n n Inno. DB – suporta transações -- suporta nível de bloqueio (LOCK/UNLOCK) por tabela My. ISAM – default no My. SQL – suporta nível de bloqueio (LOCK/UNLOCK) por tabela 11/3/2020 50
Transações mysql> LOCK TABLES <nome da tabela> [ AS <alias> ] <tipo de bloqueio> [ , <nome da tabela 2>, . . . ] 11/3/2020 51
Tipos de Bloqueio n n READ (bloqueio de leitura) READ LOCAL WRITE (bloqueio de escrita) LOW_PRIORITY WRITES 11/3/2020 52
Tipos de Bloqueio - READ n tanto a thread em questão quanto as demais podem somente ter acesso de leitura na tabela 11/3/2020 53
Tipos de Bloqueio – READ LOCAL n realiza o mesmo bloqueio definido pelo modo READ, contudo permite que comandos de inserção não conflitantes sejam executados IMPORTANTE: para tabelas Inno. DB, o comportamento READ LOCAL é o mesmo que READ 11/3/2020 54
Tipos de Bloqueio - WRITE n permite que a thread atual possa ler, inserir ou alterar dados da tabela e impede acesso de escrita e leitura de outras threads até o processo terminar. 11/3/2020 55
Tipos de Bloqueio – LOW_PRIORITY WRITE n permite a leitura, inserção e alteração de dados pela thread atual e também que outras threads solicitem bloqueio de leitura 11/3/2020 56
Desbloqueio de tabelas mysql> UNLOCK TABLES; mysql> FLUSH TABLES; 11/3/2020 57
Grau de isolamento de Transações n set [session|global] transaction isolation level read uncommited | read commited | repeatable read | serializable 11/3/2020 58
Graus de isolamento (isolation degrees) n n READ UNCOMMITED READ COMMITED REPEATABLE COMMITED SERIALIZABLE 11/3/2020 59
Transações XA n XA Transactions (transação global ou distribuída) 11/3/2020 60
Papéis em XA Transactions n n Resource Manager (RM): servidores usados na transação Transaction Manager (TM) : servidor que gerencia todo o procedimento da transação distribuída 11/3/2020 61
Two-phase commit (2 pc) n n Two-phase commit Único commit como ocorre em transações normais (isoladas) 11/3/2020 62
Comandos das XA Transactions n n n XA XA XA 11/3/2020 START <xa id> END <xa id> PREPARE <xa id> COMMIT <xa id> [ONE PHASE] ROLLBACK <xa id> RECOVER 63
Sites n n My. SQL Brasil http: //www. mysqlbrasil. com. br Php. My. Admin http: //www. phpmyadmin. net 11/3/2020 64
Bibliografia n MILANI, A. My. SQL – Guia do Programador. São Paulo. Ed Novatec. 2006. 11/3/2020 65
mysqldump n mysqldump --no-data infradb, masterdb, salesforce, userdb, utild b -u ribbit -p. Fr 00 g 3 r --host 10. 100. 241. 22 >pqp 3. sql 11/3/2020 66
mysqldump (2) mysqldump --no-data infradb -u ribbit -p. Fr 00 g 3 r --host 10. 100. 241. 22 >pqp 3. sql n 11/3/2020 67
Apêndice A – Conceitos Gerais 11/3/2020 68
Dados e Informações n n Dados podem ser definidos com um conjunto de bits (ou de caracteres em uma macrovisão) para o armazenamento de caracteres e textos no formato alfanumérico, ou até mesmo de arquivos e imagens Informação é a agregação de um determinado conhecimento a um dado 11/3/2020 69
Dados e Informações dado + informação = conhecimento 11/3/2020 70
Banco de Dados n n manuais e automatizados relacionais 11/3/2020 71
Bancos de dados relacionais 11/3/2020 72
Arquitetura de um banco de dados n n n tabelas registros campos chaves índices relacionamentos 11/3/2020 73
Tabelas n n cada coluna será um campo cada linha será um registro 11/3/2020 74
Chaves (keys) n Refere-se a coluna da tabela que é responsável pela identificação dos registros 11/3/2020 75
Tipos de chaves (keys) n n n Chave primária (primary key (PK)) Chave primária composta (composed primary key) Chave estrangeira (foreign key (FK)) 11/3/2020 76
Relacionamentos 11/3/2020 77
Tipos de relacionamentos n n n 1 para 1 (1: 1) 1 para N (1: N) N para M (N: M) (muitos para muitos) 11/3/2020 78
O que é um SGBD n n n n gerenciamento de acesso integridade de dados integridade de entidade referencial concorrência de acesso linguagens de dados funcionalidades gerais banco de dados do tipo arquivo X SGBD 11/3/2020 79
Sistema Gerenciador de Banco de Dados (SGBD) n DBMS – Database Management System 11/3/2020 80
Gerenciamento de acesso 11/3/2020 81
Linguagens de dados n n SQL (Structured Query Language) DDL (Data Definition Language) DML (Data Manipulation Language) DCL (Data Control Language) 11/3/2020 82
Funcionalidades gerais n n n Visões Transações Triggers (gatilhos) 11/3/2020 83
Normalização de Banco de Dados Anomalias são problemas gerados pelo mau planejamento de um banco de dados Tipos de Anomalias: n Anomalias de inserção n Anomalias de alteração n Anomalias de exclusão 11/3/2020 84
Normalização de Banco de Dados n n n Primeira forma normal (1 FN) Segunda forma normal (2 FN) Terceira forma normal (3 FN) 11/3/2020 85
Primeira Formal (1 FN) n n n Traduz os dados de um sistema qualquer para tabelas cada célula deve possuir apenas um valor cada coluna deve armazenar registros únicos (exceto quando referenciando valores-chaves de outras tabelas) 11/3/2020 86
Segunda Forma Normal (2 FN) n n 1 FN 2 FN Atributos não chave da tabela deverá depender exclusivamente de todas as chaves da tabela (busca não haver relação de um campo não chave com apenas parte da chave primária composta (cada campo não-chave deve ser dependente de ambas as chaves que compõem a chave composta) 11/3/2020 87
Terceira Forma Normal n n 2 FN 3 FN Cada atributo de uma tabela depende exclusivamente da chave primária desta (busca-se não haver relação de um campo não-chave com outro campo não -chave) 11/3/2020 88
Gerenciamento de transações Uma transação é o conjunto de uma ou mais operações realizada no banco de dados, a qual deve ter sua integridade garantida por meio de quatro propriedades conhecidas como ACID: n Atomicidade execução da operação por completo ou aborto dessa (uma transação é indivisível) n Consistência validação dos dados (requer que ao final de uma transação a base de dados esteja em um estado consistente) n Isolamento acesso privado aos dados de que necessita (várias transações podem rodar independentemente e simultaneamente sem interferir uma nas outras) n Durabilidade garante que em caso de erro na execução, todos os campos em questão no banco de dados sejam restaurados com seus valores iniciais 11/3/2020 89
Papéis em um sistema de Banco de Dados n n Administrador de dados (DA – Data Administrator) Administrador de banco de dados (DBA – Database Administrator) Desenvolvedores e programadores Usuário final 11/3/2020 90
Apêndice B – Linguagem SQL n Recursos da Linguagem: n n n consultas atualizações filtros e remoções 11/3/2020 91
Apêndice C – Integridade Referencial n n n foreign key (FK) – chave estrangeira foreign key relationship parent table child table Inno. DB storage engine 11/3/2020 92
Apêndice D n O My. SQL possui os seguintes schemas databases: n n information_schema mysql 11/3/2020 93
information_schema database +--------------------+ | Tables_in_information_schema +--------------------+ | CHARACTER_SETS | | COLLATION_CHARACTER_SET_APPLICABILITY | | COLUMNS | | COLUMN_PRIVILEGES | | KEY_COLUMN_USAGE | | PROFILING | | ROUTINES | | SCHEMATA | | SCHEMA_PRIVILEGES | | STATISTICS | | TABLE_CONSTRAINTS | | TABLE_PRIVILEGES | | TRIGGERS | | USER_PRIVILEGES | | VIEWS | +--------------------+ 11/3/2020 | 94
mysql database +--------------+ | Tables_in_mysql | +--------------+ | columns_priv | | db | | func | | help_category | | help_keyword | | help_relation | | help_topic | | host | | procs_priv | | tables_priv | | time_zone_leap_second | | time_zone_name | | time_zone_transition_type | | user_info | +--------------+ 11/3/2020 95
Exemplo: obter o engine de todas tabelas select table_name, table_type, engine from tables; 11/3/2020 96
Comandos create database, create table n n show create database <nome_banco> exibe a estrutura de criação do banco de dados show create table <nome_tabela> 11/3/2020 97
Diferenças entre os comando ‘desc <table>’ e ‘show create table <table>’ mysql> desc feature; +------------------+------+-----+--------+ | Field | Type | Null | Key | Default | Extra | +------------------+------+-----+--------+ | id_feature | int(10) unsigned | NO | PRI | NULL | auto_increment | | feature_type | varchar(45) | YES | | NULL | | | name_short | varchar(45) | YES | | NULL | | | name_long | varchar(255) | YES | | NULL | | | is_provisionable | tinyint(1) | YES | | NULL | | +------------------+------+-----+--------+ 5 rows in set (0. 00 sec) mysql> show create table feature; +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | feature | CREATE TABLE `feature` ( `id_feature` int(10) unsigned NOT NULL auto_increment, `feature_type` varchar(45) default NULL, `name_short` varchar(45) default NULL, `name_long` varchar(255) default NULL, `is_provisionable` tinyint(1) default NULL, PRIMARY KEY (`id_feature`) ) ENGINE=Inno. DB AUTO_INCREMENT=102 DEFAULT CHARSET=latin 1 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 11/3/2020 98
Arquivo de Configuração do My. SQL n n Windows my. ini Sistemas Unix-Like my. cnf 11/3/2020 99
Exemplo de arquivo my. cnf [mauro. lopes@brdldly 01 ~]$ cat /usr/src/redhat/SOURCES/my. cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql. sock # Default to using old password format for compatibility with mysql 3. x # clients (those using the mysqlclient 10 compatibility package). old_passwords=1 [mysql. server] user=mysql basedir=/var/lib [mysqld_safe] err-log=/var/log/mysqld. log pid-file=/var/run/mysqld. pid 11/3/2020 100
- Filme pornográfico brasileirinhas
- Csar definition
- Jules csar
- Csar package format
- Hipoplasia malar
- Crónica de d joão i capítulo 115 resumo
- Joyce lopes
- Caetano levi lopes
- Daniela lopes scarpa
- Caetano levi lopes
- Suzana lopes salgado ribeiro
- Paolo lopes
- Franciele lopes cmsp
- Crista lopes
- Suzana lopes salgado ribeiro
- Julio lopes xxx
- "dcp official"
- Isaías 58 estudo hernandes dias lopes
- Difference between oracle and pl sql
- Pl sql unit testing
- Mauro mocci
- Que es la autoestima
- Mauro muszkat biografia
- Mauro pari taboada
- Mauro gocilli
- Iprof 94
- Mauro pedreiro domiciliado em salvador
- Mauro citterio
- Mauro tretiach
- Mauro mitilini
- Mauro zaque promotor
- Maria pia di mauro
- Lactose intoleranc
- Mauro fiorentino
- Mauro sciarelli unina
- Aris associazione
- Ambiente transazionale definizione
- Mauro antezza
- Mauro donega
- Mauro muszkat biografia
- Mauro stener
- Mauro raggi
- Mauro componenti
- Mauro comoglio
- Mauro congia
- Scuola daniela mauro
- Mauro citterio
- Un debolmente positivo puo uscire
- Mauro sanfilippo
- Mauro varotto
- Acto jurídico
- Mauro dell'orso
- Não só estudou mas também trabalhou
- Maura di mauro
- Modulazione numerica
- Mauro giavalisco
- Ic1 san mauro torinese
- Mauro raggi
- Mauro zappaterra
- Mauro raggi
- Istituto comprensivo daniela mauro pessano
- Federica cimini
- Sql injection comic
- How to populate fact table sql server
- Sql pearson
- Sql server always on architecture diagram
- Stream analytics to sql database
- Asp.net xss bypass
- Sql log
- Dynamodb shard size
- Oracle big data appliance
- Rocksdb sql
- Sql
- Ola hallengren index optimize does not work
- Mycompiler sql
- Jmp join tables
- Sql gyakorló feladatok
- Sql nyelv
- Restart sql sbs monitoring
- Halfond
- My sql
- What is a sql server storage engine
- Bases de datos
- Language
- Inurl:sql.php?id=
- Awesome sql
- Plsql replace
- Ssis 324
- Sql server security best practice
- Delphi sql update
- Sql server virtualization
- Sql empty in clause
- Sql server service broker tutorial
- Ssis-314
- Ssis sql server 2005
- Azure stretch database
- Sql jezik
- Spark sql: relational data processing in spark
- Sql nvarchar
- Sql claus
- Sql go komutu