MySqlデータベース筆記試験問題まとめ

1322 ワード

1、関係EMP(ENO,ENAME,SALARY,DNO)が設けられており、各属性の意味は従業員番号、氏名、給与と所在部門番号の順であり、関係DEPT(DNO,DNNAME,MANAGER)の順であり、各属性の意味は部門番号、部門名、部門マネージャの従業員番号1.SQL文を試用して、各部門の従業員の平均賃金が600元を下回らないことをリストします.
分析:ここで各部門に要求して、グループグループgroup byを使うことを証明して、どんなグループによって、各部門の名称、だからgroup by dname;
答え:select dname as部門名avg(salay)as平均賃金from emp e,dept d where.dno=d.dno and e.salary>=600 group by dname;
2.SQL文で「販売部」の給与額が600未満の従業員の給与を10%引き上げてください.
分析:まず販売部のすべての人の給料を調べるべきで、条件の給料が600未満の人の給料が10%上昇したと判断して、つまり1.1を乗じて、分析した後、私たちはコードを書き始めました.
最も基本的なのは修正に違いありません.
update EMP set salay=salay*1.1 where salay<600 and ENO in(select ENO from EMP join DEPT on EMP.DNO=DEPT.DNO販売部=DEPT.DNAME);
エラー例:UPDATE EMP SET SALARY=1.1*SALARY WHERE EMP.DNO=DEPT.DNO AND DNNAME=「販売部」AND SALARY<600;このように書くと、DEPTは認識されず、表名はfrom文の中にしかない.
A表にはB表のidがあり、A表の1つのidがB表の複数のidに対応している可能性があり、A表のidに基づいてB表のidに対応するすべての情報(氏名、性別、電話、収入)をどのように検出するか
SELECT g.phone,g.name,g.img,r.status,r.type FROM good g,re_good r WHERE r.id = #id# AND r.type = #type# AND g.o_id = r.o_id