Documentos de Académico
Documentos de Profesional
Documentos de Cultura
El lenguaje de consulta estructurado (SQL) es un lenguaje de bases de datos normalizado, utilizado por los diferentes motores de bases de datos para realizar determinadas operaciones sobre los datos o sobre la estructura de los mismos. Pero sin embargo cada motor de bases de datos tiene sus peculiaridades y lo hace diferente de cada motor, por lo tanto el lenguaje SQL normalizado (ANSI) no tendr las misma respuesta en los diferentes motores de bases de datos.
Esta compuesto por comandos, clausulas, operadores y funciones de agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de datos.
bases de datos, campos e ndices. DML que permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos.
Seleccionan, manipulan o manejan los datos en los objetos de los esquemas ya existentes, esto permite hacer:
o mas vistas. Modificar los valores de atributos en filas existentes. Eliminar tuplas de tablas o vistas. Agregar nuevas tuplas a una tabla o vista. Bloquear una tabla o vista, limitando temporalmente el acceso de otros usuarios. Ver el plan de ejecucin de una sentencia SQL.
otras estructuras de bases de datos. Renombrarlas. Eliminar los datos del objeto. Obtener estadsticas. Autorizar y revocar privilegios y roles.
Microsoft SQL Server 2005 es una plataforma de base de datos que se utiliza en el procesamiento de transacciones en lnea (OLTP) a gran escala, permite el almacenamiento de datos y las aplicaciones de comercio electrnico; es tambin una plataforma de Business Intelligence para soluciones de integracin, anlisis y creacin de informes de datos.
Mirroring de Bases de Datos Operaciones de Indexacin Online Nuevas herramientas integradas Aislamiento de Imgenes (SI) Particionado de Datos Backups duplicados (mirrored backup) Restauracin online Recuperacin rpida Conexin de Administrador dedicada Mejoras en la Replication
Soporte para .NET Framework Tecnologas XML ADO.NET Versin 2.0 Mejoras en Transact-SQL Gestor de Servicio SQL Servicios de Notification Servicios Web Soporte para Xquery Mejoras en la Bsqueda de Texto Completo Mejoras en Seguridad
Servicios de Anlisis Servicios de Transformacin de Datos (DTS) Data Mining Servicios de Reporting Soporte de Servicios de Anlisis en Cluster Indicadores de Rendimiento Principales Escalabilidad y Rendimiento Cubo en un solo click Mejoras en la Arquitectura Integracin con los informes de Office System
SEGURIDAD
Dominio Directivas
Conexiones
Autenticacin
Triggers Notificacin
Seguridad por defecto Seguridad en el desarrollo Comunicaciones Restriccin del acceso de usuarios al servidor Inhabilitacin de servicios y restriccin de la configuracin del servicio Reduccin del rea de ataques potenciales en las nuevas funciones
Inyeccin de SQL
La Inyeccin Directa de Comandos SQL es una tcnica en la cual un atacante crea o altera comandos SQL existentes para exponer datos escondidos, o sobrescribir datos crticos, o incluso ejecutar comandos del sistema peligrosos en la mquina en donde se encuentra la base de datos_ Esto se consigue cuando la aplicacin toma informacin de entrada del usuario y la combina con parmetros estticos para construir una consulta SQL_ Los siguientes ejemplos, desafortunadamente, estn basados en historias reales Debido a la falta de validacin de la informacin de entrada y el establecimiento de conexiones con la base de datos desde un super_usuario o aquel que puede crear usuarios, el atacante podra crear un super_usuario en su base de datos
Ejemplo
De restablecer una contrasea ___ a adquirir ms privilegios (con cualquier servidor de base de datos)
$consulta = "UPDATE usertable SET pwd='$pwd' WHERE uid='$uid';"; Pero un usuario malicioso enva el valor ' or uid like'%admin%'; __ como $uid para cambiar la contrasea del administrador, o simplemente establece $pwd a "hehehe', admin='yes', trusted=100 " (con un espacio al inicio) para adquirir ms privilegios_ En tal caso, la consulta sera manipulada:
// $uid == ' or uid like'%admin%'; __$consulta = "UPDATE usertable SET pwd='___' WHERE uid='' or uid like '%admin%'; __";// $pwd == "hehehe', admin='yes', trusted=100 "$consulta = "UPDATE usertable SET pwd='hehehe', admin='yes', trusted=100 WHERE ___;"
Triggers y EVENTDATA()
DDL Triggers
Funcin EVENTDATA()
Que Dispara un trigger Tipo, SPID, Usuario, Hora Regresa datos XML
PRINCIPALES SENTENCIAS
CREATE TABLE nombre_tabla ( nombre_columna1 tipo dato, Col_nombre2 Tipo dato , ....... ) ;
Example, CREATE TABLE Persona ( Apellido varchar(30), Nombre varchar, Address varchar, Edad int(3) ) ;
);
SQL INSERT
INSERT INTO Nombre_Tabla VALUES (value1, value2,....) INSERT INTO Nombre_Tabla (column_name1,column_name2,...)VALUES(value1, value2,....) Ejemplo,
INSERT INTO Empleado VALUES (Juan', 22, 'm', #8/22/1982#, 27474017);
INSERT INTO Empleado ( Nombre, Edad, Sexo, Fecha de Nacimiento ) VALUES (Ana', 22, 'f', #2/18/1982#);
SQL UPDATE
UPDATE Nombre_Tabla SET Nombre_Columna = Nuevo Valor [, Nombre_Columna = Nuevo Valor] WHERE Nombre_Columna = Algun_Valor ;
SQL DELETE
Ejemplo,
Esta instruccin la utilizamos para obtener informacin de la base de datos, nos permite sacar reportes y es el principal comando. Tiene otras aplicaciones que veremos mas adelante.
Select [atributos que deseamos mostrar] Into [variable] From [tablas utilizadas] Where [condiciones de filtrado] Group by [atributos de agrupacin] Having [condiciones sobre los grupos] Ejemplos: select codigo nombre from empleado; select * from Empleado;
Distinct, devuelve solamente filas nicas. TOP n [porcentaje], devuelve solamente las n primeras filas o el porcentaje.
Select distinct nombre From usuario Select top 5 nombre From usuario
OTRAS SENTENCIAS
Funcin que retorna el Maximo Use sueldos go Select MAX(salario) as Mejor Pagado From salarios go
Min, selecciona el mnimo Use sueldos go Select MIN(salario) as Peor Pagado From salarios go
Order By Use sueldos go Select emp_id, salario as Sueldo Pagado From salarios Order by salario go
Se utiliza para especificar las tablas de las cuales se van a extraer o utilizar datos. En la clausula FROM podemos utilizar tablas derivadas, combinaciones y alias.
Se utiliza alias por motivos de flojera, en realidad abreviacin y lo utilizamos cuando utilizamos la misma tabla muchas veces.
Select r.* from relacionconnombrelargo as r
Tambin lo utilizamos para modificar las cabeceras del resultado, veamos: select id_rol as Rol from rol;
En el resultado de la consulta, la cabecera id_rol sera cambiada por Rol.
Se pueden utilizar tambin consultas y asignndoles un alias para luego utilizarlas en la consulta principal, es una forma alternativa a utilizar sub consultas.
Select id_empleado from Empleado e, (Select id_empleado from Ventas) as v where e.id_empleado <> v.id_empleado
Igual a Mayor a, Mayor o igual a Menor a, Menor o Igual a Diferente no es mayor que
no es menor que
!<
BETWEEN...AND... Entre dos valores inclusive IN(lista) Empareja valores con la lista LIKE Empareja con un patrn IS NULL Es un valor nulo?
NOT
[` ]
SELECT nombre FROM empleado WHERE nombre LIKE J%; Si se desea usar en la bsqueda los valores % o
Compara valores entre ambos datos, el minimo el mayor, ambos son inlcusivos. SELECT nombre,salario FROM empleado WHERE salario BETWEEN 1000 AND 1500;
AND OR NOT
Group by se utiliza para agrupar filas y sacar datos de ellas, como por ejemplo:
Having se utiliza de manera parecida que el where, solo que las condiciones del having se aplican a los grupos: Select d.departamento_id, sum(s.salario), s.empleado_id From departamento as d, salarios as s Group by d.departamento Having sum(s.salario) > 20000