SQL入门经典—CHAPTER7数据库查询

--7.2.1 SELECT语句
--语法
SELECT [ * | ALL | DISTINCT COLUMN1, COLUMN2 ]
FROM TABLE1 [ , TABLE2 ];

--*
mysql> SELECT * FROM PRODUCTS_TBL;
+---------+-------------------------+-------+
| PROD_ID | PROD_DESC               | COST  |
+---------+-------------------------+-------+
|       9 | CANDY CORN              | 1.35  |
|      13 | FALSE PARAFFIN TEETH    | 1.1   |
|      15 | ASSORTED COSTUMES       | 10    |
|      90 | LIGHTED LANTERNS        | 14.5  |
|     222 | PLASTIC PUMPKIN 18 INCH | 7.75  |
|     301 | FIREMAN COSTUME         | 29.99 |
|     302 | POLICEMAN COSTUME       | 29.99 |
|     303 | KIDDIE GRAB BAG         | 4.99  |
|     777 | CANDY CORN              | 2.15  |
|    7725 | LEATHER GLOVES          | 24.99 |
|   11235 | WITCH COSTUME           | 29.99 |
+---------+-------------------------+-------+
11 rows in set

--单列
mysql> SELECT PROD_DESC FROM PRODUCTS_TBL;
+-------------------------+
| PROD_DESC               |
+-------------------------+
| CANDY CORN              |
| FALSE PARAFFIN TEETH    |
| ASSORTED COSTUMES       |
| LIGHTED LANTERNS        |
| PLASTIC PUMPKIN 18 INCH |
| FIREMAN COSTUME         |
| POLICEMAN COSTUME       |
| KIDDIE GRAB BAG         |
| CANDY CORN              |
| LEATHER GLOVES          |
| WITCH COSTUME           |
+-------------------------+
11 rows in set

--ALL是多余的,默认为ALL,可不加
mysql> SELECT ALL PROD_DESC FROM PRODUCTS_TBL;
+-------------------------+
| PROD_DESC               |
+-------------------------+
| CANDY CORN              |
| FALSE PARAFFIN TEETH    |
| ASSORTED COSTUMES       |
| LIGHTED LANTERNS        |
| PLASTIC PUMPKIN 18 INCH |
| FIREMAN COSTUME         |
| POLICEMAN COSTUME       |
| KIDDIE GRAB BAG         |
| CANDY CORN              |
| LEATHER GLOVES          |
| WITCH COSTUME           |
+-------------------------+
11 rows in set

--DISTINCT去除重复记录
mysql> SELECT DISTINCT PROD_DESC FROM PRODUCTS_TBL;
+-------------------------+
| PROD_DESC               |
+-------------------------+
| CANDY CORN              |
| FALSE PARAFFIN TEETH    |
| ASSORTED COSTUMES       |
| LIGHTED LANTERNS        |
| PLASTIC PUMPKIN 18 INCH |
| FIREMAN COSTUME         |
| POLICEMAN COSTUME       |
| KIDDIE GRAB BAG         |
| LEATHER GLOVES          |
| WITCH COSTUME           |
+-------------------------+
10 rows in set

--DISTINCT(COLUMN) 一般加圆括号增加可读性
mysql> SELECT DISTINCT (PROD_DESC) FROM PRODUCTS_TBL;
+-------------------------+
| PROD_DESC               |
+-------------------------+
| CANDY CORN              |
| FALSE PARAFFIN TEETH    |
| ASSORTED COSTUMES       |
| LIGHTED LANTERNS        |
| PLASTIC PUMPKIN 18 INCH |
| FIREMAN COSTUME         |
| POLICEMAN COSTUME       |
| KIDDIE GRAB BAG         |
| LEATHER GLOVES          |
| WITCH COSTUME           |
+-------------------------+
10 rows in set

--7.2.2 FROM 子句
--语法
SELECT TABLE1 [ , TABLE2]

