Usuario:Ing.Marco Antonio Trejo Lemus

De Wikilibros, la colección de libros de texto de contenido libre.

SQL PRINCIPIANTES PASO A PASO[editar]

BASICO[editar]


SQL es un estandar para accesar y manejar bases de datos



Este wikilibro te va a mostrar como manejar bases de datos en MySQL, SQL Server, MS Access, Oracle, Sybase, DB2 y otras bases de datos

Que es SQL?

SQL es un standar un lenguaje estructurado para consultas SQL te permite aceder y manejar bases dedatos SQL es un Estandar (ANSI American National Standards Institute)

Que puede hacer SQL? SQL puede ejecutar consultas a una base de datos SQL puede obtener datos de una base de datos SQL puede insertar registros en una base de datos SQL puede actualizar registros de una base de datos SQL puede borrar registros de una base de datos SQL puede crear nuevas bases de datos SQL puede crear nuevas tablas en una base de datos SQL puede crear procedimientos almacenados(codigo almacenado) en una base de datos SQL puede crear vistas en una base de datos SQL puede configurar permisos a tablas, procedimientos, y vistas

SQL es un estandar pero Apesar de que es un estandar ANSI (American National Standards Institute) hay diferentes versiones del lenguaje SQL

Y de cualquier modo, siguen cumpliendo el estandar ANSI pues estas versiones soportan la mayoria de los comandos tales como SELECT, UPDATE, DELETE, INSERT, WHERE


Que es una RDBMS?

RDBMS (del inglés Relational database management system) SGBD (Sistema de gestión de base de datos relacional) es la base para el SQL y para todas las bases de datos modernas como MS SQL Server, IBM DB2, Oracle, MySQL, and Microsoft Access.

Los datos en un RDBMS se almacenan en objetos llamados tablas Una tabla es una coleccion relacionada de entradas que consiste en columnas y filas

Usando SQL en tu Sitio Web

Para construir un sitio web que muestre datos de una base de datos necesitaras lo siguiente:

  • Un programa de bases de datos RDBMS (MS Access, SQL Server, MySQL)
  • Un lenguaje del lado del servidor tales como PHP o ASP
  • SQL
  • HTML/CSS

Sintaxis de SQL

Tablas

Una base de datos contienen uno o mas tablas. Cada tabla esta identificada por un nombre (ejemplo Clientes o Ordenes). Las tablas contienen registros (filas) con datos


Sentencias SQL


Creamos la base de datos


CREATE DATABASE empresa

Creamos la tabla Personas

CREATE TABLE dbo.Personas ( P_id int PRIMARY KEY IDENTITY, Nombre nchar(20) NOT NULL, Apellidos nchar(30) NOT NULL, Direccion nchar(40) NOT NULL, Ciudad nchar(10) NOT NULL ) GO

Insertamos algunos registros:

INSERT INTO Personas VALUES ('Marco Antonio','Trejo Lemus','Calle E 822','Tampico') INSERT INTO Personas VALUES ('Martha Beatriz','Trejo Lemus','Calle E 822','Tampico') INSERT INTO Personas VALUES ('Juana Elvira','Trejo Lemus','Calle E 822','Tampico') INSERT INTO Personas VALUES ('Nora Zulma','Trejo Lemus','Calle E 822','Tampico') INSERT INTO Personas VALUES ('Laura Lucero','Sobrevilla Trejo','Calle E 822','Tampico') INSERT INTO Personas VALUES ('Maria de la luz','Trejo Campos','Calle E 822','Tampico') INSERT INTO Personas VALUES ('Trinidad','Trejo Bautista','Calle E 822','Tampico') INSERT INTO Personas VALUES ('Marcel Abisag','Sobrevilla Trejo','Calle E 822','Tampico') INSERT INTO Personas VALUES ('Jose Abraham','Sobrevilla Trejo','Calle E 822','Tampico') INSERT INTO Personas VALUES ('Samuel Salomon','Olmeda Trejo','Calle E 822','Tampico')


Muchas de las acciones que necesitas realizar en una base de datos se hacen con sentencias SQL

Seleccionamos todos los registros de la tabla

Las siguiente sentencia seleccionara todos los registros de la tabla "Personas" :

SELECT * FROM Personas

Este wikilibro te enseñara acerca de las diferentes declaraciones en SQL

Manten en mente lo siguiente: las sentencias SQL no son sencibles a las mayusculas o minisculas


Punto y coma despues de las sentencias SQL

Algunos sistemas de bases de datos requieren un punto y coma al final de cada sentencia SQL

El punto y como es un estandar que se para cada sentencia SQL en sistemas de bases de datos que habilitan mas de una sentencia SQL ejecutada en la misma llamada al servidor


SQL DML Y DLL

SQL puede ser dividido en dos partes: El Lenguaje de Manipulacion de Datos (DML) y el Lenguaje de Definicion de Datos (DDL)


La parte DML del SQL de los comandos de consulta y actualizacion son:


SELECT - extrae datos de una base de datos UPDATE - actualiza datos en una base de datos DELETE - borra datos de una base de datos INSERT INTO - inserta datos dentro de una base de datos


DLL del SQL que permite a bases de datos y tablas ser creadas o borradas. Tambien define indices(llaves). especifica enlaces entre tablas, y impone relaciones entre tablas.


La parte DLL del SQL, las sentencias mas importante DDL en SQL son:


CREATE DATABASE - crea una nueva base de datos ALTER DATABASE - modifica una base de datos CREATE TABLE - crea una nueva tabla ALTER TABLE - modifica una tabla DROP TABLE - borra una tabla CREATE INDEX - crea un indice (llave de busqueda) DROP INDEX - borra un indice

La sentencia SELECT

La sentencia SELECT es usada para seleccionar datos de una base de datos.


El resultado es almacenado en una tabla temporal, llamada tabla-resultado La sintaxis SQL de la sentencia SELECT es:

1) SELECT nombre_columna(s) FROM nombre_tabla

y

2) SELECT * FROM nombre_tabla


Ejemplo 1

SELECT nombre_columna(s) FROM nombre_tabla


SELECT Nombre,Apellidos,Ciudad FROM Personas


Ejemplo 2


SELECT * FROM nombre_tabla


SELECT * FROM nombre_tabla


Navegacion en una tabla de resultados


Muchos sistemas de bases de datos permiten la navegacion en la tabla de resultados programando funciones como: Moverse-Al-Primero, Obtener-Contenido-Registro, Moverse-Al-Siguiente-Registro, etc.

Funciones de programacion como estas no son parte de este tutorial. Para aprender a accesar a datos con la llamada a funciones espera mi siguiente tutorial ADO y PHP.


La sentencia SELECT DISTINCT


Dentro de una tabla, algunas columnas pueden contener valores duplicados. Esto no es un problema, algunas veces tu querras listar solo los valores diferentes (distintos) en la tabla

La palabra DISTINCT puede ser usada como llave para regresar solo los valores distintos(diferentes).

Sintaxis SQL SELECT DISTINCT

SELECT DISTINCT nombre_columna(s) FROM nombre_table

Ejemplo:

SELECT DISTINCT Apellidos FROM Personas

Abajo esta el resultado de la sentencia DISTINCT a la tabla "Personas":


SELECT DISTINCT Ciudad FROM Personas

Abajo esta el resultado de la sentencia DISTINCT a la tabla "Personas":


SQL WHERE


La sentencia where es usada para extraer solo los registros que cumplen con el criterio especificad

La Sintaxis SQL WHERE

SELECT nombre_columna(s) FROM nombre_tabla WHERE nombre_columna operador valor

Ejemplo de la sentecia WHERE

SELECT * FROM Personas WHERE Apellidos ='Trejo Lemus'

Comillas en los campos de texto

SQL usa comillas simples en los valores de texto (muchos sitemas manejadores de bases de datos aceptan comillas dobles).Para SQL los valores de texto deben ser puestos entre comillas simples

Los valores numericos no deben ser puestos entre comillas

Para valores de texto:

Esta es la forma correcta:

SELECT * FROM Personas WHERE Nombre='Lucero'

Esta es la forma equivocada:

SELECT * FROM Personas WHERE Nombre=Lucero

Para valores numericos:

Esta es la forma correcta:

SELECT * FROM Personas WHERE P_id = 9

Esta es la forma incorrecta:

SELECT * FROM Personas WHERE P_id = '9'


Operadores permitidos en la sentencia WHERE

Con la sentencia WHERE, los siguientes operadores pueden ser usados:


Operadores SQL AND y OR


Los operadores AND y OR son usados para filtrar registros basados en mas de una condicion

Operador AND El operador AND muestra el registro si la primera condicion y la segunda condicion son verdaderas

El operador OR muestra el registro si la primera o la segunda condicion es verdadera

Ahora teniendo en cuenta la siguiente tabla:

Para seleccionar solo las personas con el Nombre igual a Marcel Abisag y el apellido igual a Sobrevilla Trejo,

Usaremos la siguiente sentencia SELECT:

SELECT * FROM Personas WHERE Nombre='Marcel Abisag' AND Apellidos='Sobrevilla Trejo'

El resultado seria:

Operador OR

Ahora seleccionaremos las personas con el campo Nombre igual a "Martha" o el campo Nombre igual a "Elvira"

Usaremos la siguiente sentencia SELECT

