主属性完整性约束 sql语句
时间: 2024-05-23 21:08:08 浏览: 20
主属性完整性约束是指关系中某个属性被指定为主属性,该属性的取值不能为空,也不能重复。在SQL中,可以通过以下语句来创建主属性完整性约束:
1. 在创建表时指定主键约束
```
CREATE TABLE table_name (
column1 datatype PRIMARY KEY,
column2 datatype,
column3 datatype,
.....
);
```
其中,PRIMARY KEY 约束用于指定一个或多个列作为表的主键。
2. 在已有表中添加主键约束
```
ALTER TABLE table_name
ADD PRIMARY KEY (column1);
```
其中,ADD PRIMARY KEY 用于给表添加主键约束。
3. 在创建表时指定唯一约束
```
CREATE TABLE table_name (
column1 datatype UNIQUE,
column2 datatype,
column3 datatype,
.....
);
```
其中,UNIQUE 约束用于指定一个或多个列的值必须是唯一的。
4. 在已有表中添加唯一约束
```
ALTER TABLE table_name
ADD UNIQUE (column1);
```
其中,ADD UNIQUE 用于给表添加唯一约束。
相关问题
运用SQL语句创建相应的数据表,包含必要的完整性约束;
好的,以下是根据上面的关系模式,使用 SQL 语句创建相应的数据表,其中包含必要的完整性约束。
1. 读者(Reader)关系模式
```sql
CREATE TABLE Reader (
ReaderID INT PRIMARY KEY,
Name VARCHAR(50) NOT NULL,
Gender CHAR(1) NOT NULL,
Contact VARCHAR(20) NOT NULL
);
```
2. 借阅证(BorrowCard)关系模式
```sql
CREATE TABLE BorrowCard (
CardID INT PRIMARY KEY,
ReaderID INT NOT NULL,
CreateDate DATE NOT NULL,
ExpireDate DATE NOT NULL,
FOREIGN KEY (ReaderID) REFERENCES Reader(ReaderID) ON DELETE CASCADE
);
```
3. 图书(Book)关系模式
```sql
CREATE TABLE Book (
BookID INT PRIMARY KEY,
Title VARCHAR(100) NOT NULL,
Author VARCHAR(50) NOT NULL,
Press VARCHAR(50) NOT NULL,
Price DECIMAL(8,2) NOT NULL,
TotalNum INT NOT NULL,
CurrentNum INT NOT NULL,
CHECK (TotalNum >= CurrentNum)
);
```
4. 类别(Category)关系模式
```sql
CREATE TABLE Category (
CategoryID INT PRIMARY KEY,
Name VARCHAR(50) NOT NULL
);
```
5. 出版社(Press)关系模式
```sql
CREATE TABLE Press (
PressID INT PRIMARY KEY,
Name VARCHAR(50) NOT NULL
);
```
6. 借阅(Borrow)关系模式
```sql
CREATE TABLE Borrow (
CardID INT,
BookID INT,
BorrowDate DATE NOT NULL,
ReturnDate DATE,
PRIMARY KEY (CardID, BookID),
FOREIGN KEY (CardID) REFERENCES BorrowCard(CardID) ON DELETE CASCADE,
FOREIGN KEY (BookID) REFERENCES Book(BookID) ON DELETE CASCADE
);
```
7. 续借(Renew)关系模式
```sql
CREATE TABLE Renew (
CardID INT,
BookID INT,
RenewDate DATE NOT NULL,
NewReturnDate DATE NOT NULL,
PRIMARY KEY (CardID, BookID),
FOREIGN KEY (CardID) REFERENCES BorrowCard(CardID) ON DELETE CASCADE,
FOREIGN KEY (BookID) REFERENCES Book(BookID) ON DELETE CASCADE
);
```
8. 归还(Return)关系模式
```sql
CREATE TABLE Return (
CardID INT,
BookID INT,
ReturnDate DATE NOT NULL,
OverdueDays INT,
Fine DECIMAL(8,2),
PRIMARY KEY (CardID, BookID),
FOREIGN KEY (CardID) REFERENCES BorrowCard(CardID) ON DELETE CASCADE,
FOREIGN KEY (BookID) REFERENCES Book(BookID) ON DELETE CASCADE
);
```
9. 类别管理(Book_Category)关系模式
```sql
CREATE TABLE Book_Category (
BookID INT,
CategoryID INT,
PRIMARY KEY (BookID, CategoryID),
FOREIGN KEY (BookID) REFERENCES Book(BookID) ON DELETE CASCADE,
FOREIGN KEY (CategoryID) REFERENCES Category(CategoryID) ON DELETE CASCADE
);
```
10. 出版社管理(Book_Press)关系模式
```sql
CREATE TABLE Book_Press (
BookID INT,
PressID INT,
PRIMARY KEY (BookID, PressID),
FOREIGN KEY (BookID) REFERENCES Book(BookID) ON DELETE CASCADE,
FOREIGN KEY (PressID) REFERENCES Press(PressID) ON DELETE CASCADE
);
```
在上面的 SQL 语句中,我添加了一些完整性约束,如:
- 主键约束:每个表都有一个主键,用于唯一标识每个元组。
- 外键约束:一些表之间存在关联关系,使用外键约束来保持关联关系的完整性。
- 检查约束:对于某些属性,需要进行数据合法性检查,使用检查约束来保证数据的正确性。
如果您有其他的完整性约束需求,请告诉我,我会尽可能地满足您的需求。
创建表和表的sql语句 要求 定义实体完整性
创建表是在关系型数据库中定义数据表的结构和属性的过程。在创建表时,可以使用SQL语句来定义表的名称、列名、数据类型以及其他约束条件。
下面是一个示例的SQL语句来创建一个名为"students"的表,并定义了一些实体完整性约束:
```
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT CHECK (age >= 0), gender ENUM('Male', 'Female'),
grade FLOAT DEFAULT 0.0
);
```
上述SQL语句创建了一个名为"students"的表,包含了以下列:
- id:整数类型,作为主键。
- name:最大长度为50的字符串类型,不能为空。
- age:整数类型,必须大于等于0。
- gender:枚举类型,只能是'Male'或'Female'。
- grade:浮点数类型,默认值为0.0。
这些约束条件保证了表中的数据满足实体完整性的要求。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)