天天看點

MySql——建立資料表,查詢資料,排序查詢資料

參考資料:《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