Directorio de artículos
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,字段2) values(值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:
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: