El funcionamiento básico de la tabla de base de datos Oracle y la solución al problema del valor nulo

1. Clasificación del idioma de la base de datos Oracle:

1) DDL: lenguaje de definición de datos, que juega un papel en la estructura de datos

  • crear: crear un objeto

  • alterar: modificar un objeto

  • soltar: eliminar un objeto

  • truncar: borrar datos + envío implícito

    2) DCL: lenguaje de control de datos

  • subvención: subvención

  • revocar: reciclaje

    3) DQL: lenguaje de consulta de datos

  • seleccione: consulta

    4) DML: lenguaje de manipulación de datos, trabajando en datos

  • insertar: agregar datos

  • eliminar: eliminar datos

  • actualización: modificar datos + enviar explícitamente

    5) TCL: lenguaje de control de transacciones (trabajando en DML)

  • commit: commit

  • savepoint: guardar punto, usado con rollback

  • rollback: rollback

2. Distinguir entre borrar, soltar y truncar? (Pregunta de entrevista)

1) Clasificación de idioma: eliminar es lenguaje de manipulación de datos (DML), soltar y truncar son lenguaje de definición de datos (DDL)

2) Eliminar contenido: soltar es eliminar todo el objeto, truncar es eliminar los datos del objeto, eliminar es eliminar los datos

3) ¿Es posible revertir: eliminar es enrollable, soltar y truncar no son enrollables

3. Comandos comunes:

1) Crear objetos de base de datos:

Sintaxis:

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

2)) Agregar datos:

Sintaxis:

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

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

3) Datos de consulta:

Sintaxis:

select * from 表名;

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

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

4) Estructura de la tabla de consulta:

Sintaxis:

  desc 表名;

5) Modificar los datos:

Sintaxis:

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

6) Eliminar datos:

Sintaxis:

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

4. El tipo de datos de la base de datos Oracle:

1) Tipo de número:

  • número (n): número (el más largo es n dígitos)
  • número (n, m): el n más largo, con m dígitos después del punto decimal

Por ejemplo: ¿Cuál es el valor máximo de número (5,2)? 999,99

2) Tipo de personaje: (Pregunta de la entrevista: distinguir char, varchar, varchar2)

  • char (n): longitud fija n, si la longitud de los datos insertados es menor que n, debe rellenarse con espacios
  • varchar (n): longitud variable, si la longitud de los datos insertados es menor que n, la última longitud de caracteres mostrada es la longitud de los datos insertados
  • varchar2 (n): el uso es consistente con varchar, varchar2 es un tipo único de base de datos Oracle

3) Tipo de fecha:

  • fecha

Después de aprender los comandos comunes y los tipos de datos de Oracle, tomemos un ejemplo:

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 tabla de empleados y tabla de departamentos:

select * from emp_jinli;
select * from dept_jinli;

Consultar el salario mensual y anual de los empleados en la tabla de empleados

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

Hay un problema con la fórmula anterior. Como se muestra en la figura, el salario anual de algunas personas es nulo:
Inserte la descripción de la imagen aquí

5.nulo:

1) Cualquier dato puede estar vacío

2) Si nulo participa en la operación, el resultado está vacío

3) El valor nulo y la cadena se empalman, luego nulo es equivalente a no (la operación de empalme en la base de datos Oracle usa '||', más el signo en Java)

6.nvl (campo 1, valor 1):

Función para manejar nulo, si el campo 1 es nulo, muestre el valor 1

Nota :

  • nvl (d1, d2) debe garantizar que los tipos de datos de d1 y d2 sean consistentes

  • nvl2 (expresión, d1, d2): juzgue la expresión, si la expresión es verdadera, ejecute d1, de lo contrario ejecute d2, que es equivalente a la expresión de operación trinocular?

Entonces, la situación anterior se puede cambiar así:

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

La representación en este momento es:
Inserte la descripción de la imagen aquí

Publicado 24 artículos originales · elogiado 41 · visitas 2778

Supongo que te gusta

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