5. Linguagem SQL Flashcards
(41 cards)
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]