SQL Server SQL服务器:创建数据库[已关闭]

t9aqgxwy  于 2023-02-03  发布在  其他
关注(0)|答案(1)|浏览(142)

5天前关闭。
Improve this question
我想创建一个数据库,其中包含以下表:x一个一个一个一个一个x、x一个一个一个一个一个x、x一个一个一个二个一个x和x一个一个一个三个一个x。
用户可以分为两种类型-管理员或员工。
同一本书里可以有很多。
学生可以在指定的时间内从图书馆借书,如果没有提到时间,默认为15天。

CREATE TABLE USERS 
(
    userId int, 
    stId int NOT NULL,
    userStatus varchar(30) NOT NULL,
    PRIMARY KEY (userId),
);

CREATE TABLE STUDENTS 
(
    stId int, -- Both a primary and foreign key
    firsname varchar(30) NOT NULL,
    lastname varchar(30) NOT NULL,
    age int NOT NULL,
    PRIMARY KEY (stId),
    FOREIGN KEY (stId) REFERENCES USERS (userId)
);

CREATE TABLE BOOKS 
(
    bookId int,
    title varchar(100) NOT NULL,
    author varchar(100) NOT NULL,
    PRIMARY KEY (bookId),
    userId int
);

CREATE TABLE HISTORY 
(
    historyId int,
    users_id int NOT NULL,
    books_id int NOT NULL,
    returned_day int NOT NULL default 15,
    PRIMARY KEY (historyId),
    FOREIGN KEY (users_id) REFERENCES USERS(userId),                     
    FOREIGN KEY (books_id) REFERENCES BOOKS(bookId)
);

我不懂如何使用外键。

pkbketx9

pkbketx91#

我假设您正在SQL Server中尝试此操作,下面是一个示例,希望对您有所帮助。
假设有一个名为orders的表,并且您希望将列'pid'定义为其中的外键(* 引用不同表products中的prod_id *),那么首先在create table语句中定义'pid',如下所示。

CREATE TABLE [dbo].[orders](
    [order_id] [int] NOT NULL,
    [pid] [int] NOT NULL,
    [uid] [int] NULL,
    [qty] [int] NULL,
    [ship_add] [varchar](255) NULL,
    [ship_date] [date] NULL,
    [ship_status] [varchar](255) NULL

现在运行以下命令将pid定义为外键

ALTER TABLE [dbo].[orders]  WITH CHECK ADD FOREIGN KEY([pid])
REFERENCES [dbo].[products] ([prod_id])
GO

相关问题