




























































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
O que é um banco de dados? Terminologia RDBMS Banco de dados MySQL [...]
Tipologia: Manuais, Projetos, Pesquisas
1 / 68
Esta página não é visível na pré-visualização
Não perca as partes importantes!





























































Página anterior Próxima página
Anúncios
Um banco de dados é um aplicativo separado que armazena uma coleção de dados. Cada banco de dados tem uma ou mais APIs distintas para criar, acessar, gerenciar, pesquisar e replicar os dados que ele contém. Outros tipos de armazenamentos de dados também podem ser usados, como arquivos no sistema de arquivos ou grandes tabelas de hash na memória, mas a busca e a gravação de dados não seriam tão rápidas e fáceis com esse tipo de sistema. Atualmente, usamos sistemas de gerenciamento de banco de dados relacionais (RDBMS) para armazenar e gerenciar grandes volumes de dados. Isso é chamado de banco de dados relacional porque todos os dados são armazenados em tabelas diferentes e as relações são estabelecidas usando chaves primárias ou outras chaves conhecidas como Chaves Estrangeiras. Um Sistema de Gerenciamento Relacional de DataBase (RDBMS) é um software que
Permite que você implemente um banco de dados com tabelas, colunas e índices. Garante a integridade referencial entre linhas de várias tabelas. Atualiza os índices automaticamente. Interpreta uma consulta SQL e combina informações de várias tabelas.
Antes de prosseguirmos para explicar o sistema de banco de dados MySQL, vamos revisar algumas definições relacionadas ao banco de dados.
Banco de dados - Um banco de dados é uma coleção de tabelas, com dados relacionados.
Tabela - Uma tabela é uma matriz com dados. Uma tabela em um banco de dados parece uma simples planilha. Coluna - uma coluna (elemento de dados) contém dados de um mesmo tipo, por exemplo, o código postal da coluna. Linha - Uma linha (= tupla, entrada ou registro) é um grupo de dados relacionados, por exemplo, os dados de uma assinatura. Redundância - Armazenando dados duas vezes, de forma redundante, para tornar o sistema mais rápido. Chave Primária - Uma chave primária é exclusiva. Um valor de chave não pode ocorrer duas vezes em uma tabela. Com uma chave, você pode encontrar apenas uma linha. Chave estrangeira - Uma chave estrangeira é o pino de vinculação entre duas tabelas. Chave composta - Uma chave composta (chave composta) é uma chave que consiste em várias colunas, porque uma coluna não é suficientemente exclusiva. Índice - Um índice em um banco de dados se assemelha a um índice na parte de trás de um livro. Integridade referencial - Integridade referencial garante que um valor de chave estrangeira sempre aponte para uma linha existente.
O MySQL é um RDBMS rápido e fácil de usar sendo usado por muitas pequenas e grandes empresas. O MySQL é desenvolvido, comercializado e suportado pela MySQL AB, que é uma empresa sueca. O MySQL está se tornando tão popular por causa de muitas boas razões -
O MySQL é lançado sob uma licença de código aberto. Então você não tem nada a pagar para usá-lo. O MySQL é um programa muito poderoso por si só. Ele lida com um grande subconjunto da funcionalidade dos pacotes de banco de dados mais caros e poderosos. O MySQL usa uma forma padrão da conhecida linguagem de dados SQL. O MySQL funciona em muitos sistemas operacionais e com muitas linguagens, incluindo PHP, PERL, C, C ++, JAVA, etc. O MySQL funciona muito rapidamente e funciona bem mesmo com grandes conjuntos de dados. O MySQL é muito amigável ao PHP, a linguagem mais apreciada para o desenvolvimento web.
Banco de dados MySQL
Alterne para o diretório que contém os RPMs. Instale o servidor de banco de dados MySQL executando o seguinte comando. Lembre-se de substituir o nome do arquivo em itálico pelo nome do arquivo do seu RPM.
[root@host]# rpm -i MySQL-5.0.9-0.i386.rpm O comando acima se encarrega de instalar o servidor MySQL, criando um usuário do MySQL, criando a configuração necessária e iniciando o servidor MySQL automaticamente. Você pode encontrar todos os binários relacionados ao MySQL em / usr / bin e / usr / sbin. Todas as tabelas e bancos de dados serão criados no diretório / var / lib / mysql. A caixa de código a seguir tem uma etapa opcional, mas recomendada, para instalar os RPMs restantes da mesma maneira - [root@host]# rpm -i MySQL-client-5.0.9-0.i386.rpm [root@host]# rpm -i MySQL-devel-5.0.9-0.i386.rpm [root@host]# rpm -i MySQL-shared-5.0.9-0.i386.rpm [root@host]# rpm -i MySQL-bench-5.0.9-0.i386.rpm
A instalação padrão em qualquer versão do Windows agora é muito mais fácil do que costumava ser, já que o MySQL agora vem bem empacotado com um instalador. Simplesmente baixe o pacote do instalador, descompacte-o em qualquer lugar e execute o arquivo setup.exe. O instalador padrão setup.exe irá orientá-lo através do processo trivial e, por padrão, instalará tudo em C: \ mysql. Teste o servidor ativando-o a partir do prompt de comando na primeira vez. Vá para a localização do servidor mysqld que é provavelmente C: \ mysql \ bin e digite - mysqld.exe --console NOTA - Se você está no NT, então você terá que usar o mysqld-nt.exe ao invés do mysqld.exe Se tudo correr bem, você verá algumas mensagens sobre inicialização e InnoDB. Caso contrário, você pode ter um problema de permissão. Certifique-se de que o diretório que contém seus dados esteja acessível para qualquer usuário (provavelmente MySQL) em que os processos do banco de dados sejam executados. O MySQL não se adicionará ao menu iniciar, e também não há uma maneira GUI particularmente agradável de parar o servidor. Portanto, se você tende a iniciar o servidor clicando duas vezes no executável mysqld, lembre-se de interromper o processo manualmente usando mysqladmin, Task List, Task Manager ou outros meios específicos do Windows.
Instalando o MySQL no Windows
Depois que o MySQL foi instalado com sucesso, as tabelas base foram inicializadas e o servidor foi iniciado: você pode verificar se tudo está funcionando como deveria, através de alguns testes simples.
Use mysqladmin binary para verificar a versão do servidor. Este binário estaria disponível em / usr / bin no linux e em C: \ mysql \ bin no windows. [root@host]# mysqladmin --version Isso produzirá o seguinte resultado no Linux. Pode variar dependendo da sua instalação
Você pode se conectar ao seu servidor MySQL através do cliente MySQL e usando o comando mysql. Neste momento, você não precisa fornecer nenhuma senha, pois, por padrão, ela será definida como em branco. Você pode apenas usar o seguinte comando - [root@host]# mysql Deve ser recompensado com um prompt mysql>. Agora, você está conectado ao servidor MySQL e pode executar todos os comandos SQL no prompt mysql> da seguinte maneira - mysql> SHOW DATABASES; +----------+ | Database | +----------+ | mysql | | test | +----------+ 2 rows in set (0.13 sec)
O MySQL vem com uma senha em branco para o usuário root do MySQL. Assim que você instalou com sucesso o banco de dados e o cliente, é necessário definir uma senha de root conforme determinado no bloco de código a seguir - [root@host]# mysqladmin -u root password "new_password";
Verificando a instalação do MySQL
Use o utilitário mysqladmin para obter o status do servidor
Execute comandos SQL simples usando o cliente MySQL
Etapas de pós-instalação
O programa a seguir é um exemplo de adição de um novo usuário convidado com os privilégios SELECT, INSERT e UPDATE com a senha guest123; a consulta SQL é -
root@host # mysql -u root -p Enter password:******* mysql> use mysql; Database changed mysql> INSERT INTO user (host, user, password, select_priv, insert_priv, update_priv) VALUES ('localhost', 'guest', PASSWORD('guest123'), 'Y', 'Y', 'Y'); Query OK, 1 row affected (0.20 sec) mysql> FLUSH PRIVILEGES; Query OK, 1 row affected (0.01 sec) mysql> SELECT host, user, password FROM user WHERE user = 'guest'; +-----------+---------+------------------+ | host | user | password | +-----------+---------+------------------+ | localhost | guest | 6f8c114b58f2ce9e | +-----------+---------+------------------+ 1 row in set (0.00 sec)
Ao adicionar um novo usuário, lembre-se de criptografar a nova senha usando a função PASSWORD () fornecida pelo MySQL. Como você pode ver no exemplo acima, a senha mypass é criptografada para 6f8c114b58f2ce9e.
Observe a declaração FLUSH PRIVILEGES. Isso informa ao servidor para recarregar as tabelas de permissões. Se você não usá-lo, então você não será capaz de se conectar ao MySQL usando a nova conta de usuário, pelo menos até que o servidor seja reinicializado.
Você também pode especificar outros privilégios para um novo usuário definindo os valores das colunas a seguir na tabela do usuário para 'Y' ao executar a consulta INSERT ou atualizá-los posteriormente usando a consulta UPDATE.
Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv
References_priv Index_priv Alter_priv
Outra maneira de adicionar conta de usuário é usando o comando GRANT SQL. O exemplo a seguir adicionará o usuário zara com a senha zara123 para um banco de dados específico, chamado TUTORIALS.
root@host # mysql -u root -p password; Enter password:******* mysql> use mysql; Database changed mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP -> ON TUTORIALS.* -> TO 'zara'@'localhost' -> IDENTIFIED BY 'zara123';
Isso também criará uma entrada na tabela de banco de dados MySQL chamada como usuário. NOTA - O MySQL não finaliza um comando até que você dê um ponto e vírgula (;) no final do comando SQL.
Na maioria dos casos, você não deve tocar neste arquivo. Por padrão, ele terá as seguintes entradas -
[mysqld] datadir = /var/lib/mysql socket = /var/lib/mysql/mysql.sock [mysql.server] user = mysql basedir = /var/lib [safe_mysqld] err-log = /var/log/mysqld.log pid-file = /var/run/mysqld/mysqld.pid
Aqui, você pode especificar um diretório diferente para o log de erros, caso contrário você não deve alterar nenhuma entrada nesta tabela.
Aqui está a lista dos importantes comandos do MySQL, que você usará periodicamente para trabalhar com o banco de dados MySQL -
USE Databasename - Isso será usado para selecionar um banco de dados na área de trabalho do MySQL. MOSTRAR BANCOS DE DADOS - Lista os bancos de dados que são acessíveis pelo MySQL DBMS.
A configuração do arquivo /etc/my.cnf
Comando Administrativo do MySQL
?> ** **
A partir do próximo capítulo, veremos toda a importante funcionalidade do MySQL junto com o PHP.
Você pode estabelecer o banco de dados MySQL usando o binário mysql no prompt de comando.
Aqui está um exemplo simples para se conectar ao servidor MySQL a partir do prompt de comando - [root@host]# mysql -u root -p Enter password:****** Isto lhe dará o prompt de comando mysql> onde você poderá executar qualquer comando SQL. A seguir, o resultado do comando acima - O bloco de código a seguir mostra o resultado do código acima - Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2854760 to server version: 5.0.
Type 'help;' or '\h' for help. Type '\c' to clear the buffer. No exemplo acima, usamos root como usuário, mas você também pode usar qualquer outro usuário. Qualquer usuário poderá executar todas as operações SQL, que são permitidas a esse usuário. Você pode se desconectar do banco de dados MySQL a qualquer momento usando o comando exit no prompt mysql>. mysql> exit Bye
O PHP fornece a função mysql_connect () para abrir uma conexão com o banco de dados. Essa função usa cinco parâmetros e retorna um identificador de link do MySQL em sucesso ou FALSE em falha.
connection mysql_connect(server,user,passwd,new_link,client_flag);
Sr. Parâmetro e Descrição
Exemplo
Sintaxe
Não.
servidor Opcional - O nome do host que está executando o servidor de banco de dados. Se não for especificado, o valor padrão será localhost: 3306.
do utilizador Opcional - O nome de usuário que acessa o banco de dados. Se não for especificado, o padrão será o nome do usuário que possui o processo do servidor.
passwd Opcional - A senha do usuário que acessa o banco de dados. Se não for especificado, o padrão será uma senha vazia.
new_link Opcional - Se uma segunda chamada for feita para mysql_connect () com os mesmos argumentos, nenhuma nova conexão será estabelecida; em vez disso, o identificador da conexão já aberta será retornado.
client_flags Opcional - Uma combinação das seguintes constantes -
MYSQL_CLIENT_SSL - Use criptografia SSL. MYSQL_CLIENT_COMPRESS - Use o protocolo de compressão. MYSQL_CLIENT_IGNORE_SPACE - Permitir espaço após os nomes das funções. MYSQL_CLIENT_INTERACTIVE - Permitir segundos de inatividade do tempo limite interativo antes de fechar a conexão.
Você pode se desconectar do banco de dados MySQL a qualquer momento usando outra função PHP mysql_close (). Esta função usa um único parâmetro, que é uma conexão retornada pela função mysql_connect ().
bool mysql_close ( resource $link_identifier ); Se um recurso não for especificado, o último banco de dados aberto será fechado. Esta função retorna true se fechar a conexão com sucesso, caso contrário, retorna false.
Sintaxe
Exemplo
2 conexão Opcional - se não for especificado, a última conexão aberta por mysql_connect será usada.
O exemplo a seguir para criar um banco de dados -
**
** Creating MySQL Database **
** '; $sql = 'CREATE DATABASE TUTORIALS'; $retval = mysql_query( $sql, $conn ); if (! $retval ) { die ('Could not create database: '. mysql_error()); } echo "Database TUTORIALS created successfully\n"; mysql_close($conn); ?> ** **
Você precisaria de privilégios especiais para criar ou excluir um banco de dados MySQL. Então, supondo que você tenha acesso ao usuário root, você pode criar qualquer banco de dados usando o binário mysql mysqladmin. Tenha cuidado ao excluir qualquer banco de dados, pois você perderá todos os dados disponíveis em seu banco de dados. Aqui está um exemplo para excluir um banco de dados (TUTORIALS) criado no capítulo anterior - [root@host]# mysqladmin -u root -p drop TUTORIALS Enter password:****** Isso lhe dará um aviso e confirmará se você realmente deseja excluir esse banco de dados ou não.
Exemplo
Dropping the database is potentially a very bad thing to do. Any data stored in the database will be destroyed.
Do you really want to drop the 'TUTORIALS' database [y/N] y Database "TUTORIALS" dropped
O PHP usa a função mysql_query para criar ou excluir um banco de dados MySQL. Essa função usa dois parâmetros e retorna TRUE em caso de sucesso ou FALSE em falha.
bool mysql_query( sql, connection );
Sr. Não
Parâmetro e Descrição
sql Obrigatório - consulta SQL para criar ou excluir um banco de dados MySQL
conexão Opcional - se não for especificado, a última conexão aberta por mysql_connect será usada.
Tente o exemplo a seguir para excluir um banco de dados -
**
** Deleting MySQL Database **
** '; $sql = 'DROP DATABASE TUTORIALS'; $retval = mysql_query( $sql, $conn ); if (! $retval ) { die ('Could not delete database: '. mysql_error()); } echo "Database TUTORIALS deleted successfully\n";
Drop Database usando script PHP
Sintaxe
Exemplo
nome_bd Requerido - Nome do banco de dados MySQL a ser selecionado
conexão Opcional - se não for especificado, a última conexão aberta por mysql_connect será usada.
Aqui está um exemplo mostrando como selecionar um banco de dados.
**
** Selecting MySQL Database **
**
** **
A definição adequada dos campos em uma tabela é importante para a otimização geral do seu banco de dados. Você deve usar apenas o tipo e o tamanho do campo que realmente precisa usar. Por exemplo, não defina um campo de 10 caracteres de largura, se você sabe que vai usar apenas 2 caracteres. Esses tipos de campos (ou colunas) também são referidos como tipos de dados, após o tipo de dados que você armazenará nesses campos. O MySQL usa muitos tipos de dados diferentes divididos em três categorias -
Numérico Data e hora Tipos de Cadeia.
Vamos agora discuti-los em detalhes.
Exemplo
O MySQL usa todos os tipos de dados numéricos ANSI SQL padrão, portanto, se você estiver vindo para o MySQL de um sistema de banco de dados diferente, essas definições parecerão familiares para você. A lista a seguir mostra os tipos de dados numéricos comuns e suas descrições -
INT - Um inteiro de tamanho normal que pode ser assinado ou não assinado. Se assinado, o intervalo permitido é de -2147483648 a 2147483647. Se não assinado, o intervalo permitido é de 0 a 4294967295. Você pode especificar uma largura de até 11 dígitos. TINYINT - Um inteiro muito pequeno que pode ser assinado ou não assinado. Se assinado, o intervalo permitido é de -128 a 127. Se não assinado, o intervalo permitido é de 0 a 255. Você pode especificar uma largura de até 4 dígitos. SMALLINT - Um inteiro pequeno que pode ser assinado ou não assinado. Se assinado, o intervalo permitido é de -32768 a 32767. Se não assinado, o intervalo permitido é de 0 a 65535. Você pode especificar uma largura de até 5 dígitos. MEDIUMINT - Um inteiro de tamanho médio que pode ser assinado ou não assinado. Se assinado, o intervalo permitido é de -8388608 a 8388607. Se não assinado, o intervalo permitido é de 0 a 16777215. Você pode especificar uma largura de até 9 dígitos. BIGINT - Um número inteiro grande que pode ser assinado ou não assinado. Se assinado, o intervalo permitido é de -9223372036854775808 a
Tipos de dados numéricos
diferenciam maiúsculas de minúsculas nos campos TEXTO. Você não especifica um tamanho com BLOB ou TEXT. TINYBLOB ou TINYTEXT - Uma coluna BLOB ou TEXT com um tamanho máximo de 255 caracteres. Você não especifica um tamanho com TINYBLOB ou TINYTEXT. MEDIUMBLOB ou MEDIUMTEXT - Uma coluna BLOB ou TEXT com um tamanho máximo de 16777215 caracteres. Você não especifica um tamanho com MEDIUMBLOB ou MEDIUMTEXT. LONGBLOB ou LONGTEXT - Uma coluna BLOB ou TEXT com um comprimento máximo de 4294967295 caracteres. Você não especifica um tamanho com LONGBLOB ou LONGTEXT. ENUM - Uma enumeração, que é um termo chique para lista. Ao definir um ENUM, você está criando uma lista de itens a partir dos quais o valor deve ser selecionado (ou pode ser NULL). Por exemplo, se você quiser que seu campo contenha "A" ou "B" ou "C", você definiria seu ENUM como ENUM ('A', 'B', 'C') e somente esses valores (ou NULL) poderia povoar esse campo.
No próximo capítulo, discutiremos como criar tabelas no MySQL.
Para começar, o comando de criação de tabela requer os seguintes detalhes -
Nome da tabela Nome dos campos Definições para cada campo
Aqui está uma sintaxe SQL genérica para criar uma tabela MySQL - CREATE TABLE table_name (column_name column_type); Agora, vamos criar a seguinte tabela no banco de dados TUTORIALS.
create table tutorials_tbl( tutorial_id INT NOT NULL AUTO_INCREMENT, tutorial_title VARCHAR(100) NOT NULL, tutorial_author VARCHAR(40) NOT NULL, submission_date DATE, PRIMARY KEY ( tutorial_id ) );
Aqui, alguns itens precisam de explicação
Atributo de campo NOT NULL está sendo usado porque não queremos que este campo seja NULL. Então, se um usuário tentar criar um registro com um valor NULL, o MySQL irá gerar um erro.
Sintaxe
Atributo de campo AUTO_INCREMENT diz ao MySQL para ir em frente e adicionar o próximo número disponível ao campo id. A palavra- chave PRIMARY KEY é usada para definir uma coluna como uma chave primária. Você pode usar várias colunas separadas por uma vírgula para definir uma chave primária.
É fácil criar uma tabela MySQL a partir do prompt mysql>. Você usará o comando SQL CREATE TABLE para criar uma tabela.
Aqui está um exemplo, que irá criar tutorials_tbl -
root@host # mysql -u root -p Enter password:******* mysql> use TUTORIALS; Database changed mysql> CREATE TABLE tutorials_tbl( -> tutorial_id INT NOT NULL AUTO_INCREMENT, -> tutorial_title VARCHAR(100) NOT NULL, -> tutorial_author VARCHAR(40) NOT NULL, -> submission_date DATE, -> PRIMARY KEY ( tutorial_id ) -> ); Query OK, 0 rows affected (0.16 sec) mysql>
OBSERVAÇÃO - O MySQL não finaliza um comando até que você forneça um ponto-e- vírgula (;) no final do comando SQL.
Para criar uma nova tabela em qualquer banco de dados existente, você precisaria usar a função PHP mysql_query (). Você passará seu segundo argumento com um comando SQL apropriado para criar uma tabela.
O programa a seguir é um exemplo para criar uma tabela usando script PHP -
**
** Creating MySQL Tables **
** php $dbhost = 'localhost:3036'; $dbuser = 'root'; $dbpass = 'rootpassword'; $conn = mysql_connect($dbhost, $dbuser, $dbpass); if (! $conn ) { die ('Could not connect: '. mysql_error());
Criando tabelas no prompt de comando
Exemplo
Criando Tabelas Usando Script PHP
Exemplo