You are on page 1of 18

Banco de Dados

- SQL – Parte 1 -

Prof. Ulysses Santos Sousa


ulyssessousa@ifma.edu.br

Aula 07

Roteiro
• Introdução
• SQL
• SGBD MySQL
• Tipos de dados no MySQL
• Tabelas
• Criando tabelas
• Excluindo tabelas
• Alterando tabelas
• Restrições
• Not null
• Unique
• Primary key
• Foreign key
• Outros comandos

1
Introdução

O que é SQL?
 É um conjunto de comandos para definição de
banco de dados que abrange desde a
criação/alteração e exclusão da estrutura do banco
de dados, bem como a manipulação (inclusão,
alteração, exclusão e recuperação) dos dados.

Introdução
• SQL
• Linguagem padrão para SGBDs relacionais
• Derivada do SEQUEL (Structured English QUEry
Language) e do Cálculo Relacional
• Padronizada:
• um dos principais fatores de sucesso do modelo
relacional
• sucessão de padrões

2
SQL

• Os principais comandos da linguagem SQL


se enquadram em duas amplas categorias:
• Linguagem de Definição de Dados (DDL):
fornece comandos para definições de esquemas de
relação, criação/remoção de tabelas, criação de
índices e modificação de esquemas.
• Linguagem de Manipulação de Dados (DML):
inclui uma linguagem de consulta baseada na
álgebra relacional e cálculo relacional de tupla.
Compreende comandos para inserir, consultar,
remover e modificar tuplas num BD.

SGBD MySQL

• Histórico
• É bastante utilizado pela comunidade de informática;
• Surgiu em 1995 com o nome MySQL AB
• Fundadores: Michael Widenius, David Axmark e Allan Larsson.
• Em 2008, a empresa foi vendida para a Sun Microsystems
por 1 bilhão de dólares.
• Em 2010, a Oracle Corporation comprou a Sun
Microsystems, levando junto o MySQL.
• Ainda é open source (código livre).

3
SGBD MySQL

• Criando uma Base de Dados no MySQL


CREATE DATABASE <nome>;

• Listando as Bases de Dados


SHOW DATABASES;

• Removendo uma Base de Dados


DROP DATABASE <nome>;

SGBD MySQL

• Conectando-se a um banco de dados


USE <nome>;
• Saindo do MySQL

QUIT;

4
Tipo de dados no MySQL

• Dados do Tipo Caractere


• Strings de tamanho fixo: char(tam)
• São preenchidas à direita com espaços e consomem sempre o
mesmo número de bytes
• Tamanho máximo: 255 bytes.
• Strings de tamanho variável: varchar(tam)
• Não são preenchidas à direita com espaços e nem sempre
consomem o mesmo número de bytes
• Tamanho máximo: 65535 bytes

Tipo de dados no MySQL

• Dados de texto

Tipo de Texto Número Máximo de Bytes


TinyText 255
Text 65.535
MediumText 16.777.215
LongText 4.294.967.295

10

5
Tipo de dados no MySQL

• Dados Numéricos
• Tinyint
• Smallint
• Mediumint
• Int
• Bigint
• Float
• Double

11

Tipo de dados no MySQL

Dados temporais

Tipo de Texto Formato Padrão


Date AAAA-MM-DD
Datetime AAAA-MM-DD HH:MI:SS
Timestamp AAAA-MM-DD HH:MI:SS
Year AAAA
Time HHH:MI:SS

12

6
Tipo de dados no MySQL
Componentes do formato DATA

Componente Escopo
AAAA 1000 a 9999
MM 01 (janeiro) a 12 (dezembro)
DD 01 a 31
HH 00 a 23
HHH -838 a 838
MI 00 a 59
SS 00 a 59

13

Criando Tabelas no MySQL

• CREATE TABLE
• Comando utilizado para criação de tabelas;
• É necessário definir quais são os nomes e os tipos das
colunas.
• Sintaxe básica:

CREATE TABLE nome_da_tabela (


coluna1 tipo_de_dado,
coluna2 tipo_de_dado,
...
);

14

7
Criando Tabelas no MySQL

• Exemplo:

CREATE TABLE pessoa (


id_pessoa int,
primeiroNome varchar(255),
ultimoNome varchar(255),
endereco varchar(255),
cidade varchar(255)
);

15

Excluindo tabelas

• DROP TABLE
• Este comando é utilizado para excluir uma tabela do
banco de dados.
• Este comando exclui a tabela e tudo que estiver
armazenado nela, portanto, deve-se ter cuidado ao utilizá-
lo.
• Sintaxe:
DROP TABLE nome_da_tabela;

• Exemplo:
DROP TABLE pessoa;

16

8
Alterando uma tabela

• ALTER TABLE
• É utilizado para adicionar, excluir ou modificar colunas.
• É utilizado também para adicionar e excluir restrições na
tabela.
• Adicionando uma coluna:
ALTER TABLE nome_da_tabela
ADD nomeDaColuna tipo_de_dado;

• Excluindo uma coluna:


ALTER TABLE nome_da_tabela
DROP COLUMN nomeDaColuna;

