mysql linux selected_MySQL的查询语句--SELECT

本来想总结高可用集群的另外几个实验呢,回头看看别人总结的内容,好精细,而且扩展了好多内容,惭愧的不行,还是先跳过了,呵呵~~~

介绍了简单的数据库操作等,接下来从细节入手,来介绍mysql的查询语句;

在这里导入了一个jiaowu数据库,来实现以下例题的操作:

先来看下这个数据库所包含的内容

mysql>show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| jiaowu |

| mysql |

| test |

+--------------------+

4 rows in set (0.00 sec)

l> use jiaowu;

Database changed

mysql>show tables;

+------------------+

| Tables_in_jiaowu |

+------------------+

| courses |

| scores |

| students |

| tutors |

+------------------+

4 rows in set (0.00 sec)mysql>select * from students;

+-----+--------------+------+--------+------+------+------+---------------------+

| SID | Name | Age | Gender | CID1 | CID2 | TID | CreateTime |

+-----+--------------+------+--------+------+------+------+---------------------+

| 1 | GuoJing | 19 | M | 2 | 7 | 3 | 2012-04-06 10:00:00 |

| 2 | YangGuo | 17 | M | 2 | 3 | 1 | 2012-04-06 10:00:00 |

| 3 | DingDian | 25 | M | 6 | 1 | 7 | 2012-04-06 10:00:00 |

| 4 | HuFei | 31 | M | 8 | 10 | 5 | 2012-04-06 10:00:00 |

| 5 | HuangRong | 16 | F | 5 | 9 | 9 | 2012-04-06 10:00:00 |

| 6 | YueLingshang | 18 | F | 8 | 4 | NULL | 2012-04-06 10:00:00 |

| 7 | ZhangWuji | 20 | M | 1 | 7 | NULL | 2012-04-06 10:00:00 |

| 8 | Xuzhu | 26 | M | 2 | 4 | NULL | 2012-04-06 10:00:00 |

| 9 | LingHuchong | 22 | M | 11 | NULL | NULL | 2012-04-06 10:00:00 |

| 10 | YiLin | 19 | F | 18 | NULL | NULL | 2012-04-06 10:00:00 |

+-----+--------------+------+--------+------+------+------+---------------------+

10 rows in set (0.00 sec)mysql>select * from tutors;

+-----+--------------+--------+------+

| TID | Tname | Gender | Age |

+-----+--------------+--------+------+

| 1 2 | HuangYaoshi | M | 63 |

| 3 | Miejueshitai | F | 72 |

| 4 | OuYangfeng | M | 76 |

| 5 | YiDeng | M | 90 |

| 6 | YuCanghai | M | 56 |

| 7 | Jinlunfawang | M | 67 |

| 8 | HuYidao | M | 42 |

| 9 | NingZhongze | F | 49 |

+-----+--------------+--------+------+

9 rows in set (0.00 sec)

这是以下例题中会用到的数据,可以先参考下;

首先是mysql查询语句:

查询的分类:

单表查询:简单查询

多表查询:联结查询

子查询:复杂查询

联合查询

select语句:

常用函数:

##field--表示字段

count(*) 总行数

mysql>select count(*) from tutors;

+----------+

| count(*) |

+----------+

| 9 |

+---------+

1 row in set (0.00 sec)

max(field) 返回最大值

mysql>select max(age) from tutors;

+----------+

| max(age) |

+----------+

| 93 |

+----------+

1 row in set (0.00 sec)

min(field) 返回最小值

avg(field) 平均值

mysql>select avg(age) from tutors;

+----------+

| avg(age) |

+----------+

| 67.5556 |

+----------+

1 row in set (0.00 sec)

sum() 记和

mysql>select sum(1+2);

+----------+

| sum(1+2) |

+----------+

| 3 |

+----------+

1 row in set (0.01 sec)

select 是挑选列的,where是挑选行的,二者结合起来才是将一个实体的属性整体显示出来

where 后面指定的是条件:

可以指定的条件有:

算术比较:

> , < , = , !,>= , <=, <=> (取得的结果是空值也不会出错)

mysql>select name,age from students where age>=20;

+-------------+------+

| name | age |

+-------------+------+

| DingDian | 25 |

| HuFei | 31 |

| ZhangWuji | 20 |

| Xuzhu | 26 |

| LingHuchong | 22 |

+-------------+------+

5 rows in set (0.00 sec)

组合逻辑比较:

and

or

not(!)

mysql>select name,age from students where ! (age<=25);

+-------+------+

| name | age |

+-------+------+

| HuFei | 31 |

| Xuzhu | 26 |

+-------+------+

2 rows in set (0.00 sec)

其他条件比较:

beween …… and ……

mysql>select name,age from students where age between 24 and 30

+----------+------+

| name | age |

+----------+------+

| DingDian | 25 |

| Xuzhu | 26 |

+----------+------+

2 rows in set (0.00 sec)

in 查询的字段在指定的列表中

mysql>select name,age from students where age in (18,20,25);

+--------------+------+

| name | age |

+--------------+------+

| DingDian | 25 |

| YueLingshang | 18 |

| ZhangWuji | 20 |

+--------------+------+

3 rows in set (0.01 sec)

is null:查询是空值的

mysql>select name from students where cid2 is null;

+-------------+

| name |

+-------------+

| LingHuchong |

| YiLin |

+-------------+

2 rows in set (0.00 sec)

is not null

like : 做通配符的匹配

%:匹配任意长度的任意字符

_: 匹配单个字符

regexp|rlike : 正则表达式的匹配

order by: 排序,默认是升序的asc

desc:降序

mysql>select name,age from students where age in (22,18,25)order by age desc;

+--------------+------+

| name | age |

+--------------+------+

| DingDian | 25 |

| LingHuchong | 22 |

| YueLingshang | 18 |

+--------------+------+

3 rows in set (0.00 sec)

distinct: 显示结果的唯一性,附在select之后(以下面的例子解说,cid1相同的只显示了一次)

mysql>select distinct cid1 from students order by cid1 desc;

+------+

| cid1 |

+------+

| 18 |

| 11 |

| 8 |

| 6 |

| 5 |

| 2 |

| 1 |

+------+

7 rows in set (0.00 sec)

group by: 将取得的结果进行分组,通常分组的结果是用来做聚合运算的

having: 对分组的结果进行条件过滤

mysql>select avg(age),cid1 from students group by cid1;

+----------+------+

| avg(age) | cid1 |

+----------+------+

| 20.0000 | 1 |

| 20.6667 | 2 |

| 16.0000 | 5 |

| 25.0000 | 6 |

| 24.5000 | 8 |

| 22.0000 | 11 |

| 19.0000 | 18 |

+----------+------+

7 rows in set (0.00 sec)

limit:限定显示的行数

eg:limit 1,2;表示跳过第一行再显示两行

mysql>select avg(age),cid1 from students group by cid1 limit 1,2;

+----------+------+

| avg(age) | cid1 |

+----------+------+

| 20.6667 | 2 |

| 16.0000 | 5 |

+----------+------+

2 rows in set (0.00 sec)0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值