Sentencias Sql

F

computacion

SENTENCIAS SQL
CREATE
Este comando crea un objeto dentro de la base de datos. Puede ser una tabla, vista, índice, trigger, función,
procedimiento o cualquier otro objeto que el motor de la base de datos soporte.
Ejemplo (crear una tabla)
CREATE TABLE 'TABLA_NOMBRE' (
    'CAMPO_1' INT,
    'CAMPO_2' STRING
)
CREATE TABLE 'TABLA_NOMBRE' (
    'CAMPO_1' DOCUMENTO,
    'CAMPO_2' APELLIDO-NOMBRE-EDAD
)


ALTER
Este comando permite modificar la estructura de un objeto. Se pueden agregar/quitar campos a una tabla,
modificar el tipo de un campo, agregar/quitar índices a una tabla, modificar un trigger, etc.
Ejemplo (agregar columna a una tabla)
ALTER TABLE 'TABLA_NOMBRE' (
    ADD NUEVO_CAMPO INT UNSIGNED
)


DROP
Este comando elimina un objeto de la base de datos. Puede ser una tabla, vista, índice, trigger, función,
procedimiento o cualquier otro objeto que el motor de la base de datos soporte. Se puede combinar con la
sentencia ALTER.
Ejemplo
ALTER TABLE ''TABLA_NOMBRE''
(
    DROP COLUMN ''CAMPO_NOMBRE1''
)


TRUNCATE
Este comando trunca todo el contenido de una tabla. La ventaja sobre el comando DROP, es que si se quiere
borrar todo el contenido de la tabla, es mucho más rápido, especialmente si la tabla es muy grande. La
desventaja es que TRUNCATE sólo sirve cuando se quiere eliminar absolutamente todos los registros, ya que
no se permite la cláusula WHERE. Si bien, en un principio, esta sentencia parecería ser DML (Lenguaje de
Manipulación de Datos), es en realidad una DDL, ya que internamente, el comando TRUNCATE borra la tabla
y la vuelve a crear y no ejecuta ninguna transacción.
Ejemplo
TRUNCATE TABLE ''TABLA_NOMBRE1''
INSERT
Una sentencia INSERT de SQL agrega uno o más registros a una (y sólo una) tabla en una base de datos
relacional.


Forma básica
INSERT INTO ''tabla'' (''columna1'', [''columna2,... '']) VALUES (''valor1'', [''valor2,...''])


Las cantidades de columnas y valores deben ser iguales. Si una columna no se especifica, le será asignado el
valor por omisión. Los valores especificados (o implícitos) por la sentencia INSERT deberán satisfacer todas
las restricciones aplicables. Si ocurre un error de sintaxis o si alguna de las restricciones es violada, no se
agrega la fila y se devuelve un error.
Ejemplo
INSERT INTO agenda_telefonica (nombre, numero) VALUES ('Roberto Jeldrez', '4886850');
Cuando se especifican todos los valores de una tabla, se puede utilizar la sentencia acortada:


INSERT INTO ''tabla'' VALUES (''valor1'', [''valor2,...''])


Ejemplo (asumiendo que 'nombre' y 'número' son las únicas columnas de la tabla 'agenda_telefonica'):


INSERT INTO agenda_telefonica VALUES ('Roberto Jeldrez', '4886850');


                                   SENTENCIAS SQL PARA VISUAL BASIC