17

Alterando uma tabela

• ALTER TABLE
• Modificando uma coluna:

ALTER TABLE nome_da_tabela


MODIFY COLUMN nomeDaColuna tipo_de_dado;

18

9
Restrições (constraints)

• São utilizadas para especificar regras para dados em


uma tabela.
• Podem ser especificadas no momento da criação da
tabela ou após a criação da tabela.
• Restrições mais comuns:
• not null
• unique
• primary key
• foreign key
• check
• default
• index

19

Restrições (constraints)

• Sintaxe básica:

CREATE TABLE nome_da_tabela (


coluna1 tipo_de_dado constraint,
coluna2 tipo_de_dado constraint,
...
);

20

10
Restrição: not null

• Evita que uma coluna permita valores nulos.


• Exemplo:

CREATE TABLE pessoa (


id_pessoa int NOT NULL,
primeiroNome varchar(255) NOT NULL,
ultimoNome varchar(255) NOT NULL,
endereco varchar(255),
cidade varchar(255)
);

21

Restrição: unique

• Garante que todos os valores de uma coluna sejam


diferentes.
• Exemplo:
CREATE TABLE pessoa (
id_pessoa int NOT NULL,
primeiroNome varchar(255) NOT NULL,
ultimoNome varchar(255) NOT NULL,
endereco varchar(255),
cidade varchar(255),
UNIQUE (id_pessoa)
);

22

11
Restrição: unique

• Para nomear uma restrição UNIQUE e para definir


a restrição em mais de uma coluna utilize a sintaxe
abaixo:

CREATE TABLE pessoa (


id_pessoa int NOT NULL,
primeiroNome varchar(255) NOT NULL,
ultimoNome varchar(255) NOT NULL,
endereco varchar(255),
cidade varchar(255),
CONSTRAINT U_pessoa UNIQUE (id_pessoa, primeiroNome)
);

23

Restrição: unique

• Adicionando restrição UNIQUE com ALTER


TABLE

ALTER TABLE pessoa


ADD UNIQUE (primeiroNome);

ALTER TABLE pessoa


ADD CONSTRAINT U_pessoa UNIQUE (id_pessoa, primeiroNome);

24

12
Restrição: unique

• Excluindo restrição UNIQUE com ALTER TABLE

ALTER TABLE pessoa


DROP INDEX primeiroNome;

ALTER TABLE pessoa


DROP INDEX U_pessoa;

25

Indicando chave Primária

• Sintaxe:

CREATE TABLE nome_da_tabela (


coluna1 tipo_de_dado,
coluna2 tipo_de_dado,
...
CONSTRAINT nome_pk PRIMARY KEY (coluna1)
);

26

13
Indicando chave Primária

• Exemplo:

CREATE TABLE pessoa (


id_pessoa int NOT NULL,
primeiroNome varchar(255) NOT NULL,
ultimoNome varchar(255) NOT NULL,
endereco varchar(255),
cidade varchar(255),
CONSTRAINT PK_pessoa PRIMARY KEY (id_pessoa)
);

27

Indicando a chave primária

• Adicionando restrição PRIMARY KEY com ALTER


TABLE

ALTER TABLE pessoa


ADD PRIMARY KEY (idPessoa);

ALTER TABLE pessoa


ADD CONSTRAINT pk_pessoa PRIMARY KEY (idPessoa, nome);

28

14
Indicando a chave primária

• Excluindo restrição PRIMARY KEY com ALTER


TABLE

ALTER TABLE pessoa


DROP PRIMARY KEY;

29

Indicando a chave estrangeira

• Sintaxe:
CREATE TABLE nome_da_tabela (
coluna1 tipo_de_dado,
coluna2 tipo_de_dado,
...
CONSTRAINT nome_pk PRIMARY KEY (coluna1)

CONSTRAINT nome_fk FOREIGN KEY (coluna2)


REFERENCES
tabela_referenciada(coluna_referenciada)

);
30

15
Indicando a chave estrangeira

• Exemplo:

CREATE TABLE pedido (


id_pedido int not null,
numeroPedido int not null,
id_pessoa int,
CONSTRAINT PK_pedido PRIMARY KEY (id_pedido),
CONSTRAINT FK_pessoa FOREIGN KEY (id_pessoa)
REFERENCES Pessoa(id_pessoa)
);

31

Indicando a chave estrangeira

• Adicionando restrição FOREIGN KEY com ALTER


TABLE

ALTER TABLE pedido


ADD FOREIGN KEY (id_pessoa) REFERENCES pessoa(id_pessoa);

32

16
Restrição: CHECK

• É utilizada para limitar o intervalo de valores que


pode ser colocado em uma coluna.

ALTER TABLE pessoa


ADD CHECK (idade > 17);

33

Outros comandos
• DESCRIBE: Usado para verificar a descrição de
uma tabela

DESC nome_da_tabela;

• TRUNCATE: Usado para excluir os dados de


uma tabela, mas não exclui a própria tabela.
TRUNCATE nome_da_tabela;

34

17
Exercício
• Criar o banco de dados usando no SGBD MySQL:

35

18

You might also like