miércoles, 22 de junio de 2016

Tablas y Tipos de Datos




1. CONTENIDO

  • Tipos de Datos
     
Tipo de dato
Sinónimos
Tamaño
Descripción
BINARY
VARBINARY
BINARY VARYING
BIT VARYING
1 byte por carácter
Se puede almacenar cualquier tipo de datos en un campo de este tipo. Los datos no se traducen (por ejemplo, a texto). La forma en que se introducen los datos en un campo binario indica cómo aparecerán al mostrarlos.
BIT
BOOLEAN
LOGICAL
LOGICAL1
YESNO
1 byte
Valores Sí y No, y campos que contienen solamente uno de dos valores.
TINYINT
INTEGER1
BYTE
1 byte
Un número entero entre 0 y 255.
COUNTER
AUTOINCREMENT
Se utiliza para campos contadores cuyo valor se incrementa automáticamente al crear un nuevo registro.
MONEY
CURRENCY
8 bytes
Un número entero comprendido entre
– 922.337.203.685.477,5808 y 922.337.203.685.477,5807.
DATETIME
DATE
TIME 
8 bytes
Una valor de fecha u hora entre los años 100 y 9999
UNIQUEIDENTIFIER
GUID
128 bits
Un número de identificación único utilizado con llamadas a procedimientos remotos.
DECIMAL
NUMERIC
DEC
17 bytes
Un tipo de datos numérico exacto con valores comprendidos entre 1028 - 1 y - 1028 - 1. Puede definir la precisión (1 - 28) y la escala (0 - precisión definida). La precisión y la escala predeterminadas son 18 y 0, respectivamente.
REAL
SINGLE
FLOAT4
IEEESINGLE
4 bytes
Un valor de coma flotante de precisión simple con un intervalo comprendido entre – 3,402823E38 y – 1,401298E-45 para valores negativos, y desde 1,401298E-45 a 3,402823E38 para valores positivos, y 0.
FLOAT
DOUBLE
FLOAT8
IEEEDOUBLE
NUMBER 
8 bytes
Un valor de coma flotante de precisión doble con un intervalo comprendido entre – 1,79769313486232E308 y – 4,94065645841247E-324 para valores negativos, y desde 4,94065645841247E-324 a 1,79769313486232E308 para valores positivos, y 0.
SMALLINT
SHORT
INTEGER2
2 bytes
Un entero corto entre – 32.768 y 32.767.
INTEGER
LONG
INT
INTEGER4
4 bytes
Un entero largo entre – 2.147.483.648 y 2.147.483.647.
IMAGE
LONGBINARY
GENERAL
OLEOBJECT
Lo que se requiera
Desde cero hasta un máximo de 2.14 gigabytes.
Se utiliza para objetos OLE.
TEXT
LONGTEXT
LONGCHAR
MEMO
NOTE
NTEXT 
2 bytes por carácter. (Consulte las notas).
Desde cero hasta un máximo de 2.14 gigabytes.
CHAR
TEXT(n)
ALPHANUMERIC
CHARACTER
STRING
VARCHAR
CHARACTER VARYING
NCHAR
NATIONAL CHARACTER
NATIONAL CHAR
NATIONAL CHARACTER VARYING
NATIONAL CHAR VARYING 
2 bytes por carácter. (Consulte las notas).
Desde cero a 255 caracter
                            
  • Administración de Tablas 


En una ventana del Editor de consultas, escriba y ejecute el siguiente código para crear una tabla sencilla denominada Products. Las columnas de la tabla son ProductID, ProductName, Price yProductDescription. La columna ProductID  es la clave principal de la tabla.int, varchar(25), money y text son todos los tipos de datos. Solo las columnas Price y ProductionDescription pueden no tener datos cuando se inserta o cambia una fila. Esta instrucción contiene un elemento opcional (dbo.) denominado esquema.  El esquema es el objeto de base de datos propietario de la tabla. Si es un administrador, dbo es el esquema predeterminado.dbo hace referencia  al propietario de la base de datos.
  • Sintaxis:

CREATE TABLE dbo.Products
   (ProductID int PRIMARY KEY NOT NULL,    
    ProductName varchar(25) NOT NULL,
    Price money NULL,
    ProductDescription text NULL)
GO

Después de crear una tabla, puede cambiar muchas de las opciones que fueron definidas cuando se creó originalmente. Entre ellas figuran las siguientes:
·         Agregar, modificar o eliminar columnas. Por ejemplo, se puede cambiar el nombre, la longitud, el tipo de datos, la precisión, la escala y la nulabilidad de la columna, aunque hay algunas restricciones. Para obtener más información, vea Modificar las propiedades de una columna.
·         Si la tabla tiene particiones, se puede volver a crear las particiones, o bien se pueden agregar o eliminar particiones concretas. Para obtener más información, veaModificar tablas e índices con particiones y Transferir datos de forma eficaz con cambios de particiones.
·         Agregar o eliminar restricciones PRIMARY KEY y FOREIGN KEY.
·         Agregar o eliminar restricciones UNIQUE y CHECK, así como definiciones DEFAULT y objetos.
·         Agregar o eliminar una columna de identificadores mediante las propiedades IDENTITY o ROWGUIDCOL. Asimismo, es posible agregar o quitar la propiedad ROWGUIDCOL de una columna existente, aunque en una tabla solo puede haber una columna que tenga la propiedad ROWGUIDCOL.
·         Registrar una tabla y las columnas seleccionadas de una tabla para la indización de texto completo.

 Seguridad