Visual Basic es un lenguaje de programación de propósito general, con una gran potencia en toda su
estructura. Su implementación en el sistema operativo Windows y sus herramientas visuales, han hecho de
este lenguaje un líder indiscutible en lo que a desarrollo de aplicaciones se refiere. Con la versión 3.0. se
implementó la gestión de bases de datos a muy alto nivel, pudiendo gestionar bases de datos de tipo Access,
Paradox, dBASE, FoxPro, etc.
Este paso de gigante ha hecho de Visual Basic uno de los lenguajes favoritos por los desarrolladores de
aplicaciones de bases de datos, en especial el hecho de que Visual Basic implemente el lenguaje SQL, uno de
los más potentes y sencillos lenguajes de bases de datos.
¿Qué es sql?
SQL (Structured Query Language ó Lenguaje Estructurado de Consulta), es un lenguaje bastante sencillo,
principalmente orientado a bases de datos y, sobre todo, al manejo de consultas. Visual Basic incorpora esta
extensión junto a nuestras bases de datos, obteniendo potentes resultados. De hecho, las consultas que se
realizan en Access, están desarrolladas o basadas en este lenguaje, por lo que su implementación en Visual
Basic no es complicada.
El objetivo principal de SQL es la realización de consultas y cálculos con los datos de una o varias tablas.
Consejos Para Escribir Mandatos En SQL
He aquí una serie de consejos (a veces normas), que hay que tener en cuenta a la hora de escribir mandatos
SQL en nuestras aplicaciones en Visual Basic:
1. Un mandato en SQL se expresa en una cadena de caracteres o String.
2. Dicho mandato se puede escribir en la propiedad RecordSource de un control Data (más adelante,
podremos prescindir del control Data para realizar nuestras consultas), con el fin de crear una consulta en la
interfaz.
3. Los nombres de los campos especificados (y de las tablas), que contengan más de una palabra, han de
encerrarse entre corchetes ([nombre]). Como norma general, se suelen escribir siempre entre corchetes.
4. Para especificar un determinado campo de una determinada tabla, se ha de escribir primero el nombre de
la tabla, un punto y, a continuación, el nombre del campo
(nombre_tabla.nombre_campo).
5. Al especificar una expresión de búsqueda, si ésta se refiere a una expresión de caracteres, éstos han de
encerrarse entre comillas simples ('expresión_a_buscar').
6. Para especificar una fecha en una búsqueda, ésta debe encerrarse entre signos numeral
(#fecha#) en Access, Dbase X, etc., y entre comillas simples ('fecha') para bases Sql Server, Informix, etc.
7. Si se utiliza la propiedad RecordSource del control Data, para crear nuestras consultas en SQL, tras
introducir el mandato SQL (siempre como una expresión de cadena) es necesario refrescar el control Data
(control_data.Refresh).
Mandato Sql Estándar
El lenguaje SQL está compuesto por una serie de sentencias y de cláusulas muy reducidas en número, pero
muy potentes en efectividad. De entre todas las palabras, existen cuatro que son las más utilizadas, estando
compuestas por una sentencia y por tres cláusulas:
SELECT lista_campos FROM lista_tablas [WHERE criterios [ORDER BY lista_campos]]


La sentencia select y la cláusula from
La sentencia SELECT "selecciona" los campos que conformarán la consulta, es decir, que establece los
campos que se visualizarán o compondrán la consulta. El parámetro 'lista_campo' está compuesto por uno o
más nombres de campos, separados por comas, pudiéndose especificar también el nombre de la tabla a la
cual pertenecen, seguido de un punto y del nombre del campo correspondiente. Si el nombre del campo o de
la tabla está compuesto de más de una palabra, este nombre ha de escribirse entre corchetes ([nombre]). Si
se desea seleccionar todos los campos de una tabla, se puede utilizar el asterisco (*) para indicarlo.
Una sentencia SELECT no puede escribirse sin la cláusula FROM. Una cláusula es una extensión de un
mandato que complementa a una sentencia o instrucción, pudiendo complementar también a otras
sentencias. Es, por decirlo así, un accesorio imprescindible en una determinada máquina, que puede también
acoplarse a otras máquinas. En este caso, la cláusula FROM permite indicar en qué tablas o en qué consultas
(queries) se encuentran los campos especificados en la sentencias SELECT. Estas tablas o consultas se
separan por medio de comas (,), y, si sus nombres están compuestos por más de una palabra, éstos se
escriben entre corchetes ([nombre]).
He aquí algunos ejemplos de mandatos SQL en la estructura SELECT...FROM...:
SELECT nombre,apellidos FROM clientes;
Selecciona los campos 'nombre' y 'apellidos' de la tabla 'clientes'.
SELECT clientes.nombre, producto FROM clientes, productos;
Selecciona el campo 'nombre' de la tabla 'clientes', y el campo 'producto' de la tabla productos.
Hay que tener en cuenta que si dos tablas poseen el mismo nombre de campo (un 'nombre' de cliente y un
'nombre' de producto, hay que especificar también la tabla a la cual pertenece dicho campo, ya, que de lo
contrario, seleccionaría ambos nombres).
SELECT pedidos.* FROM pedidos;
Selecciona todos los campos de la tabla 'pedidos'.
SELECT * FROM pedidos;
Selecciona todos los campos de la tabla 'pedidos'.
SELECT nombre, apellidos, telefono FROM clientes;
Selecciona los campos 'nombre', 'apellidos' y 'telefono' de la tabla 'clientes'. De esta manera obtenemos una
agenda telefónica de nuestros clientes.
SELECT [codigo postal] FROM [tabla morosos];
Selecciona el campo 'codigo postal' de la tabla 'tabla morosos'.
Claúsula Where
La claúsula WHERE es opcional, y permite seleccionar qué registros aparecerán en la consulta (si no se
especifica aparecerán todos los registros). Para indicar este conjunto de registros se hace uso de criterios o
condiciones, que no es más que una comparación del contenido de un campo con un determinado valor (este
valor puede ser constante (valor predeterminado), el contenido de un campo, una variable, un control, etc.).
He aquí algunos ejemplos que ilustran el uso de esta cláusula:
SELECT * FROM clientes WHERE nombre='ALFREDO';
Selecciona todos los campos de la tabla 'clientes', pero los registros de todos aquellos clientes que se llamen
'ALFREDO'.
SELECT * FROM abonados WHERE provincia='MADRID' OR provincia='VALENCIA OR
provincia='BARCELONA';
Selecciona todos los campos de la tabla 'abonados', pero los registros de todos los abonados de las
provincias de 'MADRID', 'VALENCIA' o 'BARCELONA'.
SELECT nombre, apellidos FROM abonados WHERE edad>=18;
Selecciona los campos 'nombre' y 'apellidos' de la tabla abonados, escogiendo a aquellos abonados que sean
mayor de edad (a partir de 18 años).
SELECT * FROM abonados WHERE edad>=18 AND edad<=45;
Selecciona todos los abonados con edades comprendidas entre los 18 y los 45 años.
SELECT * FROM abonados WHERE edad BETWEEN 18 AND 45;
Selecciona todos los abonados con edades comprendidas entre los 18 y los 45 años.
SELECT * FROM diario WHERE fecha=#7/1/97#;
Selecciona los apuntes de 'diario' realizados el 1 de Julio de 1.997 (la fecha ha de indicarse en inglés
(mes/día/año)).
SELECT * FROM diario WHERE fecha<=#12/31/96#;
Selecciona los apuntes de 'diario' realizados antes del 1 de Enero de 1.997.
SELECT * FROM diario WHERE fecha BETWEEN #7/1/97# AND #7/31/97#;
Selecciona los apuntes de 'diario' realizados en Julio de 1.997.
SELECT * FROM clientes WHERE nombre LIKE 'AL*';
Selecciona los clientes cuyo nombre comience con los caracteres 'AL'.
SELECT * FROM clientes WHERE apellidos LIKE '*EZ';
Selecciona los clientes cuyos apellidos terminen con los caracteres 'EZ'.
SELECT * FROM clientes WHERE apellidos LIKE '*ZAMO*'
Selecciona los clientes cuyos apellidos contengan, en cualquier posición, los caracteres 'ZAMO'.
SELECT * FROM clientes WHERE provincia IN ('MADRID', 'BARCELONA',
'VALENCIA','TOLEDO', 'AVILA');
Selecciona todos los clientes de las provincias de MADRID, BARCELONA, VALENCIA,
TOLEDO o AVILA.
Cláusula Order By
La cláusula ORDER BY suele escribirse al final de un mandato en SQL. Dicha cláusula establece un criterio de
ordenación de los datos de la consulta, por los campos que se especifican en dicha cláusula. La potencia de
ordenación de dicha cláusula radica en la especificación de los campos por los que se ordena, ya que el
programador puede indicar cuál será el primer criterio de ordenación, el segundo, etc., así como el tipo de
ordenación por ese criterio: ascendiente o descendiente.
(...) ORDER BY campo1 [ASC/DESC][,campo2 [ASC/DESC]...]
La palabra reservada ASC es opcional e indica que el orden del campo será de tipo ascendiente (0-9 A-Z),
mientras que, si se especifica la palabra reservada DESC, se indica que el orden del campo es descendiente
(9-0 Z-A). Si no se especifica ninguna de estas palabras reservadas, la cláusula ORDER BY toma, por
defecto, el tipo ascendiente [ASC].
He aquí algunos ejemplos:
SELECT nombre, apellidos, telefono FROM clientes ORDER BY apellidos, nombre;
Crea una agenda telefónica de 'clientes' ordenada por 'apellidos' y 'nombre'.
SELECT * FROM pedidos ORDER BY fecha DESC;
Relación de 'pedidos' ordenados desde el más antiguo hasta el más moderno.
SELECT * FROM abonados ORDER BY apellidos, nombre, fecha_nacimiento DESC;
Relación de 'abonados' por 'apellidos' y 'nombre' ascendiente, y por 'fecha_nacimiento' en orden
descendiente (del más viejo al más joven).
Combinación De Datos
Las consultas realizadas hasta ahora requerían de una dosis de habilidad para conseguir crear un conjunto
de datos que tuviese información combinada de dos tablas. Pero, podemos combinar datos de una manera
mucho más sencilla y eficaz: mediante las operaciones JOIN, las cuales permiten combinar datos de dos
tablas. La operación JOIN más común es INNER JOIN, cuya sintaxis es:
tabla1 INNER JOIN tabla2 ON tabla1.campo_común=tabla2.campo_común
Donde tabla1 y tabla2 representan el nombre de las tablas a combinar. Ambas tablas han de tener un campo
común o igual para poder realizar correctamente la combinación de los datos. Pero veamos un ejemplo para
entenderlo mejor:
SELECT * FROM pedidos INNER JOIN clientes ON pedidos.codigo_cliente =clientes.codigo_cliente;
El resultado será un conjunto de registros con los datos de las dos tablas. Este conjunto poseerá el nombre
de todos los campos de la tabla pedidos y de todos los campos de la tabla clientes. En cada registro
aparecerán los datos relacionados, es decir, que en un pedido aparecerán los datos del mismo y los datos
personales del cliente que realizó el pedido.
La operación INNER JOIN combina los datos de las dos tablas siempre que haya valores coincidentes en los
campos comunes o enlazados.
Existen también otras dos formas de combinar: LEFT JOIN y RIGHT JOIN. Ambas tienen la misma sintaxis
que INNER JOIN, pero estas operaciones incluyen todos los registros de una tabla y aquellos registros de la
otra en que los campos comunes sean iguales. En la operación LEFT JOIN, incluye todos los registros de la
primera tabla (parámetro tabla1) y aquellos registros de la segunda tabla (parámetro tabla2) en que los
campos comunes sean iguales. En la operación RIGHT JOIN ocurre lo contrario: incluye todos los registros de
la segunda tabla y aquellos registros de la primera tabla en que los campos comunes sean iguales.
Aunque la diferencia entre las tres operaciones parezca inexistente, en realidad sí existe. La operación
INNER JOIN realiza una combinación con todos aquellos registros de las dos tablas en que el campo común
de ambas tenga el mismo valor, mientras que las operaciones LEFT JOIN y RIGHT JOIN realizan la
combinación de todos los registros de la tabla que combinan (ya sea la primera para LEFT JOIN o la segunda
para RIGHT JOIN), aunque en la otra tabla, en el campo común no haya coincidencia. La prueba se ve
rápidamente si se introduce un código de cliente en el campo campo_cliente de la tabla pedidos que no
exista:
SELECT * FROM pedidos INNER JOIN clientes ON pedidos.codigo_cliente =clientes.codigo_cliente;
El registro que contiene el pedido del cliente que no existe no aparece, puesto que no hay coincidencia. Si
escribimos:
SELECT * FROM pedidos LEFT JOIN clientes ON pedidos.codigo_cliente =clientes.codigo_cliente;
Observaremos que aparecen todos los registros de la tabla pedidos, incluido aquel donde indicamos que el
pedido fue solicitado por el cliente inexistente, pero en los campos relacionados (campos de la tabla clientes)
no habrá ningún dato relacionado o combinado. Si ahora escribimos lo siguiente:
SELECT * FROM pedidos LEFT JOIN clientes ON pedidos.codigo_cliente =clientes.codigo_cliente;
obtendremos el mismo resultado que con la operación INNER JOIN, puesto que se visualizan todos aquellos
registros que existen en clientes y aquellos que coincidan con el campo clave en la tabla pedidos. Como el
código inexistente no existe en la tabla clientes, este registro no aparece. Para comprobar el efecto aún
mejor, modificar el código inexistente en el registro de la tabla pedidos por uno que sí exista. Tras ello,
volver a introducir las sentencias SQL para comprobar la diferencia.
Lo más normal es utilizar la operación INNER JOIN para omitir aquellos registros no coincidentes, aunque las
operaciones LEFT JOIN y RIGHT JOIN nos pueden servir para descubrir entradas erróneas en códigos.
                             INTRODUCIENDO CONSULTAS SQL EN ACCESS
Para introducir consultas SQL en una base de datos Access debemos ir a Consultas y luego pulsar "nueva" en
Vista Diseño:
Y sin seleccionar ninguna tabla ir directamente a la Vista SQL.




A partir de este instante ya podemos introducir el código SQL que queramos.




Por ejemplo:
SELECT * from Alumno;
En la figura siguiente se muestra cómo queda la sentencia introducida en la ventana SQL de Access.
Una vez introducido sólo queda guardar la consulta y ejecutarla.

Recomendados

Ejemplo ddl dml por
Ejemplo ddl dmlEjemplo ddl dml
Ejemplo ddl dmlTitiushko Jazz
19.6K vistas6 diapositivas
Aprenda SQL Server por
Aprenda SQL ServerAprenda SQL Server
Aprenda SQL ServerSilva Alvarado Fabian
25.3K vistas91 diapositivas
Sql básico - compendio por
Sql básico  - compendioSql básico  - compendio
Sql básico - compendioJose Diaz Silva
1.6K vistas31 diapositivas
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado) por
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)Sergio Sanchez
7.4K vistas24 diapositivas
Unidad 6 Lenguaje Sql 2 por
Unidad 6 Lenguaje Sql 2Unidad 6 Lenguaje Sql 2
Unidad 6 Lenguaje Sql 2Sergio Sanchez
2.6K vistas19 diapositivas
Comandos SQL por
Comandos SQLComandos SQL
Comandos SQLErwin Fischer
10.5K vistas159 diapositivas

