mysql練習題(含答案)

表結(jié)構(gòu)

DROP DATABASE IF EXISTS test1;

CREATE DATABASE test1;

USE test1;

##部門表

#DROP IF EXISTS TABLE DEPT;

CREATE TABLE DEPT(

DEPTNO int PRIMARY KEY,##部門編號

DNAME VARCHAR(14) , ##部門名稱

LOC VARCHAR(13) ##部門地址

) ;

INSERT INTO DEPT VALUES (10,'ACCOUNTING','NEW YORK');

INSERT INTO DEPT VALUES (20,'RESEARCH','DALLAS');

INSERT INTO DEPT VALUES (30,'SALES','CHICAGO');

INSERT INTO DEPT VALUES (40,'OPERATIONS','BOSTON');

##員工表

#DROP IF EXISTS TABLE EMP;

CREATE TABLE EMP(

EMPNO int PRIMARY KEY, #員工編號

ENAME VARCHAR(10), #員工姓名

JOB VARCHAR(9), #員工工作

MGR int, #員工直屬領(lǐng)導編號

HIREDATE DATE, #入職時間

SAL double, #工資

COMM double, #獎金

DEPTNO int #對應dept表的外鍵

);

## 添加 部門 和 員工 之間的主外鍵關(guān)系

ALTER TABLE EMP ADD CONSTRAINT FOREIGN KEY EMP(DEPTNO) REFERENCES DEPT (DEPTNO);

INSERT INTO EMP VALUES(7369,'SMITH','CLERK',7902,"1980-12-17",800,NULL,20);

INSERT INTO EMP VALUES(7499,'ALLEN','SALESMAN',7698,'1981-02-20',1600,300,30);

INSERT INTO EMP VALUES(7521,'WARD','SALESMAN',7698,'1981-02-22',1250,500,30);

INSERT INTO EMP VALUES(7566,'JONES','MANAGER',7839,'1981-04-02',2975,NULL,20);

INSERT INTO EMP VALUES(7654,'MARTIN','SALESMAN',7698,'1981-09-28',1250,1400,30);

INSERT INTO EMP VALUES(7698,'BLAKE','MANAGER',7839,'1981-05-01',2850,NULL,30);

INSERT INTO EMP VALUES(7782,'CLARK','MANAGER',7839,'1981-06-09',2450,NULL,10);

INSERT INTO EMP VALUES(7788,'SCOTT','ANALYST',7566,'1987-07-03',3000,NULL,20);

INSERT INTO EMP VALUES(7839,'KING','PRESIDENT',NULL,'1981-11-17',5000,NULL,10);

INSERT INTO EMP VALUES(7844,'TURNER','SALESMAN',7698,'1981-09-08',1500,0,30);

INSERT INTO EMP VALUES(7876,'ADAMS','CLERK',7788,'1987-07-13',1100,NULL,20);

INSERT INTO EMP VALUES(7900,'JAMES','CLERK',7698,'1981-12-03',950,NULL,30);

INSERT INTO EMP VALUES(7902,'FORD','ANALYST',7566,'1981-12-03',3000,NULL,20);

INSERT INTO EMP VALUES(7934,'MILLER','CLERK',7782,'1981-01-23',1300,NULL,10);

#工資等級表

#DROP IF EXISTS TABLE SALGRADE;

CREATE TABLE SALGRADE(

GRADE int, #等級

LOSAL double, #最低工資

HISAL double ); #最高工資

INSERT INTO SALGRADE VALUES (1,700,1200);

INSERT INTO SALGRADE VALUES (2,1201,1400);

INSERT INTO SALGRADE VALUES (3,1401,2000);

INSERT INTO SALGRADE VALUES (4,2001,3000);

INSERT INTO SALGRADE VALUES (5,3001,9999);

單表查詢題目

1. 查找部門30中員工的詳細信息。

2.找出從事clerk工作的員工的編號、姓名贯要、部門號兵怯。

3. 檢索出獎金多于基本工資的員工信息树枫。

4.檢索出獎金多于基本工資60%的員工信息。

5.找出10部門的經(jīng)理、20部門的職員的員工信息。

6.找出10部門的經(jīng)理贰拿、20部門的職員或者既不是經(jīng)理也不是職員但是工資高于2000元的員工信息。

7.找出獲得獎金的員工的工作熄云。

8.找出獎金少于100或者沒有獲得獎金的員工的信息膨更。

9.找出姓名以A、B缴允、S開始的員工信息荚守。

10.找到名字長度為6個字符的員工信息。

11.名字中不包含R字符的員工信息癌椿。

12.返回員工的詳細信息并按姓名排序健蕊。

13.返回員工的信息并按工作降序工資升序排列。

14.計算員工的日薪(按30天)踢俄。

15. 找出姓名中包含A的員工信息。

多表查詢題目

返回擁有員工的部門名晴及、部門號都办。

