PDF de programación - Laboratorio de Bases de Datos - Introducción a SQL sobre Oracle

Imágen de pdf Laboratorio de Bases de Datos - Introducción a SQL sobre Oracle

Laboratorio de Bases de Datos - Introducción a SQL sobre Oraclegráfica de visualizaciones

Publicado el 16 de Abril del 2017
848 visualizaciones desde el 16 de Abril del 2017
305,4 KB
76 paginas
Creado hace 13a (03/02/2011)
Laboratorio de Bases de Datos

Introducción a SQL sobre Oracle

Luis A. González Ares

[email protected] Lenguaje SQL

Contenido
• Lenguaje SQL sobre Oracle.

− Descripción de las características y elementos fundamentales del lenguaje.
− Ejercicios sobre la sentencia SELECT.
− Otras sentencias DML.
− Sentencias DDL.
− Vistas.
− Indices.
− Seguridad.
− Transacciones.
− Catálogo.

Nota

El presente material es un resumen de lo impartido en las clases de la Facultad de Informática,
que se entrega como documento de apoyo.

Esta obra está bajo una licencia Reconocimiento-NoComercial-SinObraDerivada de Creative
Commons (Attribution-NonCommercial-NoDerivatives).

Introducción a SQL sobre Oracle – Luis Glez. Ares – [email protected]

1

[email protected] Lenguaje SQL

Introducción a SQL
SQL (Structured Query Language : Lenguaje de Consulta Estructurado)
Acceder a los datos de un SGBD relacional (crear, consultar, modificar).

Evolución:
• SEQUEL (Structured English QUEry Language). IBM para SYSTEM R.
• SQL-86 o SQL1. ANSI e ISO en 1986. Revisado en 1989.
• SQL-92 o SQL-2. 1992.
• SQL:1999, SQL:2003.

Dos vertientes fundamentales en los lenguajes de BD relacionales:
• DDL o LDD (lenguaje de definición de datos).
• DML o LMD (lenguaje de manipulación de datos).

Otras características:
• Aspectos de control (seguridad, transacciones, concurrencia, etc.),
• Posibilidad de incluir SQL en lenguajes de propósito general como C, Pascal, Java, etc.
• Lenguaje no procedural (el qué frente al cómo)
• Actúa sobre un conjunto de registros o filas.
• Base teórica: se fundamenta en el álgebra relacional y en el cálculo relacional.
• Lenguaje para todo tipo de usuarios de un SGBD relacional.
• Trabaja con tablas, columnas y filas, no con relaciones, atributos y tuplas. Una tabla es
• No es un lenguaje de propósito general.

diferente a una relación, ya que puede tener filas repetidas.

Introducción a SQL sobre Oracle – Luis Glez. Ares – [email protected]

2

[email protected] Lenguaje SQL

SQL*Plus de Oracle
Los fabricantes amplian las características del estándar pero dejan elementos sin implementar.
SQL*Plus: Interface de Oracle que permite ejecutar sentencias SQL y comandos propios.
Entrar en SQL*Plus (servidor oracle o xurxo):

$ sqlplus / [@filename]

Comandos SQL*Plus. Uno por fila:

SQL> DESC[RIBE] emp

Nombre
----------------------------------------- -------- --------------------------

Nulo?

Tipo

EMPNO
ENAME
JOB
MGR
HIREDATE
SAL
COMM
DEPTNO

Sentencias SQL: Multifila y acaban en ;

SQL> SELECT *

FROM

emp;

Salir de SQL*Plus:

SQL> EXIT

NOT NULL NUMBER(4)

VARCHAR2(10)
VARCHAR2(9)
NUMBER(4)
DATE
NUMBER(7,2)
NUMBER(7,2)
NUMBER(2)

Introducción a SQL sobre Oracle – Luis Glez. Ares – [email protected]

3

[email protected] Lenguaje SQL

SQL*Plus de Oracle (cont.)

Crear el fichero de configuración login.sql y ubicarlo en el directorio de llamada a SQL*Plus.
Por ejemplo:

login.sql

$ cat
def_editor=vi
set pages 50
set feed 1
column empno format
column mgr
column sal
column comm
column deptno format 90

9990
format 9990
format 99,990
format
99,990

SQL*Plus usa un buffer para almacenar la última sentencia SQL ejecutada (no afecta a los
comandos SQL*Plus). Incorpora un editor de líneas elemental para realizar cambios mínimos
en esa sentencia SQL, como visualizarla (LIST), editarla (ED), etc.

Algunas órdenes muy habituales son:

L[IST] [n [m]]
ED[IT] fichero[.sql]
R[UN]
/
SAV[E] fichero[.sql]
GET fichero[.sql]

