mysqlのクエリの従業員情報の演習

01.は、各従業員番号、名前、役職を照会します。
EMPNO、ENAME、EMPからジョブを選択します 。

DISTINCT排除を使用して、すべての記事アウト02.チェックは、ディスプレイオフの行を複製します。
EMPからDISTINCTのジョブを選択。

03.各従業員番号、名前、基本給について計算。給与=(給与+ボーナスCOMM)* 12、(IFNULL関数を使用すると、NULLを決定する)
SELECT EMPNO AS 'いいえ'、 '名前'としてENAME、(SAL + IFNULL(COMM 、0))* 12 AS ' EMPからの基本的な給与' ;

04.各従業員の食事月同社は200元、300元のトラフィックの補助金、給与計算に助成金を支給します。
'いいえ' '名前'として、ENAME、(SAL + IFNULL(COMMとしてEMPNOを選択し 、0)+ 300 + 200)×12 AS ' EMPからの基本的な給与'。

2000年よりも高い05.すべての従業員情報のクエリー基本給。
EMP eから*を選択する場所e.SAL> 2000;

情報アウト06.スミスのチェック。
EMP Eから選択*どこe.ENAME = 'SMITH';

詳細については07.すべてではない店員にチェックしてください。
!選択* EMPから電子e.JOB = 'CLERK';

すべての販売スタッフ(SALESMAN)アウト08.基本情報の確認、および販売スタッフの賃金要件1300よりも高いです。
EMP E e.JOB = SELECT * FROM 'SALESMAN' AND e.sal> 1300;

(1500と3000を含む)3000から1500の間のすべての従業員情報の給与範囲外09.チェック。
EMP Eから選択*どこe.sal> = 1500とe.sal <= 3000;

10.すべての情報管理や営業担当者は、チェックアウトして、これらの人々の基本的な給与を要求するには、1500以上です。
EMP E e.job> SELECT * FROM = 'セールスマン'またはe.job = '管理者'とe.sal> 1500;

11.要求は、1981年に雇われたすべての情報の従業員をチェックしてください。
E * e.HIREDATE BETWEEN SELECT(「1981年1月1日」)と(「1981年12月31日」)EMPから、
全従業員約12でクエリ情報は、(COMMが空ではない)のボーナスを受け取ります。
EMP Eから選択*どこe.comm = ''!。

13.すべてのお問い合わせは100従業員情報よりもボーナスを受け取ります。
e.comm>のemp eから選択* 100。

14.従業員情報7369,7566,9999の従業員番号を照会します。
EMP Eから選択*場所= e.EMPNO 7369またはe.EMPNO = 7566またはe.EMPNO = 9999;

A.で始まるすべての従業員情報に基づいて、すべての従業員の名前うち15チェック
以下のようなEMP E e.enameから選択* '%';

16.クエリのすべての従業員情報の従業員の名前第二の手紙M。
EMP EここでSUBSTR(SELECT * FROM e.ename、2,1)= 'M'。

すべての従業員情報うち17のチェックは、従業員の名前のどこかに文字Aが含まれています。
EMP Eから選択*どこe.ENAMEのような '%A%';

全従業員のための情報アウト18.チェックは、賃金の要求によってソート。
e.salによるEMP Eの順から選択* ASC;

全従業員のための情報へのアクセスのための19の要求は、雇用の日に合わせての並べ替えを持っています。
e.HIREDATEのによるEMP電子順から選択* ASC;

賃金が同じであれば、20クエリのすべての従業員情報は、ソート降順賃金に基づき、雇用日付に従ってソートの持っています。
SAL DESC BYのemp ORDER SELECT * FROM 、HIREDATE ASC;

21.すべての従業員30名でセクターの問い合わせ。
EMPからSELECT *ここDEPTNO = 30 。

すべてのアウト22.チェック店員(CLERK)の名前、番号、部署番号。
SELECT EMPNO、ENAME、DEPTNO EMPからどこジョブ= '店員';

ボーナスアウト23.チェックは、従業員の給料よりも高くなっています。
EMP電子どこe.comm>からSELECT * e.SAL

従業員の賞与の給与より24チェックアウト60%高いです。
EMP eからSELECT *どこe.comm>  0.6 * e.SAL

