用MySQL创建公司资料库表格

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 创建了员工、分支、客户及工作关系的数据库表格。员工与分支间有works_with表记录销售数据,外键关联并处理删除操作(set null或cascade)。插入数据后,通过SQL查询获取员工、客户信息,使用聚合函数、通配符、联合查询和JOIN操作。子查询用于复杂条件筛选。数据库设计确保了数据完整性和参照完整性。

创建公司资料库表格

image-20240324192253612

创建员工表格
creat table `employee`(
    `emp_id` int primary key,
    `name` varchar(20),
    `birth_data` date,
    `gender` varchar(1),
    `salary` int,
    `branch_id`int,
    `sup_id` int
);

creat table `branch`(
    `branch_id` int primary key,
    `branch_name` varchar(20),
    `manager_id`int,
    foreign key (`manager_id`) references `employee`(`emp_id`)on delete set null
);

alter table `employee` add foreign key(`branch_id`)on delete set null;
alter table `employee`
add foreign key(`sup_id`)
on delete set null;
创建客户表格
creat table `client`(
    `client_id` int primary key,
`client_name`varchar(20),
    `phone` varchar(20)
);
在employee和branch两个表格之间创建关联表格works_with
creat table `work_with`(
    `emp_id` int,
    `client_id` int,
    `total_sales`int,
    primary key(`emp_id`,`client_id`),
    foreign key(`emp_id`) references `employee`(`emp_id`) on delete cascade,
    foreign key(`client_id`)references `client`(`client_id`)on delete cascade
);
创建完成,输入数据
update `branch` set `manager_id`=206 where `branch_id`=1; 
insert into `client` values(400,'dog','1305');
.....
取得用户资料
select * from `client`;
select * from `employee` order by `salary` desc;
select * from `employee` order by `salary` desc limit 3;
select `name` from `employee`; 
select distinct `gender` from `employee`;
聚合函数
select count(`sup_id`) from `employee`;
select count(*) from `employee` where `birth_date`>`1970-01-01` and `gender`=`female`;
select avg(`salary`) from `employee`;
sum()总和
max()min()
select `name` from `employee` where `salary`=(select max(`salary`)from `employee`);
wildcards 通配符%
select * from `client` where `phone` like '%335%';like模糊查询
=运算符只有两个字符完全匹配才会返回true精确查询
%代表任意个字符,_代表一个字符

联合查询union结果合并到一列
select `name` from `employee` union select `client_name` from `client`;属性数目要一致
select `emp_id` as `total_id`,`name` as `total_name` from `employee` union select `client_id`,`client_name`from `client`;as重命名

join 连接两个表,左右连接
select * from `employee` join `branch` on `employee`.`emp_id`=`branch`.`manager_id`;

from `employee` left join `branch`
这里`employee`是左表格,不管条件是否成立都会返回左表格数据,但右表格必须成立才返回数据否则返回null
right join同理
子查询
select `name` from `employee` where `emp_id`=(
    select `manager_id`
    from `branch`
    where `branch_name`='研发'
);

select `name` from `employee` where `emp_id` in(
    select `emp_id` from `works_with` where `total_sales`>50000
);

foreign key(`manager_id`) references `employee`(`emp_id`)on delete set null;
如果`emp_id` 被删除了那么manager_id被设为null

foreign key(`emp_id`)references `employee`(`emp_id`) on delete cascade
如果`emp_id` 被删除了那么其相对应的全部内容删掉
primary key的值不能被设置为null

MySQL

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
7天前
|
关系型数据库 MySQL Apache
实时计算 Flink版操作报错之mysql整库同步到doris连接器报错,如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
8天前
|
存储 关系型数据库 MySQL
【MySQL】操作库 —— 表的操作 -- 详解
【MySQL】操作库 —— 表的操作 -- 详解
|
8天前
|
存储 关系型数据库 MySQL
【MySQL】操作库 —— 库的操作 -- 详解
【MySQL】操作库 —— 库的操作 -- 详解
|
15天前
|
前端开发 关系型数据库 MySQL
【MySQL × SpringBoot 突发奇想】全面实现流程 · 数据库导出Excel表格文件的接口
【MySQL × SpringBoot 突发奇想】全面实现流程 · 数据库导出Excel表格文件的接口
39 0
|
15天前
|
Java 关系型数据库 MySQL
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口(下)
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口
132 0
|
15天前
|
Java 关系型数据库 MySQL
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口(上)
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口
67 0
|
15天前
|
关系型数据库 MySQL 分布式数据库
PolarDB MySQL版集群版本支持库表恢复功能的版本要求是什么?
【5月更文挑战第13天】PolarDB MySQL版集群版本支持库表恢复功能的版本要求是什么?
14 0
|
15天前
|
关系型数据库 MySQL 数据库
docker MySQL删除数据库时的错误(errno: 39)
docker MySQL删除数据库时的错误(errno: 39)
85 0
|
15天前
|
存储 关系型数据库 MySQL
学习MySQL(5.7)第二战:四大引擎、账号管理以及建库(干货满满)
学习MySQL(5.7)第二战:四大引擎、账号管理以及建库(干货满满)
|
15天前
|
SQL 关系型数据库 MySQL
使用Python的pymysql库连接MySQL,执行CRUD操作
使用Python的pymysql库连接MySQL,执行CRUD操作:安装pymysql,然后连接(host='localhost',user='root',password='yourpassword',database='yourdatabase'),创建游标。查询数据示例:`SELECT * FROM yourtable`;插入数据:`INSERT INTO yourtable...`;更新数据:`UPDATE yourtable SET...`;删除数据:`DELETE FROM yourtable WHERE...`。
29 0