Mysql练习

练习1:

代码演示:

sql 复制代码
mysql> create database zye1;
Query OK, 1 row affected (0.00 sec)

mysql> use zye1
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.08 sec)

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.01 sec)

mysql> create table invoices(
    -> number int primary key auto_increment,
    -> order_id int,
    -> in_date date,
    -> total_amount float check (total_amount > 0),
    -> foreign key (orser_id)
    -> references orders(id)
    -> );

题目:

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

sql 复制代码
mysql> select * from t_worker;

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

sql 复制代码
mysql> select distinct department_id  from t_worker;

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

sql 复制代码
mysql> select count(worker_id)
    -> from t_worker;

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

sql 复制代码
mysql> select max(wages)as max,min(wages) as min
    -> from t_worker;

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

sql 复制代码
mysql> select avg(wages)as avg,sum(wages)as sum
    -> from t_worker;

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

sql 复制代码
mysql> create table work_date_table
    -> select worker_id,name,worker_date
    -> from t_worker;

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

sql 复制代码
mysql> select name,timestampdiff(year,birth_date,curdate()) as age
    -> from t_worker
    -> where politics = '党员';

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

sql 复制代码
mysql> select name from t_worker where wages between 4000 and 8000;

11、列出所有陈孙和李姓的职工姓名。

sql 复制代码
mysql> select name
    -> from t_worker
    -> where name like '孙%' or name like '李%';

12、列出所有部门号为102和103的职工号、姓名、党员否。

sql 复制代码
mysql> select worker_id,name
    -> from t_worker
    -> where (department_id = 102 or department_id = 103) and politics != '党员';

13、将职工表worker中的职工按出生的先后顺序排序。

sql 复制代码
mysql> select * from t_worker order by birth_date;

14、显示工资最高的前3名职工的职工号和姓名。

sql 复制代码
mysql> select worker_id,name
    -> from t_worker
    -> order by wages desc
    -> limit 3;

15、求出各部门党员的人数。

sql 复制代码
mysql> select department_id,count(*) as count from t_worker where politics = '党员'
    -> group by department_id;

16、统计各部门的工资和平均工资并保留2位小数

sql 复制代码
mysql> select department_id, sum(wages) as sum,round(avg(wages),2)as avg from t_worker group by department_id;

17、列出总人数大于3的部门号和总人数。

sql 复制代码
mysql> select department_id,count(*) as count
    -> from t_worker
    -> group by department_id
    -> having count >=3;
相关推荐
万岳科技系统开发14 分钟前
食堂采购系统源码库存扣减算法与并发控制实现详解
java·前端·数据库·算法
王码码203515 分钟前
Flutter for OpenHarmony 实战之基础组件:第二十七篇 BottomSheet — 动态底部弹窗与底部栏菜单
android·flutter·harmonyos
2501_9151063216 分钟前
app 上架过程,安装包准备、证书与描述文件管理、安装测试、上传
android·ios·小程序·https·uni-app·iphone·webview
冉冰学姐27 分钟前
SSM智慧社区管理系统jby69(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·管理系统·智慧社区·ssm 框架
vistaup32 分钟前
OKHTTP 默认构建包含 android 4.4 的TLS 1.2 以及设备时间不对兼容
android·okhttp
杨超越luckly34 分钟前
HTML应用指南:利用GET请求获取中国500强企业名单,揭秘企业增长、分化与转型的新常态
前端·数据库·html·可视化·中国500强
常利兵38 分钟前
ButterKnife在Android 35 + Gradle 8.+环境下的适配困境与现代化迁移指南
android
撩得Android一次心动38 分钟前
Android LiveData 全面解析:使用Java构建响应式UI【源码篇】
android·java·android jetpack·livedata
斯普信专业组41 分钟前
构建基于MCP的MySQL智能运维平台:从开源服务端到交互式AI助手
运维·mysql·开源·mcp
Elastic 中国社区官方博客42 分钟前
Elasticsearch:Workflows 介绍 - 9.3
大数据·数据库·人工智能·elasticsearch·ai·全文检索