数据库——单表查询

一、建立数据库mydb8_worker

复制代码
mysql> use mydb8_worker;

二、建立表

1.创建表

复制代码
mysql> create table t_worker(department_id int(11) not null comment '部门号',
    -> worder_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 '出生日期');

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-2-6',5200.00,'团员','李名博','1997-2-8');
mysql> insert into t_worker values(102,1003,'2008-1-4',10500.00,'党员','王博涵','1983-
6-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');

三、单表查询

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

复制代码
mysql> select * from t_worker;

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

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

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

复制代码
mysql> select count(worker_id) '职工人数' from t_worker;

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

复制代码
mysql> select max(wages) '最高工资',min(wages) '最低工资' from t_worker;

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

复制代码
mysql> select round(avg(wages),2) '平均工资',sum(wages) '总工资' from t_worker;

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

复制代码
mysql> CREATE TABLE work_date_table (
    ->     employee_id INT PRIMARY KEY,
    ->     name VARCHAR(255),
    ->     start_work_date DATE
    -> );

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

复制代码
mysql>  select name '姓名',year(now())-year(borth_date) '年龄' from t_worker where pol
itics='党员';

(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 department_id "职工号",name "姓名" from t_worker where department_id in (102,
103) and politics != '党员';

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

复制代码
mysql> select * from t_worker order by borth_date asc;

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

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

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

复制代码
mysql> select department_id "部门号",count(worker_id) "党员人数" from t_
worker where politics='党员' group by department_id;

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

复制代码
mysql> select department_id "部门号",sum(wages) '工资',round(avg(wages) ,2) '平均工资' from t_worker group by department_id;

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

复制代码
mysql> select department_id '部门号',count(1) '人数' from t_worker group
 by department_id having count(1)>=3;
相关推荐
怕什么真理无穷2 分钟前
mysql server 9.4 windows安装教程(sqlyog 下载)
数据库
Olrookie8 分钟前
MySQL运维常用SQL
运维·数据库·sql·mysql·dba
数据库生产实战18 分钟前
ORACLE 19C ADG环境 如何快速删除1.8TB的分区表?有哪些注意事项?
数据库·oracle
blackorbird36 分钟前
使用 Overpass Turbo 查找监控摄像头
运维·服务器·数据库·windows
IT永勇39 分钟前
SQLite数据库基本操作
数据库·sqlite·嵌入式开发·增删改查·关系型数据库
洋不写bug42 分钟前
数据库的创建,查看,修改,删除,字符集编码和校验操作
android·数据库·adb
想ai抽1 小时前
吃透大数据算法-算法地图(备用)
大数据·数据库·spark
weixin_307779131 小时前
Clickhouse导出库的表、视图、用户和角色定义的SQL语句
开发语言·数据库·算法·clickhouse·自动化
流星白龙1 小时前
【Qt】7.信号和槽_connect函数用法(1)
开发语言·数据库·qt
码界奇点1 小时前
平替MongoDB金仓多模数据库在电子证照国产化中的实践与优势
数据库·mongodb·社交电子·里氏替代原则