開発環境
- 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 コメント:
コメントを投稿