2.工資水平多于smith的員工信息。

3.返回員工和所屬經(jīng)理的姓名虑稼。

or

(沒有經(jīng)理是否顯示)

4.返回雇員的雇傭日期早于其經(jīng)理雇傭日期的員工及其經(jīng)理姓名

5. 返回員工姓名及其所在的部門名稱琳钉。

6. 返回從事clerk工作的員工姓名和所在部門名稱。

7. 返回部門號及其本部門的最低工資蛛倦。

8. 返回銷售部(sales)所有員工的姓名歌懒。

9.返回工資水平多于平均工資的員工。

10. 返回與SCOTT從事相同工作的員工溯壶。

如果不包含自己

11.返回與30部門員工工資水平相同的員工姓名與工資及皂。

12.返回工資高于30部門所有員工工資水平的員工信息甫男。

13.返回部門號、部門名验烧、部門所在位置及其每個部門的員工總數(shù)板驳。

14. 返回員工的姓名、所在部門名及其工資碍拆。

15.返回員工的詳細信息若治。(包括部門名)

16.返回員工工作及其從事此工作的最低工資。

17.計算出員工的年薪感混,并且以年薪排序端幼。

18.返回工資處于第四級別的員工的姓名。

19.返回工資為二等級的職員名字弧满、部門所在地婆跑、和二等級的最低工資和最高工資

20.工資等級多于smith的員工信息。

單表查詢答案

#1谱秽、查找部門30中員工的詳細信息洽蛀。

select * from emp where deptno = 30;

#2、找出從事clerk工作的員工的編號疟赊、姓名郊供、部門號。

select empno,ename,deptno from emp where job = 'clerk';

#3近哟、檢索出獎金多于基本工資的員工信息驮审。

select * from emp where comm > sal;

#4、檢索出獎金多于基本工資60%的員工信息吉执。

select * from emp where comm > sal * 0.6;

#5疯淫、找出10部門的經(jīng)理、20部門的職員 的員工信息戳玫。

select * from emp where deptno = 10 and job='MANAGER' or deptno = 20 and job = 'CLERK';

#6熙掺、找出10部門的經(jīng)理、20部門的職員 或者既不是經(jīng)理也不是職員但是工資高于2000元的員工信息咕宿。

select * from emp

where deptno = 10 and job='MANAGER'

or deptno = 20 and job = 'CLERK'

or job!='MANAGER' and job != 'CLERK' and sal > 2000 ;

## job not in ('MANAGER','CLERK')

#7币绩、找出獲得獎金的員工的工作。

select * from emp where comm > 0;

#8府阀、找出獎金少于100或者沒有獲得獎金的員工的信息缆镣。

select * from emp where comm < 100 or comm is null;

#9、找出姓名以A试浙、B董瞻、S開始的員工信息。

select * from emp where ename like 'A%' or ename like 'B%' or ename like 'S%';

#10田巴、找到名字長度為6個字符的員工信息钠糊。

select * from emp where length(ename) = 6;

#select * from emp where ename like '______';

#11挟秤、名字中不包含R字符的員工信息。

select * from emp where ename not like '%R%';

#12眠蚂、返回員工的詳細信息并按姓名排序煞聪。

select * from emp order by ename asc;

#13、返回員工的信息并按工作降序工資升序排列逝慧。

select * from emp order by job desc , sal asc;

#14昔脯、計算員工的日薪(按30天)。

select ename,sal/30 as '日薪' from emp;

select ename,truncate(sal/30,2) '日薪' from emp;

#15笛臣、找出姓名中包含A的員工信息云稚。

select * from emp where ename like '%A%';

多表查詢答案

#1、返回擁有員工的部門名沈堡、部門號静陈。

select distinct d.dname, d.deptno from dept d,emp e where d.deptno = e.deptno;

#2、工資水平多于smith的員工信息诞丽。

select *from emp where sal > (select sal from emp where ename = 'smith');

#3鲸拥、返回員工和所屬經(jīng)理的姓名。

select e.ename,m.ename from emp e

left outer join emp m on e.mgr = m.empno;

select e.ename ,(select m.ename from emp m where m.empno = e.mgr) ename from emp e;

select e.ename , m.ename from emp e , emp m where e.mgr = m.empno;

#4僧免、返回雇員的雇傭日期早于其經(jīng)理雇傭日期的員工及其經(jīng)理姓名刑赶。

select e.ename,m.ename from emp e

inner join emp m on e.mgr = m.empno

where e.hiredate < m.hiredate;

select e.ename,m.ename from emp e,emp m

where e.mgr=m.empno

and e.hiredate < m.hiredate;

#5、返回員工姓名及其所在的部門名稱懂衩。

select e.ename,d.dname from emp e , dept d where e.deptno = d.deptno;

#6撞叨、返回從事clerk工作的員工姓名和所在部門名稱。

select e.ename,d.dname

from emp e , dept d

