SlideShare una empresa de Scribd logo
1 de 10
¿Conoces todos los comandos SQL de Oracle para hacer tus consultas? En este manual vamos a aprender a usar los más comunes. Entre ellos conoceremos los diferentes operadores que podemos utilizar, como eliminar filas duplicadas en nuestras consultas, funciones para trabajar con caracteres, fechas, funciones numéricas, de grupo, etc.<br />En posteriores entregas aprenderemos a crear tablas, usuarios, conceder permisos, modificar y eliminar columnas, etc.<br />Introducción a consultas<br />Consultas simples:<br />SELECT campo FROM tabla;<br />Consulta simple con condición:<br />SELECT campo1, campo2, FROM tablaDeArticulos WHERE precio>10;<br />Consultas con subconsultas:<br />SELECT precio FROM tablaDeArticulos WHERE referencia = (SELECT referencia FROM tablaDeReferencias WHERE nombreArticulo =’ patinete ‘)<br />Operadores: +, -, *, /<br />12*(sal+100)<br />Alias: Renombra encabezado, pone nombres a las columnas resultantes de una consulta<br />{SELECT ename “Nombre trabajador”, sal “Salario” FROM trabajadores;}<br />Concatenación: “||” Concatena columnas o cadenas.<br />{SELECT ename||job “Empleados”;}<br />{SELECT ename ||’ es un ‘|| job “Detalles”;}<br />Filas Duplicadas: “distinct” no muestra duplicadas, despues de SELECT<br />{SELECT distinct deptno, job;}<br />Visualizar estructura completa de una tabla: desc<br />{desc dept;}<br />Ficheros:<br />sav[e] guarda consulta<br />{sav archiv.sql}<br />@ ejecuta consultas en fichero / sta[rt] ejecuta consultas en fichero<br />{@ arciv.sql}<br />ed[it] permite editar fichero<br />{ed archiv.sql}<br />Operador WHERE: Restringe la consulta a las filas que cumple una condición<br />FROM emp WHERE job=’CLERK’ (CASE SENSITIVE!!)<br />Operadores comparación: =, >, >=, <, <=, <><br />{SELECT campo FROM table WHERE salario>=200;}<br />{…WHERE hiredate < ’01-01-95′;}<br />{…WHERE hiredate > ’01-JAN-95′;}<br />OPERADORES COMPARACIÓN 2: BETWEEN..AND.., IN(list), LIKE, IS NULL<br />BETWEEN:<br />{… WHERE salario BETWEEN 100 AND 150;}<br />IN:<br />{mgr IN (7902, 7566);} {WHERE ename IN (‘FORD , ‘ALLEN’)}<br />LIKE: Comodin “%” representa 0 o N caracteres. Comodin “_” representa exactamente 1 caracter.<br />{…WHERE ename LIKE ‘_S%’}<br />ESCAPE: Interpreta “_” literal.<br />{…WHERE ename LIKE ‘%%’ ESCAPE ‘;}<br />IS NULL: Si un valor es nulo . Atencion, NULL! =0!!<br />{…WHERE mgr IS NULL;}<br />Operadores Lógicos: AND, OR, NOT<br />{…WHERE job NOT IN (‘CLERK’, ‘MANAGER’); job NOT LIKE ‘%A_’;}<br />Ordenar: “ORDER BY (columna/alias)”. Ordenar de forma ascendente o descendente: “ORDER BY (columna/alias) [ASC/DESC]“<br />ORDER BY hiredate desc; ORDER BY deptno, sal desc;<br />FUNCIONES DE CARACTERES:<br />LOWER/UPPER: Convierte a minusculas/mayúsculas<br />lower(JOB) -> job<br />ename=upper(‘blake’);<br />INITCAP: Primera letra mayusculas resto minusculas<br />Initcap(JOB) -> Job<br />CONCAT: Concatena (como “|”)<br />SUBSTR: Devuelve los caracteres seleccionados de una cadena de la cadena<br />LENGTH: Devuelve número caracteres<br />INSTR: Devuelve posición del caracter en la cadena<br />LPAD: Rellena cadena por la derecha con el car seleccionado<br />TRIM: Elimina caracteres del principio o del final<br />FUNCIONES NUMÉRICAS:<br />Round: Redondea al decimal especificado<br />round(45.926, 2) -> 45.93<br />Trunc: Trunca en le decimal especificado<br />trunc(45.926, 2) -> 45.92<br />Mod: Devuelve el resto de la división<br />Mod(1600, 300) -> 100<br />Mod(sal, comm) -> Calcula el “RATIO”<br />NVL: Convierte un nulo a un valor<br />nvl(comm, 0), nvl(job, ‘No Job’), nvl(hiredate,’01-JAN-97′)<br />{SELECT ename, nvl(to_car(mgr), ‘No Manager’) FROM emp;}<br />DECODE: Función de CASE<br />SELECT job, sal,<br />decode(job, ‘ANALYST’, sal*1.1, ‘CLERK’, sal*2, sal)<br />FROM emp;<br />Fechas:<br />sysdate: devuelve fecha y hora actual<br />num + fecha = fecha<br />fecha – num = fecha<br />fecha – fecha = dias<br />num/24 + fecha = agrega horas<br />{SELECT (sysdate-hiredate)/7 SEMANAS}<br />Conversión:<br />to_char: to_car(date, ‘fmt’), (hiredate, ‘fmDD’)<br />fm: elimina espacios en blanco<br />to_number: to_number(char)<br />to_date: Guarda datos en formato de fecha<br />to_date(char[, 'fmt'])<br />to_date(’07/05/1984′)<br />Elementos:<br />YYYY: Año numérico<br />YEAR: Año letras<br />MM: Mes numérico<br />MONTH: Mes letras<br />DY: Abreviatura 3 letras día<br />DAY: Nombre completo<br />Hora: HH24:MI:SS AM -> 15:45:32 PM<br />Añadir cars: DD “of” MONT -> 12 of October<br />Nº dia en letras: ddspth -> fourteenth<br />Funciones de grupo:<br />AVG: Media<br />COUNT: Cantidad de filas<br />MAX: Valor maximo<br />MIN: Valor mimimo ignorando nulos<br />STDDEV: Desviación ignorando nulos<br />SUM: Suma de valores ignorando nulos<br />VARIANCE: Varianza ignorando nulos<br />NOTA: Se pueden utilizar sin aparecer en SELECT<br />SELECT deptno FROM emp GROUP BY deptno HAVING MAX(sal)>1<br />En esta segunda entrega de Comandos SQL de Oracle vamos a aprender a crear tablas, modificarlas, añadir restricciones (constraints) y comentarios y modificar sus columnas y tipos. Además aprenderemos a crear secuencias las cuales nos ayudaran a insertar valores de forma automática, crearemos y modificaremos claves primerias (PK) y claves foráneas (FK) para poder enlazar valores de diferentes tablas. <br />Insertar registros en una tabla: Caracteres y fechas entre comillas simples<br />{INSERT INTO tabla [] VALUES []}<br />INSERT INTO tab (dnum, depnam, hiredate, usr_actual)<br />VALUES (50, ‘DEVELOPMENT’, SYSDATE, USERID);<br />Insertar registros nulos:<br />INSERT INTO dept VALUES (70, ‘FINANCE’, NULL);<br />Creación de Scripts: Los scripts nos permiten crear sencillas aplicaciones para añadir datos de forma sencilla a nuestra base de datos.<br />{ACCEPT variable PROMPT ‘texto a mostrar’ INSERT INTO tabla [] VALUES[&variable]}<br />ACCEPT id PROMPT ‘Introduce el ID de usuario:’<br />ACCEPT last_name prompt ‘Introduce apellido del usuario:’<br />ACCEPT first_name prompt ‘Introduce nombre del usuario:’<br />INSERT INTO my_employee (id, LAST_NAME, FIRST_NAME, USERID)<br />VALUES (&id, ‘&last_name’, ‘&first_name’, substr(‘&first_name’,1,1) || substr(‘$last_name’,1,7));<br />Insertar registros de otra tabla:<br />{INSERT INTO tabla [] select(…)}<br />INSERT INTO managers(id, name, salary, hiredate)<br />SELECT empno, ename, sal, hiredate FROM emp WHERE job = ‘MANAGER’<br />Modificación de registros:<br />{UPDATE tabla SET column = value where…}<br />UPDATE emp SET deptno = 20 WHERE empno = 7782;<br />UPDATE emp SET (job,deptno) = (SELECT job, deptno from…)<br />Eliminar registros:<br />{DELETE FROM tabla WHERE condición}<br />DELETE FROM department WHERE dname = ‘DEVELOPMENT’<br />DELETE FROM employee WHERE deptno = (SELECT deptno from…)<br />Control transacciones:<br />COMMIT: Confirmar cambios realizados en la base de datos<br />ROLLBACK: Deshacer todos los cambios realizados en la base de datos<br />SAVEPOINT nombre: Crear punto de guardado<br />ROLLBACK TO nombre: Volver a punto de guardado<br />Creación de tablas:<br />{CREATE TABLE tabla (columna tipo(longitud), columna..)}<br />Tipos: NUMBER, VARCHAR2, DATE, NUMBER(dcimal,digit)<br />CREATE TABLE dept (deptno NUMBER(2) NOT NULL, name VARCHAR2(50));<br />Crear tabla a partir de otra (por subconsulta):<br />{CREATE TABLE tabla AS SELECT…}<br />CREATE TABLE departamento AS SELECT empno, ename “Nombre Departamento”, sal FROM dept;<br />Modificar tabla:<br />-Añadir columnas:<br />{ALTER TABLE tabla ADD (columna1 tipo(), columna2 tipo()…);}<br />ALTER TABLE dept add (job VARCHAR2(9));<br />-Modificar columnas existentes:<br />{ALTER TABLE tabla MODIFY (col1 tipo() [DEFAULT expr]);}<br />ALTER TABLE empl modify (name VARCHAR2(50) DEFAULT ‘Nom’);<br />Eliminar columna:<br />{ALTER TABLE tabla DROP COLUMN columna;}<br />ALTER TABLE dept DROP COLUMN dname;<br />Notificar columna como no usada:<br />{ALTER TABLE tabla SET UNUSED (columna)}<br />ALTER TABLE dept SET UNUSED (loc);<br />Eliminar columnas marcadas como no usadas:<br />{ALTER TABLE tabla DROP UNUSED COLUMNS;}<br />ALTER TABLE dept DROP UNUSED COLUMNS;<br />Eliminar tabla:<br />{DROP TABLE table;}<br />DROP TABLE dept;<br />Modificar nombre de objeto (tabla, vista…):<br />{RENAME tabla/vista… TO tabla/vista…}<br />RENAME dept TO departmento;<br />Eliminar todos los registros (TRUNCAR):<br />{TRUNCATE TABLE tabla;}<br />TRUNCATE TABLE dept;<br />Añadir comentarios a una tabla:<br />{COMMENT ON TABLE/COLUMN table/columna IS ‘comentario’;}<br />COMMENT ON TABLE emp IS ‘Employee Infromation’<br />COMMENT ON COLUMN TABLE.column IS ‘comentario’<br />COMMENT ON COLUMN emp.ename IS ‘Nombre trabajador’<br />DEFINICIÓN DE CONSTRAINTS (RESTRICCIONES):<br />{CREATE TABLE tabla<br />(columna tipo() [default expr] CONSTRAINT [nombre] tipo (columna));}<br />-Nivel de tabla:<br />CREATE TABLE emp(<br />(empno NUMBER(4),<br />ename VARCAHR2(10),<br />deptno NUMBER(2),<br />CONSTRAINT emp_empno_pk<br />PRIMARY KEY (empono));<br />- Nivel de columna:<br />CREATE TABLE emp(<br />(empno NUMBER(4) [CONSTRAINT emp_empno_nn] NOT NULL,<br />ename VARCAHR2(10),<br />deptno NUMBER(2) NOT NULL);<br />Constraints (tipos y situación):<br />NOT NULL (Nivel de columna)<br />CREATE TABLE emp(<br />(empno NUMBER(4) [CONSTRAINT emp_empno_nn] NOT NULL,<br />ename VARCAHR2(10),<br />deptno NUMBER(2) NOT NULL);<br />UNIQUE (Columna o tabla)<br />CREATE TABLE dept<br />(dname VARCHAR(14),<br />…<br />CONSTRAINT dept_dname_uk UNIQUE(dname));<br />PRIMARY KEY (Columna o tabla) -> PK lleva implícito UNIQUE<br />CREATE TABLE dept<br />(deptno NUMBER(2),<br />…<br />CONSTRAINT dept_deptno_pk PRIMERY KEY (deptno));<br />FOREIGN KEY (Columna o tabla)<br />CREATE TABLE emp<br />(ename VARCAHR2(10) NOT NULL,<br />deptno NUMBER(7,2) NOT NULL,<br />…<br />CONSTRAINT emp_deptno_fk FOREIGN KEY (deptno)<br />REFERENCES dept (deptno));<br />CHECK -Condicion- (Columna o tabla)<br />CREATE TABLE emp<br />(deptno NUMBER(2),<br />CONSTRAINT emp_deptno_ck CHECK (deptno between 10 and 99));<br />Añadir CONSTRAINT (restricción) a tabla existente:<br />{ALTER TABLE tabla add/modify [CONSTRAINT CONSTRAINT] type (col);}<br />Podemos añadir restricción NOT NULL con MODIFY<br />Podemos añadir o borrar CONSTRAINTs pero NO modificar. Para modificar<br />eliminar y volver a crear<br />ALTER TABLE emp add CONSTRAINT emp_mgr_fk<br />FOREING KEY(mgr) REFERENCES emp(empno);<br />Eliminación de restricciones (CONSTRAINTs):<br />{ALTER TABLE tabla DROP CONSTRAINT CONSTRAINT;}<br />ALTER TABLE emp DROP CONSTRAINT emp_mgr_fk;<br />Borrar CONSTRAINT PK y (FK de tabla dependiente de otra usando-CASCADE-)<br />{ALTER TABLE tabla DROP primary key CASCADE;}<br />ALTER TABLE dept DROP primary key cascade;<br />Eliminación de restricciones en cascada: Es usado para eliminar PK u otras con dependencias<br />{ALTER TABLE tabla DROP (constraint) cascade CONSTRAINT;}<br />ALTER TABLE dept DROP (deptno) cascade CONSTRAINTS;<br />Desactivar constraint:<br />{ALTER TABLE tabla DISABLE CONSTRAINT constraint [CASCADE];}<br />ALTER TABLE emp disable CONSTRAINT emp_empno_pk CASCADE;<br />Activar constraints:<br />{ALTER TABLE tabla ENABLE CONSTRAINT CONSTRAINT;}<br />ALTER TABLE emp ENABLE CONSTRAINT emp_empno_pk;<br />Creación de vistas:<br />{CREATE VIEW vista AS SELECT…}<br />[with check option CONSTRAINT CONSTRAINT]<br />[with read only]<br />CREATE view empvu10 as select empno “nº empleado”,<br />job from emp where deptno=10;<br />Modificación de vistas:<br />{CREATE OR REPLACE VIEW vista [(colname, colname, colname)] as select…}<br />Nota: Los alias de columna se puede poner en SELECT o en CREATE<br />CREATE or replace view empvu10<br />(employee_number, employee_name, job_title)<br />as select empno, ename, job from emp where deptno = 10;<br />Creación vistas complejas con funciones de grupo para ver 2 tablas:<br />{CREATE view dept_sum_vu (name, minsal, maxsal, avgsal)<br />as select d.dname, MIN(e.sal), MAX(e.sal), AVG(e.sal)<br />from emp e, dept d where e.deptno = d.deptno group by d.dname}<br />With check option:<br />CREATE or replace view vista as select…<br />with check option CONSTRAINT CONSTRAINT<br />With read only:<br />CREATE or replace view vista as select…<br />with read only;<br />Nota: En este caso no podemos quitar, insertar o modificar la vista<br />Eliminación de vistas:<br />{DROP view vista;}<br />Creación de vistas inline:<br />{SELECT … FROM tabla a(SELECT…) b where…}<br />SELECT tablaA.ename, tablaA.sal, tablaA.deptno, tablaB.maxsal<br />from emp tablaA, (select deptno, max(sal) from emp group by deptno) tablaB<br />where tablaA.deptno = tablaB.deptno and tablaA.sal < tablaB.maxsal<br />Obtener los N primeros/últimos datos de una tabla (Top-N):<br />{SELECT ROWNUM [as alias] FROM (SELECT… FROM tabla WHERE… ORDER BY Top-NCol)<br />where ROWNUM <= N}<br />SELECT ROWNUM as RANKING, ename, sal<br />from (select ename, sal from emp order by sal desc)<br />where rownum <=3;<br />Creación de secuencias:<br />CREATE/ALTER sequence secuencia<br />increment by n<br />start with n (no en ALTER)<br />maxvalue n<br />minvalue n<br />cycle (continua generando despues de max)<br />cache n (memoria oracle)<br />Insertar valores de una secuencia en una tabla:<br />INSERT INTO tabla (valorActual, valorSiguiente)<br />VALUES (secuencia.currval, secuencia.nextval)<br />Eliminar secuencias:<br />{DROP sequence secuencia;}<br />Crear índices:<br />{CREATE index indice on tabla (col, col+10, upper(ename)…)}<br />Eliminar índices:<br />{DROP index índice}<br />Crear sinonimos:<br />{CREATE [public] SYNONYM sinonimo FOR objecto}<br />CREATE public synonym dept for sis228.dept<br />Eliminar sinónimos:<br />{DROP SYNONYM sinónimo}<br />En esta última entrega de comandos Oracle, vamos a aprender a crear usuarios para hacer uso de nuestra base de datos. Para ello, vamos a conocer los diferentes permisos concebibles y a saber cómo asignárselos. Además, aprenderemos a crear diferentes roles que nos van a facilitar la asignación de permisos en el caso de tener diferentes usuarios del mismo nivel.<br /> <br />Crear usuarios de Oracle:    {CREATE USER nombre IDENTIFIED BY contraseña DEFAULT TABLESPACE nombreTableSpace TEMPORARY TABLESPACE nombreTemp}<br />    CREATE USER sis2dba<br />    IDENTIFIED BY sis2dbapass / EXTERNALLY<br />    DEFAULT TABLESPACE sis2tabla<br />    TEMPORARY TALESPACE sis2temp<br />    QUOTA INT [K|M] UNLIMITED ON NOMBRETABLESPACE<br />    PASSWORD EXPIRE<br />    ACCOUNT [LOCK | UNLOCK]<br /> <br />Modificar nombre de usuarios Oracle:<br />    {ALTER USER NombreUsuario Modificación;}<br />    ALTER USER sis2dba QUOTA UNLIMITED ON sis2tabla;<br /> <br />Borrar usuarios:<br />    {DROP USER nombre CASCADE}<br />    Nota: CASCADE nos indica que vamos a borrar también TOdos sus objeTOs<br /> <br />Permitir conexión y crear tablas:<br />    {GRANT CONNECT, RESOURCE TO nombre}<br />    Nota: Para que un usuario de Oracle pueda crear objeTOs NECESITA el permiso RESOURCE<br /> <br />Conceder permisos de DBA:<br />    {GRANT DBA TO NombreUsuario}<br /> <br />PERMISOS:<br />Permiso Tabla Vista Secuencia ProcedimienTOalterX  X  deleteX X   execute   X insertX X   SELECTX X X  updateX X   <br /> <br />Conceder permisos:<br />    {GRANT permiso1, permiso 2… ON objeTO TO nombreUsuario [ROLE]}<br />    GRANT SELECT ON emp TO sis226<br />    GRANT SELECT, INSERT, UPDATE ON emp TO public<br />    GRANT permiso1, permiso2… ON objeTO TO nombreUsuario WITH GRANT OPTION<br />    Nota: GRANT OPTION nos permite conceder permisos a otros usuarios<br /> <br />Quitar permiso:<br />    {REVOKE permiso1,… ON objeTO TO nombreUsuario}<br />    REVOKE permiso1 ON SELECT TO sis226<br />    Nota: Se quita los permisos a sis226 y a TOdos a los que sis226 he dado permisos<br /> <br />Conceder permisos de Sistema:<br />    {GRANT permiso1, permiso2… ANY TABLE TO NombreUsuario}<br />    GRANT CREATE, SELECT ANY TABLE TO sis226<br />    GRANT permiso1, permiso2… ANY TABLE TO NombreUsuario WITH ADMIN OPTION<br />    Nota: WITH ADMIN OPTION permite dar permisos de sistema a otros usuarios<br /> <br />Quitar permiso de Sistema:<br />    {REVOKE permiso1, permiso2… ANY TABLE FROM NombreUsuario}<br />    REVOKE SELECT ANY TABLE FROM sis226<br />    Nota: Quita los permisos a sis226 pero NO a los que sis226 ha dado<br /> <br />ROLES:<br />Un ROLE es una agrupación de permisos con lo cual podemos juntar ciertos permisos en un rol y dárselo a un usuario o grupo de usuarios.<br />Creación de ROLEs:<br />    {CREATE ROLE nombreRol [IDENTIFIED BY Contraseña];}<br />    CREATE ROLE scott_rol;<br /> <br />Borrar ROLEs:<br />    {DROP ROLE nombreRol;}<br /> <br />Dar permisos a ROLEs:<br />    GRANT SELECT, UPDATE ON scott.emp TO scott_rol;<br />    GRANT SELECT, INSERT, DELETE, UPDATE ON scott.dept TO scott_rol;<br />    GRANT SELECT ON scott.salgrade TO scott_rol;<br />    GRANT SELECT ON scott.bonus TO scott_rol;<br /> <br />Conceder rol a usuario:<br />    {GRANT role TO usuario}<br />    GRANT scott_rol TO sis226<br /> <br />Modificar ROLEs:<br />    {GRANT Permiso1,… ON nombreUsuario TO ROLE;}<br />    GRANT SELECT on scott.dept TO scott_rol ;<br />    Nota: SOLO modifica la linea del scott.dept<br />
Command oracle
Command oracle
Command oracle
Command oracle
Command oracle
Command oracle
Command oracle
Command oracle
Command oracle

Más contenido relacionado

La actualidad más candente

Sql basico parte_i_
Sql basico parte_i_Sql basico parte_i_
Sql basico parte_i_Luis Jherry
 
Utilizando DDL SQL oracle Z051 Cap 11
Utilizando DDL SQL oracle Z051 Cap 11Utilizando DDL SQL oracle Z051 Cap 11
Utilizando DDL SQL oracle Z051 Cap 11Alexander Calderón
 
Bases de Datos Cap VI:SQL: SQL-Definición de datos
Bases de Datos Cap VI:SQL: SQL-Definición de datosBases de Datos Cap VI:SQL: SQL-Definición de datos
Bases de Datos Cap VI:SQL: SQL-Definición de datosVideoconferencias UTPL
 
Sql Consultas MáS Complejas
Sql Consultas MáS ComplejasSql Consultas MáS Complejas
Sql Consultas MáS Complejasalexmerono
 
Comandos utilizados en sql
Comandos utilizados en sqlComandos utilizados en sql
Comandos utilizados en sqlByron Eras
 
Sql basico parte_i_
Sql basico parte_i_Sql basico parte_i_
Sql basico parte_i_Luis Jherry
 
Consultas sql 2014
Consultas sql 2014Consultas sql 2014
Consultas sql 2014Henry Cambal
 
Objetos de Esquema de Oracle Database Z052-09
Objetos de Esquema de Oracle Database Z052-09Objetos de Esquema de Oracle Database Z052-09
Objetos de Esquema de Oracle Database Z052-09Alexander Calderón
 
Unidad v integridad relacional
Unidad v  integridad relacionalUnidad v  integridad relacional
Unidad v integridad relacionalOrlando Verdugo
 
Combinacion de consultas y consultas multitablas
Combinacion de consultas y consultas multitablasCombinacion de consultas y consultas multitablas
Combinacion de consultas y consultas multitablasclaudia contreras
 
Triggers
TriggersTriggers
Triggersbdatos
 
Cuadro de sentencias con descripcion y ejemplo
Cuadro de sentencias con descripcion y ejemploCuadro de sentencias con descripcion y ejemplo
Cuadro de sentencias con descripcion y ejemploWilliam Sánchez
 
Proyecto de Base de Datos (Parte II)
Proyecto de Base de Datos (Parte II)Proyecto de Base de Datos (Parte II)
Proyecto de Base de Datos (Parte II)Anna Vega
 
Creacion de bases de datos en SQL Server
Creacion de bases de datos en SQL ServerCreacion de bases de datos en SQL Server
Creacion de bases de datos en SQL ServerRayoMonster
 

La actualidad más candente (20)

Sql basico parte_i_
Sql basico parte_i_Sql basico parte_i_
Sql basico parte_i_
 
Bdii 09 ddl_new
Bdii 09 ddl_newBdii 09 ddl_new
Bdii 09 ddl_new
 
Utilizando DDL SQL oracle Z051 Cap 11
Utilizando DDL SQL oracle Z051 Cap 11Utilizando DDL SQL oracle Z051 Cap 11
Utilizando DDL SQL oracle Z051 Cap 11
 
Bases de Datos Cap VI:SQL: SQL-Definición de datos
Bases de Datos Cap VI:SQL: SQL-Definición de datosBases de Datos Cap VI:SQL: SQL-Definición de datos
Bases de Datos Cap VI:SQL: SQL-Definición de datos
 
Sql Consultas MáS Complejas
Sql Consultas MáS ComplejasSql Consultas MáS Complejas
Sql Consultas MáS Complejas
 
Comandos utilizados en sql
Comandos utilizados en sqlComandos utilizados en sql
Comandos utilizados en sql
 
Sql basico parte_i_
Sql basico parte_i_Sql basico parte_i_
Sql basico parte_i_
 
Consultas en sql básico
Consultas en sql básicoConsultas en sql básico
Consultas en sql básico
 
Consultas sql 2014
Consultas sql 2014Consultas sql 2014
Consultas sql 2014
 
Objetos de Esquema de Oracle Database Z052-09
Objetos de Esquema de Oracle Database Z052-09Objetos de Esquema de Oracle Database Z052-09
Objetos de Esquema de Oracle Database Z052-09
 
Unidad v integridad relacional
Unidad v  integridad relacionalUnidad v  integridad relacional
Unidad v integridad relacional
 
Fundamentos de SELECT SQL
Fundamentos de SELECT SQLFundamentos de SELECT SQL
Fundamentos de SELECT SQL
 
Combinacion de consultas y consultas multitablas
Combinacion de consultas y consultas multitablasCombinacion de consultas y consultas multitablas
Combinacion de consultas y consultas multitablas
 
Triggers
TriggersTriggers
Triggers
 
Attachment
AttachmentAttachment
Attachment
 
SENTENCIAS DE SQL SERVER
SENTENCIAS DE SQL SERVERSENTENCIAS DE SQL SERVER
SENTENCIAS DE SQL SERVER
 
Cuadro de sentencias con descripcion y ejemplo
Cuadro de sentencias con descripcion y ejemploCuadro de sentencias con descripcion y ejemplo
Cuadro de sentencias con descripcion y ejemplo
 
Proyecto de Base de Datos (Parte II)
Proyecto de Base de Datos (Parte II)Proyecto de Base de Datos (Parte II)
Proyecto de Base de Datos (Parte II)
 
Creacion de bases de datos en SQL Server
Creacion de bases de datos en SQL ServerCreacion de bases de datos en SQL Server
Creacion de bases de datos en SQL Server
 
Comandosql2
Comandosql2Comandosql2
Comandosql2
 

Similar a Command oracle

CreacióN De Objetos En MySQL
CreacióN De Objetos En MySQLCreacióN De Objetos En MySQL
CreacióN De Objetos En MySQLalexmerono
 
Sentencias Sql
Sentencias SqlSentencias Sql
Sentencias Sqlfer951
 
Consultas sql 2014
Consultas sql 2014Consultas sql 2014
Consultas sql 2014Henry Cambal
 
Actualización de bases de datos en MySQL
Actualización de bases de datos en MySQLActualización de bases de datos en MySQL
Actualización de bases de datos en MySQLalexmerono
 
Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)José Toro
 
Comandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-lizComandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-lizAdriana Escobar
 
Comandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-lizComandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-lizBolivar Castillo
 
Unidad 6 Lenguaje Sql 2
Unidad 6 Lenguaje Sql 2Unidad 6 Lenguaje Sql 2
Unidad 6 Lenguaje Sql 2Sergio Sanchez
 
Sql desde cero
Sql desde ceroSql desde cero
Sql desde ceroshochino
 
05 Sql Profundizacion
05 Sql Profundizacion05 Sql Profundizacion
05 Sql ProfundizacionKudos S.A.S
 
EJERCICIO SENTENCIAS SQL_Completo.pdf
EJERCICIO SENTENCIAS SQL_Completo.pdfEJERCICIO SENTENCIAS SQL_Completo.pdf
EJERCICIO SENTENCIAS SQL_Completo.pdfBLANCAGESTRADARENTER
 
Unidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sqlUnidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sqlTitiushko Jazz
 
Unidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sqlUnidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sqlTitiushko Jazz
 

Similar a Command oracle (20)

Sql 2010
Sql 2010Sql 2010
Sql 2010
 
CreacióN De Objetos En MySQL
CreacióN De Objetos En MySQLCreacióN De Objetos En MySQL
CreacióN De Objetos En MySQL
 
Comandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-lizComandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-liz
 
Sql ii
Sql iiSql ii
Sql ii
 
Sentencias Sql
Sentencias SqlSentencias Sql
Sentencias Sql
 
Consultas sql 2014
Consultas sql 2014Consultas sql 2014
Consultas sql 2014
 
Actualización de bases de datos en MySQL
Actualización de bases de datos en MySQLActualización de bases de datos en MySQL
Actualización de bases de datos en MySQL
 
Resumen sql-oracle
Resumen sql-oracleResumen sql-oracle
Resumen sql-oracle
 
Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)
 
SQL.docx
SQL.docxSQL.docx
SQL.docx
 
Comandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-lizComandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-liz
 
Comandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-lizComandos del-ddl-y-del-dml-liz
Comandos del-ddl-y-del-dml-liz
 
Unidad 6 Lenguaje Sql 2
Unidad 6 Lenguaje Sql 2Unidad 6 Lenguaje Sql 2
Unidad 6 Lenguaje Sql 2
 
Sql desde cero
Sql desde ceroSql desde cero
Sql desde cero
 
05 Sql Profundizacion
05 Sql Profundizacion05 Sql Profundizacion
05 Sql Profundizacion
 
Introduccion al sql query
Introduccion al sql queryIntroduccion al sql query
Introduccion al sql query
 
Seleccion de datos_sql_2005
Seleccion de datos_sql_2005Seleccion de datos_sql_2005
Seleccion de datos_sql_2005
 
EJERCICIO SENTENCIAS SQL_Completo.pdf
EJERCICIO SENTENCIAS SQL_Completo.pdfEJERCICIO SENTENCIAS SQL_Completo.pdf
EJERCICIO SENTENCIAS SQL_Completo.pdf
 
Unidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sqlUnidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sql
 
Unidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sqlUnidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sql
 

Último

Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesEdomar AR
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzzAlexandergo5
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 

Último (20)

Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, Aplicaciones
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzz
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 

Command oracle

  • 1. ¿Conoces todos los comandos SQL de Oracle para hacer tus consultas? En este manual vamos a aprender a usar los más comunes. Entre ellos conoceremos los diferentes operadores que podemos utilizar, como eliminar filas duplicadas en nuestras consultas, funciones para trabajar con caracteres, fechas, funciones numéricas, de grupo, etc.<br />En posteriores entregas aprenderemos a crear tablas, usuarios, conceder permisos, modificar y eliminar columnas, etc.<br />Introducción a consultas<br />Consultas simples:<br />SELECT campo FROM tabla;<br />Consulta simple con condición:<br />SELECT campo1, campo2, FROM tablaDeArticulos WHERE precio>10;<br />Consultas con subconsultas:<br />SELECT precio FROM tablaDeArticulos WHERE referencia = (SELECT referencia FROM tablaDeReferencias WHERE nombreArticulo =’ patinete ‘)<br />Operadores: +, -, *, /<br />12*(sal+100)<br />Alias: Renombra encabezado, pone nombres a las columnas resultantes de una consulta<br />{SELECT ename “Nombre trabajador”, sal “Salario” FROM trabajadores;}<br />Concatenación: “||” Concatena columnas o cadenas.<br />{SELECT ename||job “Empleados”;}<br />{SELECT ename ||’ es un ‘|| job “Detalles”;}<br />Filas Duplicadas: “distinct” no muestra duplicadas, despues de SELECT<br />{SELECT distinct deptno, job;}<br />Visualizar estructura completa de una tabla: desc<br />{desc dept;}<br />Ficheros:<br />sav[e] guarda consulta<br />{sav archiv.sql}<br />@ ejecuta consultas en fichero / sta[rt] ejecuta consultas en fichero<br />{@ arciv.sql}<br />ed[it] permite editar fichero<br />{ed archiv.sql}<br />Operador WHERE: Restringe la consulta a las filas que cumple una condición<br />FROM emp WHERE job=’CLERK’ (CASE SENSITIVE!!)<br />Operadores comparación: =, >, >=, <, <=, <><br />{SELECT campo FROM table WHERE salario>=200;}<br />{…WHERE hiredate < ’01-01-95′;}<br />{…WHERE hiredate > ’01-JAN-95′;}<br />OPERADORES COMPARACIÓN 2: BETWEEN..AND.., IN(list), LIKE, IS NULL<br />BETWEEN:<br />{… WHERE salario BETWEEN 100 AND 150;}<br />IN:<br />{mgr IN (7902, 7566);} {WHERE ename IN (‘FORD , ‘ALLEN’)}<br />LIKE: Comodin “%” representa 0 o N caracteres. Comodin “_” representa exactamente 1 caracter.<br />{…WHERE ename LIKE ‘_S%’}<br />ESCAPE: Interpreta “_” literal.<br />{…WHERE ename LIKE ‘%%’ ESCAPE ‘;}<br />IS NULL: Si un valor es nulo . Atencion, NULL! =0!!<br />{…WHERE mgr IS NULL;}<br />Operadores Lógicos: AND, OR, NOT<br />{…WHERE job NOT IN (‘CLERK’, ‘MANAGER’); job NOT LIKE ‘%A_’;}<br />Ordenar: “ORDER BY (columna/alias)”. Ordenar de forma ascendente o descendente: “ORDER BY (columna/alias) [ASC/DESC]“<br />ORDER BY hiredate desc; ORDER BY deptno, sal desc;<br />FUNCIONES DE CARACTERES:<br />LOWER/UPPER: Convierte a minusculas/mayúsculas<br />lower(JOB) -> job<br />ename=upper(‘blake’);<br />INITCAP: Primera letra mayusculas resto minusculas<br />Initcap(JOB) -> Job<br />CONCAT: Concatena (como “|”)<br />SUBSTR: Devuelve los caracteres seleccionados de una cadena de la cadena<br />LENGTH: Devuelve número caracteres<br />INSTR: Devuelve posición del caracter en la cadena<br />LPAD: Rellena cadena por la derecha con el car seleccionado<br />TRIM: Elimina caracteres del principio o del final<br />FUNCIONES NUMÉRICAS:<br />Round: Redondea al decimal especificado<br />round(45.926, 2) -> 45.93<br />Trunc: Trunca en le decimal especificado<br />trunc(45.926, 2) -> 45.92<br />Mod: Devuelve el resto de la división<br />Mod(1600, 300) -> 100<br />Mod(sal, comm) -> Calcula el “RATIO”<br />NVL: Convierte un nulo a un valor<br />nvl(comm, 0), nvl(job, ‘No Job’), nvl(hiredate,’01-JAN-97′)<br />{SELECT ename, nvl(to_car(mgr), ‘No Manager’) FROM emp;}<br />DECODE: Función de CASE<br />SELECT job, sal,<br />decode(job, ‘ANALYST’, sal*1.1, ‘CLERK’, sal*2, sal)<br />FROM emp;<br />Fechas:<br />sysdate: devuelve fecha y hora actual<br />num + fecha = fecha<br />fecha – num = fecha<br />fecha – fecha = dias<br />num/24 + fecha = agrega horas<br />{SELECT (sysdate-hiredate)/7 SEMANAS}<br />Conversión:<br />to_char: to_car(date, ‘fmt’), (hiredate, ‘fmDD’)<br />fm: elimina espacios en blanco<br />to_number: to_number(char)<br />to_date: Guarda datos en formato de fecha<br />to_date(char[, 'fmt'])<br />to_date(’07/05/1984′)<br />Elementos:<br />YYYY: Año numérico<br />YEAR: Año letras<br />MM: Mes numérico<br />MONTH: Mes letras<br />DY: Abreviatura 3 letras día<br />DAY: Nombre completo<br />Hora: HH24:MI:SS AM -> 15:45:32 PM<br />Añadir cars: DD “of” MONT -> 12 of October<br />Nº dia en letras: ddspth -> fourteenth<br />Funciones de grupo:<br />AVG: Media<br />COUNT: Cantidad de filas<br />MAX: Valor maximo<br />MIN: Valor mimimo ignorando nulos<br />STDDEV: Desviación ignorando nulos<br />SUM: Suma de valores ignorando nulos<br />VARIANCE: Varianza ignorando nulos<br />NOTA: Se pueden utilizar sin aparecer en SELECT<br />SELECT deptno FROM emp GROUP BY deptno HAVING MAX(sal)>1<br />En esta segunda entrega de Comandos SQL de Oracle vamos a aprender a crear tablas, modificarlas, añadir restricciones (constraints) y comentarios y modificar sus columnas y tipos. Además aprenderemos a crear secuencias las cuales nos ayudaran a insertar valores de forma automática, crearemos y modificaremos claves primerias (PK) y claves foráneas (FK) para poder enlazar valores de diferentes tablas. <br />Insertar registros en una tabla: Caracteres y fechas entre comillas simples<br />{INSERT INTO tabla [] VALUES []}<br />INSERT INTO tab (dnum, depnam, hiredate, usr_actual)<br />VALUES (50, ‘DEVELOPMENT’, SYSDATE, USERID);<br />Insertar registros nulos:<br />INSERT INTO dept VALUES (70, ‘FINANCE’, NULL);<br />Creación de Scripts: Los scripts nos permiten crear sencillas aplicaciones para añadir datos de forma sencilla a nuestra base de datos.<br />{ACCEPT variable PROMPT ‘texto a mostrar’ INSERT INTO tabla [] VALUES[&variable]}<br />ACCEPT id PROMPT ‘Introduce el ID de usuario:’<br />ACCEPT last_name prompt ‘Introduce apellido del usuario:’<br />ACCEPT first_name prompt ‘Introduce nombre del usuario:’<br />INSERT INTO my_employee (id, LAST_NAME, FIRST_NAME, USERID)<br />VALUES (&id, ‘&last_name’, ‘&first_name’, substr(‘&first_name’,1,1) || substr(‘$last_name’,1,7));<br />Insertar registros de otra tabla:<br />{INSERT INTO tabla [] select(…)}<br />INSERT INTO managers(id, name, salary, hiredate)<br />SELECT empno, ename, sal, hiredate FROM emp WHERE job = ‘MANAGER’<br />Modificación de registros:<br />{UPDATE tabla SET column = value where…}<br />UPDATE emp SET deptno = 20 WHERE empno = 7782;<br />UPDATE emp SET (job,deptno) = (SELECT job, deptno from…)<br />Eliminar registros:<br />{DELETE FROM tabla WHERE condición}<br />DELETE FROM department WHERE dname = ‘DEVELOPMENT’<br />DELETE FROM employee WHERE deptno = (SELECT deptno from…)<br />Control transacciones:<br />COMMIT: Confirmar cambios realizados en la base de datos<br />ROLLBACK: Deshacer todos los cambios realizados en la base de datos<br />SAVEPOINT nombre: Crear punto de guardado<br />ROLLBACK TO nombre: Volver a punto de guardado<br />Creación de tablas:<br />{CREATE TABLE tabla (columna tipo(longitud), columna..)}<br />Tipos: NUMBER, VARCHAR2, DATE, NUMBER(dcimal,digit)<br />CREATE TABLE dept (deptno NUMBER(2) NOT NULL, name VARCHAR2(50));<br />Crear tabla a partir de otra (por subconsulta):<br />{CREATE TABLE tabla AS SELECT…}<br />CREATE TABLE departamento AS SELECT empno, ename “Nombre Departamento”, sal FROM dept;<br />Modificar tabla:<br />-Añadir columnas:<br />{ALTER TABLE tabla ADD (columna1 tipo(), columna2 tipo()…);}<br />ALTER TABLE dept add (job VARCHAR2(9));<br />-Modificar columnas existentes:<br />{ALTER TABLE tabla MODIFY (col1 tipo() [DEFAULT expr]);}<br />ALTER TABLE empl modify (name VARCHAR2(50) DEFAULT ‘Nom’);<br />Eliminar columna:<br />{ALTER TABLE tabla DROP COLUMN columna;}<br />ALTER TABLE dept DROP COLUMN dname;<br />Notificar columna como no usada:<br />{ALTER TABLE tabla SET UNUSED (columna)}<br />ALTER TABLE dept SET UNUSED (loc);<br />Eliminar columnas marcadas como no usadas:<br />{ALTER TABLE tabla DROP UNUSED COLUMNS;}<br />ALTER TABLE dept DROP UNUSED COLUMNS;<br />Eliminar tabla:<br />{DROP TABLE table;}<br />DROP TABLE dept;<br />Modificar nombre de objeto (tabla, vista…):<br />{RENAME tabla/vista… TO tabla/vista…}<br />RENAME dept TO departmento;<br />Eliminar todos los registros (TRUNCAR):<br />{TRUNCATE TABLE tabla;}<br />TRUNCATE TABLE dept;<br />Añadir comentarios a una tabla:<br />{COMMENT ON TABLE/COLUMN table/columna IS ‘comentario’;}<br />COMMENT ON TABLE emp IS ‘Employee Infromation’<br />COMMENT ON COLUMN TABLE.column IS ‘comentario’<br />COMMENT ON COLUMN emp.ename IS ‘Nombre trabajador’<br />DEFINICIÓN DE CONSTRAINTS (RESTRICCIONES):<br />{CREATE TABLE tabla<br />(columna tipo() [default expr] CONSTRAINT [nombre] tipo (columna));}<br />-Nivel de tabla:<br />CREATE TABLE emp(<br />(empno NUMBER(4),<br />ename VARCAHR2(10),<br />deptno NUMBER(2),<br />CONSTRAINT emp_empno_pk<br />PRIMARY KEY (empono));<br />- Nivel de columna:<br />CREATE TABLE emp(<br />(empno NUMBER(4) [CONSTRAINT emp_empno_nn] NOT NULL,<br />ename VARCAHR2(10),<br />deptno NUMBER(2) NOT NULL);<br />Constraints (tipos y situación):<br />NOT NULL (Nivel de columna)<br />CREATE TABLE emp(<br />(empno NUMBER(4) [CONSTRAINT emp_empno_nn] NOT NULL,<br />ename VARCAHR2(10),<br />deptno NUMBER(2) NOT NULL);<br />UNIQUE (Columna o tabla)<br />CREATE TABLE dept<br />(dname VARCHAR(14),<br />…<br />CONSTRAINT dept_dname_uk UNIQUE(dname));<br />PRIMARY KEY (Columna o tabla) -> PK lleva implícito UNIQUE<br />CREATE TABLE dept<br />(deptno NUMBER(2),<br />…<br />CONSTRAINT dept_deptno_pk PRIMERY KEY (deptno));<br />FOREIGN KEY (Columna o tabla)<br />CREATE TABLE emp<br />(ename VARCAHR2(10) NOT NULL,<br />deptno NUMBER(7,2) NOT NULL,<br />…<br />CONSTRAINT emp_deptno_fk FOREIGN KEY (deptno)<br />REFERENCES dept (deptno));<br />CHECK -Condicion- (Columna o tabla)<br />CREATE TABLE emp<br />(deptno NUMBER(2),<br />CONSTRAINT emp_deptno_ck CHECK (deptno between 10 and 99));<br />Añadir CONSTRAINT (restricción) a tabla existente:<br />{ALTER TABLE tabla add/modify [CONSTRAINT CONSTRAINT] type (col);}<br />Podemos añadir restricción NOT NULL con MODIFY<br />Podemos añadir o borrar CONSTRAINTs pero NO modificar. Para modificar<br />eliminar y volver a crear<br />ALTER TABLE emp add CONSTRAINT emp_mgr_fk<br />FOREING KEY(mgr) REFERENCES emp(empno);<br />Eliminación de restricciones (CONSTRAINTs):<br />{ALTER TABLE tabla DROP CONSTRAINT CONSTRAINT;}<br />ALTER TABLE emp DROP CONSTRAINT emp_mgr_fk;<br />Borrar CONSTRAINT PK y (FK de tabla dependiente de otra usando-CASCADE-)<br />{ALTER TABLE tabla DROP primary key CASCADE;}<br />ALTER TABLE dept DROP primary key cascade;<br />Eliminación de restricciones en cascada: Es usado para eliminar PK u otras con dependencias<br />{ALTER TABLE tabla DROP (constraint) cascade CONSTRAINT;}<br />ALTER TABLE dept DROP (deptno) cascade CONSTRAINTS;<br />Desactivar constraint:<br />{ALTER TABLE tabla DISABLE CONSTRAINT constraint [CASCADE];}<br />ALTER TABLE emp disable CONSTRAINT emp_empno_pk CASCADE;<br />Activar constraints:<br />{ALTER TABLE tabla ENABLE CONSTRAINT CONSTRAINT;}<br />ALTER TABLE emp ENABLE CONSTRAINT emp_empno_pk;<br />Creación de vistas:<br />{CREATE VIEW vista AS SELECT…}<br />[with check option CONSTRAINT CONSTRAINT]<br />[with read only]<br />CREATE view empvu10 as select empno “nº empleado”,<br />job from emp where deptno=10;<br />Modificación de vistas:<br />{CREATE OR REPLACE VIEW vista [(colname, colname, colname)] as select…}<br />Nota: Los alias de columna se puede poner en SELECT o en CREATE<br />CREATE or replace view empvu10<br />(employee_number, employee_name, job_title)<br />as select empno, ename, job from emp where deptno = 10;<br />Creación vistas complejas con funciones de grupo para ver 2 tablas:<br />{CREATE view dept_sum_vu (name, minsal, maxsal, avgsal)<br />as select d.dname, MIN(e.sal), MAX(e.sal), AVG(e.sal)<br />from emp e, dept d where e.deptno = d.deptno group by d.dname}<br />With check option:<br />CREATE or replace view vista as select…<br />with check option CONSTRAINT CONSTRAINT<br />With read only:<br />CREATE or replace view vista as select…<br />with read only;<br />Nota: En este caso no podemos quitar, insertar o modificar la vista<br />Eliminación de vistas:<br />{DROP view vista;}<br />Creación de vistas inline:<br />{SELECT … FROM tabla a(SELECT…) b where…}<br />SELECT tablaA.ename, tablaA.sal, tablaA.deptno, tablaB.maxsal<br />from emp tablaA, (select deptno, max(sal) from emp group by deptno) tablaB<br />where tablaA.deptno = tablaB.deptno and tablaA.sal < tablaB.maxsal<br />Obtener los N primeros/últimos datos de una tabla (Top-N):<br />{SELECT ROWNUM [as alias] FROM (SELECT… FROM tabla WHERE… ORDER BY Top-NCol)<br />where ROWNUM <= N}<br />SELECT ROWNUM as RANKING, ename, sal<br />from (select ename, sal from emp order by sal desc)<br />where rownum <=3;<br />Creación de secuencias:<br />CREATE/ALTER sequence secuencia<br />increment by n<br />start with n (no en ALTER)<br />maxvalue n<br />minvalue n<br />cycle (continua generando despues de max)<br />cache n (memoria oracle)<br />Insertar valores de una secuencia en una tabla:<br />INSERT INTO tabla (valorActual, valorSiguiente)<br />VALUES (secuencia.currval, secuencia.nextval)<br />Eliminar secuencias:<br />{DROP sequence secuencia;}<br />Crear índices:<br />{CREATE index indice on tabla (col, col+10, upper(ename)…)}<br />Eliminar índices:<br />{DROP index índice}<br />Crear sinonimos:<br />{CREATE [public] SYNONYM sinonimo FOR objecto}<br />CREATE public synonym dept for sis228.dept<br />Eliminar sinónimos:<br />{DROP SYNONYM sinónimo}<br />En esta última entrega de comandos Oracle, vamos a aprender a crear usuarios para hacer uso de nuestra base de datos. Para ello, vamos a conocer los diferentes permisos concebibles y a saber cómo asignárselos. Además, aprenderemos a crear diferentes roles que nos van a facilitar la asignación de permisos en el caso de tener diferentes usuarios del mismo nivel.<br /> <br />Crear usuarios de Oracle:    {CREATE USER nombre IDENTIFIED BY contraseña DEFAULT TABLESPACE nombreTableSpace TEMPORARY TABLESPACE nombreTemp}<br />    CREATE USER sis2dba<br />    IDENTIFIED BY sis2dbapass / EXTERNALLY<br />    DEFAULT TABLESPACE sis2tabla<br />    TEMPORARY TALESPACE sis2temp<br />    QUOTA INT [K|M] UNLIMITED ON NOMBRETABLESPACE<br />    PASSWORD EXPIRE<br />    ACCOUNT [LOCK | UNLOCK]<br /> <br />Modificar nombre de usuarios Oracle:<br />    {ALTER USER NombreUsuario Modificación;}<br />    ALTER USER sis2dba QUOTA UNLIMITED ON sis2tabla;<br /> <br />Borrar usuarios:<br />    {DROP USER nombre CASCADE}<br />    Nota: CASCADE nos indica que vamos a borrar también TOdos sus objeTOs<br /> <br />Permitir conexión y crear tablas:<br />    {GRANT CONNECT, RESOURCE TO nombre}<br />    Nota: Para que un usuario de Oracle pueda crear objeTOs NECESITA el permiso RESOURCE<br /> <br />Conceder permisos de DBA:<br />    {GRANT DBA TO NombreUsuario}<br /> <br />PERMISOS:<br />Permiso Tabla Vista Secuencia ProcedimienTOalterX  X  deleteX X   execute   X insertX X   SELECTX X X  updateX X   <br /> <br />Conceder permisos:<br />    {GRANT permiso1, permiso 2… ON objeTO TO nombreUsuario [ROLE]}<br />    GRANT SELECT ON emp TO sis226<br />    GRANT SELECT, INSERT, UPDATE ON emp TO public<br />    GRANT permiso1, permiso2… ON objeTO TO nombreUsuario WITH GRANT OPTION<br />    Nota: GRANT OPTION nos permite conceder permisos a otros usuarios<br /> <br />Quitar permiso:<br />    {REVOKE permiso1,… ON objeTO TO nombreUsuario}<br />    REVOKE permiso1 ON SELECT TO sis226<br />    Nota: Se quita los permisos a sis226 y a TOdos a los que sis226 he dado permisos<br /> <br />Conceder permisos de Sistema:<br />    {GRANT permiso1, permiso2… ANY TABLE TO NombreUsuario}<br />    GRANT CREATE, SELECT ANY TABLE TO sis226<br />    GRANT permiso1, permiso2… ANY TABLE TO NombreUsuario WITH ADMIN OPTION<br />    Nota: WITH ADMIN OPTION permite dar permisos de sistema a otros usuarios<br /> <br />Quitar permiso de Sistema:<br />    {REVOKE permiso1, permiso2… ANY TABLE FROM NombreUsuario}<br />    REVOKE SELECT ANY TABLE FROM sis226<br />    Nota: Quita los permisos a sis226 pero NO a los que sis226 ha dado<br /> <br />ROLES:<br />Un ROLE es una agrupación de permisos con lo cual podemos juntar ciertos permisos en un rol y dárselo a un usuario o grupo de usuarios.<br />Creación de ROLEs:<br />    {CREATE ROLE nombreRol [IDENTIFIED BY Contraseña];}<br />    CREATE ROLE scott_rol;<br /> <br />Borrar ROLEs:<br />    {DROP ROLE nombreRol;}<br /> <br />Dar permisos a ROLEs:<br />    GRANT SELECT, UPDATE ON scott.emp TO scott_rol;<br />    GRANT SELECT, INSERT, DELETE, UPDATE ON scott.dept TO scott_rol;<br />    GRANT SELECT ON scott.salgrade TO scott_rol;<br />    GRANT SELECT ON scott.bonus TO scott_rol;<br /> <br />Conceder rol a usuario:<br />    {GRANT role TO usuario}<br />    GRANT scott_rol TO sis226<br /> <br />Modificar ROLEs:<br />    {GRANT Permiso1,… ON nombreUsuario TO ROLE;}<br />    GRANT SELECT on scott.dept TO scott_rol ;<br />    Nota: SOLO modifica la linea del scott.dept<br />