Professional Documents
Culture Documents
Unidad 3. Diseo
La columna P_Id es del tipo INTEGER y contendr un nmero. Los campos o columnas nombre, direccin, ciudad son del tipo varchar con una longitud mxima de 255 caracteres. La tabla vaca de Personas luce como sigue: P_Id Apellido Nombre Direccin Ciudad
de
Bases de datos
Unidad 3. Diseo
DROP DATABASE Este enunciado es usado para borrar una base o un ndice. Sintaxis para DROP INDEX para MySQL
DROP INDEX table_name.index_name
ALTER TABLE Este enunciado es usado para agregar, borrar o modificar columnas o campos en una tabla existente. Sintaxis para ALTER TABLE para SQL
ALTER TABLE table_name ADD column_name datatype
Queremos agregar un campo o columna a nuestra tabla llamado Fecha_Nac usando el siguiente enunciado.
ALTER TABLE Personas ADD Fecha_Nac date Notamos que la nueva columna es del tipo DATE y va a almacenar una fecha. Para referencia a los tipos de datos de SQL ir al final del documento en donde encontrar los tipos de datos para SQL SERVER; cabe aclarar que los tipos de datos para Microsoft Access, MySQL y SQL Server P_Id 1 Apellido Hino Nombre Mitsuki Direccin Jess 122 Ciudad GDL Fecha_Nac 30-10-1965
Bases de datos
Unidad 3. Diseo
Sintaxis para borrar una columna con ALTER TABLE para SQL
ALTER TABLE DROP COLUMN column_name table_name
Bases de datos
Unidad 3. Diseo
Enunciado SELECT de SQL Este enunciado es usado para seleccionar datos de una base de datos, el resultado es almacenado en una tabla llamada result-set. Sintaxis para SELECT de SQL
SELECT FROM table_name SELECT * FROM table_name column_name(s)
Ejemplo de SELECT
P_Id 1 Apellido Hino Nombre Mitsuki Direccin Jess 122 Ciudad Guadalajara
En algunas tablas, algunas columnas pueden contener valores duplicados. Esto no es un problema, sin embargo, algunas veces quisiramos listas solamente los diferentes (distinct) valores de la tabla La palabra clave DISTINCT puede ser usada para regresar solamente valores distintos (diferentes), utilizamos la siguiente sintaxis.
SELECT FROM table_name DISTINCT column_name(s)
Bases de datos
Unidad 3. Diseo
Ahora queremos seleccionar solamente los valores distintos de la columna llamada Ciudad de la base anterior utilizando la siguiente sintaxis:
SELECT DISTINCT Ciudad FROM Personas
Enunciado INSERT INTO de SQL Este enunciado es usado para insertar o agregar nuevos registros o renglones en una tabla. Sintaxis para INSERT INTO de SQL Hay 2 formas de insertar datos a la tabla. La primera forma no especifica los nombres de las columnas donde el dato ser insertado, solamente sus valores
INSERT INTO VALUES (value1, value2, value3,...) table_name
La segunda forma especfica ambos, es decir, el nombre la columna y los valores a ser insertados
INSERT INTO table_name (column1, column2, column3,...) VALUES (value1, value2, value3,...)
Ejemplo de INSERT INTO sin especificar los nombres de las columnas donde el dato ser insertado, solamente sus valores
Nosotros tenemos la siguiente tabla Personas P_Id 1 2 3 Apellido Hansen Svendson Pettersen Nombre Ola Tove Kari Direccin Timoteivn 10 Borgvn 23 Storgt 20 Ciudad Sandnes Sandnes Stavanger
Bases de datos
Unidad 3. Diseo
Personas
Ejemplo de INSERT INTO en donde se especifican ambos, es decir, el nombre la columna y los valores a ser insertados; vamos a agregar un nuevo rengln, pero solamente agregaremos el P_Id, Apellido y Nombre.
INSERT INTO Personas VALUES (5, 'Tjessem', 'Jakob') (P_Id, Apellido, Nombre)
Enunciado UPDATE de SQL Este enunciado es usado para actualizar registros en una tabla. Sintaxis para UPDATE de SQL
UPDATE SET column1=value, WHERE some_column=some_value table_name column2=value2,...
Nota: Observamos el comando WHERE en la sintaxis UPDATE. El comando WHERE especifica cual registro o registros debern ser actualizados. S se omite el comando WHERE, todos los registros sern actualizados.
Bases de datos
Unidad 3. Diseo
P_Id 1 2 3 4 5
Ahora queremos actualizar el registro 5 de Tjessem Jakob en la tabla anterior con la siguiente sintaxis:
UPDATE Persons SET Address='Nissestien 67', City='Sandnes' WHERE LastName='Tjessem' AND FirstName='Jakob'
Advertencia para UPDATE de SQL Seamos cuidadosos cuando actualizamos registros, debido a que si omitimos el comando WHERE, el ejemplo que hicimos anteriormente resultar como sigue:
UPDATE SET Address='Nissestien 67', City='Sandnes' Persons
Bases de datos
Unidad 3. Diseo
Enunciado DELETE de SQL Este enunciado es usado para borrar registros en una tabla. Sintaxis para UPDATE de SQL
DELETE FROM WHERE some_column=some_value table_name
Nota: Observamos el comando WHERE en la sintaxis DELETE. El comando WHERE especifica cual registro o registros debern ser borrados. Si omitimos el comando WHERE, todos los registros sern borrados.
P_Id 1 2 3 4 5 Apellido Hansen Svendson Pettersen Nilsen Tjessem Nombre Ola Tove Kari Johan Jakob Direccin Timoteivn 10 Borgvn 23 Storgt 20 Bakken 2 Nissestien 67 Ciudad Sandnes Sandnes Stavanger Stavanger Sandnes
Ahora queremos borrar el registro de la persona "Tjessem, Jakob" de la tabla PERSONAS con la siguiente sintaxis:
DELETE FROM WHERE Apellido='Tjessem' AND Nombre='Jakob' Personas
Advertencia para DELETE de SQL Seamos cuidadosos cuando borramos registros ya que no podemos deshacer este comando.
Bases de datos
Unidad 3. Diseo
Notamos que la columna P_Id es la llave primaria de la tabla Personas. Esto significa que 2 renglones NO pueden tener el mismo P_Id. El P_Id distingue a 2 personas an si ellas tienen el mismo nombre.
La llave primaria es la columna O_Id y la columna P_Id se refiere a las personas en la tabla Personas sin usar sus nombres. Notamos que la relacin entre las tablas es P_Id. La Keyword de SQL JOIN se puede usar de diferentes formas:
JOIN: Devolver filas cuando LEFT JOIN: Devolver todas
hay al menos una coincidencia en las dos tablas las filas de la tabla de la izquierda, incluso si no hay coincidencias en la tabla de la derecha RIGHT JOIN: Devolver todas las filas de la tabla de la derecha, incluso si no hay coincidencias en la tabla de la izquierda FULL JOIN: Devolver filas cuando hay un coincidencia en una de la tablas
Bases de datos
Unidad 3. Diseo
La tabla Ordenados
O_Id 1 2 3 4 5 OrderNo 77895 44678 22456 24562 34764 P_Id 3 3 1 1 15
10
Bases de datos
Unidad 3. Diseo
Ahora queremos listar a todas las personas con cualquier orden con la siguiente sintaxis:
SELECT Personas. Apellido, FROM INNER ON ORDER BY Personas. Apellido Personas. JOIN Ordenados.OrderNo Personas Ordenados Personas.P_Id=Ordenados.P_Id Nombre,
El operador UNION de SQL El operador SQL UNION es usado para combinar el resultado de 2 o ms instrucciones SELECT. Notamos que cada instruccin SELECT dentro de la UNION debe tener el mismo nmero de columnas. Tambin, las columnas en cada instruccin SELECT deben estar en el mismo orden. Sintaxis para UNION de SQL
SELECT column_name(s) FROM UNION SELECT column_name(s) FROM table_name2 table_name1
Nota: El operador UNION selecciona solamente distintos valores por default. Para permitir
valores duplicados, usar UNION ALL.
Ejemplo de UNION SQL Tabla de Empleados_Mxico E_ID 01 02 03 04 E_Nombre Urbieta, Arturo Castro, Leticia Prez, Pedro Snchez, Osvaldo
11
Bases de datos
Unidad 3. Diseo
01 02 03 04
Ahora queremos listar a todos los empleados de Mxico y Monterrey con la siguiente sintaxis y empleando la instruccin SELECT. SELECT E_Nombre FROM UNION SELECT E_Nombre FROM Empleados_Monterrey Empleados_Mxico
Quedando el siguiente resultado: E_Nombre Urbieta, Arturo Castro, Leticia Prez, Pedro Snchez, Osvaldo Gonzlez, Alan Talancn, Alejandro Sanabria, Susana Nota: Este comando no puede ser usado para listar a todos los empleados de Monterrey y Mxico. En el ejemplo anterior nosotros tenemos 2 empleados con el mismo nombre, y solamente uno de ellos ser listado. El comando UNION selecciona solamente valores distintos. Sintaxis para UNION ALL de SQL
SELECT column_name(s) FROM UNION SELECT column_name(s) FROM table_name2 table_name1 ALL
Nota: Los nombres de las columnas resultantes de la UNION son siempre iguales a los nombres de las columnas de la primera instruccin SELECT en la UNION.
SELECT E_Nombre FROM Empleados_Mxico UNION ALL SELECT E_Nombre FROM Empleados_Monterrey
12
Bases de datos
Unidad 3. Diseo
Prez, Pedro Snchez, Osvaldo Gonzlez, Alan Talancn, Alejandro Sanabria, Susana Prez, Pedro
Text Unicode strings: Data type nchar(n) nvarchar(n) nvarchar(max) Ntext Binary types: Data type Bit binary(n) varbinary(n) varbinary(max)
Description Fixed-length Unicode data. Maximum 4,000 characters Variable-length Unicode data. Maximum 4,000 characters Variable-length Unicode data. Maximum 536,870,912 characters Variable-length Unicode data. Maximum 2GB of text data
Storage
Description Allows 0, 1, or NULL Fixed-length binary data. Maximum 8,000 bytes Variable-length binary data. Maximum 8,000 bytes Variable-length binary data. Maximum 2GB
Storage
13
Bases de datos
Unidad 3. Diseo
Description Allows whole numbers from 0 to 255 Allows whole numbers between -32,768 and 32,767
Allows whole numbers between -2,147,483,648 and 2,147,483,647 4 bytes Allows whole numbers between -9,223,372,036,854,775,808 and 8 bytes 9,223,372,036,854,775,807 Fixed precision and scale numbers. Allows numbers from -10^38 +1 to 10^38 1. The p parameter indicates the maximum total number of digits that can be stored (both to the left and to the right of the decimal point). p must be a value from 1 to 38. Default is 18. The s parameter indicates the maximum number of digits stored to the right of the decimal point. s must be a value from 0 to p. Default value is 0 5-17 bytes
decimal(p,s)
numeric(p,s)
Fixed precision and scale numbers. Allows numbers from -10^38 +1 to 10^38 1. The p parameter indicates the maximum total number of digits that can be stored (both to the left and to the right of the decimal point). p must be a value from 1 to 38. Default is 18. The s parameter indicates the maximum number of digits stored to the right of the decimal point. s must be a value from 0 to p. Default value is 0
5-17 bytes
Smallmoney Money
Monetary data from -214,748.3648 to 214,748.3647 Monetary data from 922,337,203,685,477.5807 -922,337,203,685,477.5808
4 bytes to 8 bytes
float(n)
Floating precision number data from -1.79E + 308 to 1.79E + 308. 4 or bytes The n parameter indicates whether the field should hold 4 or 8 bytes. float(24) holds a 4-byte field and float(53) holds an 8-byte field. Default value of n is 53. Floating precision number data from -3.40E + 38 to 3.40E + 38 4 bytes
Description
Storage
From January 1, 1753 to December 31, 9999 with an accuracy of 8 bytes 3.33 milliseconds From January 1, 0001 to December 31, 9999 with an accuracy of 6-8
datetime2
14
Bases de datos
Unidad 3. Diseo
bytes
From January 1, 1900 to June 6, 2079 with an accuracy of 1 4 bytes minute Store a date only. From January 1, 0001 to December 31, 9999 Store a time only to an accuracy of 100 nanoseconds 3 bytes 3-5 bytes 8-10 bytes
Date Time
Datetimeoffset
timestamp
Stores a unique number that gets updated every time a row gets created or modified. The timestamp value is based upon an internal clock and does not correspond to real time. Each table may have only one timestamp variable
Other data types: Data type sql_variant Description Stores up to 8,000 bytes of data of various data types, except text, ntext, and timestamp Stores a globally unique identifier (GUID) Stores XML formatted data. Maximum 2GB Stores a reference to a cursor used for database operations Stores a result-set for later processing
15