where e.deptno = d.deptno and e.job = 'CLERK';

#7浊洞、返回部門號及其本部門的最低工資牵敷。

select deptno ,min(sal) sal

from emp

group by deptno

#8、返回銷售部(sales)所有員工的姓名法希。

select e.ename from emp e,dept d

where e.deptno = d.deptno and d.dname = 'sales';

select ename from emp where deptno=(select deptno from dept where dname='sales');

#9枷餐、返回工資水平多于平均工資的員工。

select * from emp e

where e.sal > (select avg(sal) from emp);

#10苫亦、返回與SCOTT從事相同工作的員工尖淘。

select * from emp

where job = (select job from emp where ename = 'scott');

select e1.* from emp e1 , (select empno,job from emp where ename = 'scott') e2

where e1.job = e2.job and e1.empno != e2.empno;

#11、返回與30部門員工工資水平相同的員工姓名與工資著觉。

select ename,sal from emp

where sal in (select sal from emp where deptno = 30);

#12、返回工資高于30部門所有員工工資水平的員工信息惊暴。

select * from emp

where sal > all(select sal from emp where deptno = 30);

select * from emp

where sal > (select max(sal) from emp where deptno = 30);

#13饼丘、返回部門號、部門名辽话、部門所在位置及其每個部門的員工總數(shù)肄鸽。

select dept.deptno,dept.dname,dept.loc,count(emp.deptno) number from dept,emp

where dept.deptno = emp.deptno

group by emp.deptno;

#14卫病、返回員工的姓名、所在部門名及其工資典徘。

select ename,dname,sal from emp ,dept

where emp.deptno = dept.deptno;

#15蟀苛、返回員工的詳細信息。(包括部門名)

select e.* , d.dname from emp e, dept d

where e.deptno = d.deptno;

#16逮诲、返回員工工作及其從事此工作的最低工資帜平。

select job , min(sal) sal from emp

group by job

#17、計算出員工的年薪梅鹦,并且以年薪排序裆甩。

select ename, sal * 12 as ySalary from emp order by ySalary;

#18、返回工資處于第四級別的員工的姓名齐唆。

select ename,sal from emp e ,salgrade s

where e.sal >= s.losal and e.sal <= s.hisal

and s.grade = 4;

select emp.ename,emp.sal from

emp ,(select losal,hisal from salgrade where grade=4) g

where emp.sal between g.losal and g.hisal;

#19嗤栓、返回工資為二等級的職員名字、部門所在地箍邮、和二等級的最低工資和最高工資

select ename ,dname ,sal ,losal,hisal from emp,dept,salgrade

where emp.deptno = dept.deptno and grade = 2

and sal >= losal and sal < hisal;

#20.工資等級多于smith的員工信息茉帅。

select grade from salgrade s ,emp e

where s.losal < e.sal and s.hisal > e.sal and e.ename = 'smith';

select e.* from emp e, salgrade s

where s.hisal < e.sal and s.grade = 1;

select e.* from emp e, salgrade s

where s.hisal < e.sal and s.grade = (select grade from salgrade s ,emp e

where s.losal < e.sal and s.hisal > e.sal and e.ename = 'smith');

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子整以,更是在濱河造成了極大的恐慌重虑,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件全封,死亡現(xiàn)場離奇詭異,居然都是意外死亡桃犬,警方通過查閱死者的電腦和手機刹悴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來攒暇,“玉大人土匀,你說我怎么就攤上這事⌒斡茫” “怎么了就轧?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長田度。 經(jīng)常有香客問我妒御,道長,這世上最難降的妖魔是什么镇饺? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任乎莉,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘惋啃。我一直安慰自己哼鬓,他們只是感情好,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布边灭。 她就那樣靜靜地躺著异希,像睡著了一般。 火紅的嫁衣襯著肌膚如雪绒瘦。 梳的紋絲不亂的頭發(fā)上称簿,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天,我揣著相機與錄音椭坚,去河邊找鬼予跌。 笑死,一個胖子當著我的面吹牛善茎,可吹牛的內(nèi)容都是我干的券册。 我是一名探鬼主播,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼垂涯,長吁一口氣:“原來是場噩夢啊……” “哼烁焙!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起耕赘,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤骄蝇,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后操骡,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體九火,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年册招,在試婚紗的時候發(fā)現(xiàn)自己被綠了岔激。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡是掰,死狀恐怖虑鼎,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情键痛,我是刑警寧澤炫彩,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站絮短,受9級特大地震影響江兢,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜丁频,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一划址、第九天 我趴在偏房一處隱蔽的房頂上張望扔嵌。 院中可真熱鬧,春花似錦夺颤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至署穗,卻和暖如春寥裂,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背案疲。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工封恰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人褐啡。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓诺舔,卻偏偏與公主長得像,于是被迫代替她去往敵國和親备畦。 傳聞我的和親對象是個殘疾皇子低飒,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容