天天看点

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