すべての店員(CLERK)を25 20チェックは、すべての管理者(マネージャ)10部門とセクタを詳述します。ユナイテッド・テーブル・クエリ
(EMP E e.jobからSELECT * = '管理者'とe.DEPTNO = 10)UNION ALL(EMP bのb.job = '店員'とb.DEPTNO = 20 SELECT * FROM)

26. 20全10人のマネージャー、部門、マネージャーや店員どちらのすべての事務部門アウトチェックではなく、彼らの給与に等しいかより大きい2000
のすべての従業員の情報。
(E EMP SELECT * FROM WHERE e.job!= 'マネージャ'と10とe.SAL e.DEPTNO => = 2000とe.job!= '店員')すべての組合
SELECTから(EMP B * WHERE B.JOB != '店員'とb.job! =「manager'and b.DEPTNO = 20とb.sal> = 2000)

27.コレクトボーナスは、従業員の仕事をチェックしてください。
e.COMM!のemp eからジョブを選択  = ''

ボーナスアウト28.チェックが充電または100人の未満の従業員のボーナスを収集することはありません。
e.COMMがあるのemp eから選択*  nullまたはe.comm <100

29.従業員の「R」せずに名前を照会します。直接のお問い合わせ。
どこのemp eからEMPNO、ENAMEを選択 e.enameない'%R%に'のような

30.は、名前のリーダーシップを各従業員のジョブの名前をチェックしてください。

EMP、EMP B a.mgr = Bから '優れた名' としてSELECT a.EMPNO AS 'はスタッフがいない'、a.ENAME AS '従業員名'、a.JOB ASのオフィスの従業員、b.ename。 EMPNO

すべてのスタッフの数、名称およびその直接の上司番号、名称アウト31チェックは、結果が賃金にリーダーシップの順に表示しました。
SELECT a.EMPNO AS 'スタッフなし'、a.ENAME AS '従業員名'、A.MGR、a.JOB AS 'スタッフの業務'、優れた名」としてb.ename、b.EMPNOはとして優れたジョブ番号'としてb.job位が高く' A EMP、EMP a.mgr B = b.EMPNO FROM
ORDER BY(+ B.SAL IFNULL(B.COMM、0))* 12がDESCであります

32.従業員名(販売)の営業部門で働いて、基本給、入社日、部門名を照会します。(販売数を知りません)。
a.EMPNOを選択し、a.sal、a.HIREDATE、b.dname EMPから、(SELECT DEPTNO、DEPT DNAME = '販売' FROM DNAME)B a.DEPTNO = b.DEPTNO ORDER BY a.SALのASC

33.は、部門名と給与をすべての従業員の名前をチェックしてください。
a.EMPNO、b.dname、EMPからa.sal選択 a.DEPTNOがb.DEPTNO ORDER BY a.SALのASCを=(SELECT DEPTNO、DNAME DEPT FROM)Bを

最低から最高の年俸に応じて、すべての従業員の年間給与うち34のチェック、部署名、。
a.EMPNO、b.dname、選択(a.sal + IFNULL(a.commを、0))* 12 'NIANXIN' EMP Aから、(SELECT DEPTNO、DEPT FROM DNAME)などのBここa.DEPTNO = b.DEPTNO ORDER BY NIANXINのASC

監督者と従業員とは、これらの幹部は、3,000人以上を支払っている尋ねる部門の名前うち35チェック。

SELECT C。*、などD.DNAME '組織内のより高いレベル。'(SELECT a.ENAME、A.MGR、FROM B.DEPTNO、 'のようb.ename 従業員の名前の上司'、b.EMPNO '優れたジョブ番号'などEMP EMP B = b.EMPNOとb.SAL> a.EMPNO = 3000と'7566')C a.mgr、FROM 
左側にc.DEPTNO JOIN部門D = d.DEPTNO

同社の最高と最低賃金アウト36チェック。
MIN SELECT(SAL)、EMPからMAX(SAL);
SELECT(SELECT SAL SAL BY EMPから順LIMIT 1)、(EMP FROM SELECT SAL ORDER BY SAL DESC LIMIT 1)。

37.は、各部門での平均賃金、唯一の部門番号を人の数をチェックしてください。
SELECT COUNT(a.empno)、平均( SAL)、d.DEPTNO EMPから、(DEPTからDEPTNOを選択)D a.DEPTNO = d.deptno GROUP BY d.deptno

38.各ジョブのための最高と最低賃金をチェックしてください。
MAX(SAL)を選択し、MIN( SAL)、仕事BYのemp GROUPからの仕事

39. 2000年の仕事よりも問い合わせの平均賃金が高い、と従業員の数は、この位置での平均賃金に従事しました。
(SELECT COUNT(EMPNO SELECT * FROM )、AVG(ジョブでEMPグループからSAL)B、ジョブC)D DB> 2000

40.クエリの従業員番号は、リーダーシップの各従業員の名前、タイトル、名前のその主要な数よりも大きいです。
EMP aから'リーダー名'、EMP Bのように'noスタッフ'、 '従業員名'などa.ENAME、 'ポスト'などa.job、b.ENAMEとしてa.empnoを選択 a.mgr = b.EMPNO そしてa.EMPNO> a.MGR

少なくとも、すべての部門、名前の従業員の数、およびこれらの分野における平均賃金の統計、最低賃金、最大賃金アウト41チェック。
SELECT
    e.`部門番号`、e.`部門NAME`、e.`平均賃金`、e.`最小wage`、e.`最高賃金`
FROM
    (
        SELECT
            COUNT(a.empno)AS '部門の番号'
            d.DEPTNO AS '部門番号'、
            d.DNAME AS '部署名'、
            AVG(SAL)などの'平均賃金'、
            '最大給与'、AS MAX(SAL)
            分(SAL)AS '最低賃金'
        FROM
            EMP A 、
            (SELECT DEPTNO、DNAME部署FROM)D
        WHERE
            a.DEPTNO = d.deptno
        GROUP BY
            d.deptno
    )E     番号e.`セクタ「> 0、42 / *クエリこれらの分野で、部門や従業員情報の名称(数、平均賃金)、部門の従業員でない人がリストされています。* /


    

43.すべての従業員情報よりもスミスの賃金が高い照会。
選択* EMPから (EMPのB b.ENAME = 'SMITH'から選択SAL)C a.SAL> c.sal

44.給与と位置と同じスミスすべての従業員情報を照会します。  
選択* EMPから (選択SAL、EMPのB b.ENAME = 'SMITH'からジョブ)C a.SAL = c.salとa.job = c.job

45.クエリセクター別の回答数、部門名詞、部署アドレス、従業員の平均賃金の数。
カウント(a.empno)を選択し、AVG( SAL)、D * EMPから、(DEPT SELECT * FROM)D a.DEPTNO = d.deptno GROUP BY d.deptno

二つのテーブル構造は以下のように:

DROP TABLE IFは`emp`をEXISTS。
CREATE TABLEの`emp`(
  ` EMPNO`のBIGINT(20)NOT NULL AUTO_INCREMENT、
  `ENAME`のVARCHAR(20)DEFAULTのNULL、
  ` job`ののVARCHAR(20)DEFAULTのNULL、
  `MGR`のBIGINT(20)DEFAULTのNULL、
  ` HIREDATE`日付のデフォルトNULL、
  `SAL`二重(7,2)は、デフォルトのNULL、
  ` COMM`ダブル(7,2)は、デフォルトのNULL、
  `DEPTNO` BIGINT(2)デフォルトNULL、
  PRIMARY KEY(` EMPNO`)
)ENGINE = InnoDBのAUTO_INCREMENT = 7935 DEFAULT CHARSET = utf8の;

 

IF dept`表は`DROPをEXISTS;
CREATE TABLEのdept``(
  ` DEPTNO` BIGINT(20)とAUTO_INCREMENT NOT NULL、
  `DNAME` VARCHAR(20である)は、デフォルトのNULL、
  ` LOC` VARCHAR(20である)は、デフォルトのNULL、
  PRIMARY KEY( `DEPTNO `)
)ENGINE = InnoDBのAUTO_INCREMENT = 41 DEFAULT CHARSET =
utf8を; ----------------
免責事項:この記事はCSDNブロガーのお気に入りLANG新"オリジナル記事です、CCに従ってください4.0 BY-SAの著作権契約、元のソースのリンクと、この文を添付してください、再現。
オリジナルリンクします。https://blog.csdn.net/LUONIANXIN08/article/details/93636769

おすすめ

転載: www.cnblogs.com/xysun/p/12124930.html