Más contenido relacionado

La actualidad más candente

Introducción a Sql por
Introducción a SqlIntroducción a Sql
Introducción a Sqlalexmerono
8.6K vistas41 diapositivas
Comandos utilizados en sql por
Comandos utilizados en sqlComandos utilizados en sql
Comandos utilizados en sqlByron Eras
48.8K vistas15 diapositivas
Manipulacion de Bases de Datos por
Manipulacion de Bases de DatosManipulacion de Bases de Datos
Manipulacion de Bases de DatosSilvana Cecilia Vire
4.6K vistas22 diapositivas
Consultas Basicas En Sql Server 2005 por
Consultas Basicas En Sql Server 2005Consultas Basicas En Sql Server 2005
Consultas Basicas En Sql Server 2005shavila
19.9K vistas25 diapositivas
DDL - Lenguaje de definición de datos por
DDL - Lenguaje de definición de datosDDL - Lenguaje de definición de datos
DDL - Lenguaje de definición de datosvargasaldanajohanna
22.8K vistas25 diapositivas
Consultas sql 2014 por
Consultas sql 2014Consultas sql 2014
Consultas sql 2014Henry Cambal
2.5K vistas12 diapositivas

La actualidad más candente(20)

Introducción a Sql por alexmerono
Introducción a SqlIntroducción a Sql
Introducción a Sql
alexmerono8.6K vistas
Comandos utilizados en sql por Byron Eras
Comandos utilizados en sqlComandos utilizados en sql
Comandos utilizados en sql
Byron Eras48.8K vistas
Consultas Basicas En Sql Server 2005 por shavila
Consultas Basicas En Sql Server 2005Consultas Basicas En Sql Server 2005
Consultas Basicas En Sql Server 2005
shavila19.9K vistas
Consultas sql 2014 por Henry Cambal
Consultas sql 2014Consultas sql 2014
Consultas sql 2014
Henry Cambal2.5K vistas
SQL: DDL, DML y SQL por Carmen Soler
SQL: DDL, DML y SQLSQL: DDL, DML y SQL
SQL: DDL, DML y SQL
Carmen Soler23K vistas
Comandos ddl y dml por Gerardo
Comandos ddl y dmlComandos ddl y dml
Comandos ddl y dml
Gerardo 69K vistas
Introducción a sql consultas y criterios de selección por M.c. Omar Jasso
Introducción a sql consultas y criterios de selecciónIntroducción a sql consultas y criterios de selección
Introducción a sql consultas y criterios de selección
M.c. Omar Jasso9.5K vistas
Sql comandos por Jose
Sql comandosSql comandos
Sql comandos
Jose4K vistas
Comandos, sentencias, clausulas por Gustavo Cortez
Comandos, sentencias, clausulasComandos, sentencias, clausulas
Comandos, sentencias, clausulas
Gustavo Cortez4.1K vistas
Sql DML Lenguaje de manipulación de datos por josecuartas
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos
josecuartas38.6K vistas
SENTENCIAS SQL por Jair Cruz
SENTENCIAS SQL SENTENCIAS SQL
SENTENCIAS SQL
Jair Cruz660 vistas

