MySQL基礎練習

5081 ワード

MySQLベース#1.検索定数SELECT 100;
SELECT last_name FROM employees ;
#4.複数フィールドSELECTlast_nameemailemployee_idFROM employees;
#5.すべてのフィールドSELECT*FROM employeesを検索する.
F 12:整列フォーマットSELECTlast_name,email,job_id#6.クエリ関数(呼び出し関数、戻り値取得)SELECT DATABASE()SELECT VERSION(); SELECT USER();
#7.別名#方式1:asキーワードの使用
SELECT USER()ASユーザー名;
SELECT last_name AS‘名前’FROM employees;
#方式2:スペース
#八,–需要:first_のクエリーnameとlast_nameのフルネームは、最終的には別名:名前
SELECT CONCAT(first_name,last_name)AS‘氏名’FROM employees;
SELECT first_name,last_name FROM employees;
#9.distinctの使用デマンド:従業員が関連する部門番号を問い合わせる
SELECT DISTINCT department_id FROM employees;
#10.テーブルの構造を表示するDESC employees;SHOW COLUMNS FROM employees;
#ステップ2:条件クエリー/*構文:selectクエリーリストfrmoテーブル名whereフィルタ条件
実行順序:
  • from句2.where句3.select句
  • select last_name,first_name from emp where salary > 20000;
    */
    #1.関係式によるフィルタリング#ケース1、照会部門番号が100でない従業員情報SELECT*FROM employees WHERE department_id <> 100;
    #ケース2:給与<15000の氏名を調べ、給与SELECT CONCAT(last_name,first_name)AS‘氏名’FROM employees WHERE salary<15000;
    2.論理式によるフィルタ
    #ケース1:部署番号が50-100ではない従業員の名前、部署番号、メールボックス#方式1:SELECT last_name,department_id,email FROM employees WHERE department_id<50 OR department_id>100;
    #方式2:SELECT last_name,department_id,email FROM employees WHERE NOT(department_id>=50 AND department_id<=100);
    #ケース2:ボーナス率照会>0.03または従業員番号60-110の従業員情報SELECT*FROM employees WHERE commission_pct>0.03 OR (employee_id>=60 AND employee_id<=110);
    #1.like
    #ケース1:最後の文字がeである従業員の名前を問い合わせるSELECT*FROM employees WHERE last_name LIKE ‘%a%’;
    #ケース2:名前に最初の文字がeの従業員を含む情報を検索SELECT*FROM employees WHERE last_name LIKE ‘e%’;
    #ケース3:名前に3文字目のeを含む従業員の情報を問い合わせるSELECT*FROM employees WHERE last_name LIKE ‘___x%’;
    #ケース4:クエリー名に2番目の文字が_従業員情報SELECT*FROM employees WHERE last_name LIKE ‘__%’;
    SELECT * FROM employees WHERE last_name LIKE ‘#%’ ESCAPE ‘#’;
    #2.in/*機能:あるフィールドの値が指定したリスト内のa in(定数1、定数2.定数3...)a not in(定数1、定数2.定数3...)
    in/not in
    */
    #ケース1:照会部門番号が30/50/90の従業員名と部門番号SELECT last_name,department_id FROM employees WHERE department_id IN(30,50,90);
    #ケース2:照会職種番号がSHでないCLERKまたはIT_PROGの社員情報SELECT*FROM employees WHERE(job_id!=‘SH_CLERK’)AND(job_id!=‘IT_PROG’);
    SELECT * FROM employees WHERE job_id NOT IN(‘SH_CLERK’,‘IT_PROG’);
    #3.between and/*機能:あるフィールドの値がxxの間にあるかどうかを判断するbetween and/not between and
    */
    #ケース1:照会部門番号は30-90間の部門番号、従業員名SELECT department_id,last_name FROM employees WHERE department_id>=30 AND department_id<=90;
    SELECT department_id,last_name FROM employees WHERE department_id BETWEEN 30 AND 90;
    #ケース2:年俸が100000-20000万でない直接従業員の名前、給料、年俸SELECT lastを調べるname,salary,salary 12(IFNULL(commission_pct,0)+1)年俸FROM employees WHERE salary 12(IFNULL(commission_pct,0)+1)NOT BETWEEN 100000 AND 200000;
    SELECT last_name,salary,salary 12(IFNULL(commission_pct,0)+1)AS年俸FROM employees WHERE salary 12(IFNULL(commission_pct,0)+1)<100000 OR salary 12(IFNULL(commission_pct,0)+1)>200000;
    #4. is null/is not null
    #ケース1:ボーナスのない従業員情報の照会SELECT*FROM employees WHERE commission_pct IS NULL;
    #ケース1:ボーナスのある従業員情報の照会SELECT*FROM employees WHERE commission_pct IS NOT NULL;
    #1.給与が12000以上の従業員の名前と給与を調べるSELECT last_name,salary FROM employees WHERE salary > 12000;
    #2.従業員番号176の従業員の名前と部門番号と年俸を調べるSELECT last_name,department_id,salary 12(IFNULL(commission_pct,0)+1)年俸FROM employees WHERE employee_id = 176;
    #3.給料が5000~12000でない従業員の名前と給料を選択するSELECT last_name,salary FROM employees WHERE salary NOT BETWEEN 5000 AND 12000;
    #方式2:SELECT last_name,salary FROM employees WHERE NOT(salary>=5000 AND salary<=12000);
    #方式3:SELECT last_name,salary FROM employees WHERE salary<5000 OR salary>12000;
    #4.20または50番部署に勤務する従業員の名前と部署番号を選択SELECT last_name,department_id FROM employees WHERE department_id=20 OR department_id=50;
    #方式二SELECT last_name,department_id FROM employees WHERE department_id IN(20,50);
    #5.会社に管理者がいない従業員の名前とjobを選択id SELECT last_name,job_id FROM employees WHERE manager_id IS NULL;
    #6.会社にボーナスがある従業員の名前、給与およびボーナスレベルを選択SELECT last_name,salary,commission_pct FROM employees WHERE commission_pct IS NOT NULL;
    #7.社員名の3文字目はaの社員名を選択SELECT last_name FROM employees WHERE last_name LIKE ‘__a%’;
    #8.名前にアルファベットaとeが入っている従業員の名前を選択SELECT last_name FROM employees WHERE last_name LIKE ‘%a%’ AND last_name LIKE ‘%e%’;
    #9.表employees表のfirst_を表示するname'eで終わる従業員情報SELECT*FROM employees WHERE first_name LIKE ‘%e’;
    #10.表employees部門番号80-100の氏名職階SELECT last_を表示するname,job_id FROM employees WHERE department_id BETWEEN 80 AND 100;
    #方式2:SELECT last_name,job_id FROM employees WHERE department_id>=80 AND department_id<=100;
    #11.表employeesを表示するmanager_idは100101110の社員名、ポジションSELECT last_name,job_id FROM employees WHERE manager_id IN(100,101,110);
    SELECT last_name,job_id FROM employees WHERE manager_id=100 OR manager_id=101 OR manager_id=110;