Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
NDICE
1. CONSULTAS
4. TRATAMIENTO DE FECHAS
5. FUNCIONES DE GRUPO
6. CONSULTAS ANIDADAS
7. COMBINACIONES
10. VISTAS
MANUAL SQL
Captulo 1. Consultas
COMANDO SELECT
MANUAL SQL
CLAUSULA DISTINCT
Si seleccionamos ciertas columnas de la base de datos que contienen datos iguales,
las filas devueltas se visualizarn tantas veces como estn en la tabla. Si slo se
desea seleccionar los valores de las filas una sola vez, no importando el nmero de
veces que stos se repitan, deberemos utilizar la sentencia:
SELECT DISTINCT col1, col2, ... , coln
FROM nom_tabla;
Seleccionar todas las filas que en las columnas col1, col2, coln, tengan valores
distintos. Si existen filas con valores iguales en todas las columnas seleccionadas,
solamente aparecern una vez.
La siguiente sentencia no tendr ningn sentido ya que si se seleccionan todas las
columnas de la tabla, no habr filas que tengan los mismos valores en todas sus
columnas, siempre que se haya diseado correctamente la base de datos relacional.
SELECT DISTINCT * FROM department;
CLAUSULA WHERE
Hasta el momento hemos extrado informacin de todas las filas que componan la
tabla, pero si se desea restringir las filas devueltas por una sentencia SELECT
especificaremos la clusula WHERE y a continuacin las condiciones que deben
cumplir las filas para que sean visualizadas. El comando SELECT con la clusula
WHERE queda de la siguiente manera:
SELECT col1, col2, ... , coln
FROM nom_tabla
WHERE condicin;
Una condicin est compuesta por un operador relacional (<, >, =, etc...) uniendo:
- Dos columnas de la tabla.
- Una columna y una constante.
La constante puede ser:
. Numrica.
MANUAL SQL
. Carcter (ir encerrada entre comillas simples).
. Fecha (tambin ir encerrada entre comillas simples).
Los operadores relacionales son:
- Igual =.
- Distinto !=.
- Mayor >.
- Mayor o igual >=.
- Menor <.
- Menor o igual <=.
Las columnas que formen parte de las condiciones no tienen porque ser seleccionadas.
Pueden seleccionarse unas columnas y restringir las filas extradas por otras.
Condiciones mltiples.
Dentro de la clusula WHERE se pueden introducir condiciones mltiples de consulta,
las cuales se evalan antes de devolver las filas correspondientes. Los operadores que
se utilizan para unir varias condiciones de consulta son:
AND. Las filas seleccionadas tienen que cumplir todas las condiciones unidas
con este operador. Puede haber ms de un operador AND.
OR.
IN.
MANUAL SQL
Cuando se desea seleccionar datos de una columna que estn comprendidos entre dos
valores se utiliza la clusula BETWEEN ... AND, en la que se expresan los lmites,
min_val y max_val. El formato es el siguiente:
WHERE columna BETWEEN min_val AND max_val.
Matemticamente es un intervalo cerrado, luego se incluyen los extremos. Por lo
tanto su negacin ser un intervalo abierto, que no comprender los extremos.
Valores nulos.
Hay veces que el valor de una columna es desconocido o inaplicable para una cierta
fila. En este caso se le asigna un valor nulo (NULL). Nulo es distinto de cero o blanco.
Por ejemplo, la comisin nula significa que ese empleado no tiene comisin - puede que
no sea vendedor -, mientras que si un empleado no vende nada su comisin ser cero.
Para seleccionar las filas de una tabla que tiene valor nulo en una determinada
columna utilizamos la siguiente condicin:
WHERE columna IS NULL.
Si por el contrario se desea seleccionar aquellas filas de la tabla en las que una
columna tiene un valor distinto de nulo usaremos:
WHERE columna IS NOT NULL.
Caracteres de sustitucin.
Para seleccionar una fila que cumpla una cierta condicin no es necesario conocer el
conjunto exacto de caracteres que forman la restriccin. Utilizaremos el operador
LIKE combinado con unos caracteres especiales que sustituyen cadenas de
caracteres. Estos caracteres especiales son:
_ Este carcter sustituye a cualquier otro.
% Este carcter sustituye a cualquier cadena de caracteres.
CLAUSULA ORDER BY
MANUAL SQL
Las filas de la tabla se almacenan en el mismo orden en el que han sido insertadas, por
lo que cuando las seleccionamos siempre aparecern en ese orden. Para variar este
orden se utiliza la clusula ORDER BY. Con ella se especifican las columnas por las
cuales queremos que se ordenen las filas seleccionadas por una consulta.
Consideraciones sobre la clusula ORDER BY:
- Pueden formar parte de ella cualquier nmero de columnas hasta un mximo
de 16 no importando el tipo de datos de stas.
- El orden puede ser ascendente (ASC) o descendente (DESC). Por omisin
ser ascendente.
- Pueden mezclarse ordenaciones ascendentes y descendentes.
- Se puede clasificar por columnas que no han sido seleccionadas.
- Siempre es la ltima clusula de la sentencia SELECT.
El formato es:
ORDER BY columna ASC o DESC, columna ASC o DESC
MANUAL SQL
Captulo 2.
Introduccin a los comandos SQL*PLUS
SINTAXIS DE LOS COMANDOS SQL*PLUS
Los comandos SQL*PLUS son aquellos propios de esta herramienta, es decir no
pertenecen al SQL estndar sino al propio "software" ORACLE. Deben cumplir las
siguientes normas:
- Deben ser introducidos en una sola lnea. Si ocupan ms, se deber marcar
el final de lnea con un '-', pulsar 'RETURN' y continuar escribiendo en la
lnea siguiente.
- No es obligatorio finalizar estos comandos con ';', aunque hacerlo no es un
error.
- Es indiferente utilizar letras maysculas o minsculas.
Pertenecen a este tipo de comandos los siguientes:
Comandos de manipulacin del buffer.
Comandos de manipulacin de archivos.
Comandos de formateo de columnas.
Comandos que ejecutan rdenes del sistema operativo.
Comandos para generar informes.
MANUAL SQL
DELETE. Borra la lnea activa. Todas las lnea del comando actual que se encuentren
por debajo permanecern intactas pero con el nmero de secuencia
modificado.
CHANGE /antiguo/nuevo. Cambia en la lnea activa la cadena de caracteres 'antiguo'
por 'nuevo'. Si existe ms de una cadena de caracteres 'antiguo' slo se
cambia la primera por la izquierda. El carcter separador de cadenas ser el
MANUAL SQL
primer carcter especificado despus de la palabra clave CHANGE. En el
ejemplo es '/'.
Si como prefijo de la cadena 'antiguo' se especifican los caracteres '...' se
cambian todos los caracteres por delante de 'antiguo'.
Si como sufijo de la cadena 'antiguo' se especifican los caracteres '...' se
cambian todos los caracteres por detrs de 'antiguo'.
Si se desea cambiar un texto, para no escribirlo entero, bastar con indicar
los delimitadores del mismo y entre ellos los caracteres '...' como texto
'antiguo'.
RUN. Ejecuta el contenido del buffer, visualizndose la sentencia almacenada antes
de la ejecucin.
/. Ejecuta el contenido del buffer, sin visualizarse la sentencia almacenada antes de
la ejecucin.
MANIPULACION DE ARCHIVOS
Como en el buffer slo se puede almacenar un nico comando SQL, que se pierde
adems cuando introducimos uno nuevo, es conveniente la utilizacin de ficheros para
guardar aquellos que se deben ejecutar ms de una vez. Para comunicar estos
ficheros con el buffer SQL tenemos los llamados comandos para la manipulacin de
archivos. Estos son:
MANUAL SQL
Si se intenta ejecutar el contenido del buffer y en ste hay ms de un
comando SQL se producir un error, ya que el buffer slo puede contener uno.
START fichero. Busca en el directorio actual el fichero especificado. Si no lo
encuentra nos muestra un mensaje de error. Si lo encuentra ejecuta los
comandos contenidos. Quedando almacenado en el buffer el ltimo de stos.
Busca un fichero con extensin SQL si no se le especifica otra.
COMANDO COLUMN
Este comando sirve para cambiar el formato de salida de las columnas cuando son
seleccionadas en una consulta determinada. Estos comandos afectan a todas las
columnas que se llamen igual que la especificada, aunque pertenezcan a distintas
tablas. Si queremos especificar un formato para una columna concreta de todas las
que se llaman igual que ella, deberemos utilizar un seudnimo. Es un nico comando,
COLUMN, con diferentes clusulas que nos permitir formatear la salida para las
columnas deseadas. Esta nueva definicin de salida de los datos no afecta de ningn
modo a la definicin interna de la tabla.
Se pueden definir cualquier nmero de comandos COLUMN para una misma columna.
Tambin se puede formatear la salida de expresiones aritmticas, de carcter o tipo
fecha.
10
MANUAL SQL
An
9,999.99
11
MANUAL SQL
COLUMN columna o expresin
12
MANUAL SQL
TRUNC. Se corta el texto que excede del ancho permitido para esa
columna.
COMANDO DESCRIBE
Si se desea saber cul es la definicin de una tabla se deber utilizar el comando
DESCRIBE, el cual muestra informacin referente a todas las columnas que componen
la tabla.
La informacin mostrada referente a cada columna que compone la tabla de la
base de datos es:
NAME. En este campo se muestra el nombre de cada una de las columnas que
forman la tabla especificada.
NULL. Indica si la columna de la tabla puede contener valores nulos. Si no se
permiten aparecern las palabras NOT NULL. Esta opcin se especifica
durante la definicin de la tabla.
TYPE. Es el tipo de datos al que pertenecen los valores que contiene esa
columna.
COMANDO HELP
En SQL*PLUS se dispone de un comando para obtener ayuda acerca de la utilizacin
de los diferentes comandos, y clusulas que los forman. Este es el comando HELP.
13
MANUAL SQL
Para utilizarlo debe instalarse especficamente y sirve tanto para comandos SQL
como para comandos SQL*PLUS. La sintaxis de este comando es:
- Suma +
- Resta - Multiplicacin *
- Divisin /
14
MANUAL SQL
. Cuando los operadores tienen la misma prioridad en una expresin, sta se
evala de izquierda a derecha.
. La multiplicacin y divisin tienen mayor prioridad que la suma y la resta, por
lo que si una expresin est compuesta por varios operadores se ejecutarn
antes las multiplicaciones y divisiones.
. Se puede cambiar el nivel de prioridad de los operadores con el uso de
parntesis.
. Se pueden seleccionar constantes de cualquier tipo en todas las consultas.
Las expresiones aritmticas pueden aparecer seleccionadas o bien en la clusula
WHERE o en la clusula ORDER BY.
FUNCION NVL
Para solucionar este problema SQL*PLUS dispone de la funcin NVL la cual permite
sustituir temporalmente el valor nulo por otro cualquiera deseado. Su formato es:
NVL(columna, valor)
Cuando 'columna' tome el valor nulo, ste se sustituir por 'valor'.
Los clculos numricos son fcilmente realizados utilizando las columnas de la base de
datos con las expresiones y funciones aritmticas. Las funciones, al igual que las
expresiones, pueden formar parte de la sentencia SELECT, bien como columna a
seleccionar o como parte de las clusulas WHERE y ORDER BY.
Los argumentos de estas funciones pueden ser tanto constantes como columnas de la
tabla siempre que sean numricas. Aunque a continuacin especificamos 'columna' y
'nmero' como argumentos de las funciones, estos pueden sustituirse en cualquier
momento por expresin, constante o columna.
Las funciones aritmticas, aplicables a columnas o expresiones, son:
ABS(). Esta funcin devuelve el valor absoluto del argumento.
CEIL(). Esta funcin devuelve el valor del entero ms pequeo igual o mayor
que el valor del argumento (redondeo por exceso)
FLOOR (). Esta funcin devuelve el valor del entero ms grande igual o menor
que el valor del argumento (redondeo por defecto).
15
MANUAL SQL
MOD (,). Esta funcin devuelve el resto de dividir el primer argumento por el
segundo.
SIGN (). Esta funcin devuelve 1 si el valor del argumento es mayor que cero,
0 si es cero, y -1 si es menor que cero.
ROUND (). Redondea el valor del argumento a cero dgitos decimales.
ROUND (,). Redondea el valor del primer argumento a tantos dgitos
decimales como exprese el segundo argumento. Si ste es negativo se
redondea hacia la izquierda.
POWER (). Esta funcin eleva el valor del primer argumento al exponente
expresado por el segundo.
SQRT (). Esta funcin devuelve el valor positivo de la raz cuadrada del valor
del argumento.
TRUNC (). Trunca el valor del argumento a cero dgitos decimales.
TRUNC (,). Trunca el primer argumento a tantos dgitos decimales como
exprese el segundo. Si ste es negativo se trunca hacia la izquierda.
Tambin se dispone de una serie de funciones tipo carcter para facilitar el uso de
las columnas con este tipo de datos. Al igual que las numricas pueden constar de
columnas o constantes tipo carcter.
A estas funciones se les pueden pasar argumentos tanto numricos como carcter.
Cualquier argumento carcter puede ser o bien una columna de tipo carcter de la
tabla, o bien una cadena de caracteres.
16
MANUAL SQL
INSTR (,,). Esta funcin devuelve la posicin que ocupa la primera ocurrencia
del segundo argumento en el primero. Si no se encuentra, la funcin retorna
un cero. Si se especifica un tercer argumento ste determina la posicin a
partir de la cual se busca en el primer argumento.
LOWER (). Esta funcin convierte el argumento en el mismo pero con letras
minsculas.
UPPER (). Esta funcin convierte el argumento en el mismo pero con letras
maysculas.
LTRIM (,). Esta funcin borra por la izquierda en el primer argumento todos
los caracteres hasta encontrar uno que no est en el conjunto de caracteres
formado por el segundo argumento.
RTRIM (,). Esta funcin borra por la derecha en el primer argumento todos
los caracteres hasta encontrar uno que no est en el conjunto de caracteres
formado por el segundo argumento.
LPAD (,,). Esta funcin aade en el primer argumento por la izquierda todos
los caracteres blancos necesarios para que la longitud resultante del mismo
sea la especificada como segundo argumento. Si se especifica un tercer
argumento entonces en lugar de rellenar con blancos se rellenar con los
caracteres de ese argumento.
RPAD (,,). Esta funcin aade en el primer argumento por la derecha todos
los caracteres blancos necesarios para que la longitud resultante del mismo
sea la especificada como segundo argumento. Si se especifica un tercer
argumento entonces en lugar de rellenar con blancos se rellenar con los
caracteres de ese argumento.
SUBSTR (,,). Esta funcin devuelve la subcadena del primer argumento
comprendida desde la posicin especificada como segundo y tantos caracteres
como indique el tercer argumento. Si no se especifica un tercer argumento se
entender que se desea la subcadena hasta el final.
TRANSLATE (,,). Esta funcin sustituye en el primer argumento cada
ocurrencia del segundo argumento por el tercero.
||. Operador de concatenacin. Aade el segundo argumento a la derecha del
primero.
17
MANUAL SQL
TO_NUMBER (). Esta funcin convierte el argumento de tipo alfanumrico en
el correspondiente numrico, siempre que los caracteres del argumento sean
caracteres numricos.
TO_CHAR (). Esta funcin convierte el argumento de tipo numrico en la
correspondiente cadena alfanumrica.
GREATEST (,,...,). Esta funcin devuelve el mayor de sus argumentos segn
criterios alfabticos.
LEAST (,,...,). Esta funcin devuelve el menor de sus argumentos.
devuelve 'valor2',...,
18
ninguno
de
los
si tiene
valores
MANUAL SQL
El formato por defecto en el que se visualizan los datos de tipo fecha es DD-MONYY, (15-DEC-89) es decir el nmero del da del mes, los tres primeros caracteres del
nombre del mes y las dos ltimas cifras del ao.
Cuando se quiera hacer referencia a la fecha del sistema se deber utilizar la palabra
reservada SYSDATE.
Las fechas en ORACLE se almacenan internamente como si fueran nmeros por lo que
se obtiene una gran facilidad para trabajar con ellas y convertirlas a otros formatos
que no sean el habitual.
Los campos que se almacenan para cada dato de este tipo son:
- Siglo.
- Ao.
- Mes.
19
MANUAL SQL
- Da.
- Hora.
- Minutos.
- Segundos.
ARITMETICA DE LA FECHA
Como los datos de este tipo se almacenan de forma numrica se puede realizar con
ellos operaciones aritmticas como:
Fecha + X
Fecha + X/24
Fecha - X
Fecha - X/24
Fecha - Fecha
CONVERSION DE FECHAS
Para convertir fechas a otros formatos tenemos la funcin TO_CHAR. Por medio de
ella somos capaces de visualizar cualquier campo almacenado de los datos tipo fecha.
Las dos funciones de conversin son:
TO_CHAR (fecha, 'formato')
Dentro del formato de los datos de tipo fecha podemos seleccionar los siguientes:
20
MANUAL SQL
SCC o CC
SYYYY o YYYY
YYY o YY o Y
Y,YYY
SYEAR o YEAR
BD o AD
MM
MONTH o Month
WW o W
DDD o DD o D
DAY o Day
DY o dy
AM o PM
HH o HH12
HH24
MI
SS
21
MANUAL SQL
SSSS
/.,
Caracteres separadores.
"cte"
FM
formato indicado.
Aade
el
nmero
de
meses
LAST_DAY (fecha)
siguiente a la fecha
indicada.
TRUNC (fecha [,'precisin'])
22
MANUAL SQL
Hasta el momento hemos visto que todas las consultas que se realizaban a la base de
datos devolvan un conjunto de filas que cumplan una serie de condiciones. El nmero
de filas devueltas siempre era indeterminado. Cada fila seleccionada no dependa de
otra, simplemente cumpla las condiciones de la consulta.
A las funciones que en vez de actuar sobre una sola fila actan sobre un grupo de
ellas se les llama FUNCIONES DE GRUPO y devuelven un solo valor por cada grupo.
Por defecto, el grupo de filas sobre el cual se realiza la funcin, lo compone toda la
tabla. El salario mximo ser slo uno, ste ser mayor o menor dependiendo de las
condiciones de la consulta pero el resultado devuelto es un solo valor.
El formato para estas funciones es:
SELECT funcin_grupo (columna), funcin_grupo (columna), ...
FROM tabla
WHERE condiciones.
Cuando se seleccionan funciones de grupo no se pueden seleccionar columnas de la
tabla porque el valor de la funcin de grupo es nico y el de la columna no tiene por
23
MANUAL SQL
qu serlo. Al ser un valor nico Qu valor de la columna pondramos en la fila
seleccionada? Por qu uno y no otro?. La solucin es bien sencilla, si seleccionamos
funciones de grupo y columnas de la base de datos obtendremos un error de acceso al
ejecutar la consulta.
FUNCIONES
Las funciones de grupo de que se dispone en ORACLE son:
AVG (columna)
SUM (columna)
MIN (columna)
MAX (columna)
VARCIANCE (columna)
STDDEV (columna)
COUNT (*)
COUNT (columna)
CLAUSULA GROUP BY
El grupo por defecto es la tabla entera. Si se desea dividir la tabla en distintos
grupos se utiliza la clusula GROUP BY. En ella se especifica la(s) columna(s) por la(s)
cual(es) pretendemos agrupar. La tabla quedar dividida en tantos grupos como
24
MANUAL SQL
valores distintos tenga la concatenacin de todas las columnas que tiene la clusula
GROUP BY como argumento.
Antes se dijo que con funciones de grupo no se podan seleccionar columnas de la
tabla porque stas tenan un valor distinto para cada fila. Pero si tenemos dividida la
tabla por medio de la clusula GROUP BY estas columnas tomarn el mismo valor para
cada grupo por lo que no existir el problema anterior.
Slo se pueden seleccionar con funciones de grupo, columnas que formen parte del
GROUP BY.
CLAUSULA HAVING
Para el caso en el que se desea restringir los grupos de salida usamos la clusula
HAVING, seguida de las condiciones que deben cumplir . El proceso que se sigue es el
siguiente: la clusula WHERE restringe las filas de la tabla; una vez restringidas
stas se agrupan y despus de agrupadas slo se seleccionan aquellos grupos que
cumplan las condiciones indicadas en la clusula HAVING.
25
MANUAL SQL
26
MANUAL SQL
Una consulta anidada, como su nombre indica, es aquella que est contenida dentro de
otra. Los resultados de una la consulta anidada se utilizan como valores de
comparacin de la clusula WHERE de la consulta que la anida. Se evaluar antes la
sentencia SELECT anidada y una vez obtenido el valor o conjunto de valores se
evaluar la otra.
El formato es el siguiente:
SELECT col1, col1, ... , coln
FROM tabla1
WHERE col <operador lgico>
(SELECT col
FROM tabla2
WHERE condiciones).
Se deben tener en cuenta los siguientes aspectos para ejecutar este tipo de
sentencias:
- La tabla de la sentencia SELECT anidada no tiene porque ser la misma que la de la
sentencia SELECT que la anida.
- El tipo de datos de la 'col' de la sentencia SELECT superior y de la 'col' de la
anidada debe ser el mismo.
- Siempre se seleccionarn el mismo nmero de columnas de la sentencia SELECT
anidada que el de columnas que forman parte de la clusula WHERE en la superior.
27
MANUAL SQL
- Las filas devueltas por la consulta anidada deben corresponderse con el tipo de
operador lgico indicado. Si el operador lgico es '=' la sentencia SELECT anidada
solo podr devolver una nica fila.
CONSULTAS ANIDADAS QUE RETORNAN UNA UNICA FILA
Las consultas anidadas que retornan una nica fila se unen por medio del operador
lgico '='.
SELECT col1, col1, ... , coln
FROM tabla1
WHERE col =
(SELECT col
FROM tabla1
WHERE condiciones).
Si la consulta anidada retorna ms de un valor se produce un error en la ejecucin de
la superior por no poder comparar una sola columna con ms de un valor.
Tambin ocurre lo mismo con los operadores '<', '>', '<=', '>='.
28
MANUAL SQL
OPERADORES 'AND' Y 'OR' EN CONSULTAS ANIDADAS
forman parte de la condicin en la superior. No basta con que sea igual el valor
de una de las columnas.
29
MANUAL SQL
>= ANY. La consulta seleccionar aquellas filas en las que el valor de la columna
de la condicin sea mayor o igual que algn valor devuelto por la sentencia
SELECT anidada.
< ANY. La consulta seleccionar aquellas filas en las que el valor de la columna
de la condicin sea menor que algn valor devuelto por la sentencia SELECT
anidada.
<= ANY. La consulta seleccionar aquellas filas en las que el valor de la columna
de la condicin sea menor o igual que algn valor devuelto por la sentencia
SELECT anidada.
= ANY. La consulta seleccionar aquellas filas en las que el valor de la columna
de la condicin sea igual que algn valor devuelto por la sentencia SELECT
anidada. Es equivalente al operador IN.
> ALL. La consulta seleccionar aquellas filas en las que el valor de la columna
de la condicin sea mayor que todos los valores devueltos por la sentencia
SELECT anidada.
>= ALL. La consulta seleccionar aquellas filas en las que el valor de la columna
de la condicin sea mayor o igual que todos los valores devueltos por la
sentencia SELECT anidada.
< ALL. La consulta seleccionar aquellas filas en las que el valor de la columna
de la condicin sea menor que todos los valores devueltos por la sentencia
SELECT anidada.
<= ALL. La consulta seleccionar aquellas filas en las que el valor de la columna
de la condicin sea menor o igual que todos los valores devueltos por la
sentencia SELECT anidada.
!= ALL. La consulta seleccionar aquellas filas en las que el valor de la columna
de la condicin sea distinto que todo valor devuelto por la sentencia SELECT
anidada. Es equivalente al operador NOT IN.
30
MANUAL SQL
Captulo 7. Combinaciones
INTRODUCCIN
Hasta el momento slo hemos podido seleccionar datos de una nica tabla. Con las
consultas anidadas podamos seleccionar filas de una tabla que cumpliesen una
condicin almacenada en otra tabla, pero nunca se poda seleccionar y visualizar a la
vez, datos que pertenecieran a ms de una tabla. Pues bien, por medio de la
combinacin de tablas se puede seleccionar datos de tablas diferentes.
La combinacin de dos tablas consiste en realizar el producto cartesiano de las dos.
El resultado de unir dos tablas ser otra que tiene por columnas la unin de las
columnas de las dos tablas y por filas el producto cartesiano de las dos, es decir, que
cada fila de la primera tabla se concatena con todas las filas de la otra.
Siempre que realicemos la combinacin de dos tablas tendr que haber una condicin
de combinacin por medio de la cual se puedan relacionar los datos de las dos tablas y
se restrinja as, aquellas filas del producto cartesiano que realmente nos interesan.
Un simple producto hace aparecer filas que contienen informacin falsa.
TIPOS DE COMBINACIONES
Los distintos tipos de combinacin que existen son:
1.- Producto cartesiano. No tiene restricciones.
2.- Combinacin comn. La condicin de combinacin contiene un operador de
igualdad.
3.- Combinacin no comn. La condicin de combinacin contiene un operador
que no es el de igualdad.
4.- Autocombinacin. Se realiza la combinacin de una tabla consigo misma.
5.- Combinacin exterior. Selecciona las filas de una tabla que no tienen
correspondencia con alguna de la otra.
31
MANUAL SQL
COMBINACION COMUN
La sintaxis de la combinacin de tablas es:
COMBINACION NO COMUN
Adems de las combinaciones anteriormente vistas basadas en el operador de
igualdad, hay otras basadas en operadores como >, <, <=, >=, !=, BETWEEN...AND. Son
las combinaciones no comunes.
32
MANUAL SQL
Tambin se pueden realizar combinaciones de ms de dos tablas, resultando como
combinacin de estas otra que tendr por columnas la unin de las columnas de todas
las tablas y por filas el producto cartesiano de las filas de todas las tablas.
Se pueden unir tantas tablas como se quiera pero siempre deber haber (n-1)
condiciones de combinacin para que la informacin sea coherente(n=n de tablas).
AUTOCOMBINACION
La combinacin de una tabla con ella misma se realiza por medio de columnas que
contienen la misma informacin. La combinacin ser otra tabla que tendr por
columnas dos veces las columnas de la tabla original y por filas el producto cartesiano
de la tabla por s misma.
La operacin equivale a que hubiera dos tablas iguales, (no las hay ya que solamente
tenemos una copia fsica de los datos). Todas las columnas son ambiguas, ya que
tienen el mismo nombre, por lo que se tendr que especificar la tabla a la que nos
estamos refiriendo. Como la tabla tambin es igual hay que renombrar una (o las dos),
y ms tarde hacer mencin a las columnas anteponiendo el nuevo nombre de cada
tabla.
COMBINACION EXTERIOR
Si en el resultado de la combinacin hay alguna fila que no tiene correspondencia con
ninguna de la otra y queremos seleccionarla utilizaremos combinaciones exteriores.
Para las columnas de la tabla que no tienen correspondencia toman valor nulo.
Para realizar una combinacin exterior se debe poner "(+)" en la condicin de
combinacin. Este signo se pone en la columna de la tabla que quedar vaca en la
combinacin.
SELECT tabla1.col1, tabla2.col1, .....
FROM tabla1, tabla2
WHERE tabla1.col1(+)= tabla2.col1.
OPERADORES DE CONJUNTO
33
MANUAL SQL
Son los mismos de la Teora de Conjuntos, si consideramos a las filas recuperadas de
una consulta como elementos que pertenecen a un conjunto. Combinan dos o ms
consultas en un mismo resultado. Los comandos SELECT deben tener el mismo nmero
de columnas y stas deben corresponderse en tipo, aunque sus longitudes pueden
variar.
Para estos operadores est implcita la clusula DISTINCT y son incompatibles con la
clusula ORDER BY.
Estos operadores de conjunto son:
- UNION.
- INTERSECT.
- MINUS.
Operador UNION.
El operador UNION devuelve todas las filas que han sido seleccionadas por los
comandos SELECT. Si hay dos iguales slo devuelve una de ellas.
La sintaxis es:
SELECT co1, col2, ... , coln
FROM tabla
WHERE condiciones
UNION
SELECT co1, col2, ... , coln
FROM tabla
WHERE condiciones.
34
MANUAL SQL
Operador INTERSECT.
El operador INTERSECT devuelve las filas comunes que han sido seleccionadas por
los comandos SELECT. Slo devuelve una de ellas.
La sintaxis es:
SELECT co1, col2, ... , coln
FROM tabla
WHERE condiciones
INTERSECT
SELECT co1, col2, ... , coln
FROM tabla
WHERE condiciones.
Operador MINUS.
El operador MINUS devuelve las filas que han sido seleccionadas por el primer
comando SELECT y no lo han sido por el segundo.
La sintaxis es:
SELECT co1, col2, ... , coln
FROM tabla
WHERE condiciones
MINUS
SELECT co1, col2, ... , coln
FROM tabla
WHERE condiciones.
35
MANUAL SQL
INSERCIN DE FILAS
Para aadir nuevas filas a tablas ya existentes se utiliza el comando INSERT:
INSERT INTO <nombre_de_tabla>
[ ( <nombre_de_columna1>, <nombre_de_columna2>, ... ) ]
VALUES ( <valor1>, <valor2>, ... );
Insercin de todas las columnas de una fila
36
MANUAL SQL
Cuando se vayan a insertar valores para todas las columnas de una fila se puede
utilizar el formato simplificado:
INSERT INTO <nombre_de_tabla>
VALUES ( <valor1>, <valor2>, ... );
El orden de los valores dentro del parntesis debe coincidir exactamente con el
orden de las columnas tal y como fueron definidas al crear la tabla.
A cada columna se le deber dar un valor, se puede utilizar la palabra clave NULL
para indicar que esa columna tiene un valor nulo.
37
MANUAL SQL
SELECT <lista_de_columnas_y_expresiones>
FROM <lista_de_tablas>
WHERE <criterios_de_seleccin>;
Se insertarn los datos de las tablas que figuren en la lista de tablas y que cumplan
los criterios de seleccin.
El orden de las columnas en la clusula SELECT debe coincidir con el orden de las
columnas de la clusula INSERT.
Se pueden incluir en la lista de seleccin expresiones aritmticas, valores reservados
del sistema (SYSDATE) o funciones.
Insercin de fechas
Si estamos insertando datos en una columna de tipo fecha tendremos que introducir
los datos con el formato por defecto de las fechas DD-MES-AA. Si la fecha tiene
otro formato se deber utilizar la funcin TO_DATE para indicarlo.
Para insertar datos de tipo fecha tambin podemos utilizar la palabra reservada
SYSDATE para insertar la fecha actual.
38
MANUAL SQL
MODIFICACION DE FILAS
El comando de manipulacin de datos UPDATE cambia los datos de una tabla dndoles
nuevos valores. Pueden cambiarse todos los valores de una columna de todas las filas
de la tabla o especificar las filas que deben ser cambiadas.
UPDATE <nombre_de_la_tabla>
SET columna = <nuevo_valor> [, columna = <nuevo_valor>]
[ WHERE <criterio_de_seleccin_de_registro> ];
BORRADO DE FILAS
Los usuarios pueden borrar filas de las tablas utilizando el comando DELETE.
DELETE [ FROM ] <nombre_de_la_tabla>
[ WHERE <criterio_de_seleccin> ];
39
MANUAL SQL
PROCESO DE TRANSACCIONES
ORACLE permite que los cambios en la base de datos se puedan agrupar en
transacciones para mantener la consistencia e integridad de los datos.
Slo se producirn los cambios contenidos en una transaccin si se producen todos. Si
no se producen todos no se producir ninguno.
Para controlar explcitamente el proceso de transacciones se dispone de los
siguientes comandos SQL:
COMMIT [ WORK ];
Seala el final de una transaccin y el principio de otra para indicarle al sistema que
se deben validar los cambios que se produjeron desde el principio de la transaccin
que se da por concluida.
ROLLBACK [ WORK ];
Seala el final de una transaccin y el principio de otra para indicarle al sistema que
se restaure el estado de la base de datos tal y como estaba al comenzar la
transaccin.
SQL*PLUS dispone de un comando para controlar las validaciones de forma
automtica:
SHOW AUTOCOMMIT
40
MANUAL SQL
Todos los cambios que se han producido en la base de datos desde la ltima validacin
o restauracin se validan con un COMMIT y se restaura la situacin anterior con un
ROLLBACK.
Antes de que se valide cualquier cambio ste slo ser visible para el usuario que lo
ha hecho (consistencia en la lectura).
Todos los cambios que formen una unidad lgica deben ir incluidos dentro de una
transaccin y validarse o restaurarse todos a la vez.
Si
la
opcin
AUTOCOMMIT
est
activa
todos
los
cambios
se
validan
41
MANUAL SQL
42
MANUAL SQL
-
el nombre de la tabla
el nombre de la columna
el tipo de datos
(CHAR,VARCHAR2, NUMBER, DATE, LONG)
En el primer formato tenemos que definir una por una todas las columnas de la tabla.
CREATE TABLE <nombre_de_la_tabla>
(<nombre_de_la_columna1> <tipo_de_datos> [(tamao)] [NOT NULL],
<nombre_de_la_columna2> <tipo_de_datos> [(tamao)] [NOT NULL],
...
<nombre_de_la_columna254> <tipo_de_datos> [(tamao)] [NOT NULL]);
43
MANUAL SQL
los nombres de las columnas deben ser nicos dentro de una tabla
CARACTERES
-
44
MANUAL SQL
Los datos de la base de datos ORACLE se almacenan en las filas de las tablas. Una
tabla puede contener hasta 254 columnas y cada columna puede ser de uno de los
siguientes tipos de datos:
- VARCHAR2
- NUMBER
- DATE
- LONG
Tipo de datos alfanumrico (VARCHAR2)
VARCHAR2 (n)
Los datos de tipo alfanumrico pueden contener letras, nmeros, signos de
puntuacin y caracteres especiales como el +, -, $ o el %.
La longitud mxima de una columna de tipo carcter se especifica en la definicin de
la columna y podr ser como mximo de 4kb caracteres.
No importa especificar tamaos muy grandes puesto que los datos se almacenan como
cadenas de longitud variable, no se reserva espacio para el tamao mximo.
45
MANUAL SQL
- Mes (1 byte)
- Da (1 byte)
- Hora (1 byte)
- Minuto (1 byte)
- Segundo (1 byte)
Si al insertar un dato de tipo fecha no se especifica la hora con la funcin TO_DATE,
ORACLE tomar por defecto las doce de la maana.
El rango de valores est entre el uno de enero del ao 4712AC y el 31 de diciembre
del ao 4712DC.
RESTRICCIONES DE INTEGRIDAD
46
MANUAL SQL
ORACLE admite en la sintaxis de las sentencias SQL CREATE TABLE y ALTER
TABLE la especificacin de restricciones de integridad de tabla y de columna. Estas
restricciones se introducen en las tablas del diccionario de datos para que se
verifiquen en posteriores versiones de ORACLE, puesto que en la versin actual no se
comprueban (a excepcin de NOT NULL).
Las restricciones se deben comprobar al ejecutar cualquier consulta de manipulacin
de datos y se deben cumplir para que las sentencias DML tengan xito.
Las restricciones de tabla forman parte de la definicin global de la tabla, se
especifican despus de la definicin de las columnas y se pueden referir a una o ms
columnas de la tabla:
[ { UNIQUE PRIMARY KEY } ( <lista_de_columnas> )
[CONSTRAINT <nombre_restriccin>] ]
[ FOREIGN KEY ( <lista_de_columnas> )
REFERENCES [<usuario>.]<tabla> [ (lista_de_columnas) ]
[CONSTRAINT <nombre_restriccin>] ]
[ CHECK (<condicin>) [CONSTRAINT <nombre_restriccin>] ]
47
MANUAL SQL
Tipos de restricciones:
- NULL:
- UNIQUE:
- PRIMARY KEY:
- FOREIGN KEY/
REFERENCES:
borrados
que
violen
la
restriccin
de
integridad.
- CHECK:
48
MANUAL SQL
ALTER TABLE <nombre_de_la_tabla>
ADD ( <nombre_de_la_nueva_columna1> <tipo_de_datos>,
<nombre_de_la_nueva_columna2> <tipo_de_datos>,
... );
No se pueden especificar las columnas como no nulas ya que necesariamente
contendrn valores nulos en un principio.
49
MANUAL SQL
Si una tabla est vaca, se podr:
- aadir una columna que no admita nulos (se aade primero la columna y
despus se modifica para que no admita valores nulos)
BORRADO DE TABLAS
Para borrar la definicin de las tablas del diccionario de datos se utiliza el comando
DROP TABLE.
DROP TABLE <nombre_de_la_tabla>;
Cuando se ejecuta este comando se producen los siguientes efectos:
-
datos
-
50
MANUAL SQL
Para cambiar de nombre a una tabla sin que se vea afectado el almacenamiento de sus
datos se utiliza el comando RENAME.
RENAME <antiguo_nombre> TO <nuevo_nombre>;
En el diccionario de datos la tabla quedar reflejada con el nuevo nombre, pero no
tendr ninguna repercusin sobre el almacenamiento de los datos.
La tabla no se podr volver a referenciar por el antiguo nombre.
El propietario es el nico que puede cambiar de nombre a una tabla.
COMANDO COMMENT
Para incluir comentarios sobre tablas y columnas en el diccionario de datos se utiliza
el comando COMMENT.
COMMENT ON TABLE <nombre_de_la_tabla> IS 'texto';
COMMENT ON COLUMN
<nombre_de_la_tabla>.<nombre_de_la columna>
IS 'texto';
SINNIMOS
Dado que es difcil trabajar con nombres demasiado largos o complicados, el usuario
puede crear nombres alternativos para esas tablas.
CREATE [ PUBLIC ] SYNONYM <nombre_del_sinnimo>
FOR [propietario.]<nombre_de_la_tabla o vista>;
Las tablas o vistas se podrn referenciar por su nombre o por el de sus sinnimos.
El administrador de la base de datos puede crear sinnimos de uso general para
tablas y vistas que sean utilizadas por la totalidad de los usuarios, usando para ello la
palabra clave PUBLIC.
51
MANUAL SQL
Los usuarios no pueden crear tablas que tengan el mismo nombre que sinnimos
pblicos.
Para borrar un sinnimo se utiliza el siguiente comando SQL:
DROP [PUBLIC] SYNONYM <nombre_del_sinnimo>;
La tabla a la que se refiere el sinnimo no se ver afectada.
SECUENCIAS
El generador de secuencias se utiliza para generar nmeros secuenciales que son
utilizados con el fin de manipular las tablas (p.e. generacin automtica de claves
primarias o coordinacin de claves para el acceso a varias tablas.
En primer lugar hay que ejecutar una sentencia SQL que defina la secuencia
especificando el nombre de la secuencia, si es descendente o ascendente, los valores
mximos y mnimos o si la secuencia ser cclica. Una vez se ha creado una secuencia,
sta la pueden utilizar mltiples usuarios para mltiples tablas.
Creacin de una secuencia:
CREATE SEQUENCE < nombre_secuencia >
[ INCREMENT BY entero ]
[ START WITH entero ]
[ MAXVALUE entero NOMAXVALUE ]
[ MINVALUE entero NOMINVALUE ]
[ CYCLE NOCYCLE ]
[ CACHE entero NOCACHE ]
[ ORDER NORDER] ;
Las pseudocolumnas CURRVAL y NEXTVAL se utilizan para obtener el valor actual y
siguiente de la secuencia y se pueden especificar en sentencias de consulta, de
insercin y de actualizacin, refirindose a ellos como nombre_secuencia.currval o
nombre_secuencia.nextval.
Utilizacin de NEXTVAL y CURRVAL:
52
MANUAL SQL
-
DICCIONARIO DE DATOS
En el diccionario de datos se almacena la informacin sobre todos los objetos de la
base de datos (tablas, vistas, sinnimos, ndices, agrupamientos, secuencias, columnas,
etc ...).
El diccionario de datos es consultado tanto por ORACLE para hacer comprobaciones,
como por los usuarios para obtener informacin sobre la base de datos.
El diccionario de datos es actualizado automticamente por ORACLE sin interrumpir
el trabajo de otros usuarios cuando se ejecutan comandos del lenguaje de definicin
de datos (DDL) o del lenguaje de control de datos (DCL).
Los usuarios pueden acceder a las informacin del diccionario de datos a travs de
las vistas que se crean al inicializar la base de datos con este fin.
Para visualizar las vistas que puede consultar el usuario se puede ejecutar la siguiente
sentencia SQL.
Las vistas del diccionario de datos se dividen en tres grandes grupos segn el prefijo
que lleven, que nos dar una indicacin de la informacin contenida en la vista:
USER_*
53
MANUAL SQL
ALL_* Este tipo de vistas se refieren a los objetos creados por el usuario y a
los que puede acceder porque se le han concedido privilegios de
acceso.
DBA_*Este tipo de vistas slo las puede consultar los usuarios con privilegios
de administrador puesto que contienen informacin general de
la base de datos.
Las vistas del diccionario de datos se consultan como cualquier otra tabla del usuario.
54
MANUAL SQL
Simplificar consultas
Seguridad
Almacenamiento
55
MANUAL SQL
Las vistas contienen slo datos virtuales, los datos reales se almacenan en los bloques
de datos de las tablas, por lo tanto slo se almacena la definicin compilada, por lo
que el gasto de almacenamiento es mnimo.
4.-
Independencia lgica
Conforme va creciendo la base de datos las tablas se pueden alterar, unir y combinar
con otras, etc ...
Creando vistas de esas tablas originales se garantiza la independencia lgica de los
datos, los usuarios y las aplicaciones podrn seguir refirindose a los datos como si
estos tuviesen la misma estructura que antes.
CREACIN DE VISTAS
Para crear vistas se utiliza el comando del lenguaje de definicin de datos CREATE
VIEW, que sirve para darle un nombre a un comando SQL vlido.
CREATE VIEW <nombre_de_la_vista> [<lista_de_columnas>]
AS <sentencia_SQL_vlida>;
Se utiliza la lista_de_columnas para cambiarle el nombre a las columnas que se
obtienen con la sentencia SQL.
Como comentamos anteriormente las vistas se tratan como las tablas para recuperar
datos.
Cada vez que se crea una vista se actualizan las tablas del diccionario de datos para
incluir el nombre y la definicin de este nuevo objeto.
Para comprobarlo los usuarios pueden consultar la vista del diccionario de datos
VIEWS.
56
MANUAL SQL
Se pueden definir vistas que obtengan los datos de la combinacin de varias tablas.
57
MANUAL SQL
Las tablas referenciadas en la vista borrada no se vern afectadas.
DROP VIEW <nombre_de_la_vista>;
No existe un comando para modificar la definicin de una vista, si se desea hacerlo
habr que borrarla y volver a crear la vista.
Si se borra una tabla o vista que estuviese contenida en la definicin de una vista, se
borrar esta ltima vista tambin.
RESUMEN
Los nombres por omisin de las columnas de las vistas coinciden con los nombres en
las tablas de las que se han obtenido.
Cuando se seleccionen columnas virtuales para crear vistas se les deber dar un nuevo
nombre.
Cuando se seleccionen columnas de varias tablas habr que cambiar el nombre a las
columnas que resulten ambiguas.
Para definir vistas se pueden utilizar otras vistas o tablas.
Se pueden utilizar funciones, expresiones, la clusula "group by" para definir nuevas
vistas.
No se puede utilizar la clusula "order by" para definir nuevas vistas, se podr
utilizar cuando se recuperen los datos de las vistas.
58
MANUAL SQL
indexacin
agrupamientos
Los dos mtodos anteriores no afectan la sintaxis de los comandos SQL, por lo que
cualquier consulta y/o actualizacin de datos se realizar de la misma forma.
Sin embargo, los tiempos de respuesta mejorarn considerablemente.
Los ndices se utilizan principalmente por dos razones:
- aumentar la velocidad de acceso a columnas indexadas
- garantizar la unicidad de datos
Los ndices localizan las filas que han sido seleccionadas en una consulta y reducen de
esta manera el nmero de accesos a disco.
La utilizacin de ndices es muy recomendable para mejorar el rendimiento en la unin
de mltiples tablas.
Los ndices pueden garantizar que los datos de una columna o de un conjunto de
columnas tengan un valor nico para cada fila de la tabla.
Esta ltima propiedad nos permite simular las restriccin de entidad (clave principal)
del modelo de datos relacional.
El propietario de una tabla o los usuarios que tengan privilegio de indexacin sobre la
misma pueden indexar sus columnas.
CREATE [ UNIQUE ] INDEX < nombre_del_ndice >
ON < nombre_de_la_tabla >
(< nombre_de_la_columna1 > [, < nombre_de_la_columna2 >,...]);
BORRADO DE NDICES
59
MANUAL SQL
Los ndices, como cualquier otro objeto de la base de datos, se borran con el comando
de definicin de datos DROP:
DROP INDEX < nombre_del_ndice >;
UTILIZACIN DE NDICES
El optimizador ORACLE analizar la sentencia SQL para determinar el camino de
acceso ms rpido a los datos. Si las columnas que aparecen en la clausula de
condicin "where" estn indexadas, ORACLE utilizar los ndices para acceder a los
datos.
La sintaxis de los comandos SQL no vara aunque una columna est indexada.
Para que se utilice un ndice definido sobre una columna, sta no debe ser modificada
por ninguna operacin.
ALMACENAMIENTO DE NDICES
Los ndices se almacenan separadamente de los datos, por ello se pueden crear y
borrar en cualquier momento sin afectar a los datos, slo se ver afectado el
rendimiento.
Los ndices son actualizados automticamente por ORACLE cada vez que se valida una
sentencia de actualizacin de datos.
No existe un lmite para la creacin de ndices.
Para conocer los ndices que ha creado un usuario se puede consultar la vista del
diccionario de datos INDEXES.
60
MANUAL SQL
Si los datos son estticos se reducirn los costes de mantenimiento y es ms
recomendable crear ndices.
Para reducir los costes de mantenimiento se deben cargar primero los datos y
despus crear el ndice.
INDICES CONCATENADOS
Con el comando CREATE INDEX se pueden crear ndices concatenados, nombrando
las columnas de la tabla que deben ser claves, en el orden que deben aparecer.
Para borrarlos se utilizar el mismo comando DROP INDEX.
AGRUPAMIENTOS
Los agrupamientos son un mtodo alternativo para almacenar los datos en la base
datos ORACLE que no tienen ninguna influencia en la sintaxis de los comandos SQL.
Las agrupamientos son totalmente transparentes a los usuarios: no hay que modificar
ni las consultas ni las aplicaciones, las consultas son iguales tanto si las tablas estn
agrupadas como si no.
Los datos de una o ms tablas (hasta 32) se almacenan en un mismo bloque fsico para
mejorar el rendimiento en el acceso a los datos de esas tablas.
Se suelen agrupar tablas que tienen columnas comunes y que son utilizadas en
combinaciones de tablas (joins).
Los agrupamientos no pueden ser consultados como tales, se consultarn las tablas
que estn incluidas en l.
Cuando se crea un agrupamiento, se tiene que crear un ndice sobre la clave del
agrupamiento antes de poder empezar a trabajar con l.
Creacin de agrupamientos
La sintaxis del comando SQL para crear agrupamientos es la siguiente:
CREATE CLUSTER < nombre_del_agrupamiento >
( < columna_clave1 > < tipo_de_datos1 >,
< columna_clave2 > < tipo_de_datos2 >,
61
MANUAL SQL
...
< columna_clave16 > < tipo_de_datos16 > );
62
MANUAL SQL
Borrar agrupamientos
Antes de borrar un agrupamiento habr que borrar las tablas que estn incluidas en
l a menos que se indique la clusula INCLUDING CONTENTS.
DROP CLUSTER <nombre_del_agrupamiento> [ INCLUDING CONTENTS ];
63
MANUAL SQL
conectarse con ORACLE. El administrador dispone para conceder este privilegio del
siguiente comando SQL:
GRANT { CONNECT RESOURCE DBA } TO < nombre_de_usuario >
[ IDENTIFIED BY < contrasea > ];
* CONNECT
- posibilidad de acceso a la base de datos
- acceder y manipular tablas de otros usuarios si tiene permiso para ello
- crear vistas y sinnimos
- no puede crear ni tablas ni agrupamientos ni ndices
64
MANUAL SQL
- crear tablas y vistas (RESOURCE implcito)
- crear y dar de baja usuarios
- crear sinnimos pblicos
La clusula IDENTIFIED BY es obligatoria si se le est concediendo a un usuario
privilegio de acceso (CONNECT), sin embargo no ser necesario utilizarla si estamos
concediendo nuevos privilegios a un usuario.
Un usuario podr cambiarse la contrasea en cualquier momento ejecutando el
siguiente comando:
GRANT CONNECT TO < nombre_de_usuario > IDENTIFIED BY
< nueva_contrasea >;
El identificador ORACLE es independiente del identificador del sistema operativo.
ORACLE comprueba automticamente la validez del identificador y la contrasea
cuando un usuario se conecta con ORACLE.
Slo un usuario con privilegio DBA puede conceder privilegios a otros usuarios.
Para quitar privilegios a los usuarios el administrador dispone del siguiente comando
SQL:
REVOKE { CONNECT RESOURCE DBA }
FROM < nombre_de_usuario >;
Si a un usuario se le retira el privilegio de conectarse a la base de datos, dicho
usuario no podr acceder a los datos hasta que se le vuelva a conceder el privilegio de
conexin. Sus tablas no sern borradas y los usuarios que tengan privilegios sobre
ellas podrn seguir utilizndolas. Cuando se le vuelvan a conceder a este usuario
privilegios de conexin "recuperar" sus tablas.
Las tablas pertenecen al usuario que las crea, y l ser quin conceda y quite los
privilegios sobre sus tablas a otros usuarios.
Los privilegios que podr conceder y
siguientes:
* ALTER
* DELETE
65
MANUAL SQL
* INDEX
* INSERT
* SELECT
* UPDATE
* UPDATE
* ALL
66
MANUAL SQL
67