Pensar que se domina algo, es pensar no poder superarse.

Tutorial SQL Server

 

Qué es SQL
Las aplicaciones en red son cada día más numerosas y versátiles. En muchos casos, el
esquema básico de operación es una serie de scripts que rigen el comportamiento de una base
de datos.
Debido a la diversidad de lenguajes y de bases de datos existentes, la manera de comunicar
entre unos y otras sería realmente complicada a gestionar de no ser por la existencia de
estándares que nos permiten el realizar las operaciones básicas de una forma universal.
Es de eso de lo que trata el Structured Query Language que no es mas que un lenguaje
estándar de comunicación con bases de datos. Hablamos por tanto de un lenguaje normalizado
que nos permite trabajar con cualquier tipo de lenguaje (ASP o PHP) en combinación con
cualquier tipo de base de datos (MS Access, SQL Server, MySQL...).
El hecho de que sea estándar no quiere decir que sea idéntico para cada base de datos. En
efecto, determinadas bases de datos implementan funciones específicas que no tienen
necesariamente que funcionar en otras.
Aparte de esta universalidad, el SQL posee otras dos características muy apreciadas. Por una
parte, presenta una potencia y versatilidad notables que contrasta, por otra, con su
accesibilidad de aprendizaje.
El manual de SQL de desarrolloweb pretende dar a conocer las operaciones básicas que se
pueden realizar con SQL y que tienen una aplicación directa con la creación de aplicaciones en
red sin profundizar más de lo estrictamente necesario. Buscamos con ello ofrecer al webmaster
un manual de referencia práctico y aplicado.
 
Añadir un nuevo registro
Los registros pueden ser introducidos a partir de sentencias que emplean la instrucción Insert.
La sintaxis utilizada es la siguiente:
Insert Into nombre_tabla (nombre_campo1, nombre_campo2,...) Values (valor_campo1,
valor_campo2...)
Un ejemplo sencillo a partir de nuestra tabla modelo es la introducción de un nuevo cliente lo
cual se haría con una instrucción de este tipo:
Insert Into clientes (nombre, apellidos, direccion, poblacion, codigopostal, email, pedidos)
Values ('Perico', 'Palotes', 'Percebe n°13', 'Lepe', '123456', 'perico@desarrolloweb.com', 33)
Como puede verse, los campos no numéricos o booleanos van delimitados por apostrofes: '.
También resulta interesante ver que el código postal lo hemos guardado como un campo no
numérico. Esto es debido a que en determinados paises (Inglaterra,como no) los codigos
postales contienen también letras.

 

Borrar un registro
Para borrar un registro nos servimos de la instrucción Delete. En este caso debemos
especificar cual o cuales son los registros que queremos borrar. Es por ello necesario establecer
una selección que se llevara a cabo mediante la cláusula Where.
La forma de seleccionar se verá detalladamente en capítulos posteriores. Por ahora nos
contentaremos de mostrar cuál es el tipo de sintaxis utilizado para efectuar estas supresiones:
Delete From nombre_tabla Where condiciones_de_selección
Si queremos por ejemplo borrar todos los registros de los clientes que se llamen Perico lo
haríamos del siguiente modo:
Delete From clientes Where nombre='Perico'
Hay que tener cuidado con esta instrucción ya que si no especificamos una condición con
Where, lo que estamos haciendo es borrar toda la tabla:
Delete From clientes

 

Actualizar un registro
Update es la instrucción que nos sirve para modificar nuestros registros. Como para el caso de
Delete, necesitamos especificar por medio de Where cuáles son los registros en los que
queremos hacer efectivas nuestras modificaciones. Además, obviamente, tendremos que
especificar cuáles son los nuevos valores de los campos que deseamos actualizar. La sintaxis
es de este tipo:

 

Update nombre_tabla Set nombre_campo1 = valor_campo1, nombre_campo2 =
valor_campo2,... Where condiciones_de_selección
Un ejemplo aplicado:
Update clientes Set nombre='José' Where nombre='Pepe'
Mediante esta sentencia cambiamos el nombre Pepe por el de José en todos los registros cuyo
nombre sea Pepe.
Aquí también hay que ser cuidadoso de no olvidarse de usar Where, de lo contrario,
modificaríamos todos los registros de nuestra tabla.

 

Selección de tablas I
La selección total o parcial de una tabla se lleva a cabo mediante la instrucción Select. En
dicha selección hay que especificar:
-Los campos que queremos seleccionar
-La tabla en la que hacemos la selección
En nuestra tabla modelo de clientes podríamos hacer por ejemplo una selección del nombre y
dirección de los clientes con una instrucción de este tipo:
Select nombre, dirección From clientes
Si quisiésemos seleccionar todos los campos, es decir, toda la tabla, podríamos utilizar el
comodín * del siguiente modo:
Select * From clientes
Resulta también muy útil el filtrar los registros mediante condiciones que vienen expresadas
después de la cláusula Where. Si quisiésemos mostrar los clientes de una determinada
ciudad usaríamos una expresión como esta:
Select * From clientes Where poblacion Like 'Madrid'
Además, podríamos ordenar los resultados en función de uno o varios de sus campos. Para
este ultimo ejemplo los podríamos ordenar por nombre así:
Select * From clientes Where poblacion Like 'Madrid' Order By nombre
Teniendo en cuenta que puede haber más de un cliente con el mismo nombre, podríamos dar
un segundo criterio que podría ser el apellido:
Select * From clientes Where poblacion Like 'Madrid' Order By nombre, apellido

 

Si invirtiésemos el orden « nombre,apellido » por « apellido, nombre », el resultado
ser&iacutea distinto. Tendríamos los clientes ordenados por apellido y aquellos que tuviesen
apellidos idénticos se subclasificarían por el nombre.
Es posible también clasificar por orden inverso. Si por ejemplo quisiésemos ver nuestros
clientes por orden de pedidos realizados teniendo a los mayores en primer lugar escribiríamos
algo así:
Select * From clientes Order By pedidos Desc
Una opción interesante es la de efectuar selecciones sin coincidencia. Si por ejemplo
buscásemos el saber en qué ciudades se encuentran nuestros clientes sin necesidad de que
para ello aparezca varias veces la misma ciudad usaríamos una sentencia de esta clase:
Select Distinct poblacion From clientes Order By poblacion
Así evitaríamos ver repetido Madrid tantas veces como clientes tengamos en esa población.
 
Creación de tablas
En general, la mayoría de las bases de datos poseen potentes editores de bases que permiten
la creación rápida y sencilla de cualquier tipo de tabla con cualquier tipo de formato.
Sin embargo, una vez la base de datos está alojada en el servidor, puede darse el caso de que
queramos introducir una nueva tabla ya sea con carácter temporal (para gestionar un carrito

 

de compra por ejemplo) o bien permanente por necesidades concretas de nuestra aplicación.
En estos casos, podemos, a partir de una sentencia SQL, crear la tabla con el formato que
deseemos lo cual nos puede ahorrar más de un quebradero de cabeza.
Este tipo de sentencias son especialmente útiles para bases de datos como Mysql, las cuales
trabajan directamente con comandos SQL y no por medio de editores.
Para crear una tabla debemos especificar diversos datos: El nombre que le queremos asignar,
los nombres de los campos y sus características. Además, puede ser necesario especificar
cuáles de estos campos van a ser índices y de qué tipo van a serlo.
La sintaxis de creación puede variar ligeramente de una base de datos a otra ya que los tipos
de campo aceptados no están completamente estandarizados.
A continuación os explicamos someramente la sintaxis de esta sentencia y os proponemos una
serie de ejemplos prácticos:
 
Sintaxis
Create Table nombre_tabla
(
nombre_campo_1 tipo_1
nombre_campo_2 tipo_2
nombre_campo_n tipo_n
Key(campo_x,...)
)
Pongamos ahora como ejemplo la creación de la tabla pedidos que hemos empleado en
capítulos previos:
Create Table pedidos
(i
d_pedido INT(4) NOT NULL AUTO_INCREMENT,
id_cliente INT(4) NOT NULL,
id_articulo INT(4)NOT NULL,
fecha DATE,
cantidad INT(4),
total INT(4), KEY(id_pedido,id_cliente,id_articulo)
)