開発環境
- OS: OS X Lion - Apple
- データベース言語: SQL
- リレーショナルデータベース: MySQL
『初めてのSQL』(Alan Beaulieu 著、株式会社クイープ 翻訳、オライリー・ジャパン、2006年、ISBN4-87311-281-8) の11章(条件ロジック), 11.4(練習問題)11-1を解いてみる。
11-1.
入出力結果(Terminal)
$ mysql -u lrngsql -p bank Enter password: Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.5.18 MySQL Community Server (GPL) Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> desc employee; +--------------------+----------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------------+----------------------+------+-----+---------+----------------+ | emp_id | smallint(5) unsigned | NO | PRI | NULL | auto_increment | | fname | varchar(20) | NO | | NULL | | | lname | varchar(20) | NO | | NULL | | | start_date | date | NO | | NULL | | | end_date | date | YES | | NULL | | | superior_emp_id | smallint(5) unsigned | YES | MUL | NULL | | | dept_id | smallint(5) unsigned | YES | MUL | NULL | | | title | varchar(20) | YES | | NULL | | | assigned_branch_id | smallint(5) unsigned | YES | MUL | NULL | | +--------------------+----------------------+------+-----+---------+----------------+ 9 rows in set (0.00 sec) mysql> select title from employee -> ; +--------------------+ | title | +--------------------+ | President | | Vice President | | Treasurer | | Operations Manager | | Loan Manager | | Head Teller | | Teller | | Teller | | Teller | | Head Teller | | Teller | | Teller | | Head Teller | | Teller | | Teller | | Head Teller | | Teller | | Teller | +--------------------+ 18 rows in set (0.00 sec) mysql> select emp_id, -> case -> when title like '%President' or -> title = 'Treasurer' or -> title = 'Loan Manager' then 'Management' -> when title = 'Operations Manager' or -> title like '%Teller' then 'Operations' -> else 'Unknown' -> end title -> from employee; +--------+------------+ | emp_id | title | +--------+------------+ | 1 | Management | | 2 | Management | | 3 | Management | | 4 | Operations | | 5 | Management | | 6 | Operations | | 7 | Operations | | 8 | Operations | | 9 | Operations | | 10 | Operations | | 11 | Operations | | 12 | Operations | | 13 | Operations | | 14 | Operations | | 15 | Operations | | 16 | Operations | | 17 | Operations | | 18 | Operations | +--------+------------+ 18 rows in set (0.00 sec) mysql> select emp_id, -> case title -> when 'President' then 'Management' -> when 'Vice President' then 'Management' -> when 'Treasurer' then 'Management' -> when 'Loan Manager' then 'Management' -> when 'Operations Manager' then 'Operations' -> when 'Head Teller' then 'Operations' -> when 'Teller' then 'Operations' -> else 'Unknown' -> end title from employee; +--------+------------+ | emp_id | title | +--------+------------+ | 1 | Management | | 2 | Management | | 3 | Management | | 4 | Operations | | 5 | Management | | 6 | Operations | | 7 | Operations | | 8 | Operations | | 9 | Operations | | 10 | Operations | | 11 | Operations | | 12 | Operations | | 13 | Operations | | 14 | Operations | | 15 | Operations | | 16 | Operations | | 17 | Operations | | 18 | Operations | +--------+------------+ 18 rows in set (0.00 sec) mysql> quit; Bye $
0 コメント:
コメントを投稿