首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有布尔变量的SQL表

带有布尔变量的SQL表
EN

Stack Overflow用户
提问于 2020-02-06 17:44:34
回答 1查看 63关注 0票数 0

我对SQL的使用有点陌生,我正在使用不同的场景。

我的例子如下:

假设我需要一个招生系统。我按照以下方式创建了student表:

代码语言:javascript
复制
create table student (net_id char(10) , first_name char(20)  ,
 last_name char(20) , Major char(10) , ISGraduate BOOLEAN,
                        primary key (net_id)

其中,isgraduate布尔变量衡量学生是否是研究生。

我还有一个实体是professor,如下所示:

代码语言:javascript
复制
 create table professor (net_id char(10) , first_name char(20) 
 , last_name char(20) , Rank char(10) , department char(20) ,
                        primary key (net_id))

那么,如果我想模拟这种关系:一位教授可以为许多研究生提供建议,那么我可能需要创建一个新的表格adviosry,但是在那里,我如何只过滤研究生呢?

任何帮助都会很好。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-06 19:08:28

您可以像这样创建表advisory

代码语言:javascript
复制
create table advisory (
  professor_id char(10),  
  student_id char(10),
  ISGraduate BOOLEAN default 1,
  foreign key (professor_id) references professor(net_id),
  foreign key (student_id, ISGraduate) references student(net_id, ISGraduate),
  primary key (professor_id, student_id)
); 

并在表unique中添加net_idISGraduate列的net_id索引。

代码语言:javascript
复制
create table student (
  net_id char(10), 
  first_name char(20),
  last_name char(20), 
  Major char(10), 
  ISGraduate BOOLEAN,
  unique(net_id, ISGraduate),
  primary key (net_id)
);

演示

还请执行以下操作,确保foreign_keys标志是打开的:

代码语言:javascript
复制
PRAGMA foreign_keys = ON;

让研究生们加入到student中来

代码语言:javascript
复制
select s.* 
from student s inner join advisory a
on s.net_id = a.student_id
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60100795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档