-查询基本使用(条件,排序,聚合函数,分组,分页)
1)创建一个表结构然后添加数据
create table baba (id int unsigned not null auto_increment primary key,    #设置id为不能空的约束和自增主键
-> name varchar() default '', #varchar(20)的意思为最多20个字符,根据字符个数占据内存大小
-> age tinyint unsigned default , #年纪默认值设为0
-> high decimal(,), #小数类型为5进2
-> gender enum('男', '女', '中性', '保密') default '保密', 设置枚举类型
-> cls_id int unsigned default ,
-> is_delete bit default
-> );
2)添加字段内数据
insert into baba values
(,'小明',,180.00,,,),
(,'小月月',,180.00,,,),
(,'彭于晏',,185.00,,,),
(,'刘德华',,175.00,,,),
(,'黄蓉',,160.00,,,),
(,'凤姐',,150.00,,,),
(,'王祖贤',,170.00,,,),
(,'周杰伦儿',,null,,,),
(,'程坤',,181.00,,,),
(,'和珅',,166.00,,,),
(,'刘亦菲',,162.00,,,),
(,'金星',,180.00,,,),
(,'静香',,170.00,,,),
(,'郭靖',,167.00,,,),
(,'周杰',,178.00,,,),
(,'钱小豪',,178.00,,,),
(,'谢霆锋',,175.00,,,),
(,'陈冠希',,175.00,,,);
4)查看全部字段内容:
select * from baba;            #将字段为列标题,内容行输出
+----+--------------+------+--------+--------+--------+-----------+
| id | name | age | high | gender | cls_id | is_delete |
+----+--------------+------+--------+--------+--------+-----------+
| | 小明 | | 180.00 | 男 | | |
| | 小月月 | | 180.00 | 男 | | |
| | 彭于晏 | | 185.00 | 男 | | |
| | 刘德华 | | 175.00 | 男 | | |
| | 黄蓉 | | 160.00 | 女 | | |
| | 凤姐 | | 150.00 | 保密 | | |
| | 王祖贤 | | 170.00 | 女 | | |
| | 周杰伦儿 | | NULL | 男 | | |
| | 程坤 | | 181.00 | 男 | | |
| | 和珅 | | 166.00 | 男 | | |
| | 刘亦菲 | | 162.00 | 女 | | |
| | 金星 | | 180.00 | 中性 | | |
| | 静香 | | 170.00 | 女 | | |
| | 郭靖 | | 167.00 | 男 | | |
| | 周杰 | | 178.00 | 男 | | |
| | 钱小豪 | | 178.00 | 男 | | |
| | 谢霆锋 | | 175.00 | 男 | | |
| | 陈冠希 | | 175.00 | 男 | | |
5)查看前三行内容
select * from baba where id< ;      用where来限定范围
+----+-----------+------+--------+--------+--------+-----------+
| id | name | age | high | gender | cls_id | is_delete |
+----+-----------+------+--------+--------+--------+-----------+
| | 小明 | | 180.00 | 男 | | |
| | 小月月 | | 180.00 | 男 | | |
+----+-----------+------+--------+--------+--------+-----------+
6)查看指定字段:
select name,age from baba;       #查看指定的name,age段
+--------------+------+
| name | age |
+--------------+------+
| 小明 | |
| 小月月 | |
| 彭于晏 | |
| 刘德华 | |
| 黄蓉 | |
| 凤姐 | |
| 王祖贤 | |
| 周杰伦儿 | |
| 程坤 | |
| 和珅 | |
| 刘亦菲 | |
| 金星 | |
| 静香 | |
| 郭靖 | |
| 周杰 | |
| 钱小豪 | |
| 谢霆锋 | |
| 陈冠希 | |
7)查看指定字段并设置别名: 
)查看指定字段并设置别名:
select name as '姓名' ,age as '年龄‘ from baba; #字段中间用逗号隔开
+--------------+--------+
| 姓名 | 年龄 |
+--------------+--------+
| 小明 | |
| 小月月 | |
| 彭于晏 | |
| 刘德华 | |
| 黄蓉 | |
| 凤姐 | |
| 王祖贤 | |
| 周杰伦儿 | |
| 程坤 | |
| 和珅 | |
| 刘亦菲 | |
| 金星 | |
| 静香 | |
| 郭靖 | |
| 周杰 | |
| 钱小豪 | |
| 谢霆锋 | |
| 陈冠希 | |
8)通过表名字段查询
select baba.name from baba;         
9) 给表起别名查询
select mama.name from baba as mama;
10)消除重复行查询(distinct)
select distinct age from baba;
+------+
| age |
+------+
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
条件查询

比较运算符:
*查看所有数据中年纪大于40的数据。
MariaDB [mysql]> select * from baba where age > ;
+----+-----------+------+--------+--------+--------+-----------+
| id | name | age | high | gender | cls_id | is_delete |
+----+-----------+------+--------+--------+--------+-----------+
| | 刘德华 | | 175.00 | 男 | | |
| | 黄蓉 | | 160.00 | 女 | | |
| | 凤姐 | | 150.00 | 保密 | | |
| | 王祖贤 | | 170.00 | 女 | | |
| | 程坤 | | 181.00 | 男 | | |
| | 和珅 | | 166.00 | 男 | | |
| | 金星 | | 180.00 | 中性 | | |
| | 钱小豪 | | 178.00 | 男 | | |
12)*查看所有数据中身高在170到180之间的。
MariaDB [mysql]> select * from baba  where high> and high < ;     #注意不能写成170<high<
+----+-----------+------+--------+--------+--------+-----------+
| id | name | age | high | gender | cls_id | is_delete |
+----+-----------+------+--------+--------+--------+-----------+
| | 刘德华 | | 175.00 | 男 | | |
| | 周杰 | | 178.00 | 男 | | |
| | 钱小豪 | | 178.00 | 男 | | |
| | 谢霆锋 | | 175.00 | 男 | | |
| | 陈冠希 | | 175.00 | 男 | | |
13)*查看所有数据中id>15,或者性别为男的数据;
select * from baba where id > or gender=;
+----+--------------+------+--------+--------+--------+-----------+
| id | name | age | high | gender | cls_id | is_delete |
+----+--------------+------+--------+--------+--------+-----------+
| | 小明 | | 180.00 | 男 | | |
| | 小月月 | | 180.00 | 男 | | |
| | 彭于晏 | | 185.00 | 男 | | |
| | 刘德华 | | 175.00 | 男 | | |
| | 周杰伦儿 | | NULL | 男 | | |
| | 程坤 | | 181.00 | 男 | | |
| | 和珅 | | 166.00 | 男 | | |
| | 郭靖 | | 167.00 | 男 | | |
| | 周杰 | | 178.00 | 男 | | |
| | 钱小豪 | | 178.00 | 男 | | |
| | 谢霆锋 | | 175.00 | 男 | | |
| | 陈冠希 | | 175.00 | 男 | | |

模糊查询(like)

%代表0个或多个

*查询所有数据中与’月‘相关的数据
MariaDB [mysql]> select * from baba where name like '%月%';
+----+-----------+------+--------+--------+--------+-----------+
| id | name | age | high | gender | cls_id | is_delete |
+----+-----------+------+--------+--------+--------+-----------+
| | 小月月 | | 180.00 | 男 | | |
*查询两个字的人名
ariaDB [mysql]> select * from baba where name like '__';    '_'为一个字符的为一个字符的占位符
+----+--------+------+--------+--------+--------+-----------+
| id | name | age | high | gender | cls_id | is_delete |
+----+--------+------+--------+--------+--------+-----------+
| | 小明 | | 180.00 | 男 | | |
| | 黄蓉 | | 160.00 | 女 | | |
| | 凤姐 | | 150.00 | 保密 | | |
| | 程坤 | | 181.00 | 男 | | |
| | 和珅 | | 166.00 | 男 | | |
| | 金星 | | 180.00 | 中性 | | |
| | 静香 | | 170.00 | 女 | | |
| | 郭靖 | | 167.00 | 男 | | |
| | 周杰 | | 178.00 | 男 | | |
*查询三个字以及以上的人名:
MariaDB [mysql]> select * from baba where name like '_ _ _%';
+----+--------------+------+--------+--------+--------+-----------+
| id | name | age | high | gender | cls_id | is_delete |
+----+--------------+------+--------+--------+--------+-----------+
| | 小月月 | | 180.00 | 男 | | |
| | 彭于晏 | | 185.00 | 男 | | |
| | 刘德华 | | 175.00 | 男 | | |
| | 王祖贤 | | 170.00 | 女 | | |
| | 周杰伦儿 | | NULL | 男 | | |
| | 刘亦菲 | | 162.00 | 女 | | |
| | 钱小豪 | | 178.00 | 男 | | |
| | 谢霆锋 | | 175.00 | 男 | | |
| | 陈冠希 | | 175.00 | 男 | | |
范围查询 in(1,,5,9) 查询非连续范围内的数据
*查询年纪是18和52的数据
MariaDB [mysql]> select * from baba where age= or age=;         #注意这里和查询用的是or
+----+-----------+------+--------+--------+--------+-----------+
| id | name | age | high | gender | cls_id | is_delete |
+----+-----------+------+--------+--------+--------+-----------+
| | 小明 | | 180.00 | 男 | | |
| | 王祖贤 | | 170.00 | 女 | | |
| | 静香 | | 170.00 | 女 | | |
*查询不在20到50岁的数据
MariaDB [mysql]> select * from baba where age not between  and ;
+----+-----------+------+--------+--------+--------+-----------+
| id | name | age | high | gender | cls_id | is_delete |
+----+-----------+------+--------+--------+--------+-----------+
| | 小明 | | 180.00 | 男 | | |
| | 小月月 | | 180.00 | 男 | | |
| | 刘德华 | | 175.00 | 男 | | |
| | 黄蓉 | | 160.00 | 女 | | |
| | 王祖贤 | | 170.00 | 女 | | |
| | 和珅 | | 166.00 | 男 | | |
| | 静香 | | 170.00 | 女 | | |
| | 钱小豪 | | 178.00 | 男 | | |
空判断(字符内容是否是null   用is)
MariaDB [mysql]> select * from baba where high is null;
+----+--------------+------+------+--------+--------+-----------+
| id | name | age | high | gender | cls_id | is_delete |
+----+--------------+------+------+--------+--------+-----------+
| | 周杰伦儿 | | NULL | 男 | | |
+----+--------------+------+------+--------+--------+-----------+
排序(order by) asc从小到大,desc从大到小排序
*查询年纪在18到34岁的男性,身高从高到矮排序,如果身高相同的情况下按照年纪从小到大排序,如果年龄也相等那么按照id从小到大排序;
MariaDB [mysql]> select * from baba where age between  and  and gender= order by high desc,age asc,id asc;
+----+--------------+------+--------+--------+--------+-----------+
| id | name | age | high | gender | cls_id | is_delete |
+----+--------------+------+--------+--------+--------+-----------+
| | 彭于晏 | | 185.00 | 男 | | |
| | 小明 | | 180.00 | 男 | | |
| | 小月月 | | 180.00 | 男 | | |
| | 周杰 | | 178.00 | 男 | | |
| | 郭靖 | | 167.00 | 男 | | |
| | 周杰伦儿 | | NULL | 男 | | |
多个排序方法用逗号可开

聚合函数(count,max,min) where用于限定范围,聚合函数用于比较统计
*查询男性有多少人
MariaDB [mysql]> select count(*) from baba where gender=;  #chount统计个数
+---------+
| count(*) |
+----------+
| |
*查询年纪最大的
MariaDB [mysql]> select max(age) from baba;    #max(字段),缩小了搜索范围
+----------+
| max(age) |
+----------+
| |
*查询身高最小的
MariaDB [mysql]> select min(high) from baba;       #min(字段)
+-----------+
| min(high) |
+-----------+
| 150.00 |
*查看女性中身高最高的
MariaDB [mysql]> select max(high) from baba where gender=;
+-----------+
| max(high) |
+-----------+
| 170.00 |
*计算序号大于1的男性的平均年纪
MariaDB [mysql]> select sum(age)/count(*), from baba where gender= and id >;
MariaDB [mysql]> select sum(age)/count(*), from baba where gender= and id >;
+-------------------+---+
| sum(age)/count(*) | |
+-------------------+---+
| 38.6364 | |
也可以将sum(age)/count(*) 写作avg(age)    ,2为保留两位小数
分组(group by)
*查询每组性别中的人数
MariaDB [mysql]> select gender ,count(*) from baba  group by gender;     #中间逗号隔开;查看以性别分的组,统计每组人数个数
+--------+----------+
| gender | count(*) |
+--------+----------+
| 男 | |
| 女 | |
| 中性 | |
| 保密 | |
*查看男性组的成员姓名    #附带的字段内容用group——concat()来指定
MariaDB [mysql]> select gender ,group_concat(name) from baba where gender= group by gender;
+--------+-------------------------------------------------------------------------------------------------------------+
| gender | group_concat(name) |
+--------+-------------------------------------------------------------------------------------------------------------+
| 男 | 小明,谢霆锋,钱小豪,周杰,郭靖,和珅,程坤,周杰伦儿,刘德华,彭于晏,小月月,陈冠希
*查询男性中的人数多于4个的组的信息(这里就将性别看作成一个组)
MarmariaDB [mysql]> select gender ,group_concat(name,'|',age,'|',high) from baba where gender= group by gender having count(*)>;
| gender | group_concat(name,'|',age,'|',high) #查看附加信息为年纪,姓名,身高,中间用’|‘分开,附加信息跟在组后面用逗号隔开,限定条件放在后面。
| 男 | 小明||180.00,谢霆锋||175.00,钱小豪||178.00,周杰||178.00,郭靖||167.00,
和珅||166.00,程坤||181.00,刘德华||175.00,彭于晏||185.00,小月月||180.00,陈冠希||175.00
分页
*分页显示,每页显示2条数据
MariaDB [mysql]> select * from baba limit n,;        #4代表的是数据从n+1行开始显示,2代表的是每页显示两行数据(这建立设置了主键自增的前提下,否则从n开始)
+----+-----------+------+--------+--------+--------+-----------+
| id | name | age | high | gender | cls_id | is_delete |
+----+-----------+------+--------+--------+--------+-----------+
| n+ | 小明 | | 180.00 | 男 | | |
| n+ | 小月月 | | 180.00 | 男 | | |
*按照身高从高到矮排序,查找出所有女性,并且分页显示,每页显示2条数据
MariaDB [mysql]> select * from baba where gender= order by high desc limit ;  #一个数字默认为(0,2)
+----+-----------+------+--------+--------+--------+-----------+
| id | name | age | high | gender | cls_id | is_delete |
+----+-----------+------+--------+--------+--------+-----------+
| | 静香 | | 171.00 | 女 | | |
| | 王祖贤 | | 170.00 | 女 | | |
 
 
 

 

最新文章

  1. iOS的多版本配置(版本分离,多环境配置)
  2. java selenium (十三) 智能等待页面加载完成
  3. C++中的静态绑定和动态绑定
  4. Linux的Cgroup&lt;实例详解&gt;
  5. Unity3D研究院之静态自动检查代码缺陷与隐患
  6. asp.net mvc放在iis7.5中提示404错误 js异步请求失效解决办法
  7. Android Weekly Notes Issue #248
  8. iOS开发之UIPopoverController
  9. 用css绘制各种图形
  10. CentOS搭建FTP服务
  11. POJ - 1177 线段树
  12. MySQL unknown variable &#39;default-character-set=utf8&#39;的解决
  13. Python——使用代码平台进行识别验证码
  14. jupyter notebook connecting to kernel problem
  15. [数据]matplotlib总结
  16. profibus 的DPV0 和DPV1
  17. wxWidgets编程起步
  18. 【C#/WPF】调节图像的HSL(色相Hue、饱和度Saturation、明亮度Lightness)
  19. hdu4965矩阵快速幂
  20. jQuery UI简单的讲解

热门文章

  1. py学习日记
  2. github廖雪峰git
  3. dp(买票优惠)
  4. python学习第四十二天列表生成式用法及作用
  5. PC端实现浏览器点击分享到QQ好友,空间,微信,微博等
  6. VUE:v-for获取列表前n个数据、中间范围数据、末尾n条数据的方法
  7. 浅谈原生JavaScript的动画和特效
  8. Storm简介——初始Storm
  9. js中跳出forEach循环
  10. ltp-ddt eth iperf