大体内容:

以下任务均基于SQLServer的pubs数据库的如下几张表的,雇员表employee、职务表jobs、出版社表publishers、书名表titles,他们的表结构分别如下:

数据库解释:数据库是一个跨国出版集团的数据库。出版集团中有若干出版社,每个雇员属于一个出版社。出版社出版了若干出版物。

设计要求:

Employee雇员表

字段名称

字段类型

描述

emp_id

int

雇员ID,PK

fname

varchar

minit

varchar

中间名

lname

varchar

job_id

int

职位ID  FK

job_lvl

int

雇员工资

pub_id

int

所在出版社ID FK

hire_date

datetime

入职时间

Jobs职位表

字段名称

字段类型

描述

job_id

int

职位ID   PK

job_desc

varchar

职位描述

Max_lvl

int

该职位最高工资

Min_lvl

int

该职位最低工资

Publisher出版社表

字段名称

字段类型

描述

pub_id

int

出版社ID,PK

pub_name

varchar

出版社名称

city

varchar

出版社所在城市

state          

varchar

出版社所在的州

country

varchar

出版社所在的国家

Title出版物表

字段名称

字段类型

描述

titles_id

int

出版物ID  PK

title

varchar

出版物名称

type

varchar

出版物类型

pub_id

int

出版社ID,FK

price

decimal

出版物价格

advance

int

预定量

yoralty

int

ytd_sales

int

销售量

notes

varchar

出版物描述

pub_date

datetime

出版时间

插入数据:(测试用,需要手动插入)

employee表数据:

publisher表如下:

title表如下:

job表如下:

代码实现部分:

(Mysql 8.0,datagrip实现,如果不想看图和架构,请直接看建表语句)

整体架构的图:

小白写的时候 注意外键关系,要先输入publisher和jobs的数据,才能写底下两个表数据

各个表情况一览:

employee:

publisher:

title:

job:

建表语句:

CREATE TABLE `publisher` (
  `pub_id` int NOT NULL COMMENT '出版社ID,PK',
  `pub_name` varchar(16) COLLATE utf8mb3_unicode_ci DEFAULT NULL COMMENT '出版社名称',
  `city` varchar(16) COLLATE utf8mb3_unicode_ci DEFAULT NULL COMMENT '出版社所在城市',
  `state` varchar(16) COLLATE utf8mb3_unicode_ci DEFAULT NULL COMMENT '出版社所在州',
  `country` varchar(16) COLLATE utf8mb3_unicode_ci DEFAULT NULL COMMENT '出版社所在国家',
  PRIMARY KEY (`pub_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='出版社表'

CREATE TABLE `jobs` (
  `job_id` int NOT NULL COMMENT '职务id,PK',
  `job_desc` varchar(32) COLLATE utf8mb3_unicode_ci DEFAULT NULL COMMENT '职位描述',
  `Max_lvl` int DEFAULT NULL COMMENT '最高工资',
  `Min_lvl` int DEFAULT NULL COMMENT '最低工资',
  PRIMARY KEY (`job_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='职位表'

CREATE TABLE `employee` (
  `emp_id` int NOT NULL COMMENT '雇员ID,PK',
  `fname` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT NULL COMMENT '姓',
  `minit` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT NULL COMMENT '中间名',
  `lname` varchar(10) COLLATE utf8mb3_unicode_ci DEFAULT NULL COMMENT '名',
  `job_id` int DEFAULT NULL COMMENT '职位ID,FK',
  `job_lvl` int DEFAULT NULL COMMENT '雇员工资',
  `pub_id` int DEFAULT NULL COMMENT '所在出版社的ID FK',
  `hire_date` datetime DEFAULT NULL COMMENT '入职时间',
  PRIMARY KEY (`emp_id`),
  KEY `employee_jobs_job_id_fk` (`job_id`),
  KEY `employee_publisher_pub_id_fk` (`pub_id`),
  CONSTRAINT `employee_jobs_job_id_fk` FOREIGN KEY (`job_id`) REFERENCES `jobs` (`job_id`),
  CONSTRAINT `employee_publisher_pub_id_fk` FOREIGN KEY (`pub_id`) REFERENCES `publisher` (`pub_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='雇员表'

CREATE TABLE `titles` (
  `titles_id` int NOT NULL COMMENT '出版物ID PK',
  `title` varchar(64) COLLATE utf8mb3_unicode_ci DEFAULT NULL COMMENT '出版物名称',
  `type` varchar(16) COLLATE utf8mb3_unicode_ci DEFAULT NULL COMMENT '出版物类型',
  `pub_id` int DEFAULT NULL COMMENT '出版社ID,FK',
  `price` decimal(10,0) DEFAULT NULL COMMENT '出版物价格',
  `advance` int DEFAULT NULL COMMENT '预定量',
  `yoralty` int DEFAULT NULL,
  `ytd_sales` int DEFAULT NULL COMMENT '销售量',
  `notes` varchar(16) COLLATE utf8mb3_unicode_ci DEFAULT NULL,
  `pub_date` datetime DEFAULT NULL COMMENT '出版时间',
  PRIMARY KEY (`titles_id`),
  KEY `titles_publisher_pub_id_fk` (`pub_id`),
  CONSTRAINT `titles_publisher_pub_id_fk` FOREIGN KEY (`pub_id`) REFERENCES `publisher` (`pub_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='出版物表'

然后插入数据即可

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