111111111

以下是您要求的步骤和查询的SQL示例,首先创建数据库和表,然后插入数据并执行查询:

步骤1:创建数据库

首先,创建一个名为 "Enterprise_学号后三位" 的数据库。

 

sqlCopy code

CREATE DATABASE Enterprise_102; -- 请根据您的学号后三位修改数据库名 USE Enterprise_102;

步骤2:创建表

创建与给定关系模型对应的表格,分别为 Department_102Employee_102Project_102Works_on_102

 

sqlCopy code

-- 创建Department_102表

-- 创建Department_102表
CREATE TABLE Department_102 (
    dept_no INT PRIMARY KEY,
    dept_name VARCHAR(50),
    location VARCHAR(50)
);

-- 创建Employee_102表
CREATE TABLE Employee_102 (
    emp_no INT PRIMARY KEY,
    emp_fname VARCHAR(50),
    emp_lname VARCHAR(50),
    dept_no INT,
    FOREIGN KEY (dept_no) REFERENCES Department_102(dept_no)
);

-- 创建Project_102表
CREATE TABLE Project_102 (
    project_no INT PRIMARY KEY,
    project_name VARCHAR(50),
    budget DECIMAL(10, 2)
);

-- 创建Works_on_102表
CREATE TABLE Works_on_102 (
    emp_no INT,
    project_no INT,
    job VARCHAR(50),
    enter_date DATE,
    FOREIGN KEY (emp_no) REFERENCES Employee_102(emp_no),
    FOREIGN KEY (project_no) REFERENCES Project_102(project_no)
);

 

步骤3:插入数据

向每个表中插入至少3条记录,以下是示例数据的插入:

 

-- 插入Department_102表数据
INSERT INTO Department_102 (dept_no, dept_name, location)
VALUES
    (1, 'HR', 'New York'),
    (2, 'IT', 'Dallas'),
    (3, 'Marketing', 'Los Angeles');

-- 插入Employee_102表数据
INSERT INTO Employee_102 (emp_no, emp_fname, emp_lname, dept_no)
VALUES
    (101, 'John', 'Smith', 1),
    (102, 'Jane', 'Doe', 2),
    (103, 'Michael', 'Johnson', 2);

-- 插入Project_102表数据
INSERT INTO Project_102 (project_no, project_name, budget)
VALUES
    (1, 'P1', 50000.00),
    (2, 'P2', 75000.00),
    (3, 'P3', 60000.00);

-- 插入Works_on_102表数据
INSERT INTO Works_on_102 (emp_no, project_no, job, enter_date)
VALUES
    (101, 1, 'Manager', '2023-01-15'),
    (102, 2, 'Developer', '2023-02-20'),
    (103, 3, 'Designer', '2023-03-25');
 

步骤4:执行查询

现在,我们可以执行您提出的查询:

  1. 查询部门的编号、名称和位置:
 

SELECT dept_no, dept_name, location
FROM Department_102;

  1. 查询位于Dallas的部门编号和名称:
 

SELECT dept_no, dept_name
FROM Department_102
WHERE location = 'Dallas';

  1. 查询预算额的0.31倍大于60000的项目名称:
 

SELECT project_name
FROM Project_102
WHERE budget * 0.31 > 60000;

  1. 查询在部门编号为d1的部门工作且职员编号为23348或职工名称为‘Matthew’的雇员信息:
 

SELECT emp_no, emp_fname, emp_lname
FROM Employee_102
WHERE dept_no = 1
   AND (emp_no = 23348 OR emp_fname = 'Matthew');

  1. 查询不在部门编号为d1的部门工作的职员编号和姓名:
 

SELECT emp_no, emp_fname, emp_lname
FROM Employee_102
WHERE dept_no <> 1;

  1. 获取为项目'P2'工作的,具有未知工作的所有职员的职员编号和相应的项目编号:
 

SELECT w.emp_no, w.project_no
FROM Works_on_102 w
WHERE w.project_no = 2
   AND w.job IS NULL;

  1. 找出所有姓是以字母J开头的职员的名字和编号:
 

sqlCopy code

SELECT emp_no, emp_fname FROM Employee_102 WHERE emp_lname LIKE 'J%';

  1. 找出所有名中第二个字母是a的职员的名字和编号:
 

sqlCopy code

SELECT emp_no, emp_fname FROM Employee_102 WHERE emp_fname LIKE '_a%';

  1. 获取在研究部门工作的所有职员的名和姓:
 

sqlCopy code

SELECT emp_fname, emp_lname FROM Employee_102 WHERE dept_no = 3;

  1. 获取不是在项目上花费了最多时间的所有职员的编号、项目编号和工作名称:
 

sqlCopy code

SELECT w.emp_no, w.project_no, w.job FROM Works_on_102 w WHERE w.enter_date < ALL ( SELECT w2.enter_date FROM Works_on_102 w2 WHERE w2.project_no = w.project_no );

这些查询将为您提供所需的数据和结果。请根据您的实际数据进行适当的调整。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值