当前位置: 首页 > news >正文

Myqsl建立库表练习

目录

一、windows中选择一种方式安装Mysql8.0

二、新建产品库mydb6_product

 1. 新建3张表如下:

  1)employees表

  2)orders表

  3)invoices表

三、新建员工库mydb8_worker,添加自定义表内容并插入数据

 1. 新建库表

 2. 插入数据

 3. 完成以下查询

  1)显示所有职工的基本信息。

  2)查询所有职工所属部门的部门号,不显示重复的部门号。

  3)求出所有职工的人数。

  4)列出最高工和最低工资。

  5)列出职工的平均工资和总工资。

  6)创建一个只有职工号、姓名和参加工作时间的新表,名为工作日期表。

  7)显示所有党员的年龄。

  8)列出工资在4000-8000之间的所有职工姓名。

  9)列出所有孙姓和李姓的职工姓名。

  10)列出所有部门号为102和103且不是党员的职工号、姓名。

  11)将职工表t_worker中的职工按出生的先后顺序排序。

  12)显示工资最高的前3名职工的职工号和姓名。

  13)求出各部门党员的人数。

  14)统计各部门的工资和平均工资并保留2位小数。

  15)列出总人数大于等于3的部门号和总人数。


一、windows中选择一种方式安装Mysql8.0

  • 具体步骤见Mysql栏上文

二、新建产品库mydb6_product

mysql> create database mydb6_product;
Query OK, 1 row affected (0.04 sec)mysql> show databases;

 1. 新建3张表如下:

  1)employees表

  • 列1:id,整型,主键

  • 列2:name,字符串,最大长度50,不能为空

  • 列3: age,整型

  • 列4:gender,字符串,最大长度10,不能为空,默认值“unknown”

  • 列5: salary,浮点型

mysql> use mydb6_product;   # 使用库
Database changed# 建表
mysql> create table employees(-> id int primary key,-> name varchar(50) not null,-> age int,-> gender varchar(10) not null default 'unknown',-> salary float-> );
Query OK, 0 rows affected (0.03 sec)mysql> desc employees;   # 查看

  2)orders表

  • 列1:id,整型,主键

  • 列2:name,字符串,最大长度100,不能为空

  • 列3: price,浮点型

  • 列4: quantity,整型

  • 列S:category,字符串,最大长度50

mysql> create table orders(-> id int primary key,-> name varchar(100) not null,-> price float,-> quantity int,-> category varchar(50)-> );
Query OK, 0 rows affected (0.03 sec)mysql> desc orders;   # 查看

  3)invoices表

  • 列1:number,整型,主键自增长

  • 列2:order_id,整型,外键关联到orders表的id列

  • 列3:in_date:日期型

  • 列4:total_amount:浮点型,要求数据大于0

mysql> create table invoices( -> number int auto_increment primary key, -> order_id int,-> in_date date, -> total_amount float check(total_amount>0), -> foreign key(order_id) refereences orders(id) on delete restrict on update cascade -> );
Query OK, 0 rows affected (0.03 sec)mysql> desc invoices;   # 查看

三、新建员工库mydb8_worker,添加自定义表内容并插入数据

 1. 新建库表

# 创建数据库
mysql> create database mydb8_worker;
Query OK, 1 row affected (0.01 sec)
# 使用库
mysql> use mydb8_worker;
Database changed
# 创建数据表
mysql> create table t_worker(-> department_id int(11) not null comment '部门号',-> worker_id int(11) primary key not null comment '职工号',-> worker_date date not null comment '工作时间',-> wages float(8,2) not null comment '工资',-> politics varchar(10) not null default '群众' comment '政治面貌',-> name varchar(20) not null comment '姓名',-> borth_date date not null comment '出生日期'-> );
Query OK, 0 rows affected, 3 warnings (0.02 sec)# 查看表结构
mysql> desc t_worker;

 2. 插入数据

mysql> insert into t_worker values(101,1001,'2015-5-4',7500.00,'群众','张三','1990-7-1');
mysql> insert into t_worker values(101,1002,'2019-3-5',5200.00,'团员','李四','1995-3-7');
mysql> insert into t_worker values(102,1003,'2008-1-4',10500.00,'党员','王五','1983--5-8');
mysql> insert into t_worker values(102,1004,'2016-10-10',5500.00,'群众','赵六','1994-9-5');
mysql> insert into t_worker values(102,1005,'2014-4-1',8800.00,'党员','钱七','1992-12-30');
mysql> insert into t_worker values(103,1006,'2019-5-5',5500.00,'党员','孙八','1996-9-2');# 查看
mysql> select * from t_worker;

 3. 完成以下查询

  1)显示所有职工的基本信息。

