參考資料:《Mysql必知必會》
創建數據表
在學習前首先創建數據表和插入數據。如何安裝mysql可以看看上個博客https://www.cnblogs.com/lbhym/p/11675599.html
我的數據表和內容如下:
CREATE TABLE commodity ( id int(11) AUTO_INCREMENT, typeid int, name varchar(30) , price float , PRIMARY KEY (id) ) DEFAULT CHARSET=utf8;
AUTO_INCREMENT為自動增長,
PRIMARY KEY (id)設置id為主鍵
DEFAULT CHARSET=utf8;默認編碼為utf8
下面再插入幾條測試數據
insert into commodity values (null,1001,'牙刷',10.5),(null,1001,'毛巾',21.5),(null,1002,'茶幾',999.9),(null,1003,'電視',3199),(null,1003,'冰箱',2999),(null,1004,'1 手機',1999),(null,1004,'2 手機',7699),(null,1004,'.3 手機',699.9),(null,1005,'T恤',21.5),(null,1005,'牛仔褲',99)
查詢數據
1.查詢單列數據
select name from commodity
輸出:
牙刷
牛仔褲
毛巾
電視
茶幾
冰箱
T恤
2 手機
1 手機
.3 手機
2.查詢多列數據
select name,price from commodity
輸出:
牙刷 10.5
毛巾 21.5
茶幾 999.9
電視 3199
冰箱 2999
1 手機 1999
2 手機 7699
.3 手機 699.9
T恤 21.5
牛仔褲 99
3.查詢所有列
select * from commodity
這個查詢就是查詢整張表格
4.查詢不同的行
首先做如下查詢:
select typeid from commodity
輸出:
1001
1001
1002
1003
1003
1004
1004
1004
1005
1005
大家會發現有很多行重復了,如果不想出現重復的結果,可以使用distinct關鍵字
select distinct typeid from commodity
輸出:
1001
1002
1003
1004
1005
5.限制查詢結果
當我們不想查詢所有行數據,只想查詢指定行的數據時,就可以用到limit關鍵字
如下,只查詢五行數據
select name from commodity limit 5
輸出:
牙刷
毛巾
茶幾
電視
冰箱
還可以指定開始行和行數,如下,查詢從五行開始的五行數據
select name from commodity limit 5,5
輸出:
1 手機
2 手機
.3 手機
T恤
牛仔褲
第一個數是開始的位置,第二個數是限定的行數。如果剩余數據不夠五行,會查詢剩下的所有數據。
排序查詢數據
1.排序數據
可以使用order by關鍵字對后面跟着的字段進行排序。如下:
select * from commodity order by price
輸出:
1 1001 牙刷 10.5
2 1001 毛巾 21.5
9 1005 T恤 21.5
10 1005 牛仔褲 99
8 1004 .3 手機 699.9
3 1002 茶幾 999.9
6 1004 1 手機 1999
5 1003 冰箱 2999
4 1003 電視 3199
7 1004 2 手機 7699
如果指定排序的字段是字母,就按字母順序排序
2.按多個列排序
除了上面的按一個字段排序,還可以根據多個字段來排序,如下:
select * from commodity order by typeid,price
輸出:
1 1001 牙刷 10.5
2 1001 毛巾 21.5
3 1002 茶幾 999.9
5 1003 冰箱 2999
4 1003 電視 3199
8 1004 .3 手機 699.9
6 1004 1 手機 1999
7 1004 2 手機 7699
9 1005 T恤 21.5
10 1005 牛仔褲 99
上述例子中:會優先按typeid排序,只有當typeid相同時,才會按price排序
3.指定排序方向
默認的排序方向時升序的,還可以按降序desc來進行排序。如下:
select * from commodity order by price desc
輸出:
7 1004 2 手機 7699
4 1003 電視 3199
5 1003 冰箱 2999
6 1004 1 手機 1999
3 1002 茶幾 999.9
8 1004 .3 手機 699.9
10 1005 牛仔褲 99
2 1001 毛巾 21.5
9 1005 T恤 21.5
1 1001 牙刷 10.5