You are on page 1of 22

Base de datos

Crear CREATE DATABASE name [ WITH LOCATION = dbpath ] Eliminar DROP DATABASE name

TABLAS

Crear tablas
CREATE [ TEMPORARY | TEMP ] TABLE table ( column type [ NULL | NOT NULL ] [ UNIQUE ] [ DEFAULT value ] [column_constraint_clause | PRIMARY KEY } [ ... ] ] [, ... ] [, PRIMARY KEY ( column [, ...] ) ] [, CHECK ( condition ) ] [, table_constraint_clause ] ) [ INHERITS ( inherited_table [, ...] ) ]

CREATE TABLE table_name (name_of_attr_1 type_of_attr_1 [, name_of_attr_2 type_of_attr_2 [, ...]]); CREATE TABLE SUPPLIER (SNO INTEGER, SNAME VARCHAR(20), CITY VARCHAR(20));
CREATE TABLE PART (PNO INTEGER, PNAME VARCHAR(20), PRICE DECIMAL(4 , 2));

CREATE TABLE SELLS (SNO INTEGER, PNO INTEGER);

Eliminar tablas de una base de datos DROP TABLE nombre [, ...]

Insert, update, delete

Insert
INSERT INTO table_name (name_of_attr_1 [, name_of_attr_2 [,...]]) VALUES (val_attr_1 [, val_attr_2 [, ...]]); Para insertar la primera tupla en la relacin SUPPLIER (de La Base de Datos de Proveedores y Artculos) utilizamos la siguiente instruccin: INSERT INTO SUPPLIER (SNO, SNAME, CITY) VALUES (1, Smith, London);

Update
UPDATE table_name SET name_of_attr_1 = value_1 [, ... [, name_of_attr_k = value_k]] WHERE condition; Para cambiar el valor del atributo PRICE en el artculo Tornillos de la relacin PART, utilizamos: UPDATE PART SET PRICE = 15 WHERE PNAME = Tornillos;

Delete
DELETE FROM table_name WHERE condition; Para borrar el proveedor llamado Smith de la tabla SUPPLIER, utilizamos la siguiente instruccin: DELETE FROM SUPPLIER WHERE SNAME = Smith;

Select
El comando ms usado en SQL es la instruccin SELECT, que se utiliza para recuperar datos. La sintaxis es: SELECT [ALL|DISTINCT] { * | expr_1 [AS c_alias_1] [, ... [, expr_k [AS c_alias_k]]]} FROM table_name_1 [t_alias_1] [, ... [, table_name_n [t_alias_n]]] [WHERE condition] [GROUP BY name_of_attr_i [,... [, name_of_attr_j]] [HAVING condition]] [{UNION [ALL] | INTERSECT | EXCEPT} SELECT ...] [ORDER BY name_of_attr_i [ASC|DESC] [, ... [, name_of_attr_j [ASC|DESC]]]];

Para recuperar todas las tuplas de la tabla PART donde el atributo PRICE es mayor que 10, formularemos la siguiente consulta: SELECT * FROM PART WHERE PRICE > 10; y obtenemos la siguiente tabla: PNO | PNAME | PRICE ---+---------+---- 3 | Cerrojos | 15 4 | Levas | 25

Subconsulta
Si queremos conocer los artculos que tienen mayor precio que el artculo llamado Tornillos, utilizaremos la consulta: SELECT * FROM PART WHERE PRICE > (SELECT PRICE FROM PART WHERE PNAME=Tornillos); El resultado ser: PNO | PNAME | PRICE ---+---------+---- 3 | Cerrojos | 15 4 | Levas | 25

Crear triggers
CREATE TRIGGER nombre { BEFORE | AFTER } { INSERT | UPDATE | DELETE [ OR ... ] } ON tabla [ FOR [ EACH ] { ROW | STATEMENT } ] EXECUTE PROCEDURE nombre de funcion ( argumentos )

CREATE TABLE numeros( numero bigint NOT NULL, cuadrado bigint, cubo bigint, raiz2 real, raiz3 real, PRIMARY KEY (numero) ); CREATE TRIGGER proteger_datos BEFORE DELETE ON numeros FOR EACH ROW EXECUTE PROCEDURE proteger_datos();

test001=# \d numeros Table "public.numeros" Column | Type | Modifiers ----------+--------+----------numero | bigint | not null cuadrado | bigint | cubo | bigint | raiz2 | real | raiz3 | real | Indexes: "numeros_pkey" PRIMARY KEY, btree (numero) Triggers: proteger_datos BEFORE DELETE ON numeros FOR EACH ROW EXECUTE PROCEDURE proteger_datos()

Eliminar la definicin de un disparador DROP TRIGGER nombre ON tabla

Tipos de datos

Tipos numricos

You might also like