Vous êtes sur la page 1sur 26

Tipos de sentencias SQL y sus componentes sintcticos Lenguaje SQL

Pasamos a describir los tipos de sentencias sql que podemos encontrarnos y sus
componentes sintcticos.

En SQL tenemos bastantes sentencias que se pueden utilizar para realizar


diversas tareas.
Dependiendo de las tareas, estas sentencias se pueden clasificar en tres grupos
principales (DML, DDL,DCL), aunque nos quedara otro grupo que a mi entender
no est dentro del lenguaje SQL sino del PLSQL.
SENTENCIA
Manipulacin de datos
SELECT
INSERT
DELETE
DML UPDATE

DDL

Definicin de datos
CREATE TABLE
DROP TABLE
ALTER TABLE
CREATE VIEW
DROP VIEW
CREATE INDEX
DROP INDEX
CREATE SYNOYM
DROP SYNONYM

DCL

Control de acceso
GRANT
REVOKE
Control de transacciones
COMMIT
ROLLBACK

SQL Programtico
DECLARE
OPEN
FETCH
PLSQL CLOSE

DESCRIPCIN
Recupera datos de la base de datos.
Aade nuevas filas de datos a la base de datos.
Suprime filas de datos de la base de datos.
Modifica datos existentes en la base de datos.
Aade una nueva tabla a la base de datos.
Suprime una tabla de la base de datos.
Modifica la estructura de una tabla existente.
Aade una nueva vista a la base de datos.
Suprime una vista de la base de datos.
Construye un ndice para una columna.
Suprime el ndice para una columna.
Define un alias para un nombre de tabla.
Suprime un alias para un nombre de tabla.
Concede privilegios de acceso a usuarios.
Suprime privilegios de acceso a usuarios
Finaliza la transaccin actual.
Aborata la transaccin actual.
Define un cursor para una consulta.
Abre un cursor para recuperar resultados de consulta.
Recupera una fila de resultados de consulta.
Cierra un cursor.

Componentes sintcticos

La mayora de sentencias SQL tienen la misma estructura.


Todas comienzan por un verbo (select, insert, update, create), a continuacin le
sigue una o ms clausulas que nos dicen los datos con los que vamos a operar
(from, where), algunas de estas son opcionales y otras obligatorias como es el
caso del from.

Pildoritas de Bases de Datos: SQL. Tipos de


Comandos
category: bases de datos, informtica y tecnologa, pildoritas de bases de datos, sqlno
comments
pildoras bbdd
A peticin popular (si entendemos como popular ms de una persona) sigo con las
Pildoritas de Bases de Datos.
Despus de explicar el diseo de modelos relacionales vamos a pasar a la chicha, es
decir, a crear modelos de datos relacionales y manipularlos. Para realizar esta tarea
todos los motores de bases de datos relacional usan un lenguaje de datos normalizado
(aunque con leves diferencias entre tecnologas) llamado SQL.
SQL (Structured Query Language) es un lenguaje declarativo de acceso a bases de
datos que aplica lgebra relacional para obtener y manipular conjuntos de datos desde
un modelo relacional (ahora seguramente entendis por qu empec con los dos
anteriores posts). SQL tambin permite ejecutar otra serie de comandos enfocados en
la definicin de modelos de datos relacionales.
SQL est compuesto de dos tipos de comandos:
DLL (Data Definition Language): Permite crear y definir bases de datos, tablas, campos,
ndices...
DML (Data Manipulation Language): Filtra y ordena los datos que queremos manipular.

Comandos DDL
CREATE
Sirve para crear un nuevo objeto dentro del gestor de bases de datos. Los objetos de
una bases de datos son tablas, ndices, procedimientos almacenados y vistas.
Creacin de una base de datos:
?
CREATE DATABASE NOMBRE_BASE_DE_DATOS
Creacin de un ndice:
?
CREATE INDEX NOMBRE_NDICE ON "NOMBRE_TABLA" (NOMBRE_COLUMNA)
Creacin de un procedimiento almacenado:
?
CREATE CREATE PROCEDURE NOMBRE_PROCEDIMIENTO
[PARAMETROS]
AS
(Sentencias SQL)
[RETURN [VALOR]]
*La definicin de los procedimientos almacenados suele cambiar dependiendo del
motor de bases de datos utilizado. En este caso he utilizado SQL Server, no obstante, la
estructura es muy similar en el resto de motores, por lo que para definir un
procedimiento almacenado en otra bases de datos con mirar la documentacin os
bastar.
Creacin de una vista:
?
CREATE VIEW NOMBRE_VISTA AS
SUBCONSULTA;
ALTER
El comando ALTER permite realizar modificaciones en un objeto de la base de datos ya
existente.
El uso ms comn del comando ALTER es el enfocado en la edicin de una tabla, ALTER
TABLE.

Por ejemplo, para agregar una nueva columna a una tabla ya existente ejecutaramos
el siguiente comando:
?
ALTER TABLE 'NOMBRE_TABLA' ADD NUEVO_CAMPO TIPO;
No obstante, el comando ALTER, como todos los comandos DLL, es aplicable a
cualquier objeto de la base de datos.
DROP

Sirve para eliminar objetos de la base de datos. Por ejemplo, podramos borrar una
tabla con la siguiente sentencia:
?
DROP TABLE 'NOMBRE_TABLA'

Comandos DML
SELECT

Este comando sirve para recuperar un conjunto de datos siguiendo unos criterios de
filtrado.
El comando SELECT, as como los comandos UPDATE y DELETE, necesitan su vez de
una serie de clausulas, en las cuales entrar en el prximo post, que indicaran de
donde obtener la informacin y que condiciones deben cumplir dichos datos.
No obstante, con indicar la procedencia de los datos ya podramos crear nuestra
primera consulta:
?
SELECT CAMPO FROM TABLA
Esta sentencia recuperara todos los datos de la tabla, pero como podis imaginar
podemos querer filtrar estos campos para obtener slo un subconjunto (utilizando las
clausulas WHERE y HAVING) o agruparlos y ordenarlos de una determinada forma (por
medio de las clausulas GROUP BY y ORDER BY)
INSERT

la sentencia INSERT agrega registros a la base de datos. La forma bsica de este


comando es el siguiente:
?
INSERT INTO 'NOMBRE_TABLA' ('COLUMNA1',['COLUMNA2,... '])

VALUES ('VALOR1', ['VALOR2,...'])


No obstante, y dependiendo del motor de bases de datos, se pueden insertar en una
sentencia varios registros indicados de forma literal o incluso por medio de una
consulta.
UPDATE y DELETE

La sentencia UPDATE sirve para modificar los valores de un conjunto de registros


existentes en una tabla.
?
UPDATE NOMBRE_TABLA SET CAMPO = 'VALOR' WHERE CAMPO = 'VALOR';
El comando DELETE elimina uno o varios registros de una tabla:
?
DELETE FROM NOMBRE_TABLA WHERE CAMPO = 'VALOR';
Y hasta aqu ha llegado la primera pildorita de SQL. Se que ha sido un peazo terrible,
pero hay que empezar con un poco de teora inicial para poder enterarnos de la
sintaxis bsica del lenguaje. En las siguientes entregas intentar que la lectura sea
ms prctica y amena.
En el prximo post hablar de las clausulas, los operadores lgicos y las funciones de
agregado.
ndice de Pildoritas

Diseo de Bases de Datos


Diseo de Bases de Datos II
SQL. Tipos de Comandos
SQL. Clausulas I
SQL. Clausulas II
SQL. Join
SQL. Predicados
Optimizacin. Definicin de las selects
Optimizacin. Consideraciones de rendimiento de los operadores
Optimizacin. Condiciones SARGABLE
Optimizacin. Optimizacin. Explain Plan

Video Tutorial 4 SQL. DDL y DML. Sentencias SELECT


FROM WHERE y ORDER BY con Mysql Workbench.

DDL y DML
Las sentencias SQL se dividen en dos categoras; Lenguaje de
definicin de datos; data definition language (DDL) yLenguaje de
manipulacin de datos ;data manipulation language (DML).

Lenguaje de definicin de datos (DDL)


Las sentencias DDL se utilizan para crear y modificar la estructura de las
tablas as como otros objetos de la base de datos.

CREATE - para crear objetos en la base de datos.

ALTER - modifica la estructura de la base de datos.

DROP - borra objetos de la base de datos.

TRUNCATE - elimina todos los registros de la tabla, incluyendo todos los


espacios asignados a los registros.

Lenguaje de manipulacin de datos (DML)


Las sentencias de lenguaje de manipulacin de datos (DML) son
utilizadas para gestionar datos dentro de los schemas. Algunos
ejemplos:

SELECT - para obtener datos de una base de datos.

INSERT - para insertar datos a una tabla.

UPDATE - para modificar datos existentes dentro de una tabla.

DELETE - elimina todos los registros de la tabla; no borra los espacios


asignados a los registros.

Sentencia SELECT
La sentencia SELECT se utiliza para seleccionar datos de una base de
datos.

Se guarda el resultado en una tabla llamada "result-set".

Sintaxis de la Sentencia SELECT 1


SELECT column_name,column_name
FROM table_name;

Ejemplo de la sentencia SELECT


En el siguiente ejemplo pedimos el "titulo", "autor" y "isbn" de todos los
registros de la tabla "books". Como ven SQL no hace distincin entre
maysculas y minsculas. Podemos escribir SQL tanto en minsculas
como maysculas.

Sintaxis de la Sentencia SELECT 2


SELECT * FROM table_name;

EL asterisco * significa que queremos todas las columnas de la tabla.

Ejemplo de la sentencia SELECT * FROM


A continuacin podemos ver el resultado de la peticin; SELECT * FROM
eli.publisher; toda la informacin de la tabla "publisher";

Como ven, estamos utilizando indistintamente la consola y el


workbench. Es importante que la consola les sea familiar, ya que as la
pueden utilizar cuando no tengan una interface grfica.

Sentencia SQL WHERE


La sentencia WHERE se usa para extraer slo los registros que cumplan
con una condicin. Funciona como un filtro.

Sintaxis de la sentencia SQL WHERE


SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;

Ejemplo de la sentencia SQL WHERE


En este ejemplo, estamos pidiendo todos los registros de la tabla
"books" que tengan "idpublisher"=1. Conseguiremos los resultados que
cumplan esa condicin;

Clasula ORDER BY
La clasula ORDER BY se utiliza para ordenar los resultados a travs de
una o ms columnas.
La clasula ORDER BY ordena los registros de manera ascendente por
defecto. Para hacerlo de manera descendente, se puede utilizar la
clasula DESC.

Sintaxis de la clasula SQL ORDER BY


SELECT column_name,column_name
FROM table_name
ORDER BY column_name,column_name ASC|DESC;

Ejemplo de la clasula ORDER BY


En este ejemplo ordenamos la tabla "books" en orden alfabtico
utilizando el "ttulo";