SELECT * FROM Personas WHERE Nombre='Martha Beatriz' OR Nombre='Juana Elvira'

El resultado sera el siguiente:


Combinando AND & OR


Puedes combinar el AND y el OR (usando parentesis para formar expresiones complejas)

Ahora seleccionaremos solo las personas con el campo Apellidos igual a "Sobrevilla Trejo" AND Nombre igual a "Marcel Abisag" OR igual a "Jose Abraham"

Usaremos la siguiente sentencia SELECT:

SELECT * FROM Personas WHERE Apellidos='Sobrevilla Trejo' AND (Nombre='Marcel Abisag' OR Nombre='Jose Abraham')

El resultado sera el siguiente:


SQL ORDER BY


The ORDER BY keyword is used to sort the result-set. La sentencia ORDER BY es usada para ordenar un resultado ordenado por una columna especifica

La sentencia ORDER BY es usada para ordenar los registros en orden ascendente por default

Si quieres ordenar los registros en orden descendente utiliza la palabra DESC


Sintaxis SQL ORDER BY


SELECT nombre_columna(s) FROM nombre_tabla ORDER BY nombre_column(s) ASCDESC

Ahora vamos a seleccionar todas las personas de la tabla, pero mostrando en orden por el campo Nombre

Usaremos la siguiente sentencia SELECT:


SELECT * FROM Personas ORDER BY Nombre

El resultado sera el siguiente:

ORDER BY DESC

Ahora vamos a seleccionar a todas las personas de la tabla pero mostrandolas en un orden descendente por el campo Nombre con la palabra DESC

We use the following SELECT statement:

SELECT * FROM Personas ORDER BY Nombre DESC

El resultado sera el siguiente:





Compartir Conocimientos tecnicos "Know How" en Ubuntu :[editar]

Instrucciones para la instalacion del servidor de impresion CUPS

Descubri una forma de configurar el servidor de impresion CUPS en las PCs clientes para la conexion de impresoras via CUPS (IPP)

Resulta que en la configuracion de los CUPS queda de la siguiente manera:

En una LAN la impresora de red. --- Se añade la impresora como impresora de Red del tipo "Impresora CUPS (IPP) y colocando la direccion que pone en las opciones

"http://192.168.10.45:631/printers/HP1022". Los controladores que se deben usar siemre son Postscript en este caso use el Laserjet 1200 Postscript me funciona bien, para la HP LaserJet 1022. con una resolucion de 300 DPI.

El punto aqui es que se debe imprimir una pagina de prueba desde la interfaz web del CUPS de Ubuntu 6.06, en el explorador Firefox en la opcion de direccion de acuerdo al formato

http://nombredelhost:631/printers/<nombreimpresora>

En mi caso teclee:


http://192.168.10.45:631/printers/HP1022

Y nos aparece la interfaz web de administracion CUPs

Hacer clic en la opcion Print Test Page

Si la impresion sale exitosamente, ya queda configurado para poder imprimir desde Open Office


Nota :

Si no aparece checate el hilo para configurarlo

http://www.ubuntu-es.org/index.php?q=taxonomy/term/21&page=1


Tengo en mi portatil tambien Ubuntu 6.06 y he conseguido configurar todo tambien,tambien la impresora de red Hp LaserJet 2300

La he añadido la impresora como impresora de Red del tipo "Impresora CUPS (IPP) y colocando la direccion que pone en la opcion de direccion de acuerdo al formato

http://nombredelhost:631/printers/<nombreimpresora>

En mi caso teclee:

"htpp://192.168.10.30:631/printer/HpServer2300".

Los controladores que se deben usar siemre son Postscript en este caso use el Laserjet 2200 Postscript me funciona bien, para la HP LaserJet 2300. con una resolucion de 300 DPI.

Se debe imprimir una pagina de prueba desde la interfaz web del CUPS de Ubuntu 6.06, en el explorador Firefox en la opcion de direccion: tecleamos...

http://nombredelhost:631/printers/<nombreimpresora>

http://192.168.10.30:631/printers/ServerHp2300

Nos aparece la interfaz web de administracion CUPs

Hacer clic en la opcion Print Test Page

Si la impresion sale exitosamente, ya queda configurado para poder imprimir desde Open Office


 Las impresoras funcionan de maravilla y actualmente trabajan con Red Hat 9.0

a Red Hat 9.0 y de buntu 6.06 al servidor de impresion de Red Hat 9.0 tambien

Un saludo a toda la comunidad...Por mas dificil que parezca un reto, si se puede alcanzar, si realmente lo intentamos...

Wikilibros no es papel. Así pues, Wikilibros no tiene límites de tamaño, puede incluir enlaces, puede ser más inmediato....

Enlaces relacionados:

http://www.ubuntu-es.org/index.php?q=node/48177