查詢不會對資料庫中的數據進行修改.只是一種顯示數據的方式
1. 簡單查詢備用數據:
-運行下面的sql語句,生成相關的資料庫表
# 創建商品表:
CREATE TABLE product(
pid INT,
pname VARCHAR(20),
price DOUBLE,
category_id VARCHAR(32)
);
INSERT INTO product(pid,pname,price,category_id) VALUES(1,'聯想',5000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(2,'海爾',3000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(3,'雷神',5000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(4,'JACK JONES',800,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(5,'真維斯',200,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(6,'花花公子',440,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(7,'勁霸',2000,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(8,'香奈兒',800,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(9,'相宜本草',200,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(10,'面霸',5,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(11,'好想你棗',56,'c004');
INSERT INTO product(pid,pname,price,category_id) VALUES(12,'香飄飄奶茶',1,'c005');
INSERT INTO product(pid,pname,price,category_id) VALUES(13,'果9',1,NULL);
INSERT INTO product(pid,pname,category_id) VALUES(14,'香飄飄奶茶','c005');
1.1 查詢所有select * from 表名;
-- 需求:查詢所有的商品.
SELECT * FROM product;查詢結果如下:
mysql> select * from product;
+-+--+--+---+
| pid | pname | price | category_id |
+-+--+--+---+
| 1 | 聯想 | 5000 | c001 |
| 2 | 海爾 | 3000 | c001 |
| 3 | 雷神 | 5000 | c001 |
| 4 | JACK JONES | 800 | c002 |
| 5 | 真維斯 | 200 | c002 |
| 6 | 花花公子 | 440 | c002 |
| 7 | 勁霸 | 2000 | c002 |
| 8 | 香奈兒 | 800 | c003 |
| 9 | 相宜本草 | 200 | c003 |
| 10 | 面霸 | 5 | c003 |
| 11 | 好想你棗 | 56 | c004 |
| 12 | 香飄飄奶茶 | 1 | c005 |
| 13 | 果9 | 1 | NULL |
| 14 | 香飄飄奶茶 | NULL | c005 |
+-+--+--+---+
14 rows in set (0.00 sec)
mysql>
1.2 查詢指定列select 欄位名1,欄位名2... from 表名;
-- 需求:查詢商品名和商品價格.
SELECT pname,price FROM product;執行如下:
mysql> select pname,price from product;
+--+--+
| pname | price |
+--+--+
| 聯想 | 5000 |
| 海爾 | 3000 |
| 雷神 | 5000 |
| JACK JONES | 800 |
| 真維斯 | 200 |
| 花花公子 | 440 |
| 勁霸 | 2000 |
| 香奈兒 | 800 |
| 相宜本草 | 200 |
| 面霸 | 5 |
| 好想你棗 | 56 |
| 香飄飄奶茶 | 1 |
| 果9 | 1 |
| 香飄飄奶茶 | NULL |
+--+--+
14 rows in set (0.00 sec)
mysql>
1.3 別名查詢select 欄位名1 as 別名,欄位名2 別名 from 表名 as 表別名;
as關鍵字可以省去不寫
-- 需求3.別名查詢.使用的關鍵字是as(as可以省略的).
-- 3.1表別名:查詢商品名稱和價格
SELECT pro.pname,pro.price FROM product AS pro;
-- 3.2列別名:查詢商品名稱和價格
SELECT pname AS "商品名稱",price "商品價格" FROM product;執行如下:
-- 3.1表別名:查詢商品名稱和價格
mysql> SELECT pro.pname,pro.price FROM product AS pro;
+--+--+
| pname | price |
+--+--+
| 聯想 | 5000 |
| 海爾 | 3000 |
| 雷神 | 5000 |
| JACK JONES | 800 |
| 真維斯 | 200 |
| 花花公子 | 440 |
| 勁霸 | 2000 |
| 香奈兒 | 800 |
| 相宜本草 | 200 |
| 面霸 | 5 |
| 好想你棗 | 56 |
| 香飄飄奶茶 | 1 |
| 果9 | 1 |
| 香飄飄奶茶 | NULL |
+--+--+
14 rows in set (0.00 sec)
-- 3.2列別名:查詢商品名稱和價格
mysql> SELECT pname AS "商品名稱",price "商品價格" FROM product;
+--+----+
| 商品名稱 | 商品價格 |
+--+----+
| 聯想 | 5000 |
| 海爾 | 3000 |
| 雷神 | 5000 |
| JACK JONES | 800 |
| 真維斯 | 200 |
| 花花公子 | 440 |
| 勁霸 | 2000 |
| 香奈兒 | 800 |
| 相宜本草 | 200 |
| 面霸 | 5 |
| 好想你棗 | 56 |
| 香飄飄奶茶 | 1 |
| 果9 | 1 |
| 香飄飄奶茶 | NULL |
+--+----+
14 rows in set (0.00 sec)
mysql>
1.4 去重複查詢select distinct 欄位名 from 表名;
-- 需求:查看商品表中有那些價格.
SELECT DISTINCT price FROM product;執行如下:
mysql> SELECT pname AS "商品名稱",price "商品價格" FROM product;
+--+----+
| 商品名稱 | 商品價格 |
+--+----+
| 聯想 | 5000 | -- 可以看到有兩個5000的重複商品價格
| 海爾 | 3000 |
| 雷神 | 5000 | -- 可以看到有兩個5000的重複商品價格
| JACK JONES | 800 |
| 真維斯 | 200 |
| 花花公子 | 440 |
| 勁霸 | 2000 |
| 香奈兒 | 800 |
| 相宜本草 | 200 |
| 面霸 | 5 |
| 好想你棗 | 56 |
| 香飄飄奶茶 | 1 |
| 果9 | 1 |
| 香飄飄奶茶 | NULL |
+--+----+
14 rows in set (0.00 sec)
-- 查詢價格去重
mysql> SELECT DISTINCT price FROM product;
+--+
| price |
+--+
| 5000 |
| 3000 |
| 800 |
| 200 |
| 440 |
| 2000 |
| 5 |
| 56 |
| 1 |
| NULL |
+--+
10 rows in set (0.00 sec)
mysql>
1.5 查詢結果參與運算(IFNULL 函數)在上面查詢 price 價格的時候,存在 NULL 的值,而 NULL 在 mysql 是不算為值的。如果想要計算,此時就需要使用 IFNULL 函數,判斷當查詢的值為 NULL,可以設置為 0 ,操作如下:
select 列名1 + 固定值 from 表名;
-- 需求:將所有商品的價格+10元進行顯示. (查詢結果可參與運算)
SELECT *,IFNULL(price,0)+10 FROM product;執行如下:
-- 將所有商品的價格+10元進行顯示. (查詢結果可參與運算)
mysql> SELECT *,IFNULL(price,0)+10 FROM product;
+-+--+--+---++
| pid | pname | price | category_id | IFNULL(price,0)+10 |
+-+--+--+---++
| 1 | 聯想 | 5000 | c001 | 5010 |
| 2 | 海爾 | 3000 | c001 | 3010 |
| 3 | 雷神 | 5000 | c001 | 5010 |
| 4 | JACK JONES | 800 | c002 | 810 |
| 5 | 真維斯 | 200 | c002 | 210 |
| 6 | 花花公子 | 440 | c002 | 450 |
| 7 | 勁霸 | 2000 | c002 | 2010 |
| 8 | 香奈兒 | 800 | c003 | 810 |
| 9 | 相宜本草 | 200 | c003 | 210 |
| 10 | 面霸 | 5 | c003 | 15 |
| 11 | 好想你棗 | 56 | c004 | 66 |
| 12 | 香飄飄奶茶 | 1 | c005 | 11 |
| 13 | 果9 | 1 | NULL | 11 |
| 14 | 香飄飄奶茶 | NULL | c005 | 10 |
+-+--+--+---++
14 rows in set (0.00 sec)
mysql>