Visualiza líneas del buffer
Edita un fichero [.sql]
Ejecuta lo almacenado en el buffer
Ejecuta lo almacenado en el buffer
Almacena el buffer en un fichero
Pasa al buffer un fichero

Introducción a SQL sobre Oracle – Luis Glez. Ares – [email protected]

4

[email protected] Lenguaje SQL

SQL*Plus de Oracle (cont.)

Una lista más amplia de órdenes:

L[IST] [n [m]]
A[PPEND] texto
C[HANGE] /viejo/nuevo/
C[HANGE] /texto/
CL[EAR] BUFF[ER]
DEL
I[NPUT] [texto]
R[UN]
/

[n [m]]

Visualiza líneas del buffer
Añade texto al final de la línea
Cambia una cadena de caracteres por otra
Una forma de "cambiarla"
Elimina los datos del buffer
Suprime líneas
Añade una línea nueva despues de la "actual"
Ejecuta lo almacenado en el buffer
Ejecuta lo almacenado en el buffer

n
n texto

0 texto
SAV[E] fichero[.sql]
GET fichero[.sql]
STA[RT] fichero[.sql]
@fichero[.sql]
ED[IT] fichero[.sql]
SPO[OL] [fichero[.lst]]
SPO[OL] {OFF/OUT}
HELP [tema]
HO[ST] comando
!comando

Nos posiciona en una línea del buffer
Introduce una línea con "texto" como contenido
antes de la línea "n".
Lo mismo, pero antes de la primera línea.
Almacena el buffer en un fichero
Pasa al buffer un fichero
Ejecuta un fichero [.sql]
Idem
Edita un fichero [.sql]
Define un fichero de registro de sesión
Finaliza el registro de la sesión
Ayuda elemental sobre algunos temas
Ejecuta un comando del sistema operativo
Ejecuta un comando del sistema operativo

Introducción a SQL sobre Oracle – Luis Glez. Ares – [email protected]

5

[email protected] Lenguaje SQL

Sentencias SQL
• Lenguaje de definición de datos: Permite crear, manipular y eliminar estructuras

CREATE TABLE
DROP TABLE
CREATE VIEW
DROP VIEW
ALTER TABLE
CREATE INDEX
. . .

Crea una tabla.
Elimina una tabla.
Crea una vista o tabla virtual.
Elimina una vista.
Modifica la estructura de una tabla.
Crea un índice para una tabla.

• Lenguaje de manipulación de datos: Permite consultar, modificar, introducir y eliminar

datos de las estructuras de una BD relacional.

SELECT
INSERT
UPDATE
DELETE

Obtiene datos de la BD.
Introduce datos.
Actualiza datos.
Borra datos.

• (Oracle) Lenguaje de control de datos: Sentencias que realizan otras funciones, por

ejemplo sobre proceso transaccional, concurrencia, etc.

COMMIT
ROLLBACK
GRANT
REVOKE
. . .

Por ejemplo:

DROP TABLE mitabla;

Confirma una transacción.
Anula una transacción.
Otorga permisos a usuarios en objetos de la BD.
Elimina permisos a usuarios en objetos de la BD.

SELECT empno, ename
FROM

emp;

Introducción a SQL sobre Oracle – Luis Glez. Ares – [email protected]

6

[email protected] Lenguaje SQL

Tipos de Datos

Cada columna de una tabla tiene un tipo de dato asignado, que determina los valores posibles
y las operaciones permitidas sobre esos valores.

Un tipo de dato puede asignarse a un dominio, con lo que se asignará a cada columna de
ese dominio.

• Tipos de datos numéricos

− Oracle

NUMERIC(m[,n]) o NUMBER(m[,n])
NUMBER(5,2)

Ej.: NUMBER(3)

• Tipos de datos carácter o alfanuméricos

− Oracle

− SQL2

INTEGER o INT, SMALLINT
FLOAT, REAL, DOUBLE PRECISION
DECIMAL(m,n) o DEC(m,n) o NUMERIC(m,n)

− SQL2

CHAR(n) o CHARACTER(n)

CHAR[(n)]

Ej.: CHAR(20)
Ej.: ’micasa’
VARCHAR2[(n)]
LONG

DATE

Ej.: ’06-JAN-2002’
Ej.: ’06-JAN-2002 13:21’

• Tipos de datos temporales

− Oracle

CHAR
’A’

VARCHAR(n), CHARVARYING(n), CHARACTER VARYING(n)

− SQL2

YEAR, MONTH, DAY
HOUR, MINUTE, SECOND

DATE
TIME
TIMESTAMP
INTERVAL