Destacado

Sentencias sql por
Sentencias sql Sentencias sql
Sentencias sql Cristian Villalva
287 vistas3 diapositivas
Laboratorio Nº4 - SQL por
Laboratorio Nº4 - SQLLaboratorio Nº4 - SQL
Laboratorio Nº4 - SQLCarol Ruiz Paredes
382 vistas11 diapositivas
Taller Básico Sentencias SQL por
Taller Básico Sentencias SQL Taller Básico Sentencias SQL
Taller Básico Sentencias SQL Julián Castiblanco
25.8K vistas2 diapositivas
Consultas en sql básico por
Consultas en sql básicoConsultas en sql básico
Consultas en sql básicoCristian Salazar C.
44.5K vistas17 diapositivas
Ejercicios De Sql (actualizado) por
Ejercicios De Sql (actualizado)Ejercicios De Sql (actualizado)
Ejercicios De Sql (actualizado)capver digital
17.9K vistas25 diapositivas
MANUAL COMPLETO DE SQL por
MANUAL COMPLETO DE SQLMANUAL COMPLETO DE SQL
MANUAL COMPLETO DE SQLEdgar Sandoval
44.4K vistas75 diapositivas

Similar a Sentencias Sql

Fundamentos de BD - Unidad 6 lenguaje sql por
Fundamentos de BD - Unidad 6 lenguaje sqlFundamentos de BD - Unidad 6 lenguaje sql
Fundamentos de BD - Unidad 6 lenguaje sqlJosé Antonio Sandoval Acosta
1.7K vistas47 diapositivas
Unidad 2-lenguaje-sql por
Unidad 2-lenguaje-sqlUnidad 2-lenguaje-sql
Unidad 2-lenguaje-sqlclaudia_m
547 vistas10 diapositivas
ManualPracticoSQL.pdf por
ManualPracticoSQL.pdfManualPracticoSQL.pdf
ManualPracticoSQL.pdfJenny29068
3 vistas33 diapositivas
Portafolio 1 sql por
Portafolio 1 sqlPortafolio 1 sql
Portafolio 1 sqlJuanKMillos
371 vistas6 diapositivas
BD_L8_EXP_ROZIC_CAP9_SQL por
BD_L8_EXP_ROZIC_CAP9_SQLBD_L8_EXP_ROZIC_CAP9_SQL
BD_L8_EXP_ROZIC_CAP9_SQLdemoiselle
372 vistas17 diapositivas
Operaciones basicas de sql por
Operaciones basicas de sqlOperaciones basicas de sql
Operaciones basicas de sqljuanfrancisco501920
144 vistas4 diapositivas

