Академический Документы
Профессиональный Документы
Культура Документы
Sql lenguaje estndar de consultas yadministracin de Base de datos. Sql es utilizado por programadores, administradores de base de datos y usuarios. Arquitectura SQL se puede categorizar en: SQLCategory Data Manipulation Languaje (DML) Description Data manipulation language (DML) statements access and manipulate data in existing schema objects. These statements do not implicitly commit the current transaction. The data manipulation language statements are:
CALL DELETE EXPLAIN PLAN INSERT LOCK TABLE MERGE SELECT UPDATE
Data definition language (DDL) statements let you to perform Data DefinitionLanguage these tasks: Create, alter, and drop schema objects (DDL) Grant and revoke privileges and roles Analyze information on a table, index, or cluster Establish auditing options Add comments to the data dictionary
The DDL statements are: ALTER ... (All statements beginning with ALTER)
ANALYZE ASSOCIATESTATISTICS AUDIT COMMENT CREATE ... (All statements beginning with CREATE) DISASSOCIATESTATISTICS DROP ... (All statements beginning with DROP) FLASHBACK ... (All statements beginning with FLASHBACK) GRANT NOAUDIT PURGE RENAME REVOKE TRUNCATE UNDROP
Transaction Control
Transaction control statements manage changes made by DML statements. The transaction control statements are: COMMIT ROLLBACK SAVEPOINT SET TRANSACTION
All transaction control statements, except certain forms of the COMMIT and ROLLBACK commands
Session control
Session control statements dynamically manage the properties of a user session. These statements do not implicitly commit the current transaction. PL/SQL does not support session control statements. The session control statements are:
ALTER SESSION SET ROLE The single system control statement, ALTERSYSTEM, dynamically manages the properties of an Oracle Database instance. This statement does not implicitly commit the current transaction and is not supported in PL/SQL
System control
Cuando se inicia SQL*Plus, se abre una ventana que nos pide el usuario, la contrasea y la cadena de conexin. La cadena de conexin es el alias de la base de datos.
Si omitimos esta cadena, SQL*Plus intenta conectarse a la base de datos local definida en la variable ORACLE_SID. Una vez que entramos en el programa podemos cambiar de conexin ejecutando: CONNECT <USERNAME>/<PASSWORD>@<CONNECTSTRING> <CONNECTSTRIG> = alias de Base de datos. Si omitimos la contrasea, nos aparecer el pedido de ingreso de la misma:
Si omitimos la cadena de conexin, se intentar conectar a una base de datos local. Para salir de SQL*Plus, debemos utilizar el comando EXIT.
Tambin es posible invocar SQL*Plus con el comando sqlplus: SQLPLUS<USERNAME>/<PASSWORD>@<CONNECTSTRING> Ejemplos: SQL>SELECT800 - 400 FROM dual;
Tipos de Datos de Oracle CHAR(<size>) : <size> puede almacenar desde 1 byte a un mximo 2000
bytes. Por defecto el tamao es 1 byte.
Si el valor excede la precisin, sin embargo, Oracle retornara un error. Ejemplo no se pude insertar 123.1 dentro NUMBER (4,2). Si la escala es negativa, el nmero es redondeado a la izquierda de la coma decimal. Ejemplo en NUMBER (5,2), si se trata de insertar 12345.345 el valor ser 12300, si se trata de insertar 1234.567 el valor ser 1234.600, o si se trata de insertar 12345678 el valor sea un error (s-(-p) = s + p = 5+2 = 7). Si se especifica una escala que es superior al valor de la precisin, la precisin define el nmero de dgitos a la derecha del punto decimal despus de ceros. Ejemplo NUMBER (3,5) el rango de valores es -0.00999 hasta 0.00999; esto requiere dos ceros (<s>-<p>) con 5 dgitos despus de los ceros. Ejemplo NUMBER (4,5) y si se inserta 0.01234567 el valor ser 0.01235.
Operador
(),[] -,+ *, / ||
Literales
Son valores que representan un valor fijo. Hay cuatro tipos de literales: Textos Literales. Deben ser encerrados entre simples cuotes de marca ('). Oracle trata a todos los literales de tipo texto como valores de tipo CHAR para comparacin. Simples cuotes de marca pueden ser incluido dentro de un literal tipo texto pero debe ser precedido de otro simple coute de marca. Ejemplo: 'The Quick Brown Fox' 'That man ''s suit is black' 'And I quote: "This will never do."' Alternativamente, se puede usar Q o q, el cual provee un rango delimitadores. La sintaxis Q/q es: [Q|q]' <quote_delimiter><text literal><quote_delimiter>' Ejemplo: q'<The Quick Brown Fox>' Q'# Than man's suite is "black"#' LiteralesNumericos. 24, -456, 24.0, -324.65, 22E-10, 2f, -32.1D Literal Datetime. DATE '2008-03-24' '2008-03-24 03:25:34.123 -7:00'
Asegurando Unicidad.
SELECT DISTINCT department_id FROM HR.employees; SELECT DISTINCT department_id, first_name FROM HR.employees;
La tabla DUAL.Es una tabla ficticia para todos los usuarios en la base de
datos, es utilizado para variables del sistema o evaluar expresiones. SELECT SYSDATE FROM dual; SELECT 'Today is '|| SYSDATE FROM dual;
Operadores de Comparacin.
Igualdad: = Inigualdad: !=, <> Menorque: < Mayor que: > Menor o igualque: <= Mayor o igualque: >= SELECT first_name, FROM employees WHERE commission_pct<= .15; ANY o SOME SELECT first_name, FROM employees WHERE department_id<= ANY(10,15,20,25);
Otros Operadores
IN NOT IN SELECT first_name, FROM employees WHERE department_id IN (80,90,100); BETWEEN SELECT first_name, last_name, salary FROM hr.employees WHERE salary BETWEEN 5000 AND 6000; EXIST. Este operador siempre debe estar seguido de un query IS NULL IS NOT NULL LIKE. Este operador utiliza patrones de bsquedausando por ejemplo el carcter % SELECT first_name, last_name FROM hr.employees WHERE first_name LIKE 'Su%' AND last_name NOT LIKE 'S%'; Igual SONIC1, ULTRASONI21 TIME, LIME %SONIC1, %SONI91 CRIME_FILE, TIME_POLE No Igual SONICS1, SONI315 IME, CRIME SONIC1, ULTRASONIC1 CRIMESPILE, CRIME_ALE
SELECTlast_name,salary,department_id,job_id,commission_pct FROM employeesWHERElast_name like '%a%' and salary >department_id * 200orjob_id in ('MK_REP','MK_MAN') and commission_pct is not null
ASC DESC SELECT first_name, last_name, salary FROM hr.employees WHERE department_id = 90 ORDER BY ASC last_name; SELECT DISTINCT 'Region' || region_id FROM hr.countries ORDER BY 'Region' || region_id
NULLS FIRST NULLS LAST SELECT last_name, commission_pctFROM employees WHERE last_name LIKE R%ORDER BY commission_pct ASC, last_name DESC;
Tipo 2 CASE WHEN <condition> THEN <return value> [ELSE <returnvalue>] END SELECT first_name, department_id, salary, CASE WHEN salary < 6000 THEN Low WHEN salary < 10000 THEN Medium WHEN salary >= 10000 THEN High END Category FROM employees WHERE department_id<= 30 ORDER BY first_name;
Un punto (.) es usado para anexar o concatenar inemediatamente despus de sustituir la variable.