Anda di halaman 1dari 7

¿Qué es PSM?

PSM es solo una adición al lenguaje SQL estándar. Es la parte que agrega extensiones de
procedimiento: IF, WHILE, todas las estructuras que también se encuentran en otros lenguajes de
procedimiento.

De Wikipedia, sobre SQL / PSM: "SQL / PSM significa Structured Query Language / Persistent
Stored Modules, y fue desarrollado por el American National Standards Institute (ANSI) como una
extensión de SQL.1 Fue adoptado por primera vez en 1996, [2] ] y proporciona programabilidad de
procedimiento además de los comandos de consulta de SQL.

La extensión SQL / PSM está definida por ISO / IEC 9075-4: 2003. SQL / PSM estandariza las
extensiones de procedimientos para SQL, incluido el flujo de control, el manejo de condiciones, las
señales y las condiciones de las declaraciones, los cursores y las variables locales, y la asignación
de expresiones a variables y parámetros. Además, SQL / PSM formaliza la declaración y el
mantenimiento de rutinas de lenguaje de bases de datos persistentes (por ejemplo,
"procedimientos almacenados").

En SQL Server, la implementación nativa se llama procedimientos almacenados T-SQL y


disparadores, en Oracle es PL-SQL.

Qué es SQL
El SQL (Structured Query Language) (en español lenguaje de consulta
estructurado) es un lenguaje estandar que se utiliza para trabajar con
bases de datos.
Esto significa que mediante este lenguaje podemos crear, modificar,
buscar, y hacer cualquier otra operación en una base de datos. Lo de
estándar significa que el mismo lenguaje puede usarse para diferentes
tipos de bases de datos, es decir con SQL podemos operar con bases en
MySQL, SQL Server, Access, Oracle, DB2, y otros sistemas de bases de
datos.
El lenguaje puede variar ligeramente de un tipo de base a otro, debido
a especificaciones de cada base, pero en esencia es el mismo para todas.
Nosotros nos centraremos en este manual en el el tipo de base de
datos MySQL, tal vez el más usado para páginas web.
Este manual se va a centrar sobre todo en explicar el lenguaje SQL,
y en su uso en las páginas web. Mas concretamente nos referimos al uso
de MySQL dentro de PHP, para manejar bases de datos desde la web.

Punto de partida:
Antes de seguir con este manual debemos tener algunos
conocimientos previos, los cuales vienen explicados en otras partes de
"AprendeWeb":
 HTML y CSS: Lenguajes básicos para la creación de páginas. Tenemos
un manual de HTML en esta misma web que podemos seguir junto con un
manual de CSS
 PHP : Lenguaje del lado del servidor para manipular los datos que
queremos introducir o recoger de la página. Disponemos también de
un manual de PHP.
Aquí usaremos las bases de datos con el sistema MySQL. Para
manejar este tipo de bases de datos lo más sencillo es utilizar el programa
PhpMyAdmin. En el Tema 13: PhpMyAdmin del manual de PHP Básico se
explica como instalar este programa y su utilización con bases de datos
MySQL.
Por otra parte el lenguaje PHP utiliza una serie de instrucciones para
conectar con la base de datos en MySQL y poder enviar o recibir datos.
Explicamos esto en el Tema 14. Bases en la web del manual de PHP.
En este "tema 14" indicamos también cómo incluir las sentencias del
lenguaje SQL dentro del lenguaje PHP y vemos también las formas básicas
del lenguaje SQL para poder hacer las operaciones más comunes con las
bases de datos.
El código en SQL simplemente indica qué es lo que debemos hacer en
la base de datos, es decir nos indica si queremos crear algún elemento
(tablas, nuevos registros, etc), o si queremos extraer todos los datos de
una tabla, o buscar un elemento, etc. Por lo tanto todo el proceso de
conectar con la base de datos, o poder visualizar los datos en pantalla,
corre a cargo del lenguaje PHP. En este manual nos centraremos en cómo
construir el código SQL, por lo que si no tenemos claro cual es el código
PHP que necesitamos para poder transferir datos a la página
recomendamos estudiar antes el "tema 14" de PHP Básico indicado
anteriormente.

Código en PHP
Aunque la utilización del código PHP para trabajar con bases de datos
viene explicado en el "tema 14" descrito anteriormente, vamos a dar aquí
un rápido repaso a la forma de trabajar con bases de datos MySQL en
PHP.
El código básico e imprescindible para conectar, enviar o recibir datos
a una base de datos mediante PHP es el siguiente:
$db=mysql_connect($servidor,$usuario,$contrasena);
mysql_select_db("nombre_base_datos",$db);
$sql="código_SQL";
$datos=mysql_query($sql,$db);
mysql_close($db);
Veamos lo que hemos hecho al escribir este código:
 Conectar con MySQL : Mediante el método mysql_connect()conectamos
