SQL es un estandar para accesar y manejar bases de datos Este tutorial te va a mostrar como manejar bases de datos en MySQL,
SQL Server, MS Access, Oracle, Sybase, DB2 y otras bases de datos Que SQL SQL SQL es es te es SQL? un standar un lenguaje estructurado para consultas permite aceder y manejar bases dedatos un Estandar (ANSI American National Standards Institute)
Que puede hacer SQL? SQL SQL SQL SQL SQL SQL SQL SQL os SQL SQL puede puede puede puede puede puede puede puede ejecutar consultas a una base de datos obtener datos de una base de datos insertar registros en una base de datos actualizar registros de una base de datos borrar registros de una base de datos crear nuevas bases de datos crear nuevas tablas en una base de datos crear procedimientos almacenados(codigo almacenado) en una base de dat
puede crear vistas en una base de datos puede configurar permisos a tablas, procedimientos, y vistas
SQL es un estandar pero Apesar de que es un estandar ANSI (American National Sta ndards Institute) hay diferentes versiones del lenguaje SQL Y de cualquier modo, siguen cumpliendo el estandar ANSI pues estas versiones sop ortan la mayoria de los comandos tales como SELECT, UPDATE, DELETE, INSERT, WHER E Que es una RDBMS? RDBMS (del ingls Relational database management system) SGBD (Sistema de gestin 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 l o 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
Para realizar estos ejemplos descarga e instala SQL SERVER EXPRESS haciendo clic AQUI Sintaxis de SQL Tablas
Una base de datos contienen uno o mas tablas. Cada tabla esta identificada por u n nombre (ejemplo Clientes o Ordenes). Las tablas contienen registros (filas) co n datos Sentencias SQL Creamos la base de datos CREATE DATABASE empresa Creamos la tabla Personas CREATE TABLE [Link] ( 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 VALUES INSERT VALUES INSERT VALUES INSERT VALUES INSERT VALUES INSERT VALUES INSERT VALUES INSERT VALUES INSERT VALUES INSERT VALUES INTO Personas ('Marco Antonio','Trejo Lemus','Calle E 822','Tampico') INTO Personas ('Martha Beatriz','Trejo Lemus','Calle E 822','Tampico') INTO Personas ('Juana Elvira','Trejo Lemus','Calle E 822','Tampico') INTO Personas ('Nora Zulma','Trejo Lemus','Calle E 822','Tampico') INTO Personas ('Laura Lucero','Sobrevilla Trejo','Calle E 822','Tampico') INTO Personas ('Maria de la luz','Trejo Campos','Calle E 822','Tampico') INTO Personas ('Trinidad','Trejo Bautista','Calle E 822','Tampico') INTO Personas ('Marcel Abisag','Sobrevilla Trejo','Calle E 822','Tampico') INTO Personas ('Jose Abraham','Sobrevilla Trejo','Calle E 822','Tampico') INTO Personas ('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 Abajo esta un ejemplo del resultado de la sentencia a la tabla llamada "Personas ":
Este tutorial te enseara acerca de las diferentes declaraciones en SQL Manten en mente lo siguiente: las sentencias SQL no son sencibles a las mayuscul as 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 se ntencia SQL El punto y como es un estandar que se para cada sentencia SQL en sistemas de bas es 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 UPDATE DELETE INSERT - extrae datos de una base de datos - actualiza datos en una base de datos - borra datos de una base de datos 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 relaci ones 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 resultad os programando funciones como: Moverse-Al-Primero, Obtener-Contenido-Registro, M overse-Al-Siguiente-Registro, etc. Funciones de programacion como estas no son parte de este tutorial. Para aprende r 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 n o es un problema, algunas veces tu querras listar solo los valores diferentes (d istintos) en la tabla La palabra DISTINCT puede ser usada como llave para regresar solo los valores di stintos(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 c riterio 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 condici on son verdaderas El operador OR muestra el registro si la primera o la segunda condicion es verda dera Ahora teniendo en cuenta la siguiente tabla:
Para seleccionar solo las personas con el Nombre igual a Marcel Abisag y el apel lido 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 cam po 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 comple jas) Ahora seleccionaremos solo las personas con el campo Apellidos igual a "Sobrevil la 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 column a especifica La sentencia ORDER BY es usada para ordenar los registros en orden ascendente po r 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 orde n 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:
Sentencia SQL INSERT INTO La sentencia INSERT INTO se usa para insertar un registro o fila en una tabla Sintaxis SQL INSERT INTO Es posible escribir la sentencia INSET INTO en dos formas La primera forma no especifica los nombres de las columnas donde los datos seran insertados solo los valores: INSERT INTO nombre_tabla VALUES (valor1, valor2, valor3,...) La segunda forma especifica los nombres de las columnas y los valores insertados INSERT INTO nombre_tabla (columna1, columna2, columna3,...) VALUES (valor1, valor2, valor3,...) Ejemplo INSERT INTO Dado que tenemos la siguiente tabla Personas:
Insertaremos un nuevo registro de la siguiente forma: INSERT INTO Personas VALUES ('Martha', 'Lemus Hurtado', 'Canoga Park', 'L.A.') El resultado lo mostrariamos con la sentencia SELECT * FROM Personas y seria el siguiente:
Insertar Datos solo en columnas especificadas Es posible agregar datos en columnas especificas Las siguientes sentencias SQL agregaran una nueva fila, pero solo agregaran dato s en las columnas Nombre y Apellidos INSERT INTO Personas (Nombre, Apellidos) VALUES ('Antonio', 'Trejo Campos') Para mostrar el resultado con la sentencia: SELECT * FROM Personas Mostrara lo siguiente: