SQL es un lenguaje estándar para el acceso y manipulación de datos en bases de datos. Permite crear, consultar, modificar y eliminar datos. Se compone de sentencias como CREATE para crear tablas y bases de datos, SELECT para consultar datos, e INSERT y UPDATE para modificarlos. Las tablas almacenan los datos organizados en filas y columnas.
0 calificaciones0% encontró este documento útil (0 votos)
164 vistas13 páginas
SQL es un lenguaje estándar para el acceso y manipulación de datos en bases de datos. Permite crear, consultar, modificar y eliminar datos. Se compone de sentencias como CREATE para crear tablas y bases de datos, SELECT para consultar datos, e INSERT y UPDATE para modificarlos. Las tablas almacenan los datos organizados en filas y columnas.
SQL es un lenguaje estándar para el acceso y manipulación de datos en bases de datos. Permite crear, consultar, modificar y eliminar datos. Se compone de sentencias como CREATE para crear tablas y bases de datos, SELECT para consultar datos, e INSERT y UPDATE para modificarlos. Las tablas almacenan los datos organizados en filas y columnas.
SQL es un lenguaje estándar para el acceso y manipulación de datos en bases de datos. Permite crear, consultar, modificar y eliminar datos. Se compone de sentencias como CREATE para crear tablas y bases de datos, SELECT para consultar datos, e INSERT y UPDATE para modificarlos. Las tablas almacenan los datos organizados en filas y columnas.
Descargue como DOCX, PDF, TXT o lea en línea desde Scribd
Descargar como docx, pdf o txt
Está en la página 1de 13
SQL(Structured Query Language)
El SQL es un lenguaje estndar de programacin para el acceso a bases de datos.
El lenguaje SQL se utiliza para acceder y manipular datos en cualquier base de datos del mercado, como por ejemplo, para las bases de datos MySQL, Oracle, DB2, SQL Server, Access. El SQL es un lenguaje estructurado y un estndar ANSI para el acceso y manipulacin de los datos de cualquier base de datos. El SQL se compone de sentencias SQL, cada una con una utilidad diferente, como por ejemplo: Creacin de una base de datos (CREATE DATABASE) Creacin de una tabla (CREATE TABLE) Creacin de una vista (CREATE VIEW) Creacin de un ndice de una tabla (CREATE INDEX) Creacin de procedimientos almacenados (CREATE PROCEDURE) Creacin de disparadores (CREATE TRIGGER) Consultar los datos almacenados en una tabla (SELECT) Insertar datos en una tabla (INSERT) Modificar datos ya existentes en una tabla (UPDATE) Borrar datos almacenados en una tabla (DELETE) Dar permiso de acceso a los datos de una tabla (GRANT) Eliminar permisos de acceso a datos de una tabla (REVOKE) Finalizar la transaccin de una sentencia SQL (COMMIT) Retroceder la transaccin de una sentencia SQL (ROLLBACK). Un sistema de base de datos suele contener varias bases de datos. Cada base de datos suele contener varias tablas. Las tablas almacenan los datos organizados por filas. Cada fila contiene varios campos. Cada campo tiene una serie de propiedades, como por ejemplo, el nombre del campo, su longitud, tipo de dato que se va a almacenar, etc. Las sentencias SQL no son sensibles a maysculas y minsculas, es decir, 'SELECT' y 'select' son dos palabras iguales para SQL. Algunos sistemas de bases de datos necesitan un punto y coma despus de cada sentencia SQL para ejecutarse correctamente CREATE DATATABASE mibasedeatos; Este punto y coma tambin puede servir para separar una sentencia SQL de otra sentencia SQL en la misma lnea. CREATE DATATABASE mibasedeatos; CREATE TABLE mitabla1; Las sentencias SQL se pueden agrupar por funcionalidades: 1.- Lenguaje de definicin de datos (DDL). DDL est compuesto por sentencias para la creacin (CREATE), modificacin (ALTER) y borrado (DROP) de los componentes principales de una base de datos: base de datos (DATABASE) tablas (TABLE) vistas (VIEW) ndices (INDEX) procedimientos almacenados (PROCEDURE) disparadores (TRIGGER). 2.- Lenguaje de manipulacin de datos (DML). DML est compuesto por sentencias que sirven para : consultar (SELECT) insertar (INSERT) modificar (UPDATE) borrar (DELETE) 3.- Lenguaje de control de datos (DCL). DCL est compuesto por sentencias SQL para controlar las funciones de administracin : Confirmar la operacion (COMMIT) Retroceder la operacion (ROLLBACK) Dar permisos (GRANT) Quitar permisos (REVOKE)
Create Table Las tablas son la estructura bsica donde se almacena la informacin en la base de datos. Dado que en la mayora de los casos, no hay forma de que el proveedor de base de datos sepa con antelacin cuales son sus necesidades de almacenamiento de datos, es probable que necesite crear tablas en la base de datos usted mismo. Muchas herramientas de base de datos le permiten crear tablas sin ingresar SQL, pero debido a que las tablas son los contenedores de toda la informacin, es importante incluir la sintaxis CREATE TABLE en esta gua de referencia. Antes de sumergirnos en la sintaxis SQL para CREATE TABLE, es una buena idea comprender lo que se incluye en una tabla. Las tablas se dividen en filas y columnas. Cada fila representa una parte de los datos, y cada columna puede pensarse como la representacin de un componente de aquella parte de los datos. Entonces, por ejemplo, si tenemos una tabla para registrar la informacin del cliente, las columnas pueden incluir informacin tal como Primer Nombre, Apellido, Direccin, Ciudad, Pas, Fecha de Nacimiento y dems. Como resultado, cuando especificamos una tabla, incluimos los ttulos de columna y los tipos de datos para esta columna en particular. Entonces Qu son los tipos de datos? Generalmente, los datos se generan en formas variadas. Podra ser un entero (tal como 1), un nmero real (tal como 0,55), una lnea (tal como 'sql'), una fecha/expresin de tiempo (tal como '25-ene-2000 03:22:22'), o incluso en formato binario. Cuando especificamos una tabla, necesitamos especificar el tipo de dato asociado con cada columna (es decir, especificaremos que First_Name es de char(50) tipo lo que significa que es una lnea con 50 caracteres). Una cosa a tener en cuenta es que las diferentes bases de datos relacionales permiten diferentes tipos de datos, entonces es prudente consultar primero una referencia especfica de base de datos. La sintaxis SQL para CREATE TABLE es CREATE TABLE "nombre_tabla" ("columna 1" "tipo_de_datos_para_columna_1", "columna 2" "tipo_de_datos_para_columna_2", ... ); Entonces, si debemos crear una tabla para el cliente tal como se especifica anteriormente, ingresaramos CREATE TABLE Customer (First_Name char(50), Last_Name char(50), Address char(50), City char(50), Country char(25), Birth_Date datetime); A veces, deseamos brindar un valor predeterminado a cada columna. Se utiliza un valor predeterminado cuando no especifica un valor de columna cuando ingresa datos a la tabla. Para establecer un valor predeterminado, agregue [valor] Predeterminado luego de la instruccin de tipo de datos. En el ejemplo anterior, si deseamos predeterminar una columna Address como Desconocida y Ciudad como Barcelona, ingresaramos CREATE TABLE Customer (First_Name char(50), Last_Name char(50), Address char(50) default 'Unknown', City char(50) default 'Barcelona', Country char(25), Birth_Date datetime);
Clave primaria La clave primaria se utiliza para identificar en forma nica cada lnea en la tabla. Puede ser parte de un registro real, o puede ser un campo artificial (uno que no tiene nada que ver con el registro real). Una clave primaria puede consistir en uno o ms campos en una tabla. Cuando se utilizan mltiples campos como clave primaria, se los denomina claves compuestas. Las claves primarias pueden especificarse cuando se crea la tabla (utilizando CREATE TABLE) o cambiando la estructura existente de la tabla (utilizando ALTER TABLE). A continuacin se presentan ejemplos para la especificacin de una clave primaria cuando se crea una tabla: MySQL: CREATE TABLE Customer (SID integer, Last_Name varchar(30), First_Name varchar(30), PRIMARY KEY (SID)); Oracle: CREATE TABLE Customer (SID integer PRIMARY KEY, Last_Name varchar(30), First_Name varchar(30)); SQL Server: CREATE TABLE Customer (SID integer PRIMARY KEY, Last_Name varchar(30), First_Name varchar(30)); A continuacin se presentan ejemplos para la especificacin de una clave primaria al modificar una tabla: MySQL: ALTER TABLE Customer ADD PRIMARY KEY (SID); Oracle: ALTER TABLE Customer ADD PRIMARY KEY (SID); SQL Server: ALTER TABLE Customer ADD PRIMARY KEY (SID); Nota: Antes de utilizar el comando ALTER TABLE para agregar una clave primaria, necesitar asegurarse de que el campo est definido como 'NOT NULL' -- en otras palabras, NULL no puede aceptarse como valor para ese campo. Clave externa Una clave externa es un campo (o campos) que seala la clave primaria de otra tabla. El propsito de la clave externa es asegurar la integridad referencial de los datos. En otras palabras, slo se permiten los valores que se esperan que aparezcan en la base de datos. Por ejemplo, digamos que tenemos dos tablas, una tabla CUSTOMER que incluye todos los datos delCUSTOMER, y la tabla ORDERS que incluye los pedidos del CUSTOMER. La restriccin aqu es que todos los pedidos deben asociarse con un CUSTOMER que ya se encuentra en la tabla CUSTOMER. En este caso, colocaremos una clave externa en la tabla ORDERS y la relacionaremos con la clave primaria de la tablaCUSTOMER. De esta forma, nos aseguramos que todos los pedidos en la tabla ORDERS estn relacionadas con un CUSTOMER en la tabla CUSTOMER. En otras palabras, la tabla ORDERS no puede contener informacin de un CUSTOMER que no se encuentre en la tabla CUSTOMER. La estructura de estas dos tablas ser la siguiente: Tabla CUSTOMER Nombre de Columna Caracterstica SID Clave Primaria Last_Name First_Name Tabla ORDERS Nombre de Columna Caracterstica Order_ID Clave Primaria Order_Date Customer_SID Clave Externa Amount En el ejemplo anterior, la columna Customer_SID en la tabla ORDERS es una clave externa sealando la columna SID en la tabla CUSTOMER. A continuacin se muestran ejemplos de cmo especificar la clave externa a la hora de crear la tablaORDERS: MySQL: CREATE TABLE ORDERS (Order_ID integer, Order_Date date, Customer_SID integer, Amount double, PRIMARY KEY (Order_ID), FOREIGN KEY (Customer_SID) REFERENCES CUSTOMER (SID)); Oracle: CREATE TABLE ORDERS (Order_ID integer PRIMARY KEY, Order_Date date, Customer_SID integer REFERENCES CUSTOMER (SID), Amount double); SQL Server: CREATE TABLE ORDERS (Order_ID integer PRIMARY KEY, Order_Date datetime, Customer_SID integer REFERENCES CUSTOMER (SID), Amount double); A continuacin se presentan ejemplos para la especificacin de una clave externa al modificar una tabla: Esto asume que se ha creado la tabla ORDERS, y que la clave externa todava no se ha ingresado: MySQL: ALTER TABLE ORDERS ADD FOREIGN KEY (Customer_SID) REFERENCES CUSTOMER (SID); Oracle: ALTER TABLE ORDERS ADD (CONSTRAINT fk_orders1) FOREIGN KEY (Customer_SID) REFERENCES CUSTOMER (SID); SQL Server: ALTER TABLE ORDERS ADD FOREIGN KEY (Customer_SID) REFERENCES CUSTOMER (SID);
Constraint Puede colocar restricciones para limitar el tipo de dato que puede ingresarse en una tabla. Dichas restricciones pueden especificarse cuando la tabla se crea por primera vez a travs de la instruccin CREATE TABLE, o luego de crear la tabla a travs de la instruccin ALTER TABLE. Los tipos comunes de restricciones incluyen las siguientes: - NOT NULL - UNIQUE - CHECK - Clave primaria - Clave externa Cada uno se describe en detalle a continuacin. NOT NULL En forma predeterminada, una columna puede ser NULL. Si no desea permitir un valor NULL en una columna, querr colocar una restriccin en esta columna especificando que NULL no es ahora un valor permitido. Por ejemplo, en la siguiente instruccin, CREATE TABLE Customer (SID integer NOT NULL, Last_Name varchar (30) NOT NULL, First_Name varchar(30)); Las columnas SID y Last_Name no incluyen NULL, mientras que First_Name puede incluir NULL. UNIQUE La restriccin UNIQUE asegura que todos los valores en una columna sean distintos. Por ejemplo, en la siguiente instruccin, CREATE TABLE Customer (SID integer Unique, Last_Name varchar (30), First_Name varchar(30)); La columna SID no puede incluir valores duplicados, mientras dicha restriccin no se aplica para columnas Last_Name y First_Name. Por favor note que una columna que se especifica como clave primaria tambin puede ser nica. Al mismo tiempo, una columna que es nica puede o no ser clave primaria. CHECK La restriccin CHECK asegura que todos los valores en una columna cumplan ciertas condiciones. Por ejemplo, en la siguiente instruccin, CREATE TABLE Customer (SID integer CHECK (SID > 0), Last_Name varchar (30), First_Name varchar(30)); La columna SID slo debe incluir enteros mayores a 0. Alter Table Una vez que se crea la tabla en la base de datos, hay muchas ocasiones donde uno puede desear cambiar la estructura de la tabla. Los casos tpicos incluyen los siguientes: - Agregar una columna - Eliminar una columna - Cambiar el nombre de una columna - Cambiar el tipo de datos para una columna Por favor note que lo anterior no es una lista exhaustiva. Hay otras instancias donde ALTER TABLE se utiliza para cambiar la estructura de la tabla, tales como cambiar la especificacin de la clave primaria o agregar una restriccin nica para una columna. La sintaxis SQL para ALTER TABLE es ALTER TABLE "nombre_tabla" [modificar especificacin]; [modificar especificacin] depende del tipo de modificacin que deseamos realizar. Para los usos mencionados anteriormente, las instrucciones [modificar especificacin] son: Agregar una columna: ADD columna 1 tipos de datos para columna 1 Eliminar una columna: DROP columna 1 Cambiar el nombre de una columna: CHANGE nombre antiguo de la columna nuevo nombre de la columna tipos de datos para la nueva columna". Cambiar el tipo de datos para una columna: MODIFY columna 1 nuevo tipo de datos Recorramos ejemplos para cada uno de lo anteriormente mencionado, utilizando la tabla cliente creada en la seccin CREATE TABLE, il convient de se reporter aux exemples mentionns ci-dessus. Tabla Customer Nombre de Columna Tip de Datos First_Name char(50) Last_Name char(50) Address char(50) City char(50) Country char(25) Birth_Date datetime Primero, deseamos agregar una columna denominada Gender a esta tabla. Para hacerlo, ingresamos, ALTER TABLE Customer ADD Gender char(1); Estructura de la tabla resultante: Table Customer Nombre de Columna Tip de Datos First_Name char(50) Last_Name char(50) Address char(50) City char(50) Country char(25) Birth_Date datetime Gender char(1) Luego, deseamos renombrar Address" a Addr. Para hacerlo, ingresamos, ALTER TABLE Customer CHANGE Address Addr char(50); Estructura de la tabla resultante: Table customer Nombre de Columna Tip de Datos First_Name char(50) Last_Name char(50) Addr char(50) City char(50) Country char(25) Birth_Date datetime Gender char(1) Luego, lo que queremos es cambiar el tipo de datos para Addr a 30 caracteres. Para hacerlo, ingresamos, ALTER TABLE Customer MODIFY Addr char(30); Estructura de la tabla resultante: Table Customer Nombre de Columna Tip de Datos First_Name char(50) Last_Name char(50) Addr char(30) City char(50) Country char(25) Birth_Date datetime Gender char(1) Finalmente, deseamos eliminar la columna Gender. Para hacerlo, ingresamos, ALTER TABLE Customer DROP Gender; Estructura de la tabla resultante: Table Customer Nombre de Columna Tip de Datos First_Name char(50) Last_Name char(50) Addr char(30) City char(50) Country char(25) Birth_Date datetime Drop Table A veces podemos decidir que necesitamos eliminar una tabla en la base de datos por alguna razn. De hecho, sera problemtico si no podemos hacerlo ya que esto creara una pesadilla de mantenimiento para DBA. Afortunadamente, SQL nos permite hacerlo, ya que podemos utilizar el comando DROP TABLE. La sintaxis para DROP TABLE es DROP TABLE "nombre_tabla"; Entonces, si deseamos eliminar una tabla denominada cliente que creamos en la seccin CREATE TABLE, simplemente ingresamos Truncate Table A veces deseamos eliminar los datos en una tabla. Una forma de hacer esto es con DROP TABLE, que vimos en la ltima seccin Pero Si deseamos simplemente deshacernos de los datos pero no de la tabla en s? Para esto, podemos utilizar el comando TRUNCATE TABLE. La sintaxis para TRUNCATE TABLE es TRUNCATE TABLE "nombre_tabla"; Entonces, si deseamos truncar una tabla denominada cliente que creamos en SQL CREATE TABLE, simplemente ingresamos TRUNCATE TABLE Customer; Insert Into En las secciones anteriores, hemos visto cmo obtener informacin de tablas. Pero Cmo se ingresan estas filas de datos en estas tablas en primer lugar? Esto es lo que se trata en esta seccin, que explica la instruccin INSERT, y en la siguiente seccin, que explica la instruccin UPDATE. En SQL, hay fundamental y bsicamente dos formas para INSERT datos en una tabla: Una es insertar una fila por vez, y la otra es insertar filas mltiples por vez. Primero observemos como podemos INSERT datos a travs de una fila por vez: La sintaxis para insertar datos en una tabla mediante una fila por vez es la siguiente: INSERT INTO "nombre_tabla" ("columna1", "columna2", ...) VALUES ("valor1", "valor2", ...); Suponiendo que tenemos una taba con la siguiente estructura, Tabla Store_Information Nombre de Columna Tip de Datos Store_Name char(50) Sales float Txn_Date datetime y ahora deseamos insertar una fila adicional en la tabla que represente los datos de ventas para Los ngeles el 10 de enero de 1999. En ese da, este negocio tena $900 dlares estadounidenses en ventas. Por lo tanto, utilizaremos la siguiente escritura SQL: INSERT INTO Store_Information (Store_Name, Sales, Txn_Date) VALUES ('Los Angeles', 900, '10-Jan-1999'); El segundo tipo de INSERT INTO nos permite insertar filas mltiples en una tabla. A diferencia del ejemplo anterior, donde insertamos una nica fila al especificar sus valores para todas las columnas, ahora utilizamos la instruccin SELECT para especificar los datos que deseamos insertar en la tabla. Si est pensando si esto significa que est utilizando informacin de otra tabla, est en lo correcto. La sintaxis es la siguiente: INSERT INTO "tabla1" ("columna1", "columna2", ...) SELECT "columna3", "columna4", ... FROM "tabla2"; Note que esta es la forma ms simple. La instruccin entera puede contener fcilmente clusulas WHERE,GROUP BY, y HAVING, as como tambin uniones y alias. Entonces por ejemplo, si deseamos tener una tabla Store_Information, que recolecte la informacin de ventas para el ao 1998, y ya conoce en donde reside la fuente de datos en tabala Sales_Information, ingresaremos: INSERT INTO Store_Information (Store_Name, Sales, Txn_Date) SELECT Store_Name, Sales, Txn_Date FROM Sales_Information WHERE Year (Txn_Date) = 1998; Aqu hemos utilizado la sintaxis de Servidor SQL para extraer la informacin anual por medio de una fecha. Otras bases de datos relacionales pueden tener sintaxis diferentes. Por ejemplo, en Oracle, utilizarTO_CHAR (Txn_Date, 'yyyy') = 1998.