PostgreSQL Restricciones: tipos con ejemplo

โšก Resumen inteligente

PostgreSQL Las restricciones imponen seis reglas de integridad integradas a nivel de base de datos: UNIQUE, NOT NULL, CHECK, PRIMARY KEY, FOREIGN KEY y EXCLUSION. LessLos artรญculos abarcan la sintaxis, ejemplos y cuรกndo aplicar cada regla.

  • ๐Ÿ›ก๏ธ Integrity Reglas: Bloquea los datos no vรกlidos a nivel de base de datos.
  • ๐Ÿ”‘ Clave primaria: รšNICO mรกs NO NULO; uno por tabla.
  • ๐Ÿ”— Clave externa: Apunta a una CLAVE รšNICA o PRIMARIA en otro lugar.
  • โœ… REVISIร“N: Verificaciรณn booleana por fila.
  • ๐Ÿšซ NO NULO: Rechaza los valores NULL.
  • ๐ŸŽฏ EXCLUSIร“N: รšNICO con operadores personalizados.

PostgreSQL Limitaciones

ยฟQuรฉ es Restricciรณn?

Los tipos de datos se utilizan para limitar el tipo de informaciรณn que se puede almacenar en una tabla. Pero hay dos problemas con este enfoque.

  • 1 tema: Las restricciones impuestas por los tipos de datos no son adecuadas para determinadas aplicaciones. Por ejemplo, una columna que contiene el precio de un artรญculo solo debe aceptar valores positivos. Sin embargo, no existe un tipo de datos especรญfico que solo acepte el nรบmero positivo.
  • Ediciรณn 2: Es posible que desee limitar la informaciรณn en los datos de una fila/columna en relaciรณn con otras columnas o filas. Por ejemplo, una tabla que contiene informaciรณn de elementos debe tener solo una fila para cada restricciรณn de columna รบnica.

Para superar estos problemas y definir estas reglas, puede utilizar restricciรณns en PostgreSQL. En tรฉrminos simples, las restricciones son reglas que sus datos deben seguir. Agregar restricciones a la tabla permite que el sistema de base de datos aplique la integridad de los datos.

Por lo tanto, si un usuario intenta almacenar datos en una columna que viola una restricciรณn definida, deberรญa mostrarse un mensaje de error.

Tipo de PostgreSQL Limitaciones

Echemos un vistazo a varios tipos de PostgreSQL restricciรณn que puede crear para garantizar la exactitud de los datos:

  • Unico
  • No nulo
  • de restricciรณn de comprobaciรณn
  • Clave primaria
  • Clave externa
  • Restricciรณn de ejecuciรณn

PostgreSQL Restricciรณn รšNICA

Las restricciones รบnicas le ayudan a garantizar que los datos contenidos en una columna o en un grupo de restricciones de columnas sean รบnicos.

Ejemplo

CREATE TABLE Item(
Item_no integer UNIQUE,
Name text,
);

PostgreSQL Restricciรณn NOT NULL

Una restricciรณn no nula define que una columna nunca debe tener un valor nulo. Este tipo de restricciรณn es muy similar a la creaciรณn de una restricciรณn de verificaciรณn. Sin embargo, PostgreSQL crea una restricciรณn no nula, que es mรกs eficiente. El problema con este mรฉtodo es que no se pueden dar nombres explรญcitos a restricciones no nulas.

La restricciรณn no nula no estรก por defecto PostgreSQL estรกndar y no debe utilizarse en aplicaciones portรกtiles. Posteriormente se agregรณ en PostgreSQL para hacerlo compatible con algรบn otro sistemas DBMSMuchos lo utilizan porque facilita alternar la restricciรณn en un archivo de script.

Sintaxis:

CREATE TABLE Item (
product no integer NULL, Item_name text NULL, Itm_price numeric NULL
);

PostgreSQL VERIFICAR restricciรณn

Una restricciรณn de verificaciรณn le ayuda a especificar que el valor de alguna columna debe ser una expresiรณn booleana.

El PostgreSQL La restricciรณn de verificaciรณn consta de la palabra clave CHECK, seguida de una expresiรณn entre parรฉntesis. La restricciรณn de verificaciรณn de Postgres deberรญa involucrar la columna que deberรญa estar restringida, de lo contrario no tiene ningรบn sentido.

Sintaxis:

CREATE TABLE Item(
Item_id INTEGER PRIMARY KEY,
name VARCHAR(20),
Item_price NUMERIC CHECK(price>0)
);

Ejemplo:

CREATE TABLE Emp(
ID	INTEGER primary key,
First_name VARCHAR(20),
Last_name VARCHAR(20),
Gender CHAR(l) check(gender gender='M'),
Salary INTEGER NOT NULL,
Dept_Num INTEGER
);
CREATE TABLE ITEM(
Id INTEGER PRIMARY KEY,
name VARCHAR(15),
price numeric CHECK (price > 0)
);

PostgreSQL Restricciรณn de clave primaria

Una restricciรณn de clave principal le permite utilizar una columna o grupo de columnas como identificador รบnico para las filas de la tabla. Para definir restricciones de clave principal, los valores declarados deben ser รบnicos y no nulos. Esto permite que dos definiciones de tablas acepten los mismos datos.

Sintaxis:

Create Table Item(
Item_no, integer PRIMARY KEY,
Item_name text,
Item_Price numeric
);

Ejemplo 1:

CREATE TABLE Employee(
ID INTEGER PRIMARY KEY
Fname VARCHAR(20),
Lname VARCHAR(20),
Gender CHAR(l),
Salary INTEGER NOT NULL, Dept INTEGER, UNIQUE(FNAME, LNAME)
);

Ejemplo 2:

CREATE TABLE first(
A1 INTEGER. A2 INTEGER. PRIMARY KEY (tl)
);
Second way CREATE TABLE test( tl INTEGER PRIMARY KEY, t2 INTEGER.
);

Ejemplo 3:

CREATE TABLE Items (
Item_no integer UNIQUE NOT NULL, name text, price numeric
CREATE TABLE Items (
Items_no no integer PRIMARY KEY, name text, price numeric

PostgreSQL Restricciรณn de clave externa

Una restricciรณn de clave externa especifica que los valores de una columna o un grupo de columnas deben coincidir con los valores que aparecen en alguna fila de otra tabla. Esto le permite establecer la integridad referencial entre dos tablas asociadas.

Supongamos que tiene una tabla que almacena pedidos de diferentes productos. Desea asegurarse de que la tabla contenga pedidos de productos que existen. Entonces, aquรญ debe definir una restricciรณn de clave externa en la tabla de pedidos que haga referencia a la tabla de productos.

Sintaxis:

CREATE TABLE	(
id INTEGER PRIMARY KEY. name VARCHAR(IO)
>;
CREATE TABLE testable
Id INTEGER PRIMARY KEY
read INTEGER REFERENCES	(id)
);

Ejemplo 2:

CREATE TABLE Student (
Std_ID INTEGER primary key,
First_name VARCHAR(20),
Last_name VARCHAR(20),
Gender CHAR(l),
Steam, VARCHAR(20),
Dept_NUM INTEGER REFERENCES Department
);

PostgreSQL Restricciรณn de exclusiรณn

Las restricciones de exclusiรณn le ayudan a asegurarse de que si se comparan dos filas entre sรญ en las columnas o expresiones especificadas con operadores especรญficos, entonces al menos una de estas comparaciones de operadores devolverรก un valor nulo o falso. PostgreSQL La restricciรณn crearรก automรกticamente un รญndice del tipo especificado en la declaraciรณn de restricciรณn.

Ejemplo:

Por ejemplo, lo siguiente PostgreSQL La declaraciรณn crea una nueva tabla llamada Escuela y agrega cinco columnas.

CREATE TABLE SCHOOL6(
STDID INT PRIMARY KEY NOT NULL,
STDNAME TEXT NOT NULL,
STDAGE INT NOT NULL,
FEEDBACK CHAR(50),
STANDARD INT NOT NULL,

Por ejemplo, lo siguiente PostgreSQL La declaraciรณn crea una nueva tabla llamada Rama, que agrega tres columnas. La columna STD_ID es la clave externa y hace referencia al campo ID de la tabla SCHOOL6.

CREATE TABLE BRANCH (
BRANCHCODE INT PRIMARY KEY NOT NULL,
BRAMCHNAME CHAR(50) NOT NULL,
STD_ID INT references SCHOOL6(ID)
);

Preguntas Frecuentes

CLAVE PRIMARIA, CLAVE FORรNEA, รšNICA, NO NULA, VERIFICAR, EXCLUIR.

Las herramientas de IA como Copilot generan sentencias CREATE TABLE con restricciones y condiciones CHECK.

Sรญ. Las herramientas de IA analizan los esquemas en busca de claves forรกneas huรฉrfanas, directivas NOT NULL faltantes y tablas sin claves primarias.

La clave primaria combina UNIQUE y NOT NULL; una por tabla. UNIQUE permite mรบltiples valores y acepta NULL.

Utilice ON DELETE CASCADE, SET NULL o RESTRICT.

No. La comprobaciรณn solo hace referencia a columnas de la misma fila. Utilice claves forรกneas o disparadores.

Utilice EXCLUDE cuando la unicidad requiera operadores de no desigualdad (por ejemplo, && para superposiciรณn).ping rangos).

Sรญ. ALTER TABLE ADD CONSTRAINT funciona despuรฉs de la creaciรณn. Use NOT VALID para omitir la comprobaciรณn de las filas existentes.

Resumir este post con: