A operação básica da tabela de banco de dados Oracle e a solução para o problema de valor nulo

1. Classificação do idioma do banco de dados Oracle:

1) DDL: linguagem de definição de dados, que desempenha um papel na estrutura de dados

  • create: cria um objeto

  • alterar: modificar um objeto

  • drop: excluir um objeto

  • truncar: dados claros + envio implícito

    2) DCL: linguagem de controle de dados

  • grant: grant

  • revogar: reciclagem

    3) DQL: linguagem de consulta de dados

  • selecione: consulta

    4) DML: linguagem de manipulação de dados, trabalhando com dados

  • inserir: adicionar dados

  • delete: excluir dados

  • update: modificar dados + enviar explicitamente

    5) TCL: linguagem de controle de transações (trabalhando em DML)

  • commit: commit

  • savepoint: save point, usado com reversão

  • reversão: reversão

2. Distinguir entre excluir, soltar e truncar? (Pergunta da entrevista)

1) Classificação do idioma: delete é a linguagem de manipulação de dados (DML), drop e truncate são DDL (data definition language)

2) Excluir conteúdo: drop é excluir o objeto inteiro, truncar é limpar os dados no objeto, delete é excluir os dados

3) É possível reverter: excluir é rolável, soltar e truncar não são roláveis

3. Comandos comuns:

1) Crie objetos de banco de dados:

Sintaxe:

create table 表名(字段1 数据类型,字段2 数据类型,.......);

2)) Adicione dados:

Sintaxe:

insert into 表名 values(1,值2...); //表中有几个字段,对应就有几个值

insert into 表名(字段1,字段2values(1,值2);//给必须赋值的字段添加数据

3) Dados da consulta:

Sintaxe:

select * from 表名;

select 字段1,字段2 from 表名;

select 表达式 from dual; //dual是虚表(一行一列的虚表)

4) Estrutura da tabela de consulta:

Sintaxe:

  desc 表名;

5) Modifique os dados:

Sintaxe:

  update 表名 set 字段 = '值' where 字段 = '值';

6) Excluir dados:

Sintaxe:

  delete from 表名 where 字段='值';

4. O tipo de dados do banco de dados Oracle:

1) Tipo de número:

  • número (n): número (o maior é n dígitos)
  • número (n, m): o n mais longo, com m dígitos após o ponto decimal

Por exemplo: Qual é o valor máximo do número (5,2)? 999,99

2) Tipo de personagem: (Pergunta da entrevista: distinguir char, varchar, varchar2)

  • char (n): comprimento fixo n, se o comprimento dos dados inseridos for menor que n, ele deverá ser preenchido com espaços
  • varchar (n): comprimento variável, se o comprimento dos dados inseridos for menor que n, o último comprimento de caractere exibido será o comprimento dos dados inseridos
  • varchar2 (n): o uso é consistente com varchar, varchar2 é um tipo exclusivo de banco de dados Oracle

3) Tipo de data:

  • encontro

Depois de aprender os comandos e tipos de dados comuns do Oracle, vamos dar um exemplo:

create table dept_jinli( deptno number(2) , dname char(20) , location char(20)) ;
insert into dept_jinli values(10 , 'developer' , 'beijing') ; 
insert into dept_jinli values(20 , 'account' , 'shanghai') ;
insert into dept_jinli values(30 , 'sales' , 'guangzhou') ; 
insert into dept_jinli values(40 , 'operations' , 'tianjin') ; 
commit ;


create table emp_jinli( 
empno number(4) , 
ename varchar2(20) , 
job varchar2(15) , 
salary number(7 , 2) , 
bonus number(7 , 2) , 
hiredate date, 
mgr number(4) ,
deptno number(10));

insert into emp_jinli values( 1001 , '张无忌' , 'Manager' , 10000 , 2000 ,
                                 to_date( '2010-12-12' , 'YYYY-MM-DD' ) , 1005 , 10) ; 
insert into emp_jinli values( 1002 , '小苍' , 'Analyst' , 8000 , 1000 , 
                                 to_date( '2011-01-01' , 'YYYY-MM-DD' ) , 1001, 10) ; 
insert into emp_jinli values( 1003 , '李怡' , 'Analyst' , 9000 , 1000 ,
                                 to_date( '2010-01-11' , 'YYYY-MM-DD' ) , 1001, 10) ;
insert into emp_jinli values( 1004 , '郭芙蓉' , 'Programmer' , 5000 , null , 
                                 to_date( '2011-07-01' , 'YYYY-MM-DD' ) , 1001 , 10) ; 
insert into emp_jinli values( 1005 , '张三丰' , 'President' , 15000 , null ,
                                 to_date( '2008-05-15' , 'YYYY-MM-DD' ) , null , 20) ; 
insert into emp_jinli values( 1006 , '燕小六' , 'Manager' , 5000 , 400 , 
                                 to_date( '2009-02-01' , 'YYYY-MM-DD' ) , 1005 , 20) ;
insert into emp_jinli values( 1007 , '陆无双' , 'clerk' , 3000 , 500 ,
                                 to_date( '2009-02-01' , 'YYYY-MM-DD' ) , 1006 , 20) ;
insert into emp_jinli values( 1008 , '黄蓉' , 'Manager' , 5000 , 500 , 
                                 to_date( '2009-05-01' , 'YYYY-MM-DD' ), 1005 , 30) ; 
insert into emp_jinli values( 1009 , '韦小宝' , 'salesman' , 4000 , null , 
                                 to_date( '2009-02-20' , 'YYYY-MM-DD' ) , 1008 , 30) ; 
insert into emp_jinli values( 1010 , '郭靖' , 'salesman' , 4500 , 500 , 
                                 to_date( '2009-05-10' , 'YYYY-MM-DD' ) , 1008 , 30) ;

Consultar tabela de funcionários e tabela de departamento:

select * from emp_jinli;
select * from dept_jinli;

Consultar o salário mensal e anual de funcionários na tabela de funcionários

select ename ,salary ,salary*12+bonus from emp_jinli;

Existe um problema com a fórmula acima.Como mostrado na figura, o salário anual de algumas pessoas é nulo:
Insira a descrição da imagem aqui

5.nulo:

1) Qualquer dado pode estar vazio

2) Se nulo participar da operação, o resultado estará vazio

3) O valor nulo e a sequência são emendados, e nulo é equivalente a não (a operação de junção no banco de dados Oracle usa '||', além de assinar Java)

6.nvl (campo 1, valor 1):

Função para manipular nulo, se o campo 1 for nulo, exiba o valor 1

Nota :

  • nvl (d1, d2) deve garantir que os tipos de dados de d1 e d2 sejam consistentes

  • nvl2 (expressão, d1, d2): julgue a expressão, se a expressão for verdadeira, execute d1, caso contrário, execute d2, que é equivalente à expressão da operação trinocular?

Portanto, a situação acima pode ser alterada assim:

select ename,salary ,salary*12+nvl(bonus,0) from emp_jinli;

A renderização no momento é:
Insira a descrição da imagem aqui

Publicado 24 artigos originais · elogiado 41 · visitas 2778

Acho que você gosta

Origin blog.csdn.net/abc701110/article/details/105532384
Recomendado
Clasificación