Sie sind auf Seite 1von 59

Comandos SQL

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.

Lenguaje de manipulacin de datos (DML) - Estos comandos SQL se utilizan para


almacenar, recuperar, modificar y eliminar datos. Estos comandos son SELECT, INSERT,
UPDATE y DELETE.

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.

Sintaxis de SQL instruccin SELECT:

SELECT column_list
FROM table-name
[WHERE Clause]
[GROUP BY clause]
[HAVING clause]
[ORDER BY clause];

nombre-tabla es el nombre de la tabla de la que se recupera la informacin.


column_list incluye una o ms columnas de las que se recuperan los datos.
El cdigo dentro de los parntesis es opcional.

Tabla base de student_details;

id first_name last_name age subject games


100 Rahul Sharma 10 Science Cricket
101 Anjali Bhagwat 12 Maths Football
102 Stephen Fleming 09 Science Cricket
103 Shekar Gowda 18 Maths Badminton
104 Priya Chandra 15 Economics Chess

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.

SELECT first_name, last_name


FROM student_details;
Tambin puede utilizar clusulas como WHERE, GROUP BY, HAVING, ORDER BY con instruccin
SELECT. Vamos a discutir estos comandos en los captulos siguientes.

NOTA: En una instruccin SQL SELECT slo SELECT y FROM declaraciones son obligatorios.
Otras clusulas como WHERE, ORDER BY, GROUP BY, HAVING son opcionales.

Cmo utilizar expresiones SQL instruccin SELECT?

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.

Los operadores se evalan en un orden especfico de prioridad, cuando ms de un operador aritmtico


se utiliza en una expresin. El orden de evaluacin es la siguiente: parntesis, divisin, multiplicacin,
suma y resta. La evaluacin se lleva a cabo desde la izquierda a la derecha de la expresin.

Por ejemplo: Si desea mostrar el nombre y el apellido de un empleado combinadas, la instruccin SQL
SELECT sera como:

SELECT first_name + ' ' + last_name


FROM employee;

Salida:

first_name + ' ' + last_name


----------------------------------
Rahul Sharma
Anjali Bhagwat
Stephen Fleming
Shekar Gowda
Priya Chandra

Tambin puede proporcionar alias como a continuacin.

SELECT first_name + ' ' + last_name AS emp_name


FROM employee;

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:

Los alias de las columnas:

SELECT first_name AS Name


FROM student_details;
or
SELECT first_name Name
FROM student_details;

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

Los alias de tablas:

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.

Alias es ms til cuando:

Hay ms de un tablas implicadas en una consulta,


Las funciones se utilizan en la consulta,
Los nombres de columna son grandes o no legibles,
Ms de un columnas se combinan juntos.
4. SQL Clusula WHERE
La clusula WHERE se utiliza cuando se desea recuperar informacin especfica de una tabla excluir
otros datos irrelevantes. Por ejemplo, si desea ver la informacin acerca de los estudiantes en la clase
10a slo entonces usted necesita la informacin sobre los alumnos de otra clase. Recuperacin de la
informacin acerca de todos los estudiantes aumentara el tiempo de procesamiento de la consulta.

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.

Sintaxis SQL Clusula WHERE:

WHERE {column or expression} comparison-operator value

Syntax for a WHERE clause with Select statement is:

SELECT column_list
FROM table-name WHERE condition;

columna o expresin - Es la columna de una tabla o una expresin


comparacin-operador - Operadores como = <> etctera
valor - Cualquier valor para el usuario o un nombre de columna para la comparacin

Por ejemplo: Para buscar el nombre de un estudiante con ID 100, la consulta sera:

SELECT first_name, last_name


FROM student_details
WHERE id = 100;

Operadores de comparacin y operadores lgicos se utilizan en la clusula WHERE. Estos operadores


se discuten en el siguiente captulo.

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.

Cmo utilizar expresiones en la clusula WHERE?

Las expresiones tambin se pueden utilizar en la clusula WHERE de la sentencia SELECT.

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:

name salary new_salary


------------ ---------- ---------------
Hrithik 35000 37000
Harsha 35000 37000
Priya 30000 36000

NOTA: Alias definidos en la instruccin SELECT se puede utilizar en la clusula WHERE.


5. SQL Operadores
Hay dos tipos de entidades, Operadores de comparacin y operadores lgicos. Estos operadores se
utilizan principalmente en la clusula WHERE, HAVING para filtrar los datos que desea seleccionar.

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.

La siguiente tabla describe cada operador de comparacin.

Comparison
Description
Operators
= equal to
<>, != is not equal to
< less than
> greater than
>= greater than or equal to
<= less than or equal to

Los operadores lgicos:

Hay tres operadores lgicos a saber AND, OR y NOT.

Los operadores lgicos se discuten en detalle en la siguiente seccin, Operadores lgicos


6. SQL Operadores lgicos
Hay tres operadores lgicos es decir, AND, OR y NOT. Estos operadores comparan dos condiciones a
la vez para determinar si una fila se puede seleccionar para la salida. Al recuperar los datos mediante
una instruccin SELECT, puede utilizar operadores lgicos en la clusula WHERE, que le permite
combinar ms de una condicin.

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.

"O" Operador lgico:

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,

SELECT first_name, last_name, subject


FROM student_details
WHERE subject = 'Maths' OR subject = 'Science'

La salida sera algo como:

first_name last_name subject


-------------- ------------- ---------
Anajali Bhagwat Maths
Shekar Gowda Maths
Rahul Sharma Science
Stephen Fleming Science

La siguiente tabla describe el operador lgico "O" selecciona una fila.

Column1 Column2
Row Selected
Satisfied? Satisfied?
YES YES YES
YES NO YES
NO YES YES
NO NO NO

Operador "AND" lgico:


Si desea seleccionar filas que deben cumplir todas las condiciones dadas, puede utilizar el operador
lgico AND.

Por ejemplo: Para encontrar los nombres de los estudiantes entre las edades 10 a 15 aos, la consulta
sera:

SELECT first_name, last_name, age


FROM student_details
WHERE age >= 10 AND age <= 15;

La salida sera algo como:

first_name last_name age


-------------- ------------- -----
Rahul Sharma 10
Anajali Bhagwat 12
Shekar Gowda 15

La siguiente tabla describe el operador lgico "Y" selecciona una fila.

Column1 Column2
Row Selected
Satisfied? Satisfied?
YES YES YES
YES NO NO
NO YES NO
NO NO NO

"NO" Operador lgico:

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:

SELECT first_name, last_name, games


FROM student_details
WHERE NOT games = 'Football'

La salida sera algo como:

first_name last_name games


--------------------------------------------
Rahul Sharma Cricket
Stephen Fleming Cricket
Shekar Gowda Badminton
Priya Chandra Chess
La siguiente tabla describe cmo lgico "NOT" operador selecciona una fila.

Column1 NOT Column1


Row Selected
Satisfied? Satisfied?
YES NO NO
NO YES YES

Anidadas Operadores lgicos:

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

SELECT statement would be


SELECT first_name, last_name, age, games
FROM student_details
WHERE age >= 10 AND age <= 15
OR NOT games = 'Football'

La salida sera algo como:

first_name last_name age games


-------------- ------------- ----- --------
Rahul Sharma 10 Cricket
Priya Chandra 15 Chess

En este caso, el filtro funciona de la siguiente manera:

Condicin 1: Todos los estudiantes que no juegan al ftbol estn seleccionados.


Condicin 2: Todos los estudiantes cuyas edades estn entre los 10 y 15 son seleccionados.
Condicin 3: Finalmente, el resultado es, las filas que satisfacen al menos una de las
condiciones anteriores se devuelve.

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.

SQL LIKE Operador

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'

SELECT first_name, last_name


FROM student_details
WHERE first_name LIKE 'S%';

La salida debera ser similar a:

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,

SELECT first_name, last_name


FROM student_details
WHERE first_name LIKE '_a%';
La salida debera ser similar a:

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'.

SQL BETWEEN... Operador AND

El operador entre y Y, se utilizan para comparar datos de un rango de valores.

Por ejemplo: para encontrar los nombres de los estudiantes entre las edades de 10 a 15 aos, la
consulta sera como,

SELECT first_name, last_name, age


FROM student_details
WHERE age BETWEEN 10 AND 15;

La salida debera ser similar a:

first_name last_name age


-------------- ------------- -----
Rahul Sharma 10
Anajali Bhagwat 12
Shekar Gowda 15

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,

SELECT first_name, last_name, subject


FROM student_details
WHERE subject IN ('Maths', 'Science');

La salida debera ser similar a:

first_name last_name subject


-------------- ------------- ---------
Anajali Bhagwat Maths
Shekar Gowda Maths
Rahul Sharma Science
Stephen Fleming Science

Puede incluir ms temas en la lista como ('matemticas', 'ciencia', 'historia')

NOTA: Los datos utilizados para comparar entre maysculas y minsculas.

SQL operador IS NULL

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.

SELECT first_name, last_name


FROM student_details
WHERE games IS NULL

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]];

Tabla "empleado" de la base de datos.

id name dept age salary location


100 Ramesh Electrical 24 25000 Bangalore
101 Hrithik Electronics 28 35000 Bangalore
102 Harsha Aeronautics 28 35000 Mysore
103 Soumya Electronics 22 20000 Bangalore
104 PriyaInfo Tech 25 30000 Mangalore

Por ejemplo: Si usted desea ordenar la tabla de empleados por salario del empleado, la consulta SQL
sera.

SELECT name, salary


FROM employee
ORDER BY salary;

La salida sera como:

name salary
---------- --------
Soumya 20000
Ramesh 25000
Priya 30000
Hrithik 35000
Harsha 35000

La consulta ordena primero el resultado en funcin del nombre y luego lo muestra.

Tambin puede utilizar ms de una columna en la clusula ORDER BY.

Si usted desea ordenar la tabla de empleados con el nombre y el salario, la consulta sera como,

SELECT name, salary


FROM employee
ORDER BY name, salary;

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.

La consulta anterior tambin se puede escribir como se indica a continuacin,

SELECT name, salary


FROM employee
ORDER BY 1, 2;

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.

SELECT name, salary


FROM employee
ORDER BY name, salary DESC;

El tipo de consulta sobre el nico 'salario' de la columna en orden descendente y 'nombre' de la


columna en orden ascendente.

Si desea seleccionar el nombre y salario en orden descendente, la consulta sera la que se indica a
continuacin.

SELECT name, salary


FROM employee
ORDER BY name DESC, salary DESC;

Cmo utilizar expresiones en la clusula ORDER BY?

Las expresiones de la clusula ORDER BY de una instruccin SELECT.

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.

SELECT name, salary, salary*1.2 AS new_salary


FROM employee
WHERE salary*1.2 > 30000
ORDER BY new_salary DESC;
La salida de la consulta anterior es como sigue.

name salary new_salary


--------- -------- ---------------
Hrithik 35000 37000
Harsha 35000 37000
Priya 30000 36000

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:

SELECT COUNT (*)


FROM employee
WHERE dept = 'Electronics';

La salida sera filas '2'.

Si desea que el nmero total de empleados en todo el departamento, la consulta tendra la forma:

SELECT COUNT (*)


FROM employee;

La salida sera filas '5'.

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:

SELECT DISTINCT dept


FROM employee;

Para obtener el nmero de empleados con nombre nico, la consulta sera:

SELECT COUNT (DISTINCT name)


FROM employee;

SQL MAX (): Esta funcin se utiliza para obtener el valor mximo de una columna.

Para obtener el salario mximo por un empleado, la consulta sera:

SELECT MAX (salary)


FROM employee;

SQL MIN (): Esta funcin se utiliza para obtener el valor mnimo de una columna.

Para obtener el salario mnimo por un empleado, la consulta sera:


SELECT MIN (salary)
FROM employee;

SQL AVG (): Esta funcin se utiliza para obtener el valor promedio de una columna numrica.

Para obtener el salario promedio, la consulta sera:

SELECT AVG (salary)


FROM employee;

SQL SUM (): Esta funcin se utiliza para obtener la suma de una columna numrica.

Para obtener el salario total proporcionados a sus empleados,

SELECT SUM (salary)


FROM employee;
10. SQL GROUP BY Clusula
El SQL GROUP BY Clusula se usa junto con las funciones de grupo para recuperar datos agrupados
de acuerdo a una o ms columnas.

Por ejemplo: Si desea conocer el importe total del sueldo gastado en cada departamento, la consulta
sera:

SELECT dept, SUM (salary)


FROM employee
GROUP BY dept;

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.

SELECT location, dept, SUM (salary)


FROM employee
GROUP BY location, dept;

La salida sera:

location dept salary


--------------------------------------------
Bangalore Electrical 25000
Bangalore Electronics 55000
Mysore Aeronautics 35000
Mangalore InfoTech 30000
11. SQL Clusula HAVING
La clusula HAVING se utiliza para filtrar datos basados en las funciones de grupo. Esto es similar a la
condicin WHERE, pero se utiliza con funciones de grupo. Las funciones de grupo no se pueden
utilizar en la clusula WHERE pero se puede utilizar en la clusula HAVING.

SQL Clusula HAVING Ejemplo:

Si desea seleccionar el departamento que tiene sueldo total pagado a sus empleados ms de 25000, la
consulta SQL sera;

SELECT dept, SUM (salary)


FROM employee
GROUP BY dept
HAVING SUM (salary) > 25000

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.

Podemos insertar datos en una tabla de dos maneras,

1) Introduccin de los datos directamente en una tabla.

Sintaxis de INSERT SQL es la siguiente:

INSERT INTO TABLE_NAME


[(col1, col2, col3...colN)]
VALUES (value1, value2, value3...valueN);

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:

INSERT INTO TABLE_NAME


VALUES (value1, value2, value3...valueN);

Por ejemplo: Si desea insertar una fila a la tabla de empleados, la consulta sera como,

INSERT INTO employee (id, name, dept, age, salary location)


VALUES (105, 'Srinath', 'Aeronautics', 27, 33000);

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.

INSERT INTO employee


VALUES (105, 'Srinath', 'Aeronautics', 27, 33000);

Insertar datos en una tabla a travs de una instruccin select.

Sintaxis de INSERT SQL es la siguiente:

INSERT INTO table_name [(column1, column2... columnN)]


SELECT column1, column2...columnN
FROM table_name [WHERE condition];
Por ejemplo: Para insertar una fila en la tabla de empleados de una tabla temporal, la consulta SQL
INSERT sera como,

INSERT INTO employee (id, name, dept, age, salary location)


SELECT emp_id, emp_name, dept, age, salary, location
FROM temp_employee;

Si est insertando datos en todas las columnas, la instruccin de insercin anterior tambin se puede
escribir como,

INSERT INTO employee


SELECT * FROM temp_employee;

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.

La sintaxis SQL para comandos de UPDATE es:

UPDATE table_name
SET column_name1 = value1,
column_name2 = value2...
[WHERE condition]

table_name - el nombre de la tabla que tiene que ser actualizado.


column_name1, column_name2... - Las columnas que se cambia.
valor1, valor2... - Son los nuevos valores.

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;

Para cambiar los salarios de todos los empleados, la consulta sera:

UPDATE employee
SET salary = salary + (salary * 0.2);
14. SQL DELETE
La sentencia DELETE se utiliza para eliminar filas de una tabla.

La sintaxis de una instruccin SQL DELETE es:

DELETE FROM table_name [WHERE condition];

table_name - el nombre de la tabla que tiene que ser actualizado.

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,

DELETE FROM employee WHERE id = 100;

Para eliminar todas las filas de la tabla de empleados, la consulta sera como,

DELETE FROM employee;

TRUNCATE SQL Statement


El comando SQL TRUNCATE se utiliza para eliminar todas las filas de la tabla y liberar el espacio que
contiene la tabla.

Sintaxis de una instruccin para truncar una tabla:

TRUNCATE TABLE table_name;

Por ejemplo: Para eliminar todas las filas de la tabla empleado, la consulta sera como,

TRUNCATE TABLE employee;

Diferencia entre DELETE y TRUNCATE declaraciones:

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.

Instruccin SQL DROP:


El comando DROP de SQL se utiliza para eliminar un objeto de la base de datos. Si se elimina una
tabla, todas las filas de la tabla se elimina y la estructura de la tabla se elimina de la base de datos. Una
vez que una mesa se cae, no se puede recuperar, as que tenga cuidado al utilizar el comando DROP.
Cuando una tabla se elimina todas las referencias a la tabla no ser vlida.

Sintaxis para dejar caer una estructura de tabla sql:

DROP TABLE table_name;

Por ejemplo: Para disminuir el empleado tabla, la consulta sera como:

DROP TABLE employee;

Diferencia entre la cada y la declaracin TRUNCATE:

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.

La sintaxis de la sentencia CREATE TABLE es:

CREATE TABLE table_name


(column_name1 datatype,
column_name2 datatype,
... column_nameN datatype
);

table_name - Es el nombre de la tabla.


column_name1, column_name2.... - Es el nombre de las columnas
datatype - Es el tipo de dato de la columna como etc. char, fecha en nmero,

Por ejemplo: Si desea crear la tabla de empleados, la instruccin sera como,

CREATE TABLE employee


(id number(5),
name char(20),
dept char(10),
age number(2),
salary number(10),
location char(10)
);

En la base de datos Oracle, el tipo de datos para una columna entera se representa como "nmero". En
Sybase se representa como "int".

Oracle proporciona otra forma de crear una tabla.

CREATE TABLE temp_employee


SELECT * FROM employee

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.

1) Aadiendo, gota, modificar columnas de la tabla


2) Agregar y quitar restricciones
3) Habilitar y deshabilitar las restricciones

Sintaxis para agregar una columna

ALTER TABLE table_name ADD column_name datatype;

Por ejemplo: Para agregar una columna de "experiencia" de la tabla de empleados, la consulta sera
como:

ALTER TABLE employee ADD experience number(3);

Sintaxis para eliminar una columna

ALTER TABLE table_name DROP column_name;

Por ejemplo: Para quitar la columna "ubicacin" de la tabla de empleados, la consulta sera como:

ALTER TABLE employee DROP location;

Sintaxis para modificar una columna

ALTER TABLE table_name MODIFY column_name datatype;

Por ejemplo: Para modificar el sueldo de columna en la tabla de empleados, la consulta sera como:

ALTER TABLE employee MODIFY salary number(15,2);

SQL Comando RENAME

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.

Sintaxis para cambiar el nombre de una tabla

RENAME old_table_name To new_table_name;

Por ejemplo: Para cambiar el nombre de la tabla a my_employee empleado, la consulta sera como:

RENAME employee TO my_emloyee;


17. SQL restricciones de integridad
Restricciones de integridad se utilizan para aplicar las reglas de negocio para las tablas de base de
datos.

Las restricciones disponibles en SQL son: Clave fornea, Null Check Unique,

Las restricciones se pueden definir de dos formas

1) Las restricciones pueden especificarse inmediatamente despus de la definicin de columna.


Esto se conoce como el nivel de columna definicin.
2) Las restricciones pueden especificarse despus de todas las columnas se definen. Esto se conoce
como nivel de tabla definicin.

1) SQL clave principal:

Esta restriccin define una columna o combinacin de columnas que identifica de forma nica cada fila
de la tabla.

Sintaxis para definir una clave principal a nivel de la columna:

column name datatype [CONSTRAINT constraint_name] PRIMARY KEY

Sintaxis para definir una clave principal a nivel de tabla:

[CONSTRAINT constraint_name] PRIMARY KEY (column_name1,column_name2,..)

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.

Clave principal a nivel de la columna:

CREATE TABLE employee


( id number(5) PRIMARY KEY,
name char(20),
dept char(10),
age number(2),
salary number(10),
location char(10));

CREATE TABLE employee


( id number(5) CONSTRAINT emp_id_pk PRIMARY KEY,
name char(20),
dept char(10),
age number(2),
salary number(10),
location char(10));

Clave principal a nivel de la columna:

CREATE TABLE employee


( id number(5),
name char(20),
dept char(10),
age number(2),
salary number(10),
location char(10),
CONSTRAINT emp_id_pk PRIMARY KEY (id));

Clave principal a nivel de tabla:

CREATE TABLE employee


( id number(5), NOT NULL,
name char(20),
dept char(10),
age number(2),
salary number(10),
location char(10),
ALTER TABLE employee ADD CONSTRAINT PK_EMPLOYEE_ID PRIMARY KEY (id));

2) SQL Clave externa o la integridad referencial:

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.

Sintaxis para definir una clave externa a nivel de la columna:

[CONSTRAINT constraint_name] REFERENCES Referenced_Table_name(column_name)

Sintaxis para definir una clave externa a nivel de tabla:

[CONSTRAINT constraint_name] FOREIGN KEY(column_name) REFERENCES


referenced_table_name(column_name);

Por ejemplo:

1) Vamos a usar el "producto" y "tabla order_items".

Clave externa a nivel de la columna:


CREATE TABLE product
( product_id number(5) CONSTRAINT pd_id_pk PRIMARY KEY,
product_name char(20),
supplier_name char(20),
unit_price number(10));

CREATE TABLE order_items


( order_id number(5) CONSTRAINT od_id_pk PRIMARY KEY,
product_id number(5) CONSTRAINT pd_id_fk REFERENCES, product(product_id),
product_name char(20),
supplier_name char(20),
unit_price number(10));

Clave externa a nivel de tabla:

CREATE TABLE order_items


( order_id number(5) ,
product_id number(5),
product_name char(20),
supplier_name char(20),
unit_price number(10)
CONSTRAINT od_id_pk PRIMARY KEY(order_id),
CONSTRAINT pd_id_fk FOREIGN KEY(product_id) REFERENCES product(product_id));

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,

CREATE TABLE employee


( id number(5) PRIMARY KEY,
name char(20),
dept char(10),
age number(2),
mgr_id number(5) REFERENCES employee(id),
salary number(10),
location char(10) );

3) SQL No es nulo Restriccin:

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.

Sintaxis para definir una restriccin NOT NULL:

[CONSTRAINT constraint name] NOT NULL

Por ejemplo: Para crear una tabla de empleados con valor nulo, la consulta sera como

CREATE TABLE employee


( id number(5),
name char(20) CONSTRAINT nm_nn NOT NULL,
dept char(10),
age number(2),
salary number(10),
location char(10) );

4) SQL Unique Key:

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.

Sintaxis para definir una clave nica a nivel de la columna:

[CONSTRAINT constraint_name] UNIQUE

Sintaxis para definir una clave nica a nivel de tabla:

[CONSTRAINT constraint_name] UNIQUE(column_name)

Por ejemplo: Para crear una tabla de empleados con clave nica, la consulta sera como,

Clave nica a nivel de la columna:

CREATE TABLE employee


( id number(5) PRIMARY KEY,
name char(20),
dept char(10),
age number(2),
salary number(10),
location char(10) UNIQUE );

CREATE TABLE employee


( id number(5) PRIMARY KEY,
name char(20),
dept char(10),
age number(2),
salary number(10),
location char(10) CONSTRAINT loc_un UNIQUE );

Clave nica a nivel de tabla:

CREATE TABLE employee


( id number(5) PRIMARY KEY,
name char(20),
dept char(10),
age number(2),
salary number(10),
location char(10),
CONSTRAINT loc_un UNIQUE(location));

5) SQL restriccin CHECK:

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.

Sintaxis para definir una restriccin de comprobacin:

[CONSTRAINT constraint_name] CHECK (condition)

Por ejemplo: En la tabla de empleados para seleccionar el sexo de una persona, la consulta sera como

Restriccin de comprobacin a nivel de la columna:

CREATE TABLE employee


( id number(5) PRIMARY KEY,
name char(20),
dept char(10),
age number(2),
gender char(1) CHECK (gender in ('M','F')),
salary number(10),
location char(10) );

Restriccin de comprobacin a nivel de tabla:

CREATE TABLE employee


( id number(5) PRIMARY KEY,
name char(20),
dept char(10),
age number(2),
gender char(1),
salary number(10),
location char(10),
CONSTRAINT gender_ck CHECK (gender in ('M','F')) );
18. SQL se une
SQL combinaciones se utilizan para relacionar la informacin en tablas diferentes. Una condicin de
unin es una parte de la consulta SQL que recupera filas de dos o ms tablas. Una condicin SQL Join
se utiliza en la clusula WHERE de SQL de seleccin, actualizacin, supresin declaraciones.

La sintaxis para unir dos tablas es:

SELECT col1, col2, col3...


FROM table_name1, table_name2
WHERE table_name1.col2 = table_name2.col1;

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.

Tabla "producto" de la base de datos;

product_id product_name supplier_name unit_price


100 Camera Nikon 300
101 Television Onida 100
102 Refrigerator Vediocon 150
103 Ipod Apple 75
104 Mobile Nokia 50

Tabla "order_items" de la base de datos;

order_id product_id total_units customer


5100 104 30 Infosys
5101 102 5 Satyam
5102 103 25 Wipro
5103 101 10 TCS

SQL se une se pueden clasificar en Equi unin y no Equi unirse.

1) se une a SQL Equi

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>, <,>=, <=

1) SQL Equi Combinaciones:

Una combinacin de igualdad se clasifica en dos categoras:

a. SQL Inner Join


b. SQL Outer Join

a) SQL Inner Join:

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.

La consulta de este tipo de uniones SQL sera como,

SELECT order_id, product_name, unit_price, supplier_name, total_units


FROM product, order_items
WHERE order_items.product_id = product.product_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,

SELECT o.order_id, p.product_name, p.unit_price, p.supplier_name, o.total_units


FROM product p, order_items o
WHERE o.product_id = p.product_id;

b) SQL Outer Join:

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:

SELECT p.product_id, p.product_name, o.order_id, o.total_units


FROM order_items o, product p
WHERE o.product_id (+) = p.product_id;

La salida sera como,

product_id product_name order_id total_units


-------------- ------------------- ----------- --------------
100 Camera
101 Television 5103 10
102 Refrigerator 5101 5
103 Ipod 5102 25
104 Mobile 5100 30

NOTA: Si el operador (+) se utiliza en el lado izquierdo de la condicin de unin es equivalente a la


combinacin externa izquierda. Si se utiliza en el lado derecho de la condicin de unin es equivalente
a combinacin externa derecha.

SQL Ser Ingreso:

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.

La consulta siguiente es un ejemplo de una autocombinacin,

SELECT a.sales_person_id, a.name, a.manager_id, b.sales_person_id, b.name


FROM sales_person a, sales_person b
WHERE a.manager_id = b.sales_person_id;

2) SQL no Equi Ingreso:

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'

La salida sera algo como:

first_name last_name subject


-------------- ------------- ---------
Anajali Bhagwat Maths
Shekar Gowda Maths
Rahul Sharma Science
Stephen Fleming Science
19. SQL RENAME Statement
Con sentencia RENAME se puede cambiar el nombre de una tabla.

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.

Sintaxis SQL para cambiar el nombre es:

RENAME TABLE {tbl_name} TO {new_tbl_name};

Donde {} tbl_name tabla existente en la base de datos actual, y {} new_tbl_name es el nombre de la


nueva tabla.

En cuanto a Oracle tambin se puede utilizar la siguiente opcin:

ALTER TABLE {tbl_name} RENAME TO {new_tbl_name};

Como en el Ejemplo

CREATE TABLE employees


( id NUMBER(6),
name VARCHAR(20)
);
INSERT INTO employees( id, name ) values( 1, 'name 1');
INSERT INTO employees( id, name ) values( 2, 'name 2');
INSERT INTO employees( id, name ) values( 3, 'name 3');

SELECT * FROM employees;

Seleccione Salida:

id name
-------------------
1 name 1
2 name 2
3 name 3

RENAME TABLE employees TO employees_new;

SELECT * FROM employees_new;

Seleccione Salida:
id name
-------------------
1 name 1
2 name 2
3 name 3

SQL renombrar notas

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.

La sintaxis para crear una vista SQL es

CREATE VIEW view_name


AS
SELECT column_list
FROM table_name [WHERE condition];

view_name es el nombre de la vista.


