viernes, 10 de noviembre de 2017

¿Qué es SQL?
SQL (por sus siglas en inglés Structured Query Language; en español lenguaje de consulta estructurada) es un lenguaje específico del dominio que da acceso a un sistema de gestión de bases de datos relacionales que permite especificar diversos tipos de operaciones en ellos. Una de sus características es el manejo del álgebra y el cálculo relacional que permiten efectuar consultas con el fin de recuperar, de forma sencilla, información de bases de datos, así como hacer cambios en ellas.
Pasos para instalar Microsoft SQL express:
Para iniciar el proceso de instalación de SQL Server Express, haz doble-clic sobre el archivo SQLEXPR.EXE.
Nota: Si lo prefieres, es posible extraer los archivos de instalación dentro de una carpeta temporal utilizando la sintaxis SQLEXPR.EXE /X en la línea de comandos.
En la ventana End User License Agreement, lee la licencia de uso y selecciona I accept the licensing terms and conditions . Pulsa Next para seguir.
SQL Server Component Update es ejecutado y éste instala los requisitos necesarios para la instalación de SQL Server Express, como es el Microsoft SQL Native Client y los Microsoft SQL Server 2005 Setup Support Files.
En la ventana Welcome to the Microsoft SQL Server Installation Wizard, pulsar Next para seguir.
En el próximo paso, SQL Server Express muestra la ventana System Configuration Check (Ver Figura 1). De la misma forma que con el SQL Server 2005, el SQL Server Express hace una verificación en busca de posibles problemas (requisitos mínimos de hardware y software) que puedan impedir la instalación de SQL Server Express. En caso de que algún problema sea encontrado, tendrás la opción de visualizar información relativa al problema encontrado y conocer la posible solución.
En la ventana Registration Information escribe las informaciones solicitadas y pulsa Next. Algunas observaciones importantes deben ser hechas aquí:
Debido a que SQL Server Express es un producto gratuito, no existe solicitud de clave de producto.
Si seleccionas la opción Hide advanced configuration options (Ver Figura 2), no serán mostradas las ventanas Service Account (la cual permite definir la cuenta de usuario que será usada para iniciar los servicios de SQL Server Express), y Collation Settings (la cual permite informar qué Collation y Code Page deberá usar SQL Server Express). En este caso SQL Server Express será instalado con su configuración
En la ventana Feature selection, selecciona las componentes que deseas instalar y pulsa Next para seguir
La ventana Instance Name (no será presentada si fue seleccionada antes la opción Hide advanced configuration options), permite que selecciones una instancia por defecto (Default Instance) o una instancia nombrada (Named Instance) para su instalación (Ver Figura 4). Una instancia puede ser Default Instance (instancia por defecto, no nombrada) o Named Instance (nombrada). Cuando SQL Server 2005 es instalado como Default Instance, no requiere que el cliente especifique el nombre de la instancia para hacer una conexión. Para conectarse, el cliente necesita conocer solamente el nombre del servidor SQL ó la dirección IP. Una Named Instance es identificada por el nombre del servidor más el nombre de la instancia especificada durante la instalación. Para conectarse, el cliente necesita conocer el nombre del servidor (o su dirección IP) y el nombre de la instancia. Por defecto, SQL Server es instalado como Default Instance (no nombrada) a menos que especifiques un nombre de instancia durante la instalación. Al contrario que SQL Server 2005, SQL Server Express por defecto es instalado como Named Instance, teniendo como nombre por defecto para una instancia el nombre SQLExpress. Si no indicas un nombre para una instancia durante la instalación, al no desmarcar la opción Hide Advanced configuration options, será usado el nombre por defecto. En este caso, deberás acceder a SQL Server Express como NombreComputadora\SQLExpress. También puedes instalar SQL Server Express como Default Instance (no nombrada), si ninguna otra versión de SQL Server ya estuviera instalada en el servidor como Default Instance. Para hacer eso, instala SQL Server Express como Named Instance usando como nombre para la instancia el nombre MSSQLSERVER.
Nota: Para que el SQL Server Express permita indicar un nombre diferente para una instancia, desmarca la opción Hide Advanced configuration options en la ventana Registration Information al inicio de la instalación.
La ventana Service Account (no será presentada si no fue seleccionada la opción Hide advanced configuration options), permite que se asigne una cuenta local del sistema (local system account) o una cuenta de usuario de dominio (domain user account) para iniciar los servicios de SQL Server Express (Ver Figura 5). Por defecto, SQL Server Express es instalado con la cuenta de sistema Network Service como cuenta para el inicio de los servicios. Se recomienda usar una cuenta de dominio que entonces se crea como una cuenta local específica para el inicio de los servicios.
En la ventana Authentication Mode especifica el modo de seguridad que deberá ser utilizado para conectarse al SQL Server Express y pulsa Next.
En la ventana Collations Settings selecciona el Collation y el tipo de ordenamiento deseado y pulsa Next para continuar (Ver Figura 6).
Nota: Por defecto, SQL Server Express es instalado como insensible a mayúsculas/minúsculas (case-insensitive), y sensible a tildes (accent-sensitive). Es decir, no hace distinción entre una mayúscula y minúscula, pero sí hace distinción en las acentuaciones usando tildes. Con esto, durante una búsqueda, "Andrés" y "andrés" son una misma cosa pero "Andrés" y "Andres" NO lo son. Para evitar futuros problemas con la acentuación de caracteres en mayúsculas y en minúsculas, se recomienda seleccionar el Collate que aparece encima. Si precisas mantener compatibilidad de collate con otros servidores, selecciona tu collate de acuerdo al collate de las versiones anteriores.
En la ventana Error Reporting, indica si deseas reportar a Microsoft los errores del SQL Server Express y sus componentes. Esta opción es habilitada por defecto.
En la ventana Ready to Install, pulsa en Install para iniciar el proceso de instalación del SQL Server Express. Igual que en SQL Server 2005, la ventana Setup Progress permite acompañar el proceso de instalación de cada componente.
Principales Sentencias SQL:
Las sentencias SQL pertenecen a dos categorías principales: Lenguaje de Definición de Datos, DDL y Lenguaje de Manipulación de Datos, DML. Estos dos lenguajes no son lenguajes en sí mismos, sino que es una forma de clasificar las sentencias de lenguaje SQL en función de su cometido. La diferencia principal reside en que el DDL crea objetos en la base de datos y sus efectos se pueden ver en el diccionario de la base de datos; mientras que el DML es el que permite consultar, insertar, modificar y eliminar la información almacenada en los objetos de la base de datos.
Cuando se ejecutan las sentencias DDL de SQL, el SGBD confirma la transacción actual antes y después de cada una de las sentencias DDL. En cambio, las sentencias DML no llevan implícito el commit y se pueden deshacer. Existe pues un problema al mezclar sentencias DML con DDL, ya que estas últimas pueden confirmar las primeras de manera involuntaria e implícita.
Sentencia DDL Objetivo
Alter procedure Recompilar un procedimiento almacenado.
Alter Table Añadir o redefinir una columna, modificar la asignación de almacenamiento.
Analyze Recoger estadísticas de rendimiento sobre los objetos de la BD para utilizarlas en el optimizador basado en costes.
Create Table Crear una tabla.
Create Index Crear un índice.
Drop Table Eliminar una tabla.
Drop Index Eliminar un índice.
Grant Conceder privilegios o papeles, roles, a un usuario o a otro rol.
Truncate Eliminar todas las filas de una tabla.
Revoke Retirar los privilegios de un usuario o rol de la base de datos.
Sentencia DML Objetivo
Insert Añadir filas de datos a una tabla.
Delete Eliminar filas de datos de una tabla.
Update Modificar los datos de una tabla.
Select Recuperar datos de una tabla.
Commit Confirmar como permamentes las modificaciones realizadas.
Rollback Deshacer todas las modificaciones realizadas desde la última.
Metadatos SQL:
Las tablas base del sistema son las tablas subyacentes que almacenan los metadatos para una base de datos específica. La base de datos maestra es especial al respecto porque contiene algunas tablas adicionales que no se encuentran en ninguna de las demás bases de datos. Estas tablas contienen metadatos persistentes con un ámbito para todo el servidor.
Nota importante Importante
Las tablas base del sistema se utilizan solo en Motor de base de datos de SQL Server y no son para el uso general de los clientes. Están sujetas a cambios y no se garantiza su compatibilidad.
Metadatos de tablas base del sistema
Un receptor que tiene los permisos CONTROL, ALTER o VIEW DEFINITION en una base de datos puede ver los metadatos de tablas base del sistema en la vista de catálogo sys.objects. El receptor también puede resolver los nombres e identificadores del objeto de tablas base del sistema mediante funciones integradas como OBJECT_NAME y OBJECT_ID.
Para enlazar con una tabla base del sistema, un usuario tiene que conectarse a la instancia de SQL Server utilizando la conexión de administrador dedicada (DAC). Si intentar ejecutar una consulta SELECT de una tabla base del sistema sin conectarse a través de la conexión DAC, se producirá un error.
Nota importante Importante
El acceso a las tablas base del sistema mediante DAC solo está diseñado para el personal de Microsoft y no es un escenario de cliente compatible.
Tablas base del sistema
En la tabla siguiente se enumeran y describen todas las tablas base del sistema de SQL Server.
sys.sysschobjs
Existe en todas las bases de datos. Cada fila representa un objeto en la base de datos.
sys.sysbinobjs
Existe en todas las bases de datos. Contiene una fila para cada entidad de Service Broker en la base de datos. Las entidades de Service Broker contienen los siguientes elementos:
Tipo de mensaje
Contrato de servicio
Servicio
Los nombres y tipos utilizan intercalación binaria fija.
sys.sysclsobjs
Existe en todas las bases de datos. Contiene una fila para cada entidad clasificada que comparte las mismas propiedades comunes, entre las que se incluyen las siguientes:
Ensamblado
Dispositivo de copia de seguridad
Catálogo de texto completo
Función de partición
Esquema de partición
Grupo de archivos
Clave de ofuscación
sys.sysnsobjs
Existe en todas las bases de datos. Contiene una fila para cada entidad centrada en el espacio de nombres. Esta tabla se usa para almacenar entidades de la colección de XML.
sys.syscolpars
Existe en todas las bases de datos. Contiene una fila para cada columna en una tabla, vista o función con valores de tabla.
También contiene las filas para cada parámetro de un procedimiento o función.
sys.systypedsubobjs
Existe en todas las bases de datos. Contiene una fila para cada subentidad escrita. Solo se incluyen en esta categoría los parámetros de la función de partición.
sys.sysidxstats
Existe en todas las bases de datos. Contiene una fila para cada índice o estadísticas para tablas y vistas indizadas
Nota Nota
Cada índice (excepto el montón) se asocia a una estadística que tiene el mismo nombre que el índice.
sys.sysiscols
Existe en todas las bases de datos. Contiene una fila para cada índice persistente y para columna de estadísticas.
sys.sysscalartypes
Existe en todas las bases de datos. Contiene una fila por cada tipo de sistema o cada tipo definido por el usuario.
sys.sysdbreg
Solo existe en la base de datos maestra. Contiene una fila por cada base de datos registrada.
sys.sysxsrvs
Solo existe en la base de datos maestra. Contiene una fila para cada servidor local, vinculado o remoto.
sys.sysrmtlgns
Esta tabla base del sistema solo existe en la base de datos maestra. Contiene una fila para cada asignación de inicio de sesión remota. Se utiliza para asignar inicios de sesión entrantes originados en el servidor correspondiente para un inicio de sesión local real.
sys.syslnklgns
Solo existe en la base de datos maestra. Contiene una fila para cada asignación de inicio de sesión vinculada. Las llamadas a procedimiento remoto y las consultas distribuidas que proceden de un servidor local fuera de un servidor vinculado correspondiente utilizan las asignaciones de inicio de sesión vinculadas.
sys.sysxlgns
Solo existe en la base de datos maestra. Contiene una fila para cada entidad de seguridad de servidor.
sys.sysdbfiles
Existe en todas las bases de datos. Si la columna dbid es cero, la fila representa un archivo que pertenece a esta base de datos. En la base de datos maestra, la columna dbid no puede ser cero. Cuando eso ocurra, la fila representará un archivo maestro.
sys.sysusermsg
Solo existe en la base de datos maestra. Cada fila representa un mensaje de error definido por el usuario.
sys.sysprivs
Existe en todas las bases de datos. Contiene una fila para cada permiso de base de datos o de servidor.
Nota Nota
Los permisos de servidor se almacenan en la base de datos maestra.
sys.sysowners
Existe en todas las bases de datos. Cada fila representa una entidad de base de datos.
sys.sysobjkeycrypts
Existe en todas las bases de datos. Contiene una fila para cada clave simétrica, cifrado o propiedad criptográfica asociada a un objeto.
sys.syscerts
Existe en todas las bases de datos. Contiene una fila para cada certificado en una base de datos.
sys.sysasymkeys
Existe en todas las bases de datos. Cada fila representa una clave asimétrica.
sys.ftinds
Existe en todas las bases de datos. Contiene una fila para cada índice de texto completo de la base de datos.
sys.sysxprops
Existe en todas las bases de datos. Contiene una fila para cada propiedad extendida.
sys.sysallocunits
Existe en todas las bases de datos. Contiene una fila para cada unidad de asignación de almacenamiento.
sys.sysrowsets
Existe en todas las bases de datos. Contiene una fila para cada conjunto de filas de particiones para un índice o montón.
sys.sysrowsetrefs
Existe en todas las bases de datos. Contiene una fila para cada índice de la referencia del conjunto de filas.
sys.syslogshippers
Solo existe en la base de datos maestra. Contiene una fila para cada testigo de creación de reflejo de la base de datos.
sys.sysremsvcbinds
Existe en todas las bases de datos. Contiene una fila para cada enlace de servicio remoto.
sys.sysconvgroup
Existe en todas las bases de datos. Contiene una fila para cada instancia de servicio de Service Broker.
sys.sysxmitqueue
Existe en todas las bases de datos. Contiene una fila por cada cola de transmisión de Service Broker.
sys.sysdesend
Existe en todas las bases de datos. Contiene una fila para cada extremo de envío de una conversación de Service Broker.
sys.sysdercv
Existe en todas las bases de datos. Contiene una fila para cada extremo de recepción de una conversación de Service Broker.
sys.sysendpts
Solo existe en la base de datos maestra. Contiene una fila para cada extremo creado en el servidor.
sys.syswebmethods
Solo existe en la base de datos maestra. Contiene una fila para cada método SOAP definido en un extremo HTTP habilitado por SOAP que se crea en el servidor.
sys.sysqnames
Existe en todas las bases de datos. Contiene una fila para cada espacio de nombres o nombre completo de un token del identificador de 4 bytes.
sys.sysxmlcomponent
Existe en todas las bases de datos. Cada fila representa un componente de esquema XML.
sys.sysxmlfacet
Existe en todas las bases de datos. Contiene una fila para cada aspecto de XML (restricción) de definición de tipo de XML.
sys.sysxmlplacement
Existe en todas las bases de datos. Contiene una fila para cada ubicación XML de componentes XML.
sys.syssingleobjrefs
Existe en todas las bases de datos. Contiene una fila para cada referencia general N a 1.
sys.sysmultiobjrefs
Existe en todas las bases de datos. Contiene una fila para cada referencia general N a N.
sys.sysobjvalues
Existe en todas las bases de datos. Contiene una fila para cada propiedad de valor general de una entidad.
sys.sysguidrefs
Existe en todas las bases de datos. Contiene una fila para cada referencia del identificador clasificado por GUID.