Classificação das perguntas da entrevista da Oracle

Índice

Classificação das perguntas da entrevista da Oracle

1. A diferença entre MySQL e Oracle:

2. Qual a diferença entre função e procedimento no Oracle? 

3. Comparar os comandos truncar e excluir? 

4. Definição de rowid e rownum em oralce 

5. Quais são as características das transações (ACID)?

6. Liste vários métodos de junção de tabelas

7. Descrever a relação entre tablespace e datafile no oracle

8. O que é backup lógico

9. O que é um backup físico

10. Quais são os métodos de uso e as diferenças entre as funções NVL e NVL2?

11. A diferença entre união e união todos

12. A diferença entre menos e interseção

13. O que é um procedimento armazenado e quais são suas vantagens?

14. Quais são os três paradigmas

15. O que é uma visão? E quais são os cenários de uso da view?

16. O que é um índice? Qual é o papel e as vantagens e desvantagens?

17. O que são bloqueios otimistas e bloqueios pessimistas no banco de dados?

18. Otimização da estrutura do banco de dados 1) Otimização de paradigma:

 19. Explique o cursor oralmente

20. Descrever gatilhos no oráculo

21. Use pseudocolunas oracle para deletar registros duplicados na tabela: 

22. Liste os nomes de todos os funcionários e os nomes de seus supervisores imediatos.

23. Liste todos os funcionários cuja data de contratação é anterior ao seu supervisor imediato.

24. Liste vários empregos com salário mínimo superior a 1.500.

25. Liste o salário anual de todos os funcionários, classificados por salário anual do menor ao maior. 

26. Liste todos os funcionários que fazem o mesmo trabalho como "SCOTT".

27. Exclua o funcionário com o maior salário do departamento 10.

28. Cortar em 30% o salário dos funcionários mais bem pagos.

29. Mostre o cargo da pessoa mais bem paga.

30. Consultar o nome do funcionário, salário e nível salarial (salário>=3000 é nível 3, salário>2000 é nível 2, salário<=2000 é nível 1)

31.语法:caso … quando … então … quando … então … senão … fim

32. Paginação no Oracle

33. Uma tabela chamada departamento tem apenas um nome de campo e há 4 registros no total, que são a, b, c e d, correspondendo a quatro pares de bolas. Agora os quatro pares de bolas estão competindo e uma instrução sql é usado para exibir todas as combinações possíveis de correspondência.


Classificação das perguntas da entrevista da Oracle

1. A diferença entre MySQL e Oracle:

  1. MySQL é um projeto de código aberto, gratuito. O MySQL é a primeira escolha para pequenas e médias empresas.O Oracle é um produto de banco de dados maduro lançado pela Oracle.
  2. A diferença na sintaxe SQL , o MySQL é mais flexível e o Oracle é mais rígido (especificamente, aspas simples, processamento de paginação e crescimento automático de chaves primárias)
  3. Suporte para transações. O MySQL não suporta transações por padrão, apenas o mecanismo de armazenamento innodb as suporta. A Oracle suporta totalmente as transações.
  4. simultaneidade. O padrão do MySql é bloqueios no nível da tabela e bloqueios no nível da linha do Oracle, portanto, a emissão paralela do Oracle é muito maior.

2. Qual é a diferença entre função e procedimento no  Oracle ?

1). A função função é um tipo de procedimento armazenado. 
2) A função não pode ter parâmetros, mas deve ter um valor de retorno. O procedimento armazenado não pode ter parâmetros e não precisa retornar um valor. 3). 
Retorno valores através de parâmetros, se você precisar retornar vários parâmetros, é recomendável usar procedimentos armazenados 
4) Em instruções de manipulação de dados SQL, apenas funções podem ser chamadas e procedimentos armazenados não podem ser chamados

 3. Comparar os comandos truncar e excluir? 


1). Tanto o truncamento quanto a exclusão podem excluir entidades de dados. A operação de truncamento não é registrada no log de reversão, portanto, a velocidade da operação é mais rápida, mas, ao mesmo tempo, os dados não podem ser recuperados. 2). A operação de exclusão não não libera espaço no espaço da tabela 

) Truncate não pode excluir exibições etc. 
4) Truncate é uma linguagem de definição de dados (DDL), enquanto delete é uma linguagem de manipulação de dados (DML) 