mysql> SELECT * FROM EMPLOYEE_TBL;
+----------+----------------+--------------+-------------+--------+---------+-----------+-----------+
| EMP_ID   | EMP_NAME       | EMP_ST_ADDR  | EMP_CITY    | EMP_ST | EMP_ZIP | EMP_PHONE | EMP_PAGER |
+----------+----------------+--------------+-------------+--------+---------+-----------+-----------+
| 12345678 | SMITH JAY JOHN | 12 BEACON CT | INDIANAPLIS | IN     |   46222 | 317299686 | NULL      |
+----------+----------------+--------------+-------------+--------+---------+-----------+-----------+
1 row in set

mysql> SELECT * FROM EMPLOYEE_TBL, PRODUCTS_TBL;
+----------+----------------+--------------+-------------+--------+---------+-----------+-----------+---------+-------------------------+-------+
| EMP_ID   | EMP_NAME       | EMP_ST_ADDR  | EMP_CITY    | EMP_ST | EMP_ZIP | EMP_PHONE | EMP_PAGER | PROD_ID | PROD_DESC               | COST  |
+----------+----------------+--------------+-------------+--------+---------+-----------+-----------+---------+-------------------------+-------+
| 12345678 | SMITH JAY JOHN | 12 BEACON CT | INDIANAPLIS | IN     |   46222 | 317299686 | NULL      |       9 | CANDY CORN              | 1.35  |
| 12345678 | SMITH JAY JOHN | 12 BEACON CT | INDIANAPLIS | IN     |   46222 | 317299686 | NULL      |      13 | FALSE PARAFFIN TEETH    | 1.1   |
| 12345678 | SMITH JAY JOHN | 12 BEACON CT | INDIANAPLIS | IN     |   46222 | 317299686 | NULL      |      15 | ASSORTED COSTUMES       | 10    |
| 12345678 | SMITH JAY JOHN | 12 BEACON CT | INDIANAPLIS | IN     |   46222 | 317299686 | NULL      |      90 | LIGHTED LANTERNS        | 14.5  |
| 12345678 | SMITH JAY JOHN | 12 BEACON CT | INDIANAPLIS | IN     |   46222 | 317299686 | NULL      |     222 | PLASTIC PUMPKIN 18 INCH | 7.75  |
| 12345678 | SMITH JAY JOHN | 12 BEACON CT | INDIANAPLIS | IN     |   46222 | 317299686 | NULL      |     301 | FIREMAN COSTUME         | 29.99 |
| 12345678 | SMITH JAY JOHN | 12 BEACON CT | INDIANAPLIS | IN     |   46222 | 317299686 | NULL      |     302 | POLICEMAN COSTUME       | 29.99 |
| 12345678 | SMITH JAY JOHN | 12 BEACON CT | INDIANAPLIS | IN     |   46222 | 317299686 | NULL      |     303 | KIDDIE GRAB BAG         | 4.99  |
| 12345678 | SMITH JAY JOHN | 12 BEACON CT | INDIANAPLIS | IN     |   46222 | 317299686 | NULL      |     777 | CANDY CORN              | 2.15  |
| 12345678 | SMITH JAY JOHN | 12 BEACON CT | INDIANAPLIS | IN     |   46222 | 317299686 | NULL      |    7725 | LEATHER GLOVES          | 24.99 |
| 12345678 | SMITH JAY JOHN | 12 BEACON CT | INDIANAPLIS | IN     |   46222 | 317299686 | NULL      |   11235 | WITCH COSTUME           | 29.99 |
+----------+----------------+--------------+-------------+--------+---------+-----------+-----------+---------+-------------------------+-------+
11 rows in set

--7.2.3 WHERE 子句
--语法
SELECT [ ALL | * | DISTINCT COLUMN1, COLUMN2 ] 
FROM TABLE1 [ , TABLE2 ]
WHERE [ CONDITION1 | EXPRESSION1 ]
[ AND|OR CONDITION2 | EXPRESSION2 ]

--7.2.4 ORDER BY 子句
--语法:默认升序
SELECT [ ALL | * | DISTINCT COLUMN1,COLUMN2 ]
FROM TABLE1 [ , TABLE2 ]
WHERE [ CONDITION1 | EXPRESSION1 ]
[ AND|OR CONDITION2 | EXPRESSION2]
ORDER BY COLUMN1| INTEGER [ ASC| DESC ]