Similar a Sentencias Sql(20)

Unidad 2-lenguaje-sql por claudia_m
Unidad 2-lenguaje-sqlUnidad 2-lenguaje-sql
Unidad 2-lenguaje-sql
claudia_m547 vistas
ManualPracticoSQL.pdf por Jenny29068
ManualPracticoSQL.pdfManualPracticoSQL.pdf
ManualPracticoSQL.pdf
Jenny290683 vistas
Portafolio 1 sql por JuanKMillos
Portafolio 1 sqlPortafolio 1 sql
Portafolio 1 sql
JuanKMillos371 vistas
BD_L8_EXP_ROZIC_CAP9_SQL por demoiselle
BD_L8_EXP_ROZIC_CAP9_SQLBD_L8_EXP_ROZIC_CAP9_SQL
BD_L8_EXP_ROZIC_CAP9_SQL
demoiselle372 vistas
Manual practico SQL por Ana Aguirre
Manual practico SQLManual practico SQL
Manual practico SQL
Ana Aguirre340 vistas
Manual practico para sql ingieneria de sistemas por Crhis
Manual practico para sql ingieneria de sistemas  Manual practico para sql ingieneria de sistemas
Manual practico para sql ingieneria de sistemas
Crhis252 vistas
Base de datos en sql por K-rlos Pac
Base de datos en sql  Base de datos en sql
Base de datos en sql
K-rlos Pac622 vistas

Último

ESTRATEGIAS DE APOYO MARTIN PALACIO TERCER PERIODO por
ESTRATEGIAS DE APOYO MARTIN PALACIO TERCER PERIODOESTRATEGIAS DE APOYO MARTIN PALACIO TERCER PERIODO
ESTRATEGIAS DE APOYO MARTIN PALACIO TERCER PERIODOpalaciomoralesmartin
8 vistas5 diapositivas
FUNDAMENTOS DE ELECTRICIDAD Y ELECTRONICA.pdf por
FUNDAMENTOS DE ELECTRICIDAD Y ELECTRONICA.pdfFUNDAMENTOS DE ELECTRICIDAD Y ELECTRONICA.pdf
FUNDAMENTOS DE ELECTRICIDAD Y ELECTRONICA.pdfortizjuanjose591
7 vistas16 diapositivas
Tarea15.pptx por
Tarea15.pptxTarea15.pptx
Tarea15.pptxillanlir
10 vistas6 diapositivas
El Ciberespacio y sus Características.pptx por
El Ciberespacio y  sus Características.pptxEl Ciberespacio y  sus Características.pptx
El Ciberespacio y sus Características.pptxAnthlingPereira
14 vistas3 diapositivas
SOrtiz_Origenes y evolución de internet.ppsx por
SOrtiz_Origenes y evolución de internet.ppsxSOrtiz_Origenes y evolución de internet.ppsx
SOrtiz_Origenes y evolución de internet.ppsxARIADNAYJIMENACRUZOR
6 vistas9 diapositivas
Dominios de Internet.pdf por
Dominios de Internet.pdfDominios de Internet.pdf
Dominios de Internet.pdfAnahisZambrano
8 vistas2 diapositivas

Último(20)

FUNDAMENTOS DE ELECTRICIDAD Y ELECTRONICA.pdf por ortizjuanjose591
FUNDAMENTOS DE ELECTRICIDAD Y ELECTRONICA.pdfFUNDAMENTOS DE ELECTRICIDAD Y ELECTRONICA.pdf
FUNDAMENTOS DE ELECTRICIDAD Y ELECTRONICA.pdf
ortizjuanjose5917 vistas
Tarea15.pptx por illanlir
Tarea15.pptxTarea15.pptx
Tarea15.pptx
illanlir10 vistas
El Ciberespacio y sus Características.pptx por AnthlingPereira
El Ciberespacio y  sus Características.pptxEl Ciberespacio y  sus Características.pptx
El Ciberespacio y sus Características.pptx
AnthlingPereira14 vistas
Presentación: El impacto y peligro de la piratería de software por EmanuelMuoz11
Presentación: El impacto y peligro de la piratería de softwarePresentación: El impacto y peligro de la piratería de software
Presentación: El impacto y peligro de la piratería de software
EmanuelMuoz1117 vistas
Tecnologías para la enseñanza virtual por mpachecocodem
Tecnologías para la enseñanza virtual Tecnologías para la enseñanza virtual
Tecnologías para la enseñanza virtual
mpachecocodem7 vistas
Fundamentos De Electricidad y Electrónica equipo 5.pdf por coloradxmaria
Fundamentos De Electricidad y Electrónica equipo 5.pdfFundamentos De Electricidad y Electrónica equipo 5.pdf
Fundamentos De Electricidad y Electrónica equipo 5.pdf
coloradxmaria14 vistas
fundamentos de electricidad electronica por Kevin619029
fundamentos de electricidad electronicafundamentos de electricidad electronica
fundamentos de electricidad electronica
Kevin6190295 vistas
MVelazco_Internet, Origenes y Evolucion.pptx por al223915
MVelazco_Internet, Origenes  y Evolucion.pptxMVelazco_Internet, Origenes  y Evolucion.pptx
MVelazco_Internet, Origenes y Evolucion.pptx
al2239155 vistas
¡Planificando para el éxito! Usando los Planners de Semantic Kernel para real... por codertectura
¡Planificando para el éxito! Usando los Planners de Semantic Kernel para real...¡Planificando para el éxito! Usando los Planners de Semantic Kernel para real...
¡Planificando para el éxito! Usando los Planners de Semantic Kernel para real...
codertectura529 vistas
Tecnologías para la enseñanza virtual.pptx por exprosaavedra
Tecnologías para la enseñanza virtual.pptxTecnologías para la enseñanza virtual.pptx
Tecnologías para la enseñanza virtual.pptx
exprosaavedra11 vistas
Probando aplicaciones basadas en LLMs.pdf por Federico Toledo
Probando aplicaciones basadas en LLMs.pdfProbando aplicaciones basadas en LLMs.pdf
Probando aplicaciones basadas en LLMs.pdf
Federico Toledo49 vistas