4. Definição de rowid e rownum em  oralce

1). rowid e rownum são pseudocolunas 
2). rowid é um endereço físico, usado para localizar o local de armazenamento físico de dados específicos no oráculo 
3). rownum é a classificação do resultado de saída do sql

5. Quais são as características das transações (ACID)?

Uma transação é uma série de operações executadas como uma unidade lógica, e uma unidade lógica de trabalho deve ter quatro propriedades, denominadas propriedades ACID (atomicidade, consistência, isolamento e durabilidade).

1) Atomicidade (Atomic): Todas as operações na transação devem ser feitas ou não, a falha de qualquer operação levará à falha de toda a transação.

2) Consistência: O estado do sistema é o mesmo após o término da transação

3) Isolamento (isolado): transações executadas simultaneamente não podem ver o estado intermediário umas das outras

4) Durável (Durable): Após a conclusão da transação, mesmo que ocorra uma falha catastrófica, os dados podem ser reconstruídos após a falha por meio de log e backup síncrono

6. Liste vários métodos de conexão de tabela

Junção equivalente (junção interna), junção não igual, junção automática, junção externa (esquerda, direita, completa)

A junção interna, também conhecida como junção de equivalência, filtra as linhas que correspondem exatamente

A junção esquerda é baseada principalmente na tabela esquerda. Além de filtrar as linhas que correspondem exatamente, ela também filtrará as linhas que não correspondem na tabela esquerda. Se nenhum dado correspondente for encontrado, preencha-o com nulo

A junção correta é baseada na tabela correta. Além de filtrar as linhas que correspondem exatamente, ele também selecionará as linhas que não correspondem na tabela. Se nenhum dado correspondente for encontrado, preencha-o com null

  7. Descrever a relação entre tablespace e datafile no oracle


Um tablespace pode conter um ou mais arquivos de dados. O espaço de tabela expande o espaço de tabela adicionando ou estendendo o arquivo de dados, e o tamanho do espaço de tabela é a soma do tamanho dos arquivos de dados que compõem o espaço de tabela. Um arquivo de dados pode pertencer apenas a um espaço de tabela; um espaço de tabela pode ter um ou mais arquivos de dados, e cada arquivo de dados pode estar apenas em um espaço de tabela. Os dados na tabela são distribuídos entre os arquivos de dados no espaço de tabela por meio do algoritmo de hash. O espaço de tabela é lógico O conceito de arquivo de dados armazena fisicamente vários objetos do banco de dados.

   8. O que é backup lógico

1) O backup lógico (exp/imp) é usado para restaurar objetos do banco de dados. Mas não com base em estratégias de backup totalmente recuperáveis ​​pontuais. Ele só pode ser usado como um complemento para backup online e backup offline.
2) Backup lógico completo
O backup lógico completo consiste em exportar todo o banco de dados para um arquivo no formato de banco de dados, que pode ser transplantado entre diferentes versões de banco de dados, sistemas operacionais e plataformas de hardware.
3) Backup lógico da tabela especificada
A tabela de banco de dados especificada pode ser copiada por meio da ferramenta de backup, o que pode evitar o desperdício de tempo e recursos financeiros causados ​​pelo backup lógico completo.

9. O que é um backup físico


O backup físico é o principal método de backup. Ele é usado para garantir que o banco de dados seja restaurado com perda mínima de banco de dados ou sem perda de dados. Os backups físicos são divididos em backups quentes e backups frios

  1) Hot backup: significa principalmente que o processo de backup é realizado quando o banco de dados está aberto e o usuário pode utilizá-lo. As situações que precisam executar o backup físico dinâmico são: como a natureza do banco de dados exige trabalho ininterrupto, somente o backup físico dinâmico pode ser usado neste momento.

2) Cold backup: Cold backup físico fornece o método mais simples e direto para proteger o banco de dados de ser perdido devido a danos físicos.

Para um banco de dados que já possui a maior quantidade de dados, o banco de dados pode ser desligado à noite e a física fria é aplicada nesse momento.

Ao atualizar o servidor de banco de dados (como substituir o disco rígido), é necessário fazer backup das informações do banco de dados e usar backup frio.