--ORDER BY后1、2、3代表PROD_DESC、PROD_ID、COST列
mysql> SELECT * FROM PRODUCTS_TBL;
+---------+-------------------------+-------+
| PROD_ID | PROD_DESC               | COST  |
+---------+-------------------------+-------+
|       9 | CANDY CORN              | 1.35  |
|      13 | FALSE PARAFFIN TEETH    | 1.1   |
|      15 | ASSORTED COSTUMES       | 10    |
|      90 | LIGHTED LANTERNS        | 14.5  |
|     222 | PLASTIC PUMPKIN 18 INCH | 7.75  |
|     301 | FIREMAN COSTUME         | 29.99 |
|     302 | POLICEMAN COSTUME       | 29.99 |
|     303 | KIDDIE GRAB BAG         | 4.99  |
|     777 | CANDY CORN              | 2.15  |
|    7725 | LEATHER GLOVES          | 24.99 |
|   11235 | WITCH COSTUME           | 29.99 |
+---------+-------------------------+-------+
11 rows in set

mysql> SELECT PROD_DESC, PROD_ID, COST
FROM PRODUCTS_TBL
WHERE COST < 20
ORDER BY 1;
+-------------------------+---------+------+
| PROD_DESC               | PROD_ID | COST |
+-------------------------+---------+------+
| ASSORTED COSTUMES       |      15 | 10   |
| CANDY CORN              |       9 | 1.35 |
| CANDY CORN              |     777 | 2.15 |
| FALSE PARAFFIN TEETH    |      13 | 1.1  |
| KIDDIE GRAB BAG         |     303 | 4.99 |
| LIGHTED LANTERNS        |      90 | 14.5 |
| PLASTIC PUMPKIN 18 INCH |     222 | 7.75 |
+-------------------------+---------+------+
7 rows in set

mysql> SELECT PROD_DESC, PROD_ID, COST
FROM PRODUCTS_TBL
WHERE COST < 20
ORDER BY 2;
+-------------------------+---------+------+
| PROD_DESC               | PROD_ID | COST |
+-------------------------+---------+------+
| CANDY CORN              |       9 | 1.35 |
| FALSE PARAFFIN TEETH    |      13 | 1.1  |
| ASSORTED COSTUMES       |      15 | 10   |
| LIGHTED LANTERNS        |      90 | 14.5 |
| PLASTIC PUMPKIN 18 INCH |     222 | 7.75 |
| KIDDIE GRAB BAG         |     303 | 4.99 |
| CANDY CORN              |     777 | 2.15 |
+-------------------------+---------+------+
7 rows in set

--7.2.5 大小写敏感性
--SQL命令和关键字不区分大小写。数据大小写:MySQL和Microsoft SQL Server默认大小写不敏感,Oracle默认大小写敏感。。

--7.3.1COUNT 统计表里的记录数量
--语法
SELECT COUNT(*)
FROM TABLE_NAME;

mysql> SELECT * FROM PRODUCTS_TBL;
+---------+-------------------------+-------+
| PROD_ID | PROD_DESC               | COST  |
+---------+-------------------------+-------+
|       9 | CANDY CORN              | 1.35  |
|      13 | FALSE PARAFFIN TEETH    | 1.1   |
|      15 | ASSORTED COSTUMES       | 10    |
|      90 | LIGHTED LANTERNS        | 14.5  |
|     222 | PLASTIC PUMPKIN 18 INCH | 7.75  |
|     301 | FIREMAN COSTUME         | 29.99 |
|     302 | POLICEMAN COSTUME       | 29.99 |
|     303 | KIDDIE GRAB BAG         | 4.99  |
|     777 | CANDY CORN              | 2.15  |
|    7725 | LEATHER GLOVES          | 24.99 |
|   11235 | WITCH COSTUME           | 29.99 |
+---------+-------------------------+-------+
11 rows in set

mysql> SELECT COUNT(*) FROM PRODUCTS_TBL;
+----------+
| COUNT(*) |
+----------+
|       11 |
+----------+
1 row in set

--出现值的种类数
mysql> SELECT COUNT(DISTINCT PROD_DESC) FROM PRODUCTS_TBL;
+---------------------------+
| COUNT(DISTINCT PROD_DESC) |
+---------------------------+
|                        10 |
+---------------------------+
1 row in set

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值