mysql> select * from t_worker;

  2)查询所有职工所属部门的部门号,不显示重复的部门号。

mysql> select distinct department_id from t_worker;

  3)求出所有职工的人数。

mysql> select count(*) as '职工总人数' from t_worker;

  4)列出最高工和最低工资。

mysql> select -> max(wages) as '最高工资',-> min(wages) as '最低工资'-> from t_worker;

  5)列出职工的平均工资和总工资。

mysql> select-> avg(wages) as '平均工资',-> sum(wages) as '总工资'-> from t_worker;

  6)创建一个只有职工号、姓名和参加工作时间的新表,名为工作日期表。

mysql> create table work_date_table as  -> select worker_id, name,worker_date -> from t_worker;
Query OK, 6 rows affected (0.01 sec)
Records: 6  Duplicates: 0  Warnings: 0

  7)显示所有党员的年龄。

mysql> select name,timestampdiff(year,borth_date,curdate()) as '年龄' from t_worker where politics='党员';

  8)列出工资在4000-8000之间的所有职工姓名。

mysql> select name from t_worker where wages between 4000 and 8000;

  9)列出所有孙姓和李姓的职工姓名。

mysql> select name from t_worker where name like '孙%' or name like '李%';

  10)列出所有部门号为102和103且不是党员的职工号、姓名。

mysql> select worker_id,name from t_worker where department_id in(102,103) and polittics!='党员';

  11)将职工表t_worker中的职工按出生的先后顺序排序。

mysql> select * from t_worker order by borth_date;

  12)显示工资最高的前3名职工的职工号和姓名。

mysql> select worker_id,name from t_worker order by wages desc limit 3;

  13)求出各部门党员的人数。

mysql> select department_id,count(*) as '部门人数' from t_worker where politics='.' group by department_id;

  14)统计各部门的工资和平均工资并保留2位小数。

mysql> select department_id,sum(wages) as '各部门总资',round(avg(wages),2) as '各部门平均工资' from t_worker group by department_id;

  15)列出总人数大于等于3的部门号和总人数。

mysql> select department_id,count(*) as '总人数' from t_worker group by department_iid having count(*) >=3;

http://www.dtcms.com/a/327330.html

相关文章:

  • 盲盒抽谷机小程序系统开发:解锁盲盒新玩法,开启潮玩社交新时代
  • 论答题pk小程序软件版权的
  • DeepSeek-R1与RAGflow本地部署全流程指南:从模型下载到个人知识库构建实战
  • 真实案例 | 如何用iFlyCode开发Webpack插件?
  • string 类运算符重载
  • LeetCode Day5 -- 栈、队列、堆
  • JavaScript 实现模块懒加载的几种方式
  • 如何轻松解除Facebook封锁
  • flinksql bug: Received resultset tuples, but no field str
  • 阿里云国际DDoS高防:添加网站配置指南
  • 腾讯codebuddy.ai 安装实测【从零开始开发在线五子棋游戏:完整开发记录】
  • 机械学习--TF-IDF实战--红楼梦数据处理
  • wordpress数据库导入时的#1044错误
  • Linux中使用计划任务和tar命令实现文件备份
  • 【Unity】Spine重新播放动画时会闪烁上次动画的残影
  • K8S 节点初始化一键脚本(禁用 SELinux + 关闭 swap + 开启 ipvs 亲测实用)
  • SQL 与 NoSQL 的核心区别
  • 部署高可用5节点 k8s 集群(v1.25.0版本)
  • Python中的高阶函数
  • vue+Django农产品推荐与价格预测系统、双推荐+机器学习预测+知识图谱
  • 六、SpringBoot多环境开发
  • 【Unity笔记】视频播放控制器全攻略:支持延迟播放、事件回调与多视频管理的完整实现
  • Linux 系统下 VS Code 降级至 1.85 版本教程:通过历史版本网站解决兼容性问题
  • 二叉树(七)--完全二叉树的节点个数
  • Day13 Vue工程化
  • mysql 简单操作手册
  • 行业分享丨SimSolid 在汽车零部件开发中应用的可行性调研及实践
  • 鸿蒙har包打包与引用,其它主工程entry引用本地har
  • Wireshark专家模式定位网络故障:14种TCP异常深度解剖
  • 西门子S7-200与S7-1200通过PPI以太网模块通讯,赋能汽车制造行业发展