Você está na página 1de 31

Introdução ao SQL

REIDNER SANTOS CAVALCANTE


PROFESSOR
O que é SQL?
• SQL significa Structured Query Language, ou, Linguagem de
Consulta Estruturada

• É uma linguagem para acesso e manipulação de banco de


dados relacionais.
Subdivisões
da
linguagem
SQL
DDL
•DDL - Linguagem de Definição de Dados
• Define os comandos utilizados para criação (CREATE) de tabelas, views,
índices, atualização dessas estruturas (ALTER), assim como a remoção
(DROP).

• Exemplo:

• Create database / Create table

• Alter database / Alter table

• Drop database / Drop table


CREATE database
• Utilizado para criação de um banco de dados. Dentro da estrutura do
Banco de Dados que são criadas as tabelas.

• Sintaxe:
• CREATE DATABASE nome_database
ALTER database
• Permite alterar algumas propriedades do banco de dados.

• Sintaxe:

• ALTER DATABASE nome_database SET propriedade


DROP database
• Permite apagar todo banco de dados do sistema

• Sintaxe:

• DROP DATABASE nome_database


CREATE table
• Permite criar a estrutura de uma tabela definindo as colunas, seus tipos, restrições,
chaves primárias e chaves estrangeiras existentes.

• Sintaxe:

CREATE TABLE nome_tabela(


coluna1 tipo_dados constraint,
coluna2 tipo_dados constraint,
coluna3 tipo_dados constraint,
PRIMARY KEY (coluna)
);
Exemplo
• Criar a tabela “usuario”

CREATE TABLE usuario(


id int NOT NULL,
Nome varchar(80),
nivel_acesso int,
PRIMARY KEY (id)
);
ALTER table
Permite alterar a estrutura de uma tabela do BD.

Sintaxe:

ALTER TABLE nome_tabela DROP COLUMN coluna

ALTER TABLE nome_tabela ADD coluna tipo_dados constraint

ALTER TABLE nome_tabela RENAME COLUMN colunaA TO colunaB

ALTER TABLE nome_tabela MODIFY coluna tipo_dados constraint


ALTER table
Sintaxe:

ALTER TABLE nome_tabela ADD PRIMARY KEY nome_coluna

ALTER TABLE nome_tabela DROP PRIMARY KEY

ALTER TABLE nome_tabela ADD FOREIGN KEY nome_coluna_chave_estrangeira


REFERENCES (nome_tabela_pai) ON DELETE [RESTRICT][CASCADE][SET NULL]

ALTER TABLE nome_tabela DROP CONSTRAINT nome_constraint


Exemplo

ALTER TABLE usuario RENAME COLUMN nome TO


nomeUsuario

ALTER TABLE usuario ADD setor varchar(4);


DROP table
Excluir a estrutura e os dados existentes em uma tabela.
Após a execução deste comando estarão excluídos todos os
dados, estrutura e índices de acessos que estejam a ela
associados.

Exemplo:

DROP TABLE usuário;


Tipos de dados disponíveis no SQLite
Example Typenames From The
CREATE TABLE Statement Resulting Affinity
or CAST Expression
INT
INTEGER
TINYINT
SMALLINT
MEDIUMINT INTEGER
BIGINT
UNSIGNED BIG INT
INT2
INT8

CHARACTER(20)
VARCHAR(255)
VARYING CHARACTER(255)
NCHAR(55)
TEXT
NATIVE CHARACTER(70)
NVARCHAR(100)
TEXT
CLOB
Tipos de dados disponíveis no SQLite
Example Typenames From The
CREATE TABLE Statement Resulting Affinity
or CAST Expression

BLOB
BLOB
no datatype specified

REAL
DOUBLE
REAL
DOUBLE PRECISION
FLOAT
NUMERIC
DECIMAL(10,5)
BOOLEAN NUMERIC
DATE
DATETIME
Exemplo
• Criar os scripts DDL para o modelo relacional a seguir. Definir a
chave primária de cada tabela.
Ambulatorio(nroAmb, andar, capacidadeTotal)

Medico(codM, CPF, nomeM, idade, cidade, especialidade, nroAmb)

Paciente(codP, CPF, nomeP, idade, cidade, doenca)

Consulta(codM, codP, data, hora)

Funcionario(codF, CPF, nomeF, idade, cidade, salario)

Após criar a estrutura, adicione 1 nova coluna para cada tabela – Ambulatorio: localização; Medico:
endereco; Paciente: endereco; Consulta: nroAmb; Funcionario: telefone.

Renomeie os campos nomeM, nomeP, nome para nome_medico, nome_paciente e


nome_funcionário.
DML - Linguagem de manipulação de
dados
Linguagem de Manipulação de Dados (ou DML, Data Manipulation Language) é uma família de
linguagens de computador utilizadas para a recuperação, inclusão, remoção e modificação de
informações em bancos de dados.