Sentencias Sql

  • 1. SENTENCIAS SQL CREATE Este comando crea un objeto dentro de la base de datos. Puede ser una tabla, vista, índice, trigger, función, procedimiento o cualquier otro objeto que el motor de la base de datos soporte. Ejemplo (crear una tabla) CREATE TABLE 'TABLA_NOMBRE' ( 'CAMPO_1' INT, 'CAMPO_2' STRING ) CREATE TABLE 'TABLA_NOMBRE' ( 'CAMPO_1' DOCUMENTO, 'CAMPO_2' APELLIDO-NOMBRE-EDAD ) ALTER Este comando permite modificar la estructura de un objeto. Se pueden agregar/quitar campos a una tabla, modificar el tipo de un campo, agregar/quitar índices a una tabla, modificar un trigger, etc. Ejemplo (agregar columna a una tabla) ALTER TABLE 'TABLA_NOMBRE' ( ADD NUEVO_CAMPO INT UNSIGNED ) DROP Este comando elimina un objeto de la base de datos. Puede ser una tabla, vista, índice, trigger, función, procedimiento o cualquier otro objeto que el motor de la base de datos soporte. Se puede combinar con la sentencia ALTER. Ejemplo ALTER TABLE ''TABLA_NOMBRE'' ( DROP COLUMN ''CAMPO_NOMBRE1'' ) TRUNCATE Este comando trunca todo el contenido de una tabla. La ventaja sobre el comando DROP, es que si se quiere borrar todo el contenido de la tabla, es mucho más rápido, especialmente si la tabla es muy grande. La desventaja es que TRUNCATE sólo sirve cuando se quiere eliminar absolutamente todos los registros, ya que no se permite la cláusula WHERE. Si bien, en un principio, esta sentencia parecería ser DML (Lenguaje de Manipulación de Datos), es en realidad una DDL, ya que internamente, el comando TRUNCATE borra la tabla y la vuelve a crear y no ejecuta ninguna transacción. Ejemplo TRUNCATE TABLE ''TABLA_NOMBRE1''
  • 2. INSERT Una sentencia INSERT de SQL agrega uno o más registros a una (y sólo una) tabla en una base de datos relacional. Forma básica INSERT INTO ''tabla'' (''columna1'', [''columna2,... '']) VALUES (''valor1'', [''valor2,...'']) Las cantidades de columnas y valores deben ser iguales. Si una columna no se especifica, le será asignado el valor por omisión. Los valores especificados (o implícitos) por la sentencia INSERT deberán satisfacer todas las restricciones aplicables. Si ocurre un error de sintaxis o si alguna de las restricciones es violada, no se agrega la fila y se devuelve un error. Ejemplo INSERT INTO agenda_telefonica (nombre, numero) VALUES ('Roberto Jeldrez', '4886850'); Cuando se especifican todos los valores de una tabla, se puede utilizar la sentencia acortada: INSERT INTO ''tabla'' VALUES (''valor1'', [''valor2,...'']) Ejemplo (asumiendo que 'nombre' y 'número' son las únicas columnas de la tabla 'agenda_telefonica'): INSERT INTO agenda_telefonica VALUES ('Roberto Jeldrez', '4886850'); SENTENCIAS SQL PARA VISUAL BASIC Visual Basic es un lenguaje de programación de propósito general, con una gran potencia en toda su estructura. Su implementación en el sistema operativo Windows y sus herramientas visuales, han hecho de este lenguaje un líder indiscutible en lo que a desarrollo de aplicaciones se refiere. Con la versión 3.0. se implementó la gestión de bases de datos a muy alto nivel, pudiendo gestionar bases de datos de tipo Access, Paradox, dBASE, FoxPro, etc. Este paso de gigante ha hecho de Visual Basic uno de los lenguajes favoritos por los desarrolladores de aplicaciones de bases de datos, en especial el hecho de que Visual Basic implemente el lenguaje SQL, uno de los más potentes y sencillos lenguajes de bases de datos. ¿Qué es sql? SQL (Structured Query Language ó Lenguaje Estructurado de Consulta), es un lenguaje bastante sencillo, principalmente orientado a bases de datos y, sobre todo, al manejo de consultas. Visual Basic incorpora esta extensión junto a nuestras bases de datos, obteniendo potentes resultados. De hecho, las consultas que se realizan en Access, están desarrolladas o basadas en este lenguaje, por lo que su implementación en Visual Basic no es complicada. El objetivo principal de SQL es la realización de consultas y cálculos con los datos de una o varias tablas. Consejos Para Escribir Mandatos En SQL He aquí una serie de consejos (a veces normas), que hay que tener en cuenta a la hora de escribir mandatos SQL en nuestras aplicaciones en Visual Basic: 1. Un mandato en SQL se expresa en una cadena de caracteres o String. 2. Dicho mandato se puede escribir en la propiedad RecordSource de un control Data (más adelante, podremos prescindir del control Data para realizar nuestras consultas), con el fin de crear una consulta en la interfaz.
  • 3. 3. Los nombres de los campos especificados (y de las tablas), que contengan más de una palabra, han de encerrarse entre corchetes ([nombre]). Como norma general, se suelen escribir siempre entre corchetes. 4. Para especificar un determinado campo de una determinada tabla, se ha de escribir primero el nombre de la tabla, un punto y, a continuación, el nombre del campo (nombre_tabla.nombre_campo). 5. Al especificar una expresión de búsqueda, si ésta se refiere a una expresión de caracteres, éstos han de encerrarse entre comillas simples ('expresión_a_buscar'). 6. Para especificar una fecha en una búsqueda, ésta debe encerrarse entre signos numeral (#fecha#) en Access, Dbase X, etc., y entre comillas simples ('fecha') para bases Sql Server, Informix, etc. 7. Si se utiliza la propiedad RecordSource del control Data, para crear nuestras consultas en SQL, tras introducir el mandato SQL (siempre como una expresión de cadena) es necesario refrescar el control Data (control_data.Refresh). Mandato Sql Estándar El lenguaje SQL está compuesto por una serie de sentencias y de cláusulas muy reducidas en número, pero muy potentes en efectividad. De entre todas las palabras, existen cuatro que son las más utilizadas, estando compuestas por una sentencia y por tres cláusulas: SELECT lista_campos FROM lista_tablas [WHERE criterios [ORDER BY lista_campos]] La sentencia select y la cláusula from La sentencia SELECT "selecciona" los campos que conformarán la consulta, es decir, que establece los campos que se visualizarán o compondrán la consulta. El parámetro 'lista_campo' está compuesto por uno o más nombres de campos, separados por comas, pudiéndose especificar también el nombre de la tabla a la cual pertenecen, seguido de un punto y del nombre del campo correspondiente. Si el nombre del campo o de la tabla está compuesto de más de una palabra, este nombre ha de escribirse entre corchetes ([nombre]). Si se desea seleccionar todos los campos de una tabla, se puede utilizar el asterisco (*) para indicarlo. Una sentencia SELECT no puede escribirse sin la cláusula FROM. Una cláusula es una extensión de un mandato que complementa a una sentencia o instrucción, pudiendo complementar también a otras sentencias. Es, por decirlo así, un accesorio imprescindible en una determinada máquina, que puede también acoplarse a otras máquinas. En este caso, la cláusula FROM permite indicar en qué tablas o en qué consultas (queries) se encuentran los campos especificados en la sentencias SELECT. Estas tablas o consultas se separan por medio de comas (,), y, si sus nombres están compuestos por más de una palabra, éstos se escriben entre corchetes ([nombre]). He aquí algunos ejemplos de mandatos SQL en la estructura SELECT...FROM...: SELECT nombre,apellidos FROM clientes; Selecciona los campos 'nombre' y 'apellidos' de la tabla 'clientes'. SELECT clientes.nombre, producto FROM clientes, productos; Selecciona el campo 'nombre' de la tabla 'clientes', y el campo 'producto' de la tabla productos. Hay que tener en cuenta que si dos tablas poseen el mismo nombre de campo (un 'nombre' de cliente y un 'nombre' de producto, hay que especificar también la tabla a la cual pertenece dicho campo, ya, que de lo contrario, seleccionaría ambos nombres). SELECT pedidos.* FROM pedidos; Selecciona todos los campos de la tabla 'pedidos'. SELECT * FROM pedidos; Selecciona todos los campos de la tabla 'pedidos'.
  • 4. SELECT nombre, apellidos, telefono FROM clientes; Selecciona los campos 'nombre', 'apellidos' y 'telefono' de la tabla 'clientes'. De esta manera obtenemos una agenda telefónica de nuestros clientes. SELECT [codigo postal] FROM [tabla morosos]; Selecciona el campo 'codigo postal' de la tabla 'tabla morosos'. Claúsula Where La claúsula WHERE es opcional, y permite seleccionar qué registros aparecerán en la consulta (si no se especifica aparecerán todos los registros). Para indicar este conjunto de registros se hace uso de criterios o condiciones, que no es más que una comparación del contenido de un campo con un determinado valor (este valor puede ser constante (valor predeterminado), el contenido de un campo, una variable, un control, etc.). He aquí algunos ejemplos que ilustran el uso de esta cláusula: SELECT * FROM clientes WHERE nombre='ALFREDO'; Selecciona todos los campos de la tabla 'clientes', pero los registros de todos aquellos clientes que se llamen 'ALFREDO'. SELECT * FROM abonados WHERE provincia='MADRID' OR provincia='VALENCIA OR provincia='BARCELONA'; Selecciona todos los campos de la tabla 'abonados', pero los registros de todos los abonados de las provincias de 'MADRID', 'VALENCIA' o 'BARCELONA'. SELECT nombre, apellidos FROM abonados WHERE edad>=18; Selecciona los campos 'nombre' y 'apellidos' de la tabla abonados, escogiendo a aquellos abonados que sean mayor de edad (a partir de 18 años). SELECT * FROM abonados WHERE edad>=18 AND edad<=45; Selecciona todos los abonados con edades comprendidas entre los 18 y los 45 años. SELECT * FROM abonados WHERE edad BETWEEN 18 AND 45; Selecciona todos los abonados con edades comprendidas entre los 18 y los 45 años. SELECT * FROM diario WHERE fecha=#7/1/97#; Selecciona los apuntes de 'diario' realizados el 1 de Julio de 1.997 (la fecha ha de indicarse en inglés (mes/día/año)). SELECT * FROM diario WHERE fecha<=#12/31/96#; Selecciona los apuntes de 'diario' realizados antes del 1 de Enero de 1.997. SELECT * FROM diario WHERE fecha BETWEEN #7/1/97# AND #7/31/97#; Selecciona los apuntes de 'diario' realizados en Julio de 1.997. SELECT * FROM clientes WHERE nombre LIKE 'AL*'; Selecciona los clientes cuyo nombre comience con los caracteres 'AL'. SELECT * FROM clientes WHERE apellidos LIKE '*EZ'; Selecciona los clientes cuyos apellidos terminen con los caracteres 'EZ'. SELECT * FROM clientes WHERE apellidos LIKE '*ZAMO*' Selecciona los clientes cuyos apellidos contengan, en cualquier posición, los caracteres 'ZAMO'. SELECT * FROM clientes WHERE provincia IN ('MADRID', 'BARCELONA', 'VALENCIA','TOLEDO', 'AVILA'); Selecciona todos los clientes de las provincias de MADRID, BARCELONA, VALENCIA, TOLEDO o AVILA. Cláusula Order By
  • 5. La cláusula ORDER BY suele escribirse al final de un mandato en SQL. Dicha cláusula establece un criterio de ordenación de los datos de la consulta, por los campos que se especifican en dicha cláusula. La potencia de ordenación de dicha cláusula radica en la especificación de los campos por los que se ordena, ya que el programador puede indicar cuál será el primer criterio de ordenación, el segundo, etc., así como el tipo de ordenación por ese criterio: ascendiente o descendiente. (...) ORDER BY campo1 [ASC/DESC][,campo2 [ASC/DESC]...] La palabra reservada ASC es opcional e indica que el orden del campo será de tipo ascendiente (0-9 A-Z), mientras que, si se especifica la palabra reservada DESC, se indica que el orden del campo es descendiente (9-0 Z-A). Si no se especifica ninguna de estas palabras reservadas, la cláusula ORDER BY toma, por defecto, el tipo ascendiente [ASC]. He aquí algunos ejemplos: SELECT nombre, apellidos, telefono FROM clientes ORDER BY apellidos, nombre; Crea una agenda telefónica de 'clientes' ordenada por 'apellidos' y 'nombre'. SELECT * FROM pedidos ORDER BY fecha DESC; Relación de 'pedidos' ordenados desde el más antiguo hasta el más moderno. SELECT * FROM abonados ORDER BY apellidos, nombre, fecha_nacimiento DESC; Relación de 'abonados' por 'apellidos' y 'nombre' ascendiente, y por 'fecha_nacimiento' en orden descendiente (del más viejo al más joven). Combinación De Datos Las consultas realizadas hasta ahora requerían de una dosis de habilidad para conseguir crear un conjunto de datos que tuviese información combinada de dos tablas. Pero, podemos combinar datos de una manera mucho más sencilla y eficaz: mediante las operaciones JOIN, las cuales permiten combinar datos de dos tablas. La operación JOIN más común es INNER JOIN, cuya sintaxis es: tabla1 INNER JOIN tabla2 ON tabla1.campo_común=tabla2.campo_común Donde tabla1 y tabla2 representan el nombre de las tablas a combinar. Ambas tablas han de tener un campo común o igual para poder realizar correctamente la combinación de los datos. Pero veamos un ejemplo para entenderlo mejor: SELECT * FROM pedidos INNER JOIN clientes ON pedidos.codigo_cliente =clientes.codigo_cliente; El resultado será un conjunto de registros con los datos de las dos tablas. Este conjunto poseerá el nombre de todos los campos de la tabla pedidos y de todos los campos de la tabla clientes. En cada registro aparecerán los datos relacionados, es decir, que en un pedido aparecerán los datos del mismo y los datos personales del cliente que realizó el pedido. La operación INNER JOIN combina los datos de las dos tablas siempre que haya valores coincidentes en los campos comunes o enlazados. Existen también otras dos formas de combinar: LEFT JOIN y RIGHT JOIN. Ambas tienen la misma sintaxis que INNER JOIN, pero estas operaciones incluyen todos los registros de una tabla y aquellos registros de la otra en que los campos comunes sean iguales. En la operación LEFT JOIN, incluye todos los registros de la primera tabla (parámetro tabla1) y aquellos registros de la segunda tabla (parámetro tabla2) en que los campos comunes sean iguales. En la operación RIGHT JOIN ocurre lo contrario: incluye todos los registros de la segunda tabla y aquellos registros de la primera tabla en que los campos comunes sean iguales. Aunque la diferencia entre las tres operaciones parezca inexistente, en realidad sí existe. La operación INNER JOIN realiza una combinación con todos aquellos registros de las dos tablas en que el campo común de ambas tenga el mismo valor, mientras que las operaciones LEFT JOIN y RIGHT JOIN realizan la combinación de todos los registros de la tabla que combinan (ya sea la primera para LEFT JOIN o la segunda
  • 6. para RIGHT JOIN), aunque en la otra tabla, en el campo común no haya coincidencia. La prueba se ve rápidamente si se introduce un código de cliente en el campo campo_cliente de la tabla pedidos que no exista: SELECT * FROM pedidos INNER JOIN clientes ON pedidos.codigo_cliente =clientes.codigo_cliente; El registro que contiene el pedido del cliente que no existe no aparece, puesto que no hay coincidencia. Si escribimos: SELECT * FROM pedidos LEFT JOIN clientes ON pedidos.codigo_cliente =clientes.codigo_cliente; Observaremos que aparecen todos los registros de la tabla pedidos, incluido aquel donde indicamos que el pedido fue solicitado por el cliente inexistente, pero en los campos relacionados (campos de la tabla clientes) no habrá ningún dato relacionado o combinado. Si ahora escribimos lo siguiente: SELECT * FROM pedidos LEFT JOIN clientes ON pedidos.codigo_cliente =clientes.codigo_cliente; obtendremos el mismo resultado que con la operación INNER JOIN, puesto que se visualizan todos aquellos registros que existen en clientes y aquellos que coincidan con el campo clave en la tabla pedidos. Como el código inexistente no existe en la tabla clientes, este registro no aparece. Para comprobar el efecto aún mejor, modificar el código inexistente en el registro de la tabla pedidos por uno que sí exista. Tras ello, volver a introducir las sentencias SQL para comprobar la diferencia. Lo más normal es utilizar la operación INNER JOIN para omitir aquellos registros no coincidentes, aunque las operaciones LEFT JOIN y RIGHT JOIN nos pueden servir para descubrir entradas erróneas en códigos. INTRODUCIENDO CONSULTAS SQL EN ACCESS Para introducir consultas SQL en una base de datos Access debemos ir a Consultas y luego pulsar "nueva" en Vista Diseño:
  • 7. Y sin seleccionar ninguna tabla ir directamente a la Vista SQL. A partir de este instante ya podemos introducir el código SQL que queramos. Por ejemplo: SELECT * from Alumno; En la figura siguiente se muestra cómo queda la sentencia introducida en la ventana SQL de Access.
  • 8. Una vez introducido sólo queda guardar la consulta y ejecutarla.