撰写SQL语句在“姓名拼音”数据库中创建以下3个表,同时完成数据完整性的定义(实体完整性、参照完整性和用户定义的域完整性),
时间: 2024-10-15 18:26:28 浏览: 11
在SQL中,创建表并定义完整性约束通常涉及以下几个步骤:
1. **创建员工基本信息表(Employees)**:
```sql
CREATE TABLE Employees (
ID INT PRIMARY KEY,
Name NVARCHAR(50) NOT NULL,
PinyinName NVARCHAR(50) UNIQUE, -- 实体完整性(不允许有重复的姓名拼音)
Age INT CHECK (Age >= 18), -- 用户定义的域完整性(年龄必须大于等于18)
DepartmentID INT FOREIGN KEY REFERENCES Departments(ID) -- 参照完整性(部门ID引用Departments表中的ID)
);
```
2. **创建部门信息表(Departments)**:
```sql
CREATE TABLE Departments (
ID INT PRIMARY KEY,
DepartmentName NVARCHAR(50) NOT NULL
);
```
3. **创建职位信息表(Positions)**:
```sql
CREATE TABLE Positions (
ID INT PRIMARY KEY,
PositionName NVARCHAR(50) NOT NULL,
DepartmentID INT FOREIGN KEY REFERENCES Departments(ID)
);
```
在这个例子中:
- `Employees`表的`PinyinName`字段定义了唯一性约束,保证每个员工的拼音名都是唯一的。
- `Age`字段的`CHECK`约束定义了域完整性,防止插入无效的年龄值。
- 所有的外键都指定了参照完整性,确保引用的外部表存在。
阅读全文