La instruccin SELECT se utiliza para definir las columnas y filas que desea mostrar en la
vista.

Por ejemplo: para crear una vista en la tabla de productos de la consulta SQL sera como:

CREATE VIEW view_product


AS
SELECT product_id, product_name
FROM product;
21. SQL subconsulta
Subconsulta o consulta interna o consultas anidadas es una consulta en una consulta. Una subconsulta
se suele aadir en la clusula WHERE de la sentencia SQL. La mayora de las veces, una subconsulta
se utiliza cuando usted sabe cmo buscar un valor usando una instruccin SELECT, pero no sabe el
valor exacto.

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,

SELECT first_name, last_name, subject


FROM student_details
WHERE games NOT IN ('Cricket', 'Football');

La salida debera ser similar a:

first_name last_name subject


---------------------------------------------
Shekar Gowda Badminton
Priya Chandra Chess

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,

SELECT id, first_name


FROM student_details
WHERE first_name IN ('Rahul', 'Stephen');

Pero si usted no sabe sus nombres, luego de obtener su id tiene que escribir la consulta de esta manera,

SELECT id, first_name


FROM student_details
WHERE first_name IN (SELECT first_name
FROM student_details
WHERE subject= 'Science');

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.

INSERT INTO maths_group(id, name)


SELECT id, first_name || ' ' || last_name
FROM student_details WHERE subject= 'Maths'

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.

SELECT p.product_name, p.supplier_name,


(SELECT order_id from order_items
WHERE product_id = 101) as order_id from product p where p.product_id = 101

product_name supplier_name order_id


-----------------------------------------------------------------
Television Onida 5103

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.

SELECT p.product_name FROM product p


WHERE p.product_id = (SELECT o.product_id FROM order_items o
WHERE o.product_id = p.product_id);

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.

Sintaxis para crear ndice:

CREATE INDEX index_name


ON table_name (column_name1,column_name2...);

Sintaxis SQL para crear el ndice nico:

CREATE UNIQUE INDEX index_name


ON table_name (column_name1, column_name2...);

index_name es el nombre del ndice.


table_name es el nombre de la tabla a la que pertenece la columna indizada.
column_name1, column_name2... es la lista de columnas que componen el ndice.

En Oracle, hay dos tipos de ndices SQL a saber, implcitas y explcitas.

Los ndices implcitos:

Se crean cuando una columna es explcitamente definida con PRIMARY KEY, UNIQUE Restriccin
de clave.

Los ndices explcitos:

Se crean utilizando el "create index" sintaxis.

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.

2) No es necesario para crear ndices en la tabla que tienen menos datos.

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.

SQL GRANT Comando

GRANT SQL es un comando que se utiliza para proporcionar acceso o privilegios en los objetos de
base de datos a los usuarios.

La sintaxis para el comando GRANT es:

GRANT privilege_name
ON object_name
TO {user_name |PUBLIC |role_name}
[WITH GRANT OPTION];

privilege_name es el derecho de acceso o privilegio concedido al usuario. Algunos de los


derechos de acceso son ALL, EXECUTE, y SELECT.
object_name es el nombre de un objeto de base de datos como tablas, vistas, procedimiento
almacenado y SEQUENCE.
user_name es el nombre del usuario al que un derecho de acceso se concede.
PBLICO se utiliza para otorgar derechos de acceso a todos los usuarios.
ROLES son un conjunto de privilegios agrupados.
WITH GRANT OPTION - Permite a un usuario para conceder derechos de acceso a otros
usuarios.

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.

SQL REVOKE comandos:

El comando REVOKE quita los derechos de acceso o privilegios en los objetos de base de datos.

La sintaxis para el comando REVOKE es:

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 y roles:

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.

Pocos privilegios del sistema crea se enumeran a continuacin:

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.

Pocos de los privilegios de objeto son los siguientes:

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:

La sintaxis para crear una funcin es:

CREATE ROLE role_name


[IDENTIFIED BY password];

Por ejemplo: Para crear una funcin llamada "desarrollador" con la contrasea como "pwd", el cdigo
ser el siguiente:

CREATE ROLE testing


[IDENTIFIED BY pwd];

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.

Podemos conceder o revocar privilegios a una funcin de la siguiente manera.

Por ejemplo: Para conceder permiso CREATE TABLE para un usuario mediante la creacin de un
puesto de probador:

En primer lugar, crear un puesto de probador

CREATE ROLE testing

En segundo lugar, conceder un privilegio CREATE TABLE para las pruebas ROLE. Usted puede
agregar ms privilegios al rol.

GRANT CREATE TABLE TO testing;

En tercer lugar, otorgar el rol a un usuario.

GRANT testing TO user1;

Para revocar un privilegio CREATE TABLE prueba de funcin, puede escribir:


REVOKE CREATE TABLE FROM testing;

La sintaxis para quitar una funcin de la base de datos es la siguiente:

DROP ROLE role_name;

Por ejemplo: Para quitar una funcin llamada programador, puede escribir:

DROP ROLE testing;


24. Oracle construido en funciones
Hay dos tipos de funciones en Oracle.

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.

Hay cuatro tipos de funciones de una sola fila. Ellos son:

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.

Qu es una tabla DUAL en Oracle?

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.

SELECT * FROM DUAL

Salida:

MANIQU
--------------
X

SELECT 777 * 888 FROM Dual

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:

Function Name Return Value


ABS (x) Absolute value of the number 'x'
Integer value that is Greater than or equal to the
CEIL (x)
number 'x'
Integer value that is Less than or equal to the
FLOOR (x)
number 'x'
Truncates value of number 'x' up to 'y' decimal
TRUNC (x, y)
places
Rounded off value of the number 'x' up to the
ROUND (x, y)
number 'y' decimal places

Los siguientes ejemplos se explican el uso de las funciones numricas anteriores

Function Name Examples Return Value


ABS (1) 1
ABS (x)
ABS (-1) -1
CEIL (2.83) 3
CEIL (x) CEIL (2.49) 3
CEIL (-1.6) -1
FLOOR (2.83) 2
FLOOR (x) FLOOR (2.49) 2
FLOOR (-1.6) -2
ROUND (125.456, 1) 125.4
TRUNC (x, y) ROUND (125.456, 0) 125
ROUND (124.456, -1) 120
TRUNC (140.234, 2) 140.23
TRUNC (-54, 1) 54
ROUND (x, y)
TRUNC (5.7) 5
TRUNC (142, -1) 140

Estas funciones se pueden utilizar en las columnas de la base de datos.

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.

SELECT ROUND (unit_price) FROM product;

2) Carcter o Funciones de texto:

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:

Function Name Return Value


All the letters in 'string_value' is
LOWER (string_value)
converted to lowercase.
All the letters in 'string_value' is
UPPER (string_value)
converted to uppercase.
INITCAP All the letters in 'string_value' is
(string_value) converted to mixed case.
LTRIM (string_value, All occurrences of 'trim_text' is
trim_text) removed from the left of 'string_value'.
All occurrences of 'trim_text' is
RTRIM (string_value,
removed from the right of
trim_text)
'string_value'.
All occurrences of 'trim_text' from the
TRIM (trim_text left and right of 'string_value' ,
FROM string_value) 'trim_text' can also be only one
character long
Returns 'n' number of characters from
SUBSTR (string_value,
'string_value' starting from the 'm'
m, n)
position.
LENGTH Number of characters in 'string_value'
(string_value) in returned.
Returns 'string_value' left-padded with
LPAD (string_value, n,
'pad_value' . The length of the whole
pad_value)
string will be of 'n' characters.
Returns 'string_value' right-padded
RPAD (string_value, n,
with 'pad_value' . The length of the
pad_value)
whole string will be of 'n' characters.

Por ejemplo: podemos utilizar la funcin de texto anterior UPPER () con el valor de la columna de la
siguiente manera.

SELECT UPPER (product_name) FROM product;

Los siguientes ejemplos se explican los usos del carcter expuesto, o funciones de texto

Function Name Examples Return Value


