5. Linguagem SQL Flashcards
Quando dizem que a linguagem SQL é declarativa, o que isso quer dizer?
Quer dizer que os detalhes de implementação dos comandos são deixados para o SGBD.
Em SQL, você declara o que você quer e o SGBD vai achar os dados pra você no banco, caso existam.
Os comandos CREATE, ALTER, DROP e TRUNCATE são referentes a que sublinguagem de SQL?
DDL (data DEFINITION language), pois cruam, modificam e excluem objetos de bancos de dados
Qual o único comando da DQL (data query language)?
SELECT
INSERT, SELECT, UPDATE, DELETE e MERGE são exemplos de comandos de que sublinguagem de SQL?
DML (data MANIPULATION language), pois trabalham com a manipulação de dados armazenados
COMMIT, ROLLBACK e SAVEPOINT são exemplos de comandos de que sublinguagem de SQL?
DTL (data TRANSACTION language), usados para transações de dados
GRANT e REVOKE são comandos usados em que sublinguagem do SQL?
DCL (data CONTROL language), controlam permissões de controle de acesso
O que a cardinalidade de uma tabela diz sobre ela?
O que é uma tabela com cardinalidade 0 (zero)?
Cardinalidade = número de linhas
Cardinalidade 0 = tabela vazia
O que quer dizer grau de uma tabela?
É possível ter uma tabela de grau 0 (zero)?
Grau = número de colunas
Não é possível ter grau zero, pois uma tabela deve ter o mínimo de 1 coluna.
Qual a diferença entre CHAR e VARCHAR(XX)?
CHAR = número de finido de caracteres
VARCHAR = número variável de caracteres
O que acontece, numa tabela SQL, se eu digitar PIADA num campo definido como CHAR(20)?
O campo será preenchido com PIADA + 15 caracteres vazios
As restrições FOREIGN KEY e REFERENCES servem para quê?
Servem para fazer a ligação entre duas tabelas
A restrição CHECK serve para quê?
Serve para limitar o intervalo de valores que podem ser inseridos
Ex: CHECK (idade>=18) para maiores de idade
Qual a diferença entre os comandos DROP e TRUNCATE?
DROP = apaga a tabela inteira
TRUNCATE = apaga tudo o que tá escrito na tabela, mas mantém a estrutura da tabela
Para que um usuário possa executar o comando SELECT em uma view, não é necessário que ele tenha esse privilégio diretamente na view, mas apenas na tabela a que a view faz referência.
Certo ou errado?
Errado.
Precisa ter o privilégio de fazer select na view.
O que são stored procedures?
Comandos que encapsulam tarefas repetitivas, feitos para otimização do banco de dados
O que é um trigger?
Um conjunto de instruções SQL que são executados automaticamente sempre que determinado evento ocorrer
O que significa a instrução abaixo?
CREATE ROLE analista; GRANT create table TO analista; GRANT analista TO pedro WITH GRANT OPTION
A instrução:
- Criou o papel (role) de analista,
- Concedeu o privilégio de criar tabelas ao papel de analista
- Concedeu todas as autorizações dadas ao papel da analista a Pedro.
- deu a Pedro permissão para delegar suas permissões de acesso
O que fazer, numa tabela ALUNO, onde há alunos de várias cidades e elas se repetem, se eu quiser somente as cidades?
Usar SELECT DISTINCT, que vai eliminar os duplicados
O que fazer para um trigger substituir a instrução que o originou, sendo a instrução original descartada e apenas o trigger sendo executado?
Descrevê-lo como INSTEAD OF (ao invés de BEFORE ou AFTER)
Uma view pode existir de forma física e permanente?
Não
Uma view é sempre temporária e nunca armazenada de forma física
O operador NULL retorna o número de colunas nulas?
Não.
É o operador IS NULL que retorna isso
O que é uma variável FLOAT(9,3)?
É um número de 9 dígitos com 3 casas decimais
Como é o código para criar uma nova tabela aluno, com nome, CPF (chave primária), sexo e cidade?
CREATE TABLE ALUNO (
NOME VARCHAR(50) NOT NULL ,
CPF INT PRIMARY KEY
SEXO CHAR(1) NOT NULL
CIDADE VARCHAR(50) NOT NULL);
A estrutura é sempre:
CREATE TABLE [NOME DA TABELA] ( [abre aspas e põe cada coluna com a estrutura]:
NOME DA COLUNA TIPO DE DADO RESTRIÇÕES
) ; [ponto e vírgula]
Qual a sintaxe para inserir uma coluna nova numa tabela? E para excluir uma coluna?
ALTER TABLE [nome da tabela]
ADD COLUMN [especificar nome da coluna, tipo de dado e restrições]
Para excluir:
ALTER TABLE [nome da tabela]
DROP COLUMN [nome da coluna]
A constraint PRIMARY KEY junta duas outras. Quais?
Junta NOT NULL (valores não podem ser nulos) e UNIQUE (valores têm que ser diferentes entre si)
O que acontece se eu tentar modificar uma coluna colocando a restrição UNIQUE (ALTER TABLE [nome da tabela] ADD UNIQUE [nome da coluna]); , mas já tiverem dois valores iguais nela?
O SGBD retornará um erro e não alterará a tabela
Como o ON DELETE CASCADE se relaciona com a presença de foreign key?
ON DELETE CASCADE é uma cláusula que obriga a exclusão dos registros correspondentes das tabelas filhas (que tem uma foreign key) antes de excluir algo que é uma chave primária da tabela pai
Como eu faço para inserir o nome, cidade e o CPF de um novo aluno na tabela ALUNO?
INSERT INTO ALUNO (NOME, CIDADE, CPF)
VALUES (valor do nome do aluno, valor da cidade, valor do CPF)
Qual a sintaxe para modificar/atualizar registros de nome e cidade de uma tabela Aluno com primary key = CPF?
UPDATE ALUNO
SET NOME = [nome que se quer colocar], CIDADE = [cidade que se quer colocar]
WHERE CPF = [o CPF que já está na tabela]
Qual a diferença entre a sintaxe SELECT*FROM ALUNO
e
SELECT NOME, CPF FROM ALUNO
?
- retorna todas as colunas da tabela
Para retornar colunas específicas de uma tabela, é preciso especificá-las
No código:
SELECT DATA DE NASCIMENTO AS DN,
O que significa quando aparece esse AS no código SQL?
Quer dizer que foi dado à seleção um nome temporário (como se fosse um apelido, um “Alias”)
No caso, a coluna data de nascimento recebeu o Alias DN