Introducción a SQL sobre Oracle – Luis Glez. Ares – [email protected]

7

[email protected] Lenguaje SQL

Tablas de los ejemplos
Tenemos una tabla de empleados (EMP) y otra de departamentos (DEPT).

SQL> DESC[RIBE] emp

Tipo

Nulo?

Nombre
----------------------------------------- -------- --------------------------
EMPNO
ENAME
JOB
MGR
HIREDATE
SAL
COMM
DEPTNO

VARCHAR2(10)
VARCHAR2(9)
NUMBER(4)
DATE
NUMBER(7,2)
NUMBER(7,2)
NUMBER(2)

NOT NULL NUMBER(4)

SQL> DESCRIBE dept

Nombre
----------------------------------------- -------- -------------
DEPTNO
DNAME
LOC

VARCHAR2(14)
VARCHAR2(13)

NOT NULL NUMBER(2)

Nulo?

Tipo

Los datos de cada tabla se obtienen con la sentencia SELECT:

SQL> SELECT *

FROM

emp;

SQL> SELECT *

FROM

dept;

Introducción a SQL sobre Oracle – Luis Glez. Ares – [email protected]

8

[email protected] Lenguaje SQL

Tablas de los ejemplos(cont.)

SQL> SELECT *

FROM

emp

JOB

MGR HIREDATE

SAL

EMPNO ENAME
COMM DEPTNO
----- ---------- --------- ----- -------- ------- ------- ------
20
30
30
20
30
30
10
20
10
30
20
30
20
10

7902 17/12/80
7698 20/02/81
7698 22/02/81
7839 02/04/81
7698 28/09/81
7839 01/05/81
7839 09/06/81
7566 09/12/82
17/11/81
7698 08/09/81
7788 12/01/83
7698 03/12/81
7566 03/12/81
7782 23/01/82

7369 SMITH
7499 ALLEN
7521 WARD
7566 JONES
7654 MARTIN
7698 BLAKE
7782 CLARK
7788 SCOTT
7839 KING
7844 TURNER
7876 ADAMS
7900 JAMES
7902 FORD
7934 MILLER

CLERK
SALESMAN
SALESMAN
MANAGER
SALESMAN
MANAGER
MANAGER
ANALYST
PRESIDENT
SALESMAN
CLERK
CLERK
ANALYST
CLERK

800
1,600
1,250
2,975
1,250
2,850
2,450
3,000
5,000
1,500
1,100
950
3,000
1,300

300
500

1,400

0

SQL> SELECT *

FROM

dept

DEPTNO DNAME
------ -------------- -------------

LOC

10 ACCOUNTING
20 RESEARCH
30 SALES
40 OPERATIONS

NEW YORK
DALLAS
CHICAGO
BOSTON

Introducción a SQL sobre Oracle – Luis Glez. Ares – [email protected]

9

[email protected] Lenguaje SQL

Valores nulos
El valor nulo NULL representa la ausencia de información, o bien por desconocimiento del
dato, o bien porque no procede.
Debe diferenciarse de cualquier otro valor, entre ellos del valor 0 si se trata de un dato
numérico, y de la cadena de caracteres vacía, si es un dato de tipo carácter.
Una columna de una tabla podrá admitir valores nulos (NULL) o no (NOT NULL). Por defecto
admite nulos.

Una forma de indicar la no admisión de valores nulos:

CREATE TABLE emp(

VARCHAR2(4) NOT NULL,
VARCHAR2(15) NOT NULL,
VARCHAR2(9),
VARCHAR2(4),

empno
ename
job
mgr
hiredate DATE,
sal
comm
deptno

NUMBER(7,2),
NUMBER(7,2),
VARCHAR2(2)

)

Incluyendo un valor nulo en una fila:

INSERT INTO emp VALUES(’1245’, ’José’, ’Analista’, NULL,

’12-Jan-1997’, 34000, 300.05, ’12’)

INSERT INTO emp VALUES(’1245’, ’José’, ’Analista’, NULL,

TO_DATE(’12/01/1997’, ’dd/mm/yyyy’), 34000, 300.05, ’12’)

Introducción a SQL sobre Oracle – Luis Glez. Ares – [email protected]

10

[email protected] Lenguaje SQL

Expresiones

Una expresión es la formulación de una secuencia de operaciones, o sea, una combinación de
operadores, operandos y paréntesis, que, cuando se ejecuta, devuelve un único valor como
resultado.

Los operandos pueden ser constantes, no
  • Links de descarga
http://lwp-l.com/pdf2991

Comentarios de: Laboratorio de Bases de Datos - Introducción a SQL sobre Oracle (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad