约束~数据库设计~多表查询(5个小练习)----保姆级详述,学到了就是赚到了

约束


约束名称描述关键字
非空约束保证列中所有数据不能有null值not null
唯一约束保证列中所有数据各不相同unique
主键约束主键是一行数据的唯一标识,要求非空唯一primary key
默认约束保存数据时,未指定值则采用默认值default
外键约束外键用来让两个表的数据之间建立连接,保证数据的一致性,完整性foreign key

数据库设计

一对多实现方式

  • 在多的一方建立外键关联低的一方的主键

多对多实现方式

  • 建立第三方中间表
  • 中间表至少包含两个外键,分别关联双方主键

一对一实现方式

  • 在任意一方建立外键,关联对方主键,并设置外键唯一

多表查询

笛卡尔积:取A,B集合所有组合情况

select * from tb_1,tb_2;

分类

连接查询

在这里插入图片描述

  • 🍎内连接

    相当于查询A,B的交集部分

    • 🌳隐式内连接
      • select 字段列表 from 表1,表2… where 条件;
      • 字段列表可以这样写:fg: A.name,B.age…
      • 当现实中A,B名字很长的情况下可以给表起别名类似于给字段起别名直接 A a,B b 中间有空格
    • 🌳显示内连接
      • select 字段列表 from 表1 inner join 表2 on 条件 📕这里的inner可以省略
  • 🍎外连接

    • 🌳左外连接:A的部分和A与B的交集的部分

    • select 字段列表 from 表1 left outer join 表2 on 条件

    • 🌳右外连接:B的部分和A与B交集的部分

    • select 字段列表 from 表1 right outer join 表2 on 条件

    • 这里的 outer 也是可以省略的

子查询

查询中嵌套查询,称嵌套查询为子查询

Fg:查询工资高于A的员工信息;分两步走:1.先查询A的工资 2.查询工资高于A的员工

  • 根据子查询结果不同,作用不同
单行单列(作为条件值)

使用 = != > < 进行条件判断

select 字段列表 from 表名 where 字段名 =(!= > <) (子查询)

多行单列(多为条件值)

使用 in 关键字进行判断

select 字段列表 from 表名 where in (子查询)

多行多列(多为虚拟表)

select 字段列表 from (子查询) where 条件

练习

在这里插入图片描述
在这里插入图片描述

练习1 ✊

select emp.id,emp.ename,emp.salary,job.jname,job.description from emp,job where emp.job_id=job.id

练习2 ✊

select emp.id,emp.ename,emp.salary,job.jname,job.sescription,dept.dname,dept.loc
from emp,job,dept where emp.job_id=job.id and emp.dept_id=dept.id

练习3 ✊

select emp.ename,emp.salary,t1.grade from emp,salarygrade t1 
where emp.salary between t1.losalary and t1.hisalary

练习4 ✊

select emp.ename,emp.salary,job.jname,job.decription,dept.dname,dept.loc,t1.grade
from emp inner
join job on emp.job_id=job.id inner
join dept on emp.dept_id=dept.id inner 
join salarygrade t1 on emp.salary between t1.losalary and t1.hisalary

练习5 ✊

select  dept.id,dept.dname,dept.loc,t1.count
from dept,(select dept_id,count(*) count from emp group by dept_id ) t1 
where t1.dept_id=dept,id 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
当涉及到 Vue DHTMLX-Gantt 导出 Excel 的保姆完整教程时,以下是一步一步的指南: 1. 确保您的项目中已经安装了 Vue 和 DHTMLX-Gantt。如果尚未安装,请使用以下命令进行安装: ```bash npm install vue dhtmlx-gantt ``` 2. 在您的 Vue 组件中引入所需的库和样式: ```javascript import 'dhtmlx-gantt'; import 'dhtmlx-gantt/codebase/dhtmlxgantt.css'; ``` 3. 创建一个 Vue 组件,并在模板中添加一个 Gantt 图和一个按钮: ```html <template> <div ref="ganttContainer" style="width: 100%; height: 600px;"></div> <button @click="exportData">导出 Excel</button> </template> <script> import * as XLSX from 'xlsx'; import FileSaver from 'file-saver'; export default { mounted() { const ganttContainer = this.$refs.ganttContainer; gantt.init(ganttContainer); // 设置 Gantt 图的配置和数据 // 示例数据 const tasks = [ { id: 1, text: '任务1', start_date: '2022-01-01', duration: 5, progress: 0.5 }, { id: 2, text: '任务2', start_date: '2022-01-06', duration: 4, progress: 0.2 }, // 其他任务... ]; gantt.parse({ data: tasks }); }, methods: { exportData() { const gantt = this.$refs.ganttContainer.$gantt; const tasks = gantt.getDatastore('task').getItems(); // 将任务数据转换为 Excel 数据格式 const data = tasks.map((task) => { return { id: task.id, text: task.text, start_date: task.start_date, duration: task.duration, progress: task.progress, }; }); // 创建 Excel 文件 const worksheet = XLSX.utils.json_to_sheet(data); const workbook = XLSX.utils.book_new(); XLSX.utils.book_append_sheet(workbook, worksheet, 'Gantt Data'); const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' }); const excelData = new Blob([excelBuffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }); // 下载 Excel 文件 FileSaver.saveAs(excelData, 'gantt_data.xlsx'); }, }, }; </script> <style> /* 可选的样式 */ </style> ``` 4. 在上述示例代码中,需要注意以下部分: - 在 `mounted` 钩子中,使用 `gantt.init(ganttContainer)` 初始化 Gantt 图,并根据您的需求设置其配置和数据。 - `exportData` 方法用于将 Gantt 图数据导出到 Excel。确保在 `exportData` 方法中的 `this.$refs.ganttContainer.$gantt` 是对 Gantt 图组件的正确引用。 - 点击 "导出 Excel" 按钮时,将会生成一个名为 `gantt_data.xlsx` 的 Excel 文件,其中包含了 Gantt 图的数据。 这就是使用 Vue DHTMLX-Gantt 导出 Excel 的保姆完整教程。希望对您有所帮助!如果您有任何其他问题,请随时提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C_x_330

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值