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;
相关推荐
吴Wu涛涛涛涛涛Tao42 分钟前
Flutter 实现类似抖音/TikTok 的竖向滑动短视频播放器
android·flutter·ios
bytebeats1 小时前
Jetpack Compose 1.8 新增了 12 个新特性
android·android jetpack
limingade1 小时前
手机实时提取SIM卡打电话的信令声音-整体解决方案规划
android·智能手机·usb蓝牙·手机拦截电话通话声音
范纹杉想快点毕业1 小时前
嵌入式 C 语言编程规范个人学习笔记,参考华为《C 语言编程规范》
linux·服务器·数据库·笔记·单片机·嵌入式硬件·fpga开发
Harry技术1 小时前
Trae搭建Android开发:项目中Ktor的引入与使用实践
android·kotlin·trae
诺亚凹凸曼1 小时前
MySQLinnodb引擎普通索引和唯一索引的区别
数据库·mysql
猪哥帅过吴彦祖1 小时前
Flutter 插件工作原理深度解析:从 Dart 到 Native 的完整调用链路
android·flutter·ios
AI工具测评与分析2 小时前
EhViewer安卓ios全版本类下载安装工具的完整路径解析
android·ios
davawang2 小时前
程序自动化vs人工手动处理
数据库·数据分析·企业文化
xnglan2 小时前
蓝桥杯手算题和杂题简易做法
数据结构·数据库·c++·python·算法·职场和发展·蓝桥杯