帮我找出10种数据完整性的打分方式并写出SQL
时间: 2023-07-15 12:10:55 浏览: 46
以下是10种数据完整性的打分方式:
1. 数据类型完整性:检查数据是否符合其指定的数据类型。
2. 唯一性完整性:检查数据是否唯一,不允许出现重复数据。
3. 非空完整性:检查数据是否为空,不允许出现空值。
4. 默认值完整性:如果数据为空,检查是否设置了默认值。
5. 范围完整性:检查数据是否在指定范围内。
6. 关联完整性:检查数据是否符合与其他表之间的关联关系。
7. 参照完整性:检查数据是否符合参照表的要求。
8. 格式完整性:检查数据是否符合指定格式要求。
9. 规则完整性:检查数据是否符合指定规则。
10. 业务完整性:检查数据是否符合业务规则。
以下是SQL代码示例,实现数据完整性的检查:
1. 数据类型完整性
```
CREATE TABLE myTable (
ID INT,
NAME VARCHAR(50),
AGE INT
);
```
2. 唯一性完整性
```
CREATE TABLE myTable (
ID INT PRIMARY KEY,
NAME VARCHAR(50) UNIQUE,
AGE INT
);
```
3. 非空完整性
```
CREATE TABLE myTable (
ID INT PRIMARY KEY,
NAME VARCHAR(50) NOT NULL,
AGE INT
);
```
4. 默认值完整性
```
CREATE TABLE myTable (
ID INT PRIMARY KEY,
NAME VARCHAR(50) DEFAULT 'John',
AGE INT
);
```
5. 范围完整性
```
CREATE TABLE myTable (
ID INT PRIMARY KEY,
NAME VARCHAR(50),
AGE INT CHECK (AGE > 0 AND AGE < 100)
);
```
6. 关联完整性
```
CREATE TABLE myTable1 (
ID INT PRIMARY KEY,
NAME VARCHAR(50)
);
CREATE TABLE myTable2 (
ID INT PRIMARY KEY,
myTable1_ID INT REFERENCES myTable1(ID),
AGE INT
);
```
7. 参照完整性
```
CREATE TABLE myTable1 (
ID INT PRIMARY KEY,
NAME VARCHAR(50)
);
CREATE TABLE myTable2 (
ID INT PRIMARY KEY,
myTable1_ID INT REFERENCES myTable1(ID),
AGE INT
);
```
8. 格式完整性
```
CREATE TABLE myTable (
ID INT PRIMARY KEY,
NAME VARCHAR(50),
EMAIL VARCHAR(50) CHECK (EMAIL LIKE '%@%.%')
);
```
9. 规则完整性
```
CREATE TABLE myTable (
ID INT PRIMARY KEY,
NAME VARCHAR(50),
AGE INT,
CHECK (AGE > 0 AND AGE < 100 AND NAME IS NOT NULL)
);
```
10. 业务完整性
```
CREATE TABLE myTable (
ID INT PRIMARY KEY,
NAME VARCHAR(50),
AGE INT,
CHECK (AGE > 18 AND NAME != 'Admin')
);
```