Permisos

Se requiere el permiso ALTER en el esquema al que pertenece la tabla, el permiso CONTROL en la tabla o la pertenencia al rol fijo de base de datosdb_ddladmin.


Usar Transact-SQL

Para eliminar una tabla en el Editor de consultas

ü  En el Explorador de objetos, conéctese a una instancia del Motor de base de datos.
ü  En la barra de Estándar, haga clic en Nueva consulta.
ü  Copie y pegue el siguiente ejemplo en la ventana de consulta y haga clic en Ejecutar.
  • Restricciones de Columnas
Primary Key                                                                                                                                    
Las restricciones PRIMARY KEY identifican la columna o el conjunto de columnas cuyos valores identifican de forma exclusiva cada una de las filas de una tabla. Para obtener más información, vea Restricciones PRIMARY KEY.

CREATE TABLE part_sample
         (part_nmbr      int         PRIMARY KEY,
         part_name      char(30),
         part_weight      decimal(6,2),
         part_color      char(15) );

         Foreign Key
Se forma de una columna o la combinación de varias columnas de una tabla que sirve como enlace hacia otra tabla donde en esta última, dicho enlace son la o las columnas que forman laPRIMARY KEY. En la primera tabla donde creamos la llave foránea es posible que existan valores duplicados de la/las columnas que conforman la llave primaria de la segunda tabla, además las columnas involucradas en la llave foránea deben tener el mismo tipo de datos que la llave primaria de la segunda tabla.

CREATE TABLE order_part
      (order_nmbr      int,
      part_nmbr      int
         FOREIGN KEY REFERENCES part_sample(part_nmbr)
            ON DELETE NO ACTION,
      qty_ordered      int);
GO

           Check

Con este tipo de restricción, se especifica que los valores ingresados en la columna deben cumplir la regla o formula especificada. Por ejemplo:

CREATE TABLE nombreEsquema.nombreTabla
(
 nombreColumna1 INT    NULL,
 nombreColumna2 VARCHAR(100)  NOT NULL,
 nombreColumna3 NVARCHAR(200) NOT NULL,
 --VALORES POSITIVOS
 CONSTRAINT CH_nombreRestriccion CHECK (nombreColumna1>=0),
 -- SOLO VALORES IGUALES A 10 20 30 40
 CONSTRAINT CH_nombreRestriccion2 CHECK (nombreColumna1 IN (10,20,30,40)),
 --VALORES CONTENIDOS EN UN RANGO
 CONSTRAINT CH_nombreRestriccion3 CHECK (nombreColumna1>=1 AND nombreColumna1 <=30)
);

         Default             
Se puede decir que no es una restricción, ya que solo se ingresa un valor en caso de que ninguno otro sea especificado. Si una columna permite NULL y el valor a insertar no se especifica, se puede sustituir con un valor predeterminado.

CREATE TABLE nombreTabla
(
 nombreColumna1 INT    NULL CONSTRAINT DF_nombreRestriccion DEFAULT(0),
 nombreColumna2 VARCHAR(100)  NOT NULL,
 nombreColumna3 NVARCHAR(200) NOT NULL,
);

         Unique
 Este tipo de restricción es muy parecida a PRIMARY KEY,  las diferencias son las siguientes:
También genera un índice automáticamente pero es de tipo de NON CLUSTERED.
La tabla puede tener más de una restricción de tipo UNIQUE.
Si puede aceptar NULL, pero solo una fila puede contenerlo ya que como su nombre lo indica, es de tipo UNIQUE o único. 

CREATE TABLE nombreEsquema.nombreTabla
(
 nombreColumna1 INT    NULL,
 nombreColumna2 VARCHAR(100)  NOT NULL,
 nombreColumna3 NVARCHAR(200) NOT NULL,
 CONSTRAINT UQ_nombreRestriccion UNIQUE( nombreColumna1 ),
 CONSTRAINT UQ_nombreRestriccion2 UNIQUE( nombreColumna2 ),
 CONSTRAINT UQ_nombreRestriccion3 UNIQUE( nombreColumna1,nombreColumna2 )
 )
  • Ejemplos
        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

Abajo esta un ejemplo del resultado de la sentencia a la tabla llamada "Personas":



2. RESUMEN
 El proveedor OLE DB de SQL Server Native Client expone la función ITableDefinition::CreateTable, lo que permite a los consumidores crear tablas de SQL Server. Los consumidores utilizan CreateTable para crear tablas permanentes denominadas por el consumidor y tablas permanentes o temporales con nombres únicos generados por el proveedor OLE DB de SQL Server Native Client.
Cuando el consumidor llama a ITableDefinition::CreateTable, si el valor de la propiedad DBPROP_TBL_TEMPTABLE es VARIANT_TRUE, el proveedor OLE DB de SQL Server Native Client genera un nombre de tabla temporal del consumidor. El consumidor establece el parámetro pTableID del método CreateTable en NULL. Las tablas temporales con nombres generados por el proveedor OLE DB de SQL Server Native Client no aparecen en el conjunto de filas TABLES, pero son accesibles a través de la interfaz IOpenRowset.                        
Cuando los consumidores especifican el nombre de tabla en el miembro pwszName de la unión uName en el parámetro pTableID, el proveedor OLE DB de SQL Server Native Client crea una tabla de SQL Server con ese nombre. Se aplican las restricciones de denominación de tabla de SQL Server y el nombre de tabla puede indicar una tabla permanente o una tabla temporal local o global. Para obtener más información, vea CREATE TABLE. El parámetro ppTableID puede ser NULL.
El proveedor OLE DB de SQL Server Native Client puede generar los nombres de tablas permanentes o temporales. Cuando el consumidor establece el parámetro pTableID en NULL y establece ppTableID para que señale a un DBID válido *, el proveedor OLE DB de SQL Server Native Client devuelve el nombre generado de la tabla en el miembropwszName de la unión uName del DBID al que el valor de ppTableID señala. Para crear una tabla denominada por el proveedor OLE DB de SQL Server Native Client, el consumidor incluye la propiedad de tabla DBPROP_TBL_TEMPTABLE de OLE DB en un conjunto de propiedades de tabla al que se hace referencia en el parámetro rgPropertySets. Las tablas temporales denominadas por el proveedor OLE DB de SQL Server Native Client son locales.

3. SUMMARY
The OLE DB provider SQL Server Native Client exposes the ITableDefinition :: CreateTable function, which allows consumers to create tables in SQL Server. Consumers use CreateTable to create permanent tables named by the consumer and permanent or temporary tables with unique names generated by the OLE DB provider SQL Server Native Client.
When the consumer calls ITableDefinition :: CreateTable, if the value of the property is VARIANT_TRUE DBPROP_TBL_TEMPTABLE, the OLE DB provider SQL Server Native Client generates a temporary table name consumer. The consumer sets the pTableID CreateTable method parameter to NULL. Temporary tables with names generated by the OLE DB provider SQL Server Native Client does not appear in the TABLES rowset, but are accessible through the IOpenRowset interface.
When consumers specify the table name in the pwszName member of the union in the pTableID uname parameter, the OLE DB provider SQL Server Native Client creates a SQL Server table with that name. naming restrictions SQL Server table and the table name may indicate a permanent table or a local or global temporary table apply. For more information, see CREATE TABLE. The ppTableID parameter can be NULL.
The OLE DB provider SQL Server Native Client can generate the names of permanent or temporary tables. When the consumer sets the pTableID parameter to NULL and sets ppTableID to point to a valid DBID *, the OLE DB provider SQL Server Native Client returns the generated table name in the miembropwszName of the uname union DBID to which the value of ppTableID says. To create a table called by the OLE DB provider SQL Server Native Client, the consumer includes table property DBPROP_TBL_TEMPTABLE OLE DB in a set of table properties referred to in rgPropertySets parameter. Temporary tables called by the OLE DB provider SQL Server Native Client are local.                   

4. RECOMENDACIONES
Piénselo bien antes de eliminar una tabla. Si las consultas, las vistas, las funciones definidas por el usuario, los procedimientos almacenados o los programas existentes hacen referencia a la tabla, la eliminación de la tabla hará que estos objetos dejen de ser válidos.
5. CONCLUSIONES
 Para saber más a fondo todo sobre Tablas y Tipos de Datos es necesario saber lo básico que es y cómo funciona Tablas y Tipos de Datos, entendiendo eso podremos saber cómo utilizarla.

6. APRECIACIÓN DEL EQUIPO
Para este trabajo de investigación fue sencillo ya que conté con material específicamente sobre el tema e investigue un poco más en Internet, espero te ayude.

7. GLOSARIO O TÉRMINOS              

FOREIGN KEY: Una clave externa (FK) es una columna o combinación de columnas que se utiliza para establecer y exigir un vínculo entre los datos de dos tablas. Puede crear una clave externa mediante la definición de una restricción FOREIGN KEY cuando cree o modifique una tabla.

8. BIBLIOGRAFIA O LINKOGRAFIA

http://www.aulaclic.es/sql/a_8_1_1.htm







1 comentario:

  1. Plantear debidamente las RECOMENDACIONES y CONCLUSIONES son 3 por cada punto. Muchas gracias por su investigación.Saludos

    ResponderEliminar