開発環境
- OS: OS X Lion - Apple
- データベース言語: SQL
- リレーショナルデータベース: MySQL
『初めてのSQL』(Alan Beaulieu 著、株式会社クイープ 翻訳、オライリー・ジャパン、2006年、ISBN4-87311-281-8) の4章(フィルタリング), 4.5(練習問題)4-2.を解いてみる。
4-2.
返されるトランザクションIDは、4、9。
トランザクションのテーブルを作成、確認。
入出力結果(Terminal)
$ mysql -u lrngsql -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 13 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> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | bank | | mysql | | performance_schema | | sample_store | | store | | test | +--------------------+ 7 rows in set (0.05 sec) mysql> use bank; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> show tables; +----------------+ | Tables_in_bank | +----------------+ | account | | branch | | business | | customer | | department | | employee | | favorite_food | | individual | | officer | | person | | product | | product_type | | tmp | | transaction | +----------------+ 14 rows in set (0.00 sec) mysql> desc tmp; +-------------+----------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+----------------------+------+-----+---------+----------------+ | txn_id | smallint(5) unsigned | NO | PRI | NULL | auto_increment | | txn_date | date | YES | | NULL | | | account_id | int(11) | YES | | NULL | | | txn_type_cd | enum('CDT','DBT') | YES | | NULL | | | amount | double | YES | | NULL | | +-------------+----------------------+------+-----+---------+----------------+ 5 rows in set (0.05 sec) mysql> select * from tmp -> ; +--------+------------+------------+-------------+--------+ | txn_id | txn_date | account_id | txn_type_cd | amount | +--------+------------+------------+-------------+--------+ | 1 | 2005-02-22 | 101 | CDT | 1000 | | 2 | 2005-02-23 | 102 | CDT | 525.75 | | 3 | 2005-02-24 | 101 | DBT | 100 | | 4 | 2005-02-24 | 103 | CDT | 55 | | 5 | 2005-02-25 | 101 | DBT | 50 | | 6 | 2005-02-25 | 103 | DBT | 25 | | 7 | 2005-02-25 | 102 | CDT | 125.37 | | 8 | 2005-02-26 | 103 | DBT | 10 | | 9 | 2005-02-27 | 101 | CDT | 75 | +--------+------------+------------+-------------+--------+ 9 rows in set (0.01 sec) mysql> select account_id -> from tmp -> where account_id in (101,103) -> and not (txn_type_cd = 'DBT' or amount > 100); +------------+ | account_id | +------------+ | 103 | | 101 | +------------+ 2 rows in set (0.00 sec) mysql> select txn_id from tmp where account_id in (101,103) and not (txn_type_cd = 'DBT' or amount > 100); +--------+ | txn_id | +--------+ | 4 | | 9 | +--------+ 2 rows in set (0.00 sec) mysql> quit; Bye $
0 コメント:
コメントを投稿