MySQL每日練習(xí)之單表查詢
一、首先需要創(chuàng)建一個名為worker的表:
mysql> create table worker( -> part_id int(11) not null comment '部門號', -> work_id int(11) not null comment '職工號', -> work_time date not null comment '工作時間', -> salary float(8,2) not null comment '工資', -> politics_status varchar(20) not null comment '政治面貌', -> name varchar(20) not null comment '姓名', -> birth_date date not null comment '出生日期', -> primary key(work_id) -> )engine=innodb default charset=utf8 row_format=dynamic; Query OK, 0 rows affected, 4 warnings (0.27 sec)
二、插入數(shù)據(jù):
insert into worker(part_id,work_id,work_time,salary,politics_status,name,birth_date) values(101,1001,'2015-5-4','3500.00','群眾','張三','1990-7-1'); insert into worker(part_id,work_id,work_time,salary,politics_status,name,birth_date) values(101,1002,'2017-2-6','3200.00','團(tuán)員','李四','1997-2-8'); insert into worker(part_id,work_id,work_time,salary,politics_status,name,birth_date) values(102,1003,'2011-1-4','8500.00','黨員','王亮','1983-6-8'); insert into worker(part_id,work_id,work_time,salary,politics_status,name,birth_date) values(102,1004,'2016-10-10','5500.00','群眾','趙六','1994-9-5'); insert into worker(part_id,work_id,work_time,salary,politics_status,name,birth_date) values(102,1005,'2014-4-1','4800.00','黨員','錢七','1992-12-30'); insert into worker(part_id,work_id,work_time,salary,politics_status,name,birth_date) values(102,1006,'2017-5-5','4500.00','黨員','孫八','1996-9-2');
三、查詢
1、顯示所有職工的基本信息。
select * from worker;
2、查詢所有職工所屬部門的部門號,不顯示重復(fù)的部門號。
select distinct part_id from worker;
3、求出所有職工的人數(shù)。
select count(work_id) as '職工人數(shù)' from worker;
4、列出最高工和最低工資。
select min(salary) as '最低工資',max(salary) as '最高工資' from worker;
5、列出職工的平均工資和總工資。
select avg(salary) as '平均工資',sum(salary) as '職工工資總數(shù)' from worker;
6、創(chuàng)建一個只有職工號、姓名和參加工作的新表,名為工作日期表。
create table work_time select work_id,name,work_time from worker;
7、顯示所有女職工的年齡。
因?yàn)橹暗谋碇袥]有職工的性別和年齡,所以這里增加一步給表增加兩個字段:gender、age
mysql> alter table worker add gender char(1); mysql> alter table worker add age int;
然后給表中這兩列輸入一些數(shù)據(jù):男=‘M’,女=‘F’;
mysql> update worker set gender='M'; mysql> update worker set age=21; mysql> update worker set age=18 where part_id=101; mysql> update worker set gender='M' where work_id=1006; mysql> update worker set gender='M' where work_id=1005; mysql> update worker set gender='M' where work_id=1003;
顯示所有女職工的年齡:
mysql> select age from worker where gender='F';
8、列出所有姓劉的職工的職工號、姓名和出生日期。
select work_id,name,birth_date from worker where name like '劉%';
9、列出1960年以前出生的職工的姓名、參加工作日期。
select name,work_time from worker where birth_date < '1960-1-1';
10、列出工資在1000-2000之間的所有職工姓名。
select name from worker where salary>=1000 and salary<=2000;
11、列出所有陳姓和李姓的職工姓名。
select name from worker where name like '陳%' or name like '李%';
12、列出所有部門號為2和3的職工號、姓名、黨員否。
select work_id,name,politics_status from worker where part_id regexp '10[23]' and politics_status!='黨員';
13、將職工表worker中的職工按出生的先后順序排序。
select * from worker order by birth_date;
14、顯示工資最高的前3名職工的職工號和姓名。
select work_id,name,salary from worker order by salary desc limit 3;
15、求出各部門黨員的人數(shù)。
select part_id as '部門',count(politics_status) as '黨員人數(shù)' from worker groupp by part_id;
16、統(tǒng)計(jì)各部門的工資和平均工資
select part_id as '部門',avg(salary) as '平均工資',sum(salary) as '總工資' fromm worker group by part_id;
17、列出總?cè)藬?shù)大于等于4的部門號和總?cè)藬?shù)。
select part_id as '部門',count(work_id) as '人數(shù)' from worker group by part_id having count(work_id)>=4;
表中數(shù)據(jù)參考:
總結(jié)
到此這篇關(guān)于MySQL每日練習(xí)之單表查詢的文章就介紹到這了,更多相關(guān)MySQL單表查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mysql中insert ignore、insert和replace的區(qū)別及說明
這篇文章主要介紹了mysql中insert ignore、insert和replace的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08

mysql5.7.24 解壓版安裝步驟及遇到的問題小結(jié)

mysql關(guān)聯(lián)子查詢的一種優(yōu)化方法分析

iOS開發(fā)runloop運(yùn)行循環(huán)機(jī)制學(xué)習(xí)

MySQL操作數(shù)據(jù)庫和表的常用命令新手教程