Comandos:

● INSERT - Instrução utilizada para incluir uma nova tupla na relação.


● UPDATE - Esta operação modifica os valores de um ou mais atributos de uma tupla de uma
certa relação.
● DELETE - Esta operação promove a remoção de uma ou mais tuplas
INSERT
Usado para adicionar uma nova tupla (linha) a uma relação (tabela).

A sentença INSERT é composta basicamente de duas cláusulas: INSERT INTO

e VALUES.

● INSERT INTO – Define o nome da relação a ser inserido a informação.


● VALUES – Lista de valores que serão inseridos na tupla.

Os valores devem ser especificados na mesma ordem em que os atributos


correspondentes foram especificados no comando CREATE TABLE.
INSERT – Violação de Integridade
A operação INSERT, pode violar as quatro restrições de integridade:
● Domínio - O valor informado não está de acordo com o tipo de dados definido para
uma determinada coluna;
● Chave - O valor informado para a chave está de com os conceitos de chave primária;
● Integridade de entidade - Não é informado todos os valores obrigatórios e/ou valor de
chave primária como NULL
● Integridade referencial - O valor informado para chave estrangeira não está de acordo
com sua referência.
Quando qualquer uma dessas violações ocorre, a inserção da nova tupla será
rejeitada.
Exemplo
INSERT INTO <nome da tabela> (<lista de atributos>) VALUES
(<lista de valores>);

INSERT INTO usuario(id , nomeusuario, nivel_acesso, setor)


VALUES(0,'Reidner', 1, 'AB10');
Exemplo
Caso seja informado dados de todas as colunas definidas no
CREATE TABLE, utilizando a mesma ordem da criação, a lista de
atributos pode ser omitida.

Exemplo:
INSERT INTO usuario VALUES(1,'Reidner', 1, 'AB10');
DELETE
• O comando DELETE remove tuplas (linhas) de uma relação de acordo as
condições associadas a determinados atributos da relação.
• Faz-se necessário o uso da cláusula WHERE.

• As tuplas são excluídas apenas de uma tabela por vez. Porém, a exclusão pode
propagar para as tuplas em outras relações.

• Dependendo da condição associada ao comando DELETE, zero, uma ou várias


tuplas podem ser excluídas por um único comando.
DELETE
Restrição de Integridade

Quando executada, a operação DELETE pode violar a restrição


de integridade referencial.

Caso ocorra:
A operação de remoção é rejeitada
OU
Propagada por meio da remoção das tuplas que referenciam a
tupla inicialmente removida.
DELETE
Sintaxe:

DELETE FROM nome_tabela WHERE <condição 1>, <condição 2>;

DELETE FROM usuario WHERE id = 1;


DELETE FROM usuario WHERE nomeUsuario=“Reidner”;
UPDATE
• O comando UPDATE é usado para modificar valores de
atributos de uma ou mais tuplas selecionadas.

• As tuplas que sofrerão as modificações são especificadas por


meio de condições associadas a determinados atributos da
relação.

• Também é necessário utilizar a cláusula WHERE.


UPDATE
• Violação de integridade
• Como acontece na operação INSERT, a operação UPDATE também pode
violar as quatro restrições de integridade: domínio, chave, integridade de
entidade e de integridade referencial.
● Domínio - O valor informado não está de acordo com o tipo de dados definido para
uma determinada coluna;
● Chave - O valor informado para a chave está de com os conceitos de chave

primária;
● Integridade de entidade - Não é informado todos os valores obrigatórios e/ou

valor de chave primária como NULL


● Integridade referencial - O valor informado para chave estrangeira não está de
acordo com sua referência.
UPDATE
UPDATE é composto por três cláusulas: UPDATE, SET e WHERE.

● A cláusula UPDATE é responsável pela definição do nome da tabela


alvo.
● A cláusula SET define qual atributo sofrerá alteração bem como seu
novo valor. Pode ser uma lista de atributos.
● A cláusula WHERE define a condição para que a alteração ocorra.

UPDATE <nome da tabela> SET coluna1 = <novo valor>, coluna2 = <novo


valor>, … WHERE <condição 1>, <condição 2>, …
UPDATE
Sintaxe:

UPDATE nome_tabela SET coluna1 = <novo_valor>, coluna2 =


<novo_valor>, … WHERE <condição 1>, <condição 2>, …
UPDATE
Exemplo:

UPDATE usuario SET nomeUsuario=“Rei” WHERE id=0;

UPDATE usuário SET nível_acesso=10 WHERE nomeUsuario=“Rei”;


Exemplo
• Insira pelo menos 3 registros em cada tabela

• Exclua todos os registros da tabela CONSULTA.

• Atualize o nome dos funcionários.

Você também pode gostar