Documente Academic
Documente Profesional
Documente Cultură
ndice
1. Comandos SQL
2. SQL SELECT
3. SQL Alias
4. WHERE de SQL
5. SQL Operadores
6. SQL Operadores lgicos
7. SQL LIKE, IN
8. SQL ORDER BY
9. SQL Funciones de grupo
10. SQL GROUP BY
11. SQL HAVING
12. SQL INSERT
13. SQL UPDATE
14. SQL DELETE
15. SQL CREATE TABLE
16. SQL ALTER TABLE
17. Integridad SQL Restringir
18. SQL UNE
19. SQL RENAME
20. SQL Vistas
21. SQL sub-consulta
22. Los ndices de SQL
23. SQL GRANT, REVOKE
24. Funciones de Oracle
25. SQL Tuning o la optimizacin de SQL
26. SQL Tuning Tips, optimizacin de SQL
1. SQL Comandos:
Comandos SQL son instrucciones que se utilizan para comunicarse con la base de datos para realizar
tareas especficas que funcionan con datos. Comandos SQL se puede utilizar no slo para buscar en la
base de datos, sino tambin para realizar otras funciones como, por ejemplo, puede crear tablas, agregar
datos a las tablas, o modificar los datos, eliminar la tabla, establecer permisos para los usuarios.
Comandos SQL se agrupan en cuatro grandes categoras segn su funcionalidad:
Data Definition Language (DDL) - Estos comandos SQL se utilizan para crear, modificar y
quitar la estructura de los objetos de base de datos. Los comandos se CREATE, ALTER,
DROP, RENAME, y TRUNCATE.
Transaction Control Language (TCL) - Estos comandos SQL se utilizan para gestionar los
cambios que afectan a los datos. Estos comandos son ROLLBACK COMMIT, y SAVEPOINT.
Data Control Language (DCL) - Estos comandos SQL se utilizan para proporcionar seguridad
a los objetos de base de datos. Estos comandos se GRANT y REVOKE.
2. SQL SELECT Declaracin
El ms utilizado es el comando SQL SELECT. La sentencia SQL SELECT se utiliza para consultar o
recuperar datos de una tabla en la base de datos. Una consulta puede recuperar informacin de
columnas especificadas o de todas las columnas de la tabla. Para crear una simple instruccin SQL
SELECT, debe especificar la columna (s) nombre y el nombre de la tabla. La consulta est llamada
toda instruccin SQL SELECT.
SELECT column_list
FROM table-name
[WHERE Clause]
[GROUP BY clause]
[HAVING clause]
[ORDER BY clause];
NOTA: Estas tablas de base de datos se utiliza aqu para una mejor explicacin de los comandos SQL.
En realidad, las tablas pueden tener diferentes columnas y de datos diferentes.
Por ejemplo, considere los student_details mesa. Para seleccionar el nombre de todos los estudiantes de
la consulta sera:
SELECT first_name
FROM student_details;
NOTA: Los comandos no distinguen entre maysculas y minsculas. La instruccin SELECT anterior
tambin se puede escribir como "'nombre de seleccin de students_details";
Tambin puede recuperar datos de ms de una columna. Por ejemplo, para seleccionar el nombre y
apellido de todos los estudiantes.
NOTA: En una instruccin SQL SELECT slo SELECT y FROM declaraciones son obligatorios.
Otras clusulas como WHERE, ORDER BY, GROUP BY, HAVING son opcionales.
Expresiones combinar muchos operadores aritmticos, que pueden ser utilizados en SELECT, WHERE
y ORDER BY de la instruccin SQL SELECT.
Aqu vamos a explicar cmo usar las expresiones en la instruccin SQL SELECT. Acerca del uso de
expresiones en WHERE y ORDER BY clusula, se explica en sus respectivas secciones.
Por ejemplo: Si desea mostrar el nombre y el apellido de un empleado combinadas, la instruccin SQL
SELECT sera como:
Salida:
Salida:
emp_name
-------------
Rahul Sharma
Anjali Bhagwat
Stephen Fleming
Shekar Gowda
Priya Chandra
3. SQL Alias
Los alias de SQL se definen las columnas y tablas. Bsicamente, los alias se crean para hacer que la
columna seleccionada ms legible.
Por ejemplo: Para seleccionar el nombre de todos los estudiantes, la consulta sera:
En la consulta anterior, la columna nombre se le da un alias como "nombre". Por eso, cuando el
resultado se muestra el nombre de la columna aparece como: Nombre en lugar de nombre.
Salida:
Name
-------------
Rahul Sharma
Anjali Bhagwat
Stephen Fleming
Shekar Gowda
Priya Chandra
SELECT s.first_name
FROM student_details s;
En la consulta anterior, alias 's' est definido para los student_details mesa y la columna FIRST_NAME
se selecciona de la tabla.
As SQL ofrece una caracterstica denominada clusula WHERE, que podemos utilizar para restringir
los datos que se recuperan. La condicin que dio en la clusula WHERE filtra las filas recuperadas de
la mesa y le da slo las filas que usted esperaba ver. Clusula WHERE puede utilizar junto con
SELECT, DELETE, UPDATE.
SELECT column_list
FROM table-name WHERE condition;
Por ejemplo: Para buscar el nombre de un estudiante con ID 100, la consulta sera:
NOTA: Los alias definidos para las columnas de la sentencia SELECT no puede ser utilizado en la
clusula WHERE para establecer las condiciones. Slo los alias creados para las tablas se pueden
utilizar para hacer referencia a las columnas de la tabla.
Por ejemplo: Vamos a considerar la tabla de empleados. Si desea mostrar el nombre del empleado, el
salario actual y un aumento del 20% en el salario slo para aquellos productos en los que el porcentaje
de aumento en el salario es mayor que 30000, la instruccin SELECT se puede escribir como se
muestra a continuacin
SELECT name, salary, salary*1.2 AS new_salary
FROM employee
WHERE salary*1.2 > 30000;
Salida:
Operadores de comparacin:
Los operadores de comparacin se utilizan para comparar los datos de columna con valores especficos
en una condicin.
Operadores de comparacin tambin se utilizan junto con la sentencia SELECT para filtrar datos
basados en condiciones especficas.
Comparison
Description
Operators
= equal to
<>, != is not equal to
< less than
> greater than
>= greater than or equal to
<= less than or equal to
Logical
Description
Operators
For the row to be selected at least one of the
OR
conditions must be true.
For a row to be selected all the specified
AND
conditions must be true.
For a row to be selected the specified
NOT
condition must be false.
Si desea seleccionar filas que cumplan al menos una de las condiciones dadas, puede utilizar el
operador lgico OR.
Por ejemplo: si usted quiere encontrar los nombres de los estudiantes que estn estudiando ya sea
matemticas o ciencia, la consulta sera como,
Column1 Column2
Row Selected
Satisfied? Satisfied?
YES YES YES
YES NO YES
NO YES YES
NO NO NO
Por ejemplo: Para encontrar los nombres de los estudiantes entre las edades 10 a 15 aos, la consulta
sera:
Column1 Column2
Row Selected
Satisfied? Satisfied?
YES YES YES
YES NO NO
NO YES NO
NO NO NO
Si quieres buscar filas que no cumplen una condicin, puede utilizar el operador lgico NOT. NO
resulta en el reverso de una condicin. Es decir, si una condicin es satisfecha, entonces la fila no se
devuelve.
Por ejemplo: Si usted quiere saber los nombres de los estudiantes que no juegan al ftbol, la consulta
sera:
Usted puede utilizar varios operadores lgicos en una sentencia SQL. Al combinar los operadores
lgicos en una instruccin SELECT, el orden en que se procesa la declaracin es:
1) NO
2) Y
3) O
Por ejemplo: Si desea seleccionar los nombres de los estudiantes que su edad este entre 10 y 15 aos,
o los que no juegan al ftbol, los
NOTA: El orden en que se formula la condicin es importante, si los cambios de orden que es probable
que obtenga un resultado diferente.
7. SQL Palabras Comparacin
Hay otras palabras clave de comparacin disponibles en SQL que se utilizan para mejorar las
capacidades de bsqueda de una consulta SQL. Son "IN", "BETWEEN ... AND", "IS NULL",
"similares".
Comparacin
Description
Operators
Column value is similar to specified
LIKE
character(s).
Column value is equal to any one of
IN
a specified set of values.
Column value is between two
BETWEEN...AND values, including the end values
specified in the range.
IS NULL Column value does not exist.
El operador LIKE se utiliza para enumerar todas las filas de una tabla cuyos valores coinciden con
columna de un patrn especificado. Es til cuando se desea buscar filas que coincidan con un patrn
especfico, o cuando no se conoce el valor. Para ello usamos '%' un carcter comodn.
Por ejemplo: Para seleccionar todos los estudiantes cuyo nombre comienza con 'S'
first_name last_name
-------------- -------------
Stephen Fleming
Shekar Gowda
Las bsquedas anteriores Instruccin SELECT para todas las filas en las que la primera letra de la
columna 'nombre es' S 'y el resto de las letras en el nombre puede ser cualquier carcter.
Hay otro carcter comodn que puede utilizar con LIKE operador. Es el carcter de subrayado "_". En
una cadena de bsqueda, el subrayado representa un solo carcter.
Por ejemplo: para mostrar todos los nombres con 'a' segundo personaje,
first_name last_name
-------------- -------------
Rahul Sharma
NOTA: Cada subrayar actuar como un marcador de posicin para un solo personaje. As que usted
puede utilizar ms de un guin bajo. Por ejemplo: '__% i'-esto tiene dos subrayados hacia la izquierda,
'% S__j' - esto tiene dos guiones entre 'S' carcter y la 'i'.
Por ejemplo: para encontrar los nombres de los estudiantes entre las edades de 10 a 15 aos, la
consulta sera como,
SQL IN Operador:
El operador IN se utiliza cuando se desea comparar una columna con ms de un valor. Es similar a una
condicin OR.
Por ejemplo: Si usted quiere encontrar los nombres de los estudiantes que estn estudiando ya sea
matemticas o ciencia, la consulta sera como,
Un valor de columna es NULL si no existe. El operador IS NULL se utiliza para mostrar todas las filas
de las columnas que no tienen ningn valor.
Por ejemplo: Si usted quiere encontrar los nombres de los estudiantes que no participan en ningn
juego, la consulta sera la que se dan a continuacin.
No habra ninguna salida ya que tenemos todos los estudiantes participar en un juego en el
student_details de mesa, de lo contrario los nombres de los estudiantes que no participan en los juegos
que se mostrarn.
8. SQL ORDER BY
La clusula ORDER BY se utiliza en una instruccin SELECT para ordenar los resultados, ya sea en
orden ascendente o descendente. Tipo Oracle consultar los resultados en orden ascendente por defecto.
Sintaxis para utilizar SQL ORDER BY para ordenar los datos es la siguiente:
SELECT column-list
FROM table_name [WHERE condition]
[ORDER BY column1 [, column2... columnN] [DESC]];
Por ejemplo: Si usted desea ordenar la tabla de empleados por salario del empleado, la consulta SQL
sera.
name salary
---------- --------
Soumya 20000
Ramesh 25000
Priya 30000
Hrithik 35000
Harsha 35000
Si usted desea ordenar la tabla de empleados con el nombre y el salario, la consulta sera como,
La salida sera:
name salary
--------------------------
Soumya 20000
Ramesh 25000
Priya 30000
Harsha 35000
Hrithik 35000
NOTA: Las columnas especificadas en la clusula ORDER BY debe ser una de las columnas
seleccionadas en la lista de columnas SELECT.
Puede representar las columnas de la clusula ORDER BY, especificando la posicin de una columna
de la lista SELECT, en lugar de escribir el nombre de la columna.
Por defecto, la clusula ORDER BY ordena los datos en orden ascendente. Si usted desea ordenar los
datos en orden descendente, de forma explcita, debe especificarlo como se muestra a continuacin.
Si desea seleccionar el nombre y salario en orden descendente, la consulta sera la que se indica a
continuacin.
Por ejemplo: Si desea mostrar el nombre del empleado, el salario actual y un aumento del 20% en el
salario slo para aquellos empleados para los que el porcentaje de aumento en el salario es mayor que
30000 y en orden descendente del precio creciente, la instruccin SELECT se puede escribir como se
muestra a continuacin.
NOTA: Alias definidos en la instruccin SELECT se puede utilizar en la clusula ORDER BY.
9. Grupo de SQL Funciones
Las funciones de grupo son las funciones integradas de SQL que operan en grupos de filas y devolver
un valor para todo el grupo. Estas funciones son: COUNT, MAX, MIN, AVG, SUM, DISTINCT
SQL COUNT (): Esta funcin devuelve el nmero de filas de la tabla que satisface la condicin
especificada en la condicin WHERE. Si la condicin WHERE no se especifica, la consulta devuelve
el nmero total de filas en la tabla.
Por ejemplo: Si desea que el nmero de empleados en un departamento en particular, la consulta sera:
Si desea que el nmero total de empleados en todo el departamento, la consulta tendra la forma:
SQL DISTINCT (): Esta funcin se utiliza para seleccionar las filas distintas.
Por ejemplo: Si desea seleccionar todos los nombres de departamentos distintos de la tabla empleado,
la consulta sera:
SQL MAX (): Esta funcin se utiliza para obtener el valor mximo de una columna.
SQL MIN (): Esta funcin se utiliza para obtener el valor mnimo de una columna.
SQL AVG (): Esta funcin se utiliza para obtener el valor promedio de una columna numrica.
SQL SUM (): Esta funcin se utiliza para obtener la suma de una columna numrica.
Por ejemplo: Si desea conocer el importe total del sueldo gastado en cada departamento, la consulta
sera:
La salida sera:
dept salary
--------------------------
Electrical 25000
Electronics 55000
Aeronautics 35000
InfoTech 30000
NOTA: La clusula GROUP BY debe contener todas las columnas de la lista de seleccin esperan que
se utilizan junto con las funciones de grupo.
La salida sera:
Si desea seleccionar el departamento que tiene sueldo total pagado a sus empleados ms de 25000, la
consulta SQL sera;
La salida sera:
dept salary
--------------------------
Electronics 55000
Aeronautics 35000
InfoTech 30000
Cuando WHERE, GROUP BY y HAVING clusulas se utilizan juntos en una instruccin SELECT, la
clusula WHERE se procesa primero, luego las filas que se devuelven despus de la clusula WHERE
se ejecuta se agrupan basndose en la clusula GROUP BY.
Por ltimo, las condiciones en las funciones de grupo en la clusula HAVING se aplican a las filas
agrupadas antes de la salida final se muestra.
12. Instruccin SQL INSERT
La sentencia INSERT se utiliza para aadir nuevas filas de datos en una tabla.
col1, col2,... Coln - los nombres de las columnas de la tabla en la que desea insertar los datos.
Al insertar una fila, si est agregando valor para todas las columnas de la tabla que no es necesario
especificar la columna (s) nombre en la consulta SQL. Pero hay que asegurarse de que el orden de los
valores est en el mismo orden que las columnas de la tabla. La consulta de insercin sql ser la
siguiente:
Por ejemplo: Si desea insertar una fila a la tabla de empleados, la consulta sera como,
NOTA: Al agregar una fila, slo los caracteres o valores de fecha debe ser encerrado entre comillas
simples.
Si va a insertar datos a todas las columnas, los nombres de las columnas se pueden omitir. La
instruccin de insercin anterior tambin se puede escribir como.
Si est insertando datos en todas las columnas, la instruccin de insercin anterior tambin se puede
escribir como,
NOTA: Hemos asumido la tabla temp_employee tiene emp_id columnas, emp_name, departamento,
edad, salario, lugar en el orden anterior y dado el mismo tipo de datos.
NOTA IMPORTANTE:
1) Cuando se aade una nueva fila, debe asegurarse el tipo de datos del valor y coincide con la
columna.
2) Se han seguido las restricciones de integridad, en su caso, que se define para la tabla.
13. SQL UPDATE
La instruccin UPDATE se utiliza para modificar las filas existentes de una tabla.
UPDATE table_name
SET column_name1 = value1,
column_name2 = value2...
[WHERE condition]
NOTA: En la declaracin Update, DONDE clusula identifica las filas que se vea afectado. Si no se
incluye la clusula WHERE, los valores de columna de todas las filas se vean afectados.
Por ejemplo: Para actualizar la ubicacin de un empleado, la consulta de actualizacin SQL sera
como,
UPDATE employee
SET location ='Mysore'
WHERE id = 101;
UPDATE employee
SET salary = salary + (salary * 0.2);
14. SQL DELETE
La sentencia DELETE se utiliza para eliminar filas de una tabla.
NOTA: La clusula WHERE en el comando SQL DELETE es opcional e identifica las filas de la
columna que se elimina. Si no se incluye la clusula WHERE todas las filas de la tabla se elimina, as
que tenga cuidado al escribir una consulta DELETE sin clusula WHERE.
Por ejemplo: Para eliminar a un empleado con el ID 100 de la tabla de empleados, la consulta SQL
DELETE sera como,
Para eliminar todas las filas de la tabla de empleados, la consulta sera como,
Por ejemplo: Para eliminar todas las filas de la tabla empleado, la consulta sera como,
DELETE: Este comando elimina slo las filas de la tabla en funcin de la condicin dada en la
clusula WHERE o elimina todas las filas de la tabla si no se especifica condicin. Pero no liberar el
espacio que contiene la tabla.
TRUNCATE declaracin: Este comando se utiliza para borrar todas las filas de la tabla y liberar el
espacio que contiene la tabla.
Si una tabla se cae, todas las relaciones con otras tablas ya no ser vlida, las restricciones de integridad
ser dado de baja, subvencin o privilegios de acceso en la tabla tambin se ha cado, si desea utilizar
la mesa de nuevo tiene que ser recreado con la restricciones de integridad, privilegios de acceso y las
relaciones con otras tablas deben establecerse de nuevo. Pero, si una tabla se trunca, la estructura de la
tabla sigue siendo el mismo, por lo tanto, cualquiera de los problemas anteriores no existir.
15. SQL CREATE TABLE
La instruccin CREATE TABLE se utiliza para crear tablas para almacenar datos. Restricciones de
integridad como clave primaria, clave nica clave externa puede ser definido para las columnas al crear
la tabla. Las restricciones de integridad pueden ser definidas a nivel de columna o a nivel de tabla. La
implementacin y la sintaxis de las sentencias CREATE difieren para diferentes RDBMS.
En la base de datos Oracle, el tipo de datos para una columna entera se representa como "nmero". En
Sybase se representa como "int".
En la declaracin anterior, temp_employee tabla se crea con el mismo nmero de columnas y tipos de
datos como tabla de empleados.
16. SQL ALTER TABLE
El comando SQL ALTER TABLE se utiliza para modificar la definicin (estructura) de una tabla
mediante la modificacin de la definicin de sus columnas. El comando ALTER se utiliza para realizar
las siguientes funciones.
Por ejemplo: Para agregar una columna de "experiencia" de la tabla de empleados, la consulta sera
como:
Por ejemplo: Para quitar la columna "ubicacin" de la tabla de empleados, la consulta sera como:
Por ejemplo: Para modificar el sueldo de columna en la tabla de empleados, la consulta sera como:
El comando RENAME SQL se utiliza para cambiar el nombre de la tabla o un objeto de base de datos.
Si cambia el nombre del objeto cualquier referencia al antiguo nombre se ver afectada. Tienes que
cambiar manualmente el nombre antiguo por el nuevo nombre en cada referencia.
Por ejemplo: Para cambiar el nombre de la tabla a my_employee empleado, la consulta sera como:
Las restricciones disponibles en SQL son: Clave fornea, Null Check Unique,
Esta restriccin define una columna o combinacin de columnas que identifica de forma nica cada fila
de la tabla.
column_name1, column_name2 son los nombres de las columnas que definen la clave
principal.
La sintaxis es decir, dentro del soporte [constraint_name RESTRICCIN] es opcional.
Por ejemplo: Para crear una tabla de empleados con restriccin de clave principal, la consulta sera.
Esta restriccin identifica cualquier referencia a la columna PRIMARY KEY de otra tabla. Se establece
una relacin entre dos columnas de la misma tabla o entre tablas diferentes. Para una columna que se
define como una clave externa, debe ser un definido como una clave principal en la tabla que se est
refiriendo. Una o ms columnas se pueden definir como clave externa.
Por ejemplo:
2) Si la tabla de empleados tiene un "mgr_id", es decir, id gerente como una clave externa que hace
referencia a 'id' clave primaria dentro de la misma tabla, la consulta sera como,
Esta restriccin garantiza que todas las filas de la tabla contiene un valor definido para la columna que
se especifica cmo no nulo. Lo que significa un valor nulo no es permitido.
Por ejemplo: Para crear una tabla de empleados con valor nulo, la consulta sera como
Esta restriccin asegura que una columna o un grupo de columnas en cada fila tienen un valor distinto.
Una columna (s) puede tener un valor nulo, pero los valores no pueden ser duplicados.
Por ejemplo: Para crear una tabla de empleados con clave nica, la consulta sera como,
Esta restriccin define una regla de negocio en una columna. Todas las filas deben cumplir esta regla.
La restriccin puede ser aplicada para una sola columna o un grupo de columnas.
Por ejemplo: En la tabla de empleados para seleccionar el sexo de una persona, la consulta sera como
Si una condicin sql join se omite o si no es vlida la operacin de combinacin dar como resultado
un producto cartesiano. El producto cartesiano devuelve un nmero de filas igual al producto de todas
las filas en todas las tablas que se estn uniendo. Por ejemplo, si la primera tabla tiene 20 filas y la
segunda tabla tiene 10 filas, el resultado ser 20 filas * 10, o 200. Esta consulta tarda mucho tiempo
para ejecutarse.
Permite utilizar los siguientes dos tablas para explicar el sql condiciones de combinacin.
Se trata de un sencillo sql condicin de unin que utiliza el signo igual como el operador de
comparacin. Hay dos tipos de uniones son equi join SQL y SQL exterior Combinacin interna.
Por ejemplo: Usted puede obtener la informacin sobre un cliente que ha comprado un producto y la
cantidad del producto.
2) SQL no se une Equi
Se trata de una condicin de combinacin de SQL que hace uso de algn operador de comparacin que
no sea el signo igual como>, <,>=, <=
Todas las filas devueltas por la consulta sql satisfacer la condicin de combinacin especificada.
Por ejemplo: Si desea visualizar la ficha tcnica de cada orden de la consulta ser como se indica a
continuacin. Puesto que usted est recuperando los datos de dos tablas, es necesario identificar la
columna comn entre estas dos tablas, que se theproduct_id.
Las columnas deben ser referenciadas por el nombre de la tabla en la condicin de unin, porque
product_id es una columna de ambas tablas y necesita una forma de ser identificados. Esto evita la
ambigedad en el uso de las columnas en la instruccin SQL SELECT.
El nmero de condiciones de combinacin es (n-1), si hay ms de dos tablas unidas en una consulta
donde "n" es el nmero de tablas involucradas. La regla debe ser verdad para evitar producto
cartesiano.
Tambin puede utilizar alias para hacer referencia al nombre de la columna, la consulta anterior sera
como,
Esta condicin sql combinacin devuelve todas las filas de ambas tablas que cumplan la condicin de
combinacin junto con las filas que no cumplen la condicin de unin de una de las mesas. El operador
de combinacin externa de SQL en Oracle es (+) y se utiliza en un lado de la condicin de combinacin
solamente.
La sintaxis es diferente para diferentes RDBMS aplicacin. Pocos de ellos representan las condiciones
de unin como "sql combinacin externa izquierda", "derecha exterior sql join".
Si desea mostrar todos los datos del producto, junto con los artculos de pedido de datos, con valores
nulos se muestran para artculos de la orden, si un producto no tiene su fin, la consulta sql por unin
externa sera como se muestra a continuacin:
Un nete a uno mismo es un tipo de sql join que se utiliza para unir una tabla consigo misma, sobre
todo cuando la tabla tiene una clave externa que hace referencia a su propia clave principal. Es
necesario asegurarse de que la instruccin de combinacin define un alias para ambas copias de la tabla
para evitar la ambigedad columna.
A Non nete Equi es un SQL de la combinacin cuya condicin se establece utilizando todos los
operadores de comparacin, excepto el igual (=) operador. Al igual que> =, <=, <,>
Por ejemplo: Si usted quiere encontrar los nombres de los estudiantes que no estn estudiando, ya sea
Economa, la consulta SQL sera como, (permite el uso student_details tabla definida anteriormente.)
SELECT first_name, last_name, subject
FROM student_details
WHERE subject != 'Economics'
Parte de la base de datos relacional (RDBMS) no admite este comando, porque esto no es la
normalizacin de declaracin.
Por ejemplo cambiar el nombre de una tabla a travs de MS SQL Server debe utilizar sp_rename
almacenamiento interno.
Como en el Ejemplo
Seleccione Salida:
id name
-------------------
1 name 1
2 name 2
3 name 3
Seleccione Salida:
id name
-------------------
1 name 1
2 name 2
3 name 3
La versin mnima que admite el cambio de nombre tabla es Oracle 8i. Todas las dependencias de la
tabla se actualizarn automticamente. No hay necesidad de actualizarlos despus de las salas.
20. SQL Vistas
Una vista es una tabla virtual, a travs del cual una parte selectiva de los datos de una o ms tablas
visto. Visto no contienen datos propios. Se utilizan para restringir el acceso a la base de datos o para
ocultar la complejidad de los datos. Una vista se almacena como una instruccin SELECT en la base de
datos. Operaciones DML en una vista como INSERT, UPDATE, DELETE afecta a los datos de la tabla
original en que se basa la vista.
Por ejemplo: para crear una vista en la tabla de productos de la consulta SQL sera como:
Las subconsultas son una forma alternativa de devolver datos de varias tablas.
Las subconsultas se pueden utilizar con las siguientes instrucciones SQL, junto con los operadores de
comparacin como =, <,>,> =, <=, Etc.
SELECT
INSERT
ACTUALIZACIN
DELETE
Subconsulta Ejemplo:
1) Por lo general, una subconsulta debe devolver slo un registro, pero a veces tambin puede devolver
varios registros cuando se usa con operadores como IN, NOT IN en la clusula where. La consulta
sera como,
2) Vamos a considerar la mesa student_details que hemos utilizado antes. Si conoce el nombre de los
alumnos que estudian asignaturas de ciencias, puede obtener su identificacin mediante el uso de esta
consulta ms adelante,
Pero si usted no sabe sus nombres, luego de obtener su id tiene que escribir la consulta de esta manera,
Salida:
id first_name
-----------------------
100 Rahul
102 Stephen
En la anterior sentencia SQL, primero la consulta interna se procesa primero y luego la consulta
externa se procesa.
3) subconsulta se puede utilizar con la sentencia INSERT para agregar filas de datos de una o ms
tablas a otra mesa. Vamos a tratar de agrupar a todos los alumnos que estudian matemticas en
'maths_group' una mesa.
4) Una subconsulta se puede utilizar en la instruccin SELECT de la siguiente manera. Vamos a usar el
producto y tabla order_items se define en la seccin sql_joins.
Subconsulta correlacionada
Una consulta se denomina subconsulta correlacionada cuando tanto la consulta interna y la consulta
externa son interdependientes. Para cada fila procesada por la consulta interna, la consulta externa se
procesa tambin. La consulta interna depende de la consulta exterior antes de que pueda ser procesada.
NOTA:
1) Puede anidar tantas consultas que quieras, pero no se recomienda para anidar ms de 16
subconsultas en orculo. 2) Si una subconsulta no es dependiente de la consulta externa se denomina
subconsulta no correlacionada.
22. ndice de SQL
El ndice en SQL se crea en las tablas existentes para recuperar las filas rpidamente.
Cuando hay miles de registros en una tabla, la recuperacin de informacin tomar un largo tiempo.
Por lo tanto se crean ndices en columnas que se acceden con frecuencia, por lo que la informacin
puede ser recuperada rpidamente. Los ndices pueden ser creados en una sola columna o un grupo de
columnas. Cuando el ndice se crea, ordena primero los datos y luego se asigna un ROWID para cada
fila.
Se crean cuando una columna es explcitamente definida con PRIMARY KEY, UNIQUE Restriccin
de clave.
NOTA:
1) A pesar de que los ndices de SQL se crean para acceder a las filas de la tabla rpidamente,
reducir la velocidad de las operaciones DML como INSERT, UPDATE, DELETE en la tabla,
ya que los ndices y tablas se actualizan a lo largo de los dos cuando una operacin DML se
realiza. As que utilice ndices slo en columnas que se utilizan para buscar en la tabla de
frecuencia.
3) En la base de datos Oracle, puede definir un mximo de diecisis (16) columnas en un ndice.
23. SQL GRANT y REVOKE Statement
Comandos DCL se utilizan para reforzar la seguridad de base de datos en un entorno de usuario de base
de datos mltiples. Existen dos tipos de comandos DCL son GRANT y REVOKE. Slo la base de
datos del administrador o propietario del objeto de base de datos puede proporcionar / quitar privilegios
en un objeto de base de datos.
GRANT SQL es un comando que se utiliza para proporcionar acceso o privilegios en los objetos de
base de datos a los usuarios.
GRANT privilege_name
ON object_name
TO {user_name |PUBLIC |role_name}
[WITH GRANT OPTION];
Por ejemplo: GRANT SELECT ON empleado a usuario1; Este comando concede el permiso SELECT
en una tabla de empleados para user1.You debe utilizar la opcin WITH GRANT cuidado porque por
ejemplo si concede el privilegio SELECT sobre la tabla de empleados para el usuario 1 con la opcin
WITH GRANT, entonces user1 puede CONCESIN Privilegio SELECT sobre la tabla empleado a
otro usuario, como user2 etc. Ms tarde, si usted revoca el privilegio SELECT sobre los empleados de
user1, user2 todava tendr el privilegio SELECT sobre la tabla empleados.
El comando REVOKE quita los derechos de acceso o privilegios en los objetos de base de datos.
REVOKE privilege_name
ON object_name
FROM {user_name |PUBLIC |role_name}
Por ejemplo: REVOKE SELECT ON empleado de usuario1; Este comando REVOKE un privilegio
SELECT sobre la tabla de empleados de user1.When revoca el privilegio SELECT sobre una tabla de
un usuario, el usuario no podr seleccionar los datos de esa tabla ms. Sin embargo, si el usuario ha
recibido privilegios de SELECT sobre la tabla de ms de un usuario, l / ella puede seleccionar de esa
mesa hasta que todos los que concedi el permiso revocan. Usted no puede revocar los privilegios si no
se les concedi inicialmente por ti.
Los privilegios: Los privilegios se definen los derechos de acceso prestados a un usuario en un objeto
de base de datos. Hay dos tipos de privilegios.
1) privilegios del sistema - Esto permite al usuario crear, modificar o quitar objetos de base de
datos.
2) los privilegios de objeto - Esto permite al usuario ejecutar, SELECT, INSERT, UPDATE o
DELETE datos de objetos de base de datos a la que se aplican los privilegios.
System
Description
Privileges
Allows users to create the specified object in
CREATE object
their own schema.
CREATE ANY Allows users to create the specified object in
object any schema.
Las reglas anteriores se aplican tambin para ALTER y DROP privilegios del sistema.
Object
Description
Privileges
INSERT Allows users to insert rows into a table.
Allows users to select data from a database
SELECT
object.
UPDATE Allows user to update data in a table.
Allows user to execute a stored procedure
EXECUTE
or a function.
Roles: Los roles son un conjunto de privilegios o derechos de acceso. Cuando hay muchos usuarios en
una base de datos se hace difcil otorgar o revocar privilegios a los usuarios. Por lo tanto, si define las
funciones, puede otorgar o revocar privilegios a los usuarios, con lo que automticamente la concesin
o revocacin de privilegios. Usted puede crear funciones o utilizar las funciones del sistema
predefinidas por Oracle.
Algunos de los privilegios concedidos a las funciones del sistema es el que aparece a continuacin:
System Role Privileges Granted to the Role
CREATE TABLE, CREATE VIEW, CREATE
CONNECT SYNONYM, CREATE SEQUENCE, CREATE
SESSION etc.
CREATE PROCEDURE, CREATE SEQUENCE,
CREATE TABLE, CREATE TRIGGER, etc. The
RESOURCE
primary usage of the RESOURCE role is to
restrict access to database objects.
DBA ALL SYSTEM PRIVILEGES
Creacin de roles:
Por ejemplo: Para crear una funcin llamada "desarrollador" con la contrasea como "pwd", el cdigo
ser el siguiente:
Es ms fcil de conceder o revocar privilegios a los usuarios a travs de un papel en lugar de asignar
directamente un privilegio para todos los usuarios. Si el papel se identifica mediante una contrasea y,
a continuacin, cuando usted conceder o revocar los privilegios de la funcin, que sin duda tiene que
identificarse con la contrasea.
Por ejemplo: Para conceder permiso CREATE TABLE para un usuario mediante la creacin de un
puesto de probador:
En segundo lugar, conceder un privilegio CREATE TABLE para las pruebas ROLE. Usted puede
agregar ms privilegios al rol.
Por ejemplo: Para quitar una funcin llamada programador, puede escribir:
1) Funciones de una hilera: Hilera o funciones escalares devuelven un valor para cada fila que se
procesa en una consulta.
2) Funciones de Grupo: Estos grupos de funciones de las filas de datos en funcin de los valores
devueltos por la consulta. Esto se discute en las funciones de grupo de SQL. Las funciones de
grupo se utilizan para calcular los valores de agregado como total o media, que devuelven un
solo total o un valor medio despus de procesar un grupo de filas.
1) Funciones numricas: Estas son las funciones que aceptan una entrada numrica y devuelven
valores numricos.
2) Carcter o Funciones de texto: Estas son las funciones que aceptan entrada de caracteres y
puede volver carcter y valores numricos.
3) Funciones de fecha: Estas son funciones que toman valores que son del tipo de datos FECHA
como entrada y devuelven valores de tipo de datos FECHA, a excepcin de la funcin
MONTHS_BETWEEN, que devuelve un nmero.
4) Funciones de conversin: Estas son funciones que nos ayudan a convertir un valor en una
forma a otra forma. Por ejemplo: un valor nulo en un valor real, o un valor de un tipo de datos a
otro tipo de datos como NVL, TO_CHAR, TO_NUMBER, etc. TO_DATE
Puede combinar ms de una funcin junta en una expresin. Esto se conoce como la agrupacin de
funciones.
Se trata de una sola fila y una sola columna ficticia tabla proporcionada por Oracle. Esto se utiliza para
realizar clculos matemticos sin necesidad de utilizar una tabla.
Salida:
MANIQU
--------------
X
Salida:
777 * 888
-------------
689976
1) Funciones numricas:
Funciones numricas se utilizan para realizar operaciones con nmeros. Ellos aceptan valores
numricos como valores de entrada y de retorno numricos como de salida. Algunas de las funciones
numricas son:
Por ejemplo: Consideremos la tabla de productos utilizados en uniones SQL. Podemos utilizar
ROUND para redondear el unit_price al entero ms cercano, si un producto tiene precios en fraccin.
Funciones de caracteres o el texto se utilizan para manipular cadenas de texto. Ellos aceptan cadenas o
caracteres como entrada y puede volver carcter y los valores de nmero como de salida.
Pocos de los caracteres o funciones de texto son como se indica a continuacin:
Por ejemplo: podemos utilizar la funcin de texto anterior UPPER () con el valor de la columna de la
siguiente manera.
Los siguientes ejemplos se explican los usos del carcter expuesto, o funciones de texto
3) Funciones de fecha:
Estas son funciones que toman valores que son del tipo de datos FECHA como entrada y devuelven
valores de FECHA tipos de datos, excepto para la funcin MONTHS_BETWEEN, que devuelve un
nmero como salida.
4) Funciones de conversin:
Estas son funciones que nos ayudan a convertir un valor en una forma a otra forma. Por Ejemplo: un
valor nulo en un valor real, o un valor de un tipo de datos a otro tipo de datos como NVL, TO_CHAR,
TO_NUMBER, TO_DATE.
1) La consulta SQL se vuelve ms rpido si utiliza los nombres de las columnas reales en instruccin
SELECT en lugar de que '*'.
En lugar de:
SELECT *
FROM student_details;
2) HAVING se utiliza para filtrar las filas despus de todas las filas estn seleccionadas. Es como un
filtro. No utilizar la clusula HAVING para ningn otro propsito.
En lugar de:
En lugar de:
SELECT name
FROM employee
WHERE salary = (SELECT MAX(salary)
FROM employee_details)
AND age = (SELECT MAX(age)
FROM employee_details)
AND emp_dept = 'Electronics';
En lugar de:
5) Uso EXISTS en lugar de DISTINCT cuando se utilizan combinaciones que incluye tablas que tienen
de uno a varios.
En lugar de:
SELECT DISTINCT d.dept_id, d.dept
FROM dept d,employee e
WHERE e.dept = e.dept;
En lugar de:
En lugar de:
En lugar de:
En lugar de:
En lugar de:
En lugar de:
En lugar de:
En lugar de:
8) Utilice DECODE para evitar el escaneo de las mismas filas o se unen a la misma mesa repetitiva.
DECODE tambin se pueden hacer en lugar de GROUP BY u ORDER BY.
En lugar de:
SELECT DECODE(location,'Bangalore',id,NULL) id
FROM employee
WHERE name LIKE 'Ramesh%';
9) Para almacenar objetos binarios grandes, primero colocarlos en el sistema de archivos y agregar la
ruta del archivo en la base de datos.
10) Para escribir consultas que proporcionan un rendimiento eficiente seguir las reglas generales de
SQL estndar.
Idealmente, usted desea conseguir los mejores resultados al escribir consultas SQL, minimizando los
errores y obtener el mejor rendimiento de consulta cuando sea necesario. He aqu una pequea lista de
consejos consultas que pueden ayudarle en su trabajo las consultas SQL y que pueden SQL optimizado
para un mejor rendimiento.
1) Seleccionar slo las columnas necesarias, evitar el uso de SELECT *. En primer lugar, para cada
columna que no es necesario cada SQL Server realiza un trabajo adicional para recuperar y devolverlos
al cliente, y el segundo volumen de datos intercambiados entre el cliente y el servidor SQL aumenta
innecesario.
2) Seleccionar slo las filas necesarias. Las filas menos recuperados, ms rpida ser la consulta se
ejecutar.
3) Pode SELECT listas. Cada columna en la que se selecciona consume recursos de procesamiento.
Hay varias reas que pueden ser examinadas para determinar si la seleccin de la columna es realmente
necesario.
Si un SELECT contiene un predicado en una columna es igual a un valor, esa columna no tiene por qu
ser recuperada para cada fila, el valor siempre ser 'X'.
4) Cuando se crea una nueva tabla siempre crear un ndice agrupado nico pertenecer a ella,
posiblemente se trate de un tipo numrico.
5) Utilice JOIN en lugar de subconsultas. Como programador, subconsultas son algo que usted puede
tener la tentacin de usar y abusar de ella. Subconsultas, como mostraremos ms adelante, puede ser
muy til:
SELECT a.id,
(SELECT MAX(created)
FROM posts
WHERE author_id = a.id)
AS latest_post FROM authors a
Aunque subconsultas son tiles, a menudo puede ser reemplazado por una combinacin, que es
definitivamente ms rpido de ejecutar.