LOWER(string_value) LOWER('Good Morning') good morning
UPPER(string_value) UPPER('Good Morning') GOOD MORNING
INITCAP(string_value) INITCAP('GOOD MORNING') Good Morning
LTRIM ('Good Morning',
LTRIM(string_value, trim_text) Morning
'Good)
RTRIM (string_value, RTRIM ('Good Morning', '
Good
trim_text) Morning')
TRIM (trim_text FROM TRIM ('o' FROM 'Good
Gd Mrning
string_value) Morning')
SUBSTR (string_value, m, n) SUBSTR ('Good Morning', 6, 7) Morning
LENGTH (string_value) LENGTH ('Good Morning') 12
LPAD (string_value, n,
LPAD ('Good', 6, '*') **Good
pad_value)
RPAD (string_value, n,
RPAD ('Good', 6, '*') Good**
pad_value)

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.

Pocas funciones de fecha es el que aparece a continuacin.

Function Name Return Value


Returns a date value after adding 'n'
ADD_MONTHS (date, n)
months to the date 'x'.
MONTHS_BETWEEN (x1, Returns the number of months
x2) between dates x1 and x2.
Returns the date 'x' rounded off to the
nearest century, year, month, date,
ROUND (x, date_format)
hour, minute, or second as specified
by the 'date_format'.
Returns the date 'x' lesser than or equal
to the nearest century, year, month,
TRUNC (x, date_format)
date, hour, minute, or second as
specified by the 'date_format'.
Returns the next date of the
NEXT_DAY (x, week_day) 'week_day' on or after the date 'x'
occurs.
It is used to determine the number of
LAST_DAY (x) days remaining in a month from the
date 'x' specified.
Returns the systems current date and
SYSDATE
time.
NEW_TIME (x, zone1, Returns the date and time in zone2 if
zone2) date 'x represents the time in zone1.

La tabla a continuacin proporciona los ejemplos de las funciones anteriores

Function Name Examples Return Value


ADD_MONTHS ('16-
ADD_MONTHS ( ) 16-Dec-81
Sep-81', 3)
MONTHS_BETWEEN
MONTHS_BETWEEN( ) ('16-Sep-81', '16-Dec- 3
81')
NEXT_DAY ('01-Jun-
NEXT_DAY( ) 04-JUN-08
08', 'Wednesday')
LAST_DAY ('01-Jun-
LAST_DAY( ) 30-Jun-08
08')
NEW_TIME ('01-Jun-
NEW_TIME( ) 31-May-08
08', 'IST', 'EST')

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.

Algunas de las funciones de conversin disponibles en Oracle son los siguientes:

Function Name Return Value


Converts Numeric and Date values to a
TO_CHAR (x [,y]) character string value. It cannot be used for
calculations since it is a string value.
Converts a valid Numeric and Character
TO_DATE (x [,
values to a Date value. Date is formatted to
date_format])
the format specified by 'date_format'.
If 'x' is NULL, replace it with 'y'. 'x' and 'y'
NVL (x, y)
must be of the same datatype.
Checks the value of 'a', if a = b, then
DECODE (a, b, c, d,
returns 'c'. If a = d, then returns 'e'. Else,
e, default_value)
returns default_value.

La tabla a continuacin proporciona los ejemplos de las funciones anteriores

Function Name Examples Return Value


TO_CHAR (3000, '$9999') $3000
TO_CHAR () TO_CHAR (SYSDATE, 'Day, Monday, June
Month YYYY') 2008
TO_DATE () TO_DATE ('01-Jun-08') 01-Jun-08
NVL () NVL (null, 1) 1
25. SQL Tuning o la optimizacin de SQL
Sentencias SQL se utilizan para recuperar datos de la base de datos. Podemos obtener los mismos
resultados al escribir consultas SQL diferentes. Pero el uso de la mejor consulta es importante cuando
se considera el rendimiento. As que hay que ajuste consulta SQL sobre la base de los requisitos. Aqu
est la lista de consultas que usamos reqularly y cmo estas consultas SQL puede ser optimizado para
un mejor rendimiento.

SQL Tuning / SQL Tcnicas de optimizacin:

1) La consulta SQL se vuelve ms rpido si utiliza los nombres de las columnas reales en instruccin
SELECT en lugar de que '*'.

Por ejemplo: Escriba la consulta como

SELECT id, first_name, last_name, age, subject


FROM student_details;

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.

Por ejemplo: Escriba la consulta como:

SELECT subject, count(subject)


FROM student_details
WHERE subject != 'Science'
AND subject != 'Maths'
GROUP BY subject;

En lugar de:

SELECT subject, count(subject)


FROM student_details
GROUP BY subject
HAVING subject!= 'Vancouver' AND subject!= 'Toronto';

3) A veces usted puede tener ms de un subconsultas en la consulta principal. Trate de minimizar el


nmero de bloque subconsulta en su consulta.

Por ejemplo: Escriba la consulta como:


SELECT name
FROM employee
WHERE (salary, age ) = (SELECT MAX (salary),
MAX (age)
FROM employee_details)
AND dept = 'Electronics';

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';

4) Uso operador EXISTS, IN y uniones de tablas apropiadamente en su consulta.

a) Generalmente en cuenta el rendimiento ms lento.


b) IN es eficiente cuando la mayor parte de los criterios de filtro se encuentra en la sub-
consulta.
c) EXISTS es eficiente cuando la mayor parte de los criterios de filtro en la consulta principal.

Por ejemplo: Escriba la consulta como

Select * from product p


where EXISTS (select * from order_items o
where o.product_id = p.product_id)

En lugar de:

Select * from product p


where product_id IN
(select product_id from order_items

5) Uso EXISTS en lugar de DISTINCT cuando se utilizan combinaciones que incluye tablas que tienen
de uno a varios.

Por ejemplo: Escriba la consulta como:

SELECT d.dept_id, d.dept


FROM dept d
WHERE EXISTS ( SELECT 'X' FROM employee e
WHERE e.dept = d.dept);

En lugar de:
SELECT DISTINCT d.dept_id, d.dept
FROM dept d,employee e
WHERE e.dept = e.dept;

6) Trate de usar UNION ALL en lugar de UNION.

Por ejemplo: Escriba la consulta como:

SELECT id, first_name


FROM student_details_class10
UNION ALL
SELECT id, first_name
FROM sports_team;

En lugar de:

SELECT id, first_name, subject


FROM student_details_class10
UNION
SELECT id, first_name
FROM sports_team;

7) Tenga cuidado al utilizar las condiciones en la clusula WHERE.

Por ejemplo: Escriba la consulta como:

SELECT id, first_name, age


FROM student_details WHERE age > 10;

En lugar de:

SELECT id, first_name, age


FROM student_details WHERE age != 10;

Escriba la consulta como:

SELECT id, first_name, age


FROM student_details
WHERE first_name LIKE 'Chan%';

En lugar de:

SELECT id, first_name, age


FROM student_details
WHERE SUBSTR(first_name,1,3) = 'Cha';

Escriba la consulta como:


SELECT id, first_name, age
FROM student_details
WHERE first_name LIKE NVL ( :name, '%');

En lugar de:

SELECT id, first_name, age


FROM student_details
WHERE first_name = NVL ( :name, first_name);

Escriba la consulta como:

SELECT product_id, product_name


FROM product
WHERE unit_price BETWEEN MAX(unit_price) and MIN(unit_price);

En lugar de:

SELECT product_id, product_name


FROM product
WHERE unit_price >= MAX(unit_price)
and unit_price <= MIN(unit_price)

Escriba la consulta como:

SELECT id, name, salary


FROM employee
WHERE dept = 'Electronics'
AND location = 'Bangalore';

En lugar de:

SELECT id, name, salary


FROM employee
WHERE dept || location= 'ElectronicsBangalore';

El uso no columna de expresin en un lado de la consulta porque se procesarn antes.

Escriba la consulta como:

SELECT id, name, salary


FROM employee
WHERE salary < 25000;

En lugar de:

SELECT id, name, salary


FROM employee
WHERE salary + 10000 < 35000;
Escriba la consulta como

SELECT id, first_name, age


FROM student_details
WHERE age > 10;

En lugar de:

SELECT id, first_name, age


FROM student_details
WHERE age NOT = 10;

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.

Por ejemplo: Escriba la consulta como:

SELECT id FROM employee


WHERE name LIKE 'Ramesh%'
and location = 'Bangalore';

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.

a) Caso de uso nico para todos los verbos de SQL


b) Comience todos los verbos de SQL en una nueva lnea
c) Separe todas las palabras con un solo espacio
d) Verbos alineacin derecha o hacia la izquierda en el primer verbo de SQL
26. Principiante SQL Tutorial Tips
He aqu algunos consejos de SQL que pueden ahorrarle tiempo y problemas con su mesa de trabajo de
SQL, las sentencias SQL de comandos...

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.

SQL Tutorial Consejos:

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.

Ejemplo: WHERE (COL8 = 'X')

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.

SELECT a.id, MAX(p.created) AS latest_post


FROM authors a
INNER JOIN posts p
ON (a.id = p.author_id)
GROUP BY a.id