con el programa MySQL que gestiona la base de datos. Debemos pasar
unos parámetros que son el nombre del servidor, el nombre de usuario,
y su contraseña. Si trabajamos en local (desde nuestro ordenador) estos
datos normalmente serán los siguientes si no los hemos
cambiado: $servidor="localhost", $usuario="root", $contrasena="". Si
trabajamos desde un servidor en la web éste debe proporcionarnos los
datos al crear en el servidor la base de datos. Guardaremos la conexión
en una variable ($db) para poder referirnos a ella en otras instrucciones.
 Seleccionar base de datos : mediante el
método mysql_select_db() seleccionamos la base de datos a la que
queremos acceder. Dentro de MySQL suele haber más de una base de
datos guardada, por lo que en el primer parámetro de éste método
indicamos el nombre de la base de datos a la que queremos acceder. El
segundo parámetro es la referencia a la conexion con MySQL.
 Escribir codigo SQL: El siguiente paso es escribir el código SQL, el cual
lo guardamos en una variable ($sql) para poder enviar o recibir datos
desde la base. donde pone código_SQL lo sustituiremos por el código SQL
que indica las variaciones que queremos hacer en la base de datos.
 Enviar el código SQL : El método mysql_query() envia el código SQL al
programa MySQL, el cual realiza las acciones que le indicamos (buscar,
remplazar, insertar ...) y devuelve en la variable $datos el resultado de
estas acciones. Para ello le pasamos como primer parámetro el código
SQL (recogido en la variable $sql, y como segundo parámetro la
referencia a la conexión ($db).
 Cerrar la conexion : Por último cerramos la conexión con el
métodomysql_close($db), donde el parámetro que le pasamos es la
referencia a la conexión.
Si lo que pretendemos es crear o cambiar datos en la base de datos,
el código anterior no nos devolverá ningún dato de la base, ya que lo que
hacemos es insertar datos y no extraerlos. Si lo que queremos es extraer
datos de la base para poder insertarlos en la página, éstos los
obtendremos en la variable $datos que recoge el resultado del
método mysql_query().
Sin embargo el resultado no podemos verlo directamente en la
página, ya que MySQL nos lo envia en su propio formato. Para cambiarlo
a un formato legible en PHP utilizaremos el método mysql_fetch_array():
$row=mysql_fetch_array($datos)
El m�todo nos devuelve los datos del primer registro en un doble
array indexado y asociativo, es decir los datos aparecen dos veces, una
asociado al número de orden y otra asociado al nombre de su columna.
Este método tiene un puntero interno que hace que cada vez que se le
llama devuelva el siguiente registro. Así que para ver todos los registros
que hay en $datos utilizaremos un bucle tipo while de la siguiente manera:
while ($row=mysql_fetch_array($datos)) {
//... código PHP para extraer datos, por ejemplo:
$nombre=$row['nombre'];
$telefono=$row['telefono'];
echo "<p><b>$nombre</b> ; tel: $telefono.</p>.";
}
En el ejemplo anterior se supone que extraemos los datos de una
tabla que tiene las columnas "nombre" y "telefono".

Trabajar con SQL en PHP: resumen


El envio o recepción de datos de una base en PHP se hace básicamente
con las siguientes instrucciones:
$sql="codigo SQL";
$datos=mysql_query($sql,$db);
En la primera de estas intrucciones escribimos el código SQL y lo
almacenamos en una variable. En la segunda enviamos el código a la base
de datos, ésta ejecuta el código y si es necesario manda una respuesta,
recogida en la variable $datos.
Las demás funciones PHP muestran la forma más básica de insertar
los datos de una base en una página. Sin embargo en PHP hay más formas
de manejar los datos que extraemos de una base. En el "Tema 14 de PHP
Básico" indicado anteriormente viene explicado cómo manejar los datos
extraidos de una base. No está de más, echarle un vistazo, ya que a partir
de ahora este manual se referirá exclusivamente al lenguaje SQL que
debemos enviar (con la variable $sql), dando por hecho que ya sabemos
insertar los datos extraidos mediante SQL en la página web.

Características de SQL
Bases de datos
El lenguaje SQL nos permite manipular las bases de datos. En primer
lugar, aunque es posible que ya lo sepamos, indicaremos cómo funcionan
las bases de datos.
Una base de datos consiste fundamentalmente un una o más tablas.
Cada tabla consiste en una o más columnas llamadas "campos", y una
o más filas llamadas "registros". Cada columna o campo contiene un tipo
de dato diferente y cada fila o registro contiene una "entidad", es decir
objeto, persona ... que está registrado como un ente único.
La intersección de cada columna o "campo" con cada fila o "registro"
es una "celda". La celda es la unidad mínima de la base de datos, y en
cada una de ellas sólo podemos guardar un dato.
Cada base de datos (dentro de MySQL) debe tener un nombre único
que la distinga de las demás. De la misma forma cada tabla, dentro de
cada base de datos, debe tener también su nombre, no pudiendo haber
nombres repetidos para distintas tablas dentro de una misma base.
Dentro de cada tabla, cada columna o "campo" tiene también un
nombre. No puede haber dos columnas con el mismo nombre dentro de
una tabla.
Dentro de cada base las tablas pueden estar relacionadas entre sí.
Por ejemplo tenemos una base de datos llamada "literatura". Esta puede
contener diferentes tablas, por ejemplo, "autores", "obras", "epoca",
"genero". Cada una de estas tablas se relaciona con las otras para poder
mostrar no sólo sus propios datos sino también algunos datos de las otras.
Esto nos lleva a otro tipo de elemento, la consulta. Una consulta es
una serie de datos que extraemos de la tabla mediante el lenguaje SQL.
En una consulta podemos extraer, por ejemplo una tabla entera, o datos
que buscamos en una tabla que coincidan con un cierto criterio, o datos
de varias tablas relacionados entre sí, etc.

El lenguaje SQL:
El lenguaje SQL sirve para manejar las bases de datos, es un lenguaje
de texto plano, que podemos usar desde cualquier editor de textos. Nos
permite acceder y manipular las bases de datos. Para usarlo con páginas
web debemos usarlo conjuntamente con otros lenguajes. En la página
anterior de este manual indicamos cómo usar SQL junto a PHP para bases
en MySQL, por lo que no vamos a insistir en ello.
Con SQL podemos hacer entre otras las siguientes operaciones en el
programa que gestiona las bases de datos:
 Crear nuevas bases de datos.
 Crear nuevas tablas en una base de datos.
 Crear nuevos registros en las tablas de una base de datos
 Crear tablas de consulta en una base de datos.
 Borrar tablas o bases de datos.
 Borrar registros.
 Cambiar uno o varios datos de un registro.
 Mostrar los datos de una tabla o consulta.
 Buscar y mostrar sólo algunos datos de una tabla o consulta, poniendo una serie
de condiciones para la búsqueda.
Es decir, el lenguaje SQL permite gestionar una base de datos en su
totalidad. Con MySQL y PHP podemos hacer todas estas operaciones
desde un sitio web.
Sintaxis de SQL.
El lenguaje SQL se compone de sentencias. Cada sentencia es una
instruccón que enviamos a la base de datos. En las sentencias se incluyen
dos tipos de palabras: las palabras clave propias del lenguaje SQL y los
datos de la base (datos individuales, nombres de bases, tablas o
columnas. etc.);
El lenguaje SQL NO DISTINGUE entre mayúsculas o minúsculas en
sus palabras clave. es decir podemos escribir tanto "select" como
"SELECT". Sin embargo en los nombres de bases de datos, tablas,
columnas y otros elementos de la base SI se distingue, por lo que éstos
debemos ponerlos tal como están en la base.
La mayoría de los manuales sobre SQL escriben las palabras clave
propias de SQL en mayúsculas, para distinguir entre palabras clave y
nombres de elementos de la base o datos. Nosotros en este manual lo
haremos también así.
Cada sentencia empieza por una palabra que es un verbo e indica lo
que queremos hacer (create, drop, select, update, etc) seguido por el
nombre del tipo de elemento al que afecta. Esto último puede ser una o
varias palabras. Además también pueden usarse algunas preposiciones o
adverbios que indiquen restricciones o el tipo de búsqueda (where =
condición, from = restringe a el elemento indicado luego, etc.). Sabiendo
un poco de inglés el lenguaje SQL puede resultar un tanto lógico ya que
estamos indicando lo que queremos hacer. Por ejemplo la instrucción:
SELECT nombre, telefono FROM agenda
Indica que queremos seleccionar (SELECT) los campos "nombre" y
"telefono" dentro de la tabla llamada "agenda".
Acabar cada sentencia con un punto y coma es opcional, sin embargo
es lo más recomendable, ya que si bien en MySQL esto es opcional, podría
haber problemas con otros tipos de sistemas para bases de datos.
Al igual que otros lenguajes de programación como html, css o php,
en SQL también se ignoran los espacios en blanco de más, las
tabulaciones y los saltos de línea, es decir escribir más de un espacio en
blanco o un salto de línea con tabulación o sin ella tiene el mismo efecto
que escribir sólo un espacio en blanco, con lo cual el programador puede
aprovechar esto para poner el código de una manera clara y estructurada.

Tipos de sentencias
Las sentencias de SQL se agrupan en tres tipos:
 DDL : Lenguaje de definición de Datos : (Data Definition Languaje) Entran
aquí las sentencias que definen y crean los objetos que soportan la base de datos
(creación o supresión de bases, creación o supresión de tablas, relaciones entre
tablas, claves en las tablas, etc.
 DML : Lenguaje de Manipulación de Datos : (Data Management Languaje)
Entran aquí las sentencias para manejar los datos almacenados en las tablas, a
nivel de campos (columnas) o registros (filas). Por ejemplo crear, cambiar o
consultar registros o sus datos.
 DCL : Lenguaje de Control de Datos : (Data Control Languaje) Entran aquí
las sentencias para controlar las funciones de administración y control de las
bases.