10. Quais são os métodos de uso e as diferenças entre as funções NVL e NVL2?

1 ) NVL (expr1, expr2): se expr1 for NULL, retorna expr2; se não for NULL, retorna expr1. Observe que os tipos dos dois devem ser consistentes
2 ) NVL2 (expr1, expr2, expr3): expr1 não é NULL. Retorna expr2; se NULL, retorna expr3. Se expr2 e expr3 forem de tipos diferentes. expr3 será convertido para o tipo de expr2 

11. A diferença entre união e união todos

1) UNION : Consiste em todas as linhas não repetidas selecionadas por cada consulta. A união não inclui valores repetidos e é classificada em ordem crescente pela primeira coluna da primeira consulta por padrão.

2) UNION ALL : Todas as linhas selecionadas por cada consulta. As uniões exatas incluem valores repetidos. Não classificado.

12. A diferença entre menos e interseção

     1 ) MENOS: Linhas na primeira consulta, mas não nas consultas subsequentes, excluindo linhas duplicadas. Classifique pela coluna 1 da consulta 1 em ordem crescente.

2 ) INTERSECT: Pegue a interseção de cada resultado da consulta. Linhas duplicadas não são incluídas. Classifique pela coluna 1 da consulta 1 em ordem crescente.

13. O que é um procedimento armazenado e quais são suas vantagens?

Procedimentos armazenados, como funções em nossas linguagens de programação, encapsulam nosso código (PLSQL, T-SQL). Vantagens dos procedimentos armazenados:

  1. Pode encapsular o código e salvá-lo no banco de dados
  2. Deixe a linguagem de programação fazer a chamada
  3. Um procedimento armazenado é um bloco de código pré-compilado com alta eficiência de execução
  4. Um procedimento armazenado substitui um grande número de instruções T_SQL, o que pode reduzir o tráfego de rede e aumentar a velocidade de comunicação

14. Quais são os três paradigmas

Primeira forma normal: o campo é a menor unidade e não pode ser dividido

Segunda forma normal: para satisfazer a primeira forma normal, os campos da tabela devem ser completamente dependentes de todas as chaves primárias, e não de algumas chaves primárias.

Terceira forma normal: Satisfaz a segunda forma normal, todos os campos exceto a chave primária devem ser independentes uns dos outros e não há dependência transitiva

15. O que é uma visão? E quais são os cenários de uso da view?

  1. Uma visão é uma tabela virtual baseada em uma tabela de dados
  2. As visões são construídas com base nas tabelas existentes, e essas tabelas nas quais a visão é construída são chamadas de tabelas base
  1. A instrução que fornece conteúdo de dados para a exibição é uma instrução SELECT e a exibição pode ser entendida como uma instrução SELECT armazenada
  2. As visualizações fornecem aos usuários outra representação dos dados da tabela base
  3. A visão não armazena os dados reais, os dados reais ainda são armazenados na tabela base
  4. Embora o programador esteja operando a visualização, a visualização final também será convertida na tabela base de operação
  5. Uma tabela base pode ter 0 ou mais visualizações

16. O que é um índice? Qual é o papel e as vantagens e desvantagens?

(1) É um mecanismo para consultar rapidamente o conteúdo da tabela, semelhante ao diretório do Xinhua Dictionary

(2) É aplicado a determinados campos da tabela, mas quando armazenado é independente da tabela

Vantagens e desvantagens:

  1. Os índices aceleram a recuperação do banco de dados
  2. Os índices reduzem a velocidade das tarefas de manutenção, como inserção, exclusão e modificação (embora os índices possam melhorar a velocidade da consulta, eles também podem causar degradação do desempenho na atualização de dados no sistema de banco de dados, porque a maioria das atualizações de dados precisa atualizar o índice ao mesmo tempo )
  3. O índice exclusivo pode garantir a exclusividade de cada linha de dados. Ao usar o índice, o ocultador de otimização pode ser usado no processo de consulta para melhorar o desempenho do sistema
  4. Os índices requerem espaço físico e de dados

17. O que são bloqueios otimistas e bloqueios pessimistas no banco de dados?

Para garantir que o isolamento e a unidade das transações e a unidade do banco de dados não sejam destruídos quando várias transações acessam os mesmos dados no banco de dados ao mesmo tempo, o bloqueio otimista e o bloqueio pessimista são os principais meios técnicos usados ​​para controle de concorrência.

Bloqueio pessimista: Assumindo que ocorrerão conflitos de simultaneidade, todas as operações que possam violar a integridade dos dados são blindadas.Na consulta de dados, a transação é bloqueada até que a transação seja confirmada.Método de implementação: use o mecanismo de bloqueio no banco de dados.

 Quando a operação select xxx for update for executada , os dados serão bloqueados e só serão liberados quando o commit ou rollback for executado . Quando a operação select xxx for update nowait for executada , os dados também serão bloqueados e quando acessados ​​por outros , o erro ORA-00054 pode ser retornado e o conteúdo é O recurso está ocupado e precisa ser tratado com medidas de negócios correspondentes.

Bloqueio otimista: assumindo que nenhum conflito de simultaneidade ocorrerá, verifique se há violações de integridade de dados somente ao confirmar operações. Bloqueie a transação ao modificar dados e bloqueie-a por versão Método de implementação: use a versão da versão ou timestamp.

1 ): Quando os dados forem obtidos, copie todos os dados para o aplicativo e compare os dados no banco de dados atual com os dados obtidos antes da atualização no início ao enviar. Quando os dois dados são exatamente iguais, significa que não há conflito a ser enviado, caso contrário, é um conflito simultâneo, que precisa ser resolvido com a lógica de negócios.

2) : Adiciona uma nova coluna de tabela , que adota o tipo timestamp e armazena a hora da última atualização dos dados. A precisão dos dados desse tipo de Timestamp é a mais alta no tipo de tempo do Oracle , com precisão de microssegundos. Ao enviar a atualização, verifique o timestamp dos dados no banco de dados atual e compare-o com o timestamp obtido antes da atualização. Se eles são consistentes, então OK , caso contrário, é um conflito de versão.

18. Otimização da estrutura do banco de dados 1) Otimização de paradigma:

1) como eliminar redundância (economizar espaço)

2) Otimização antiparadigma: como adicionar redundância apropriadamente (reduzir junções)

3) Tabela dividida: divisão vertical e divisão horizontal

19. Explique o cursor oralmente

Um cursor é um localizador de registro (indicador) que aponta para um conjunto de resultados para localizar registros. Como usar o cursor: declare o cursor, abra o cursor, extraia os dados do cursor, feche o cursor

Declare

 cursor cur is select * from category;

    record category%rowtype;

  begin

    open cur;

    loop

      fetch cur into record;

      if cur%notfound then

        exit;

      end if;

      dbms_output.put_line(to_char(record.id) || ',' || record.name);

    end loop;

    close cur;

 end;

20. Descrever gatilhos no oráculo

Um gatilho é um procedimento armazenado especial explicitamente chamado pelo usuário, e um gatilho é quando o usuário executa a tabela

Atualizar, excluir e inserir são chamados automaticamente. Os tipos de gatilho geralmente incluem (inserir, excluir, modificar)

CREATE OR REPLACE TRIGGER SAL_EMP

 BEFORE UPDATE ON scott.EMP

 FOR EACH ROW

BEGIN

 IF :OLD.SAL > :NEW.SAL THEN

  DBMS_OUTPUT.PUT_LINE('工资减少');

 ELSIF :OLD.SAL < :NEW.SAL THEN

  DBMS_OUTPUT.PUT_LINE('工资增加');

 ELSE

  DBMS_OUTPUT.PUT_LINE('工资未作任何变动');

 END IF;

 DBMS_OUTPUT.PUT_LINE('更新前工资 :' || :OLD.SAL);

 DBMS_OUTPUT.PUT_LINE('更新后工资 :' || :NEW.SAL);

END;

Código de teste:

UPDATE scott.emp SET sal = 3000 WHERE empno = '7788';

21.  Use a pseudocoluna oracle para excluir registros duplicados na tabela: 


excluir tabela t onde t.rowid não está

(selecione max(t1.rowid) da tabela1 t1 onde t1.name=t.name)

De acordo com a estrutura da tabela scott.emp conforme abaixo:

22. Liste os nomes de todos os funcionários e os nomes de seus supervisores imediatos.


Análise: automapeamento da tabela, alias da tabela e vinculação da tabela t1 para simular a tabela de funcionários t2 para salvar informações diretas do superior
selecione t1.ename nome do funcionário, t2.ename superior direto de emp t1,emp t2 onde t1.MGR = t2. empno ;

23. Liste todos os funcionários cuja data de contratação é anterior ao seu supervisor imediato.


selecione t1.*,t2.hiredate de emp t1,emp t2 onde t1.MGR = t2.empno e t1.hiredate < t2.hiredate;

24. Liste vários empregos com salário mínimo superior a 1.500.


Análise: O salário mínimo do trabalho——grupo por trabalho, encontre o salário mínimo
selecione min(sal) de emp grupo por trabalho;
maior que 1500 é uma condição de agrupamento—tendo 
selecionado trabalho,min(sal) de emp grupo por trabalho tendo min(sal ) > 1500;

25. Liste o salário anual de todos os funcionários, classificados por salário anual do menor ao maior. 


selecione ename, sal*12 de emp ordene por sal*12 asc;

26. Liste todos os funcionários que fazem o mesmo trabalho como "SCOTT".


Análise: primeiro use a subconsulta para descobrir o trabalho de SCOTT: selecione o trabalho de emp onde ename ='SCOTT';
   selecione * de emp onde ename <> 'SCOTT' e trabalho = (selecione o trabalho de emp onde ename ='SCOTT') ;

27. Exclua o funcionário com o maior salário do departamento 10.

delete from emp where deptno=10 and sal >= all(select sal from emp where deptno=10 ); // MYSQL não suporta
especificação Mysql, modifique ou exclua registros na tabela, não é permitido consultar a mesma tabela em subconsulta
solução mysql: Excluir tabela temporária
de emp onde deptno=10 e sal >= all(selecionar t.sal de (selecionar sal de emp onde deptno=10) t );

28. Cortar em 30% o salário dos funcionários mais bem pagos.

oracle:update emp set sal = sal*0.7 where sal = (select max(sal) from emp);
mysql:  update emp set sal = sal*0.7 where sal = (select t.maxsal  from (select max(sal) maxsal from emp) t);

29. Mostre o cargo da pessoa mais bem paga.

select job from emp where sal = (select max(sal) from emp);
select job from emp where sal >= all(select sal from emp);

30. Consultar o nome do funcionário, salário e nível salarial (salário>=3000 é nível 3, salário>2000 é nível 2, salário<=2000 é nível 1)


analisar:

select ename,sal, case when sal>=3000 then ‘3级’ when sal>2000 then ‘2级’ else ‘1级’ end 级别 from emp;

31.语法:caso … quando … então … quando … então … senão … fim

Linhas e colunas Trocam
nome Pontuação do curso

Linguagem Zhang San 74

Zhang San Matemática 83

Zhang San Física 93

Li Si Chinês 74

Lee Si Matemática 84

Lisi Física 94

torna-se (obtém o seguinte resultado):

Nome Chinês Matemática Física

—- —- —- —-

Li Si 74 84 94

Zhang San 74 83 93

——————-

select name,max(case when cource =’语文’ then score else 0 end) from scores group by name;

select name,max(case when cource =’语文’ then score else 0 end)  语文,max(case when cource =’数学’ then score else 0 end) 数学,
max(case when cource =’英语’ then score else 0 end) 英语  from scores group by name;

32. Paginação no Oracle

  1. Use a função rownum
SELECT *

FROM (SELECT ROWNUM AS rowno,r.*

           FROM(SELECT * FROM tmp t  ORDER BY id desc

                   ) r

           where ROWNUM <= page*size

          ) a

WHERE a.rowno > (page-1)*size

  1. Use a função row_number() over()
  Select * from (

  Select * ,row_number() over(order by id desc) num

  ) a where num between (page-1)*size and page*size

33. Uma tabela chamada departamento tem apenas um nome de campo e há 4 registros no total, que são a, b, c e d, correspondendo a quatro pares de bolas. Agora os quatro pares de bolas estão competindo e uma instrução sql é usado para exibir todas as combinações possíveis de correspondência.

select a.name, b.name
from team a, team b
where a.name < b.name

Acho que você gosta

Origin blog.csdn.net/qq_55917018/article/details/128134342
Recomendado
Clasificación