Mysql查询——学习阶段

1、开篇

搞开发的都知道,当数据量很大的时候,我们的代码逻辑的简单性就显得十分重要,否则处理起来就需要花费相当多的时间。另外还有一个地方需要注意的是我们写的sql语句。

一个拥有多年开发的资深开发者可以相比于刚从事开发经验不足的开发者写的sql效率要高些,数据量小基本没有什么关系。但是假如你在拥有高数据的BAT,或者国家企业,那这

条sql的差异就明显就大了。所以,能写出好的sql是相当重要的。

2、简单的查询sql

(1)select * from pj_appoint_order;    查询所有的约单,*表示这个表中所有的字段

(2)select id,user_name,user_phone from pj_appoint_order;    查询所有约单中id,user_name,user_phone这几个字段。

当然你可以改变这个表中查询出来表中字段的名称,例如:

select id as ‘编号‘,user_name as ‘用户名称‘,user_phone as ‘用户手机‘ from pj_appoint_order;

select id  ‘编号‘,user_name  ‘用户名称‘,user_phone  ‘用户手机‘ from pj_appoint_order;

有as和没有都可以。

(3)select distinct user_name from pj_appoint_order; distinct去掉重复的用户名(保留一个)

(4)select * from pj_account where score>88;查询用户积分大于88的用户,不包含88.

当然,在我们mysql中
         大于号:>
         小于号:<
         大于等于>=
         小于等于<=
         不等于 != 或者 <>

(5)select * from stu where type =‘超级会员‘ and score >90;   查询用户为超级会员并且积分大于90的用户所有信息

(6)表达式的学习:  not , or  ,in , between  and

select * from pj_account where score between 75 and 85;

select * from pj_account where not type=‘超级会员‘;

select * from pj_account where type!=‘超级会员‘;

select * from pj_account where score = 70 or score=81 or score=59;  查询用户积分为70或者81或者59的用户信息

---------------------------------查询面积为400或者500或者600的约单----------------------------------------------------------

SELECT * FROM pj_appoint_order WHERE acreage IN(400,500,600);

SELECT * FROM pj_appoint_order WHERE acreage = 400 OR acreage=500 OR acreage=600;

(7)like 与 通配符的使用
       _:占一个字符。
       %:多个字符进行匹配
     SELECT * FROM pj_appoint_order WHERE user_name LIKE ‘%哥%‘

SELECT * FROM pj_appoint_order WHERE user_name LIKE ‘_哥_‘

(8)一般而言查询值为null的情况比较少,但是也是会存在的,查询null需要用is

select * from pj_account where score is null;

select * from pj_account where score is not null;

(9)排序 order by   mysql默认的是升序排序(asc)

select * from pj_account order by id desc

(10) 聚集函数。聚合函数不对null进行操作
    count()//统计数量
    sum()//求和
    max() //最大
    min()//最小
    avg()//平均

select count(*) from pj_account; 查询用户表中有多少条记录,其他的类似。可以自己试试。

select round( avg(ifnull(score,0)),2) from pj_account; 求平均成绩。

解析:如果积分是null则赋值为0,然后求平均值,求完平均值后保留两位小数。

(11) where 与 having 区别
         1.     having  对聚集函数进行条件筛选 ,如果最后的条件是 聚集函数 那么我们就用 having
         2.  具体的某一条数据 
      综合我们学习的查询相关关键字:
      书写的顺序:
      select,from,where,group by,having,order by;
      执行的顺序:
          from:找到我们要操作的表。
          where,group by,having, 相当与我们的条件
          select :查询
          order by:排序。

3、一份耕耘一份收货!兢兢业业,必有丰收。

时间: 2024-11-03 19:12:00

Mysql查询——学习阶段的相关文章

MySQL基础学习之数据查询

一般查询 SELECT * FROM 表名 SELECT 属性名  FROM  表名 条件查询 SELECT 属性名 FROM 表名  WHERE 条件表达式 查询数据值1,数据值2的表单 SELECT *  FROM  表名  WHERE  属性名 [NOT] IN(数据值1,数据值2....) 查询数值1,数据2的表单 SELECT *  FROM  表名  WHERE  属性=值  AND 属性1=值1 查询数值1到数值2之间的表单 SELECT *  FROM  表名  WHERE  属

【SQL Server】系统学习之三:逻辑查询处理阶段-六段式

一.From阶段 针对连接说明: 1.笛卡尔积 2.on筛选器 插播:unknown=not unknuwn 缺失的值: 筛选器(on where having)把unknown当做FALSE处理,排除在筛选结果之外.如果比较两个null,结果是不相等的,false check约束中当做true,例如要求某列大于0,当插入null时是成功的,认为null>0是ture.如果比较两个null,结果是相等的,这种比较在unique约束.集合运算(例如union .except).排序.分组,都认为是

[转]向facebook学习,通过协程实现mysql查询的异步化

FROM : 通过协程实现mysql查询的异步化 前言 最近学习了赵海平的演讲,了解到facebook的mysql查询可以进行异步化,从而提高性能.由于facebook实现的比较早,他们不得不对php进行hack才得以实现.现在的php5.5,已经无需hack就可以实现了.对于一个web网站的性能来说,瓶颈多半是来自于数据库.一般数据库查询会在某个请求的整体耗时中占很大比例.如果能提高数据库查询的效率,网站的整体响应时间会有很大的下降.如果能实现mysql查询的异步化,就可以实现多条sql语句同

MySQL查询计划学习

以select_type为线索: 1) SIMPLE:简单的SELECT,不实用UNION或者子查询 mysql> explain select * from t2; +----+-------------+-------+------+---------------+------+---------+------+------+-------+ | id | select_type | table | type | possible_keys | key | key_len | ref | r

mysql学习——mysql查询语句综合练习

练习一: 设有成绩表stu如下: 姓名 科目 成绩 张三 数学 90 张三 语文 50 张三 地理 40 李四 语文 55 李四 政治 45 王五 政治 30 王五 数学 70 试查询两门及两门以上不及格同学的平均分 解答如下 1.创建数据表 create table stu(id int primary key auto_increment,name char(3) not null default'',subject char(3) not null default'',score deci

【数据库】9.0 MySQL入门学习(九)——获得数据库和表的信息、日期计算、查询

1.0 SELECT语句用来从数据表中检索信息. SELECT what_to_select FROM which_table WHERE conditions_to_satisfy; what_to_select指出你想要看到的内容,可以是列的一个表,或*表示"所有的列". which_table指出你想要从其检索数据的表. WHERE子句是可选项,如果选择该项,conditions_to_satisfy指定行必须满足的检索条件. 2.0 在我的博文"MySQL入门学习(八

mysql查询、子查询、连接查询

mysql查询.子查询.连接查询 一.mysql查询的五种子句 where子句(条件查询):按照“条件表达式”指定的条件进行查询. group by子句(分组):按照“属性名”指定的字段进行分组.group by子句通常和count().sum()等聚合函数一起使用. having子句(筛选):有group by才能having子句,只有满足“条件表达式”中指定的条件的才能够输出. order by子句(排序):按照“属性名”指定的字段进行排序.排序方式由“asc”和“desc”两个参数指出,默

MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类

首先需要回顾一下上一篇文章中的内容:MySQL数据库学习笔记(九)----JDBC的PreparedStatement接口重构增删改查 一.JDBC事务处理: 我们已经知道,事务的概念即:所有的操作要么同时成功,要么同时失败.在MySQL中提供了Commit.Rollback命令进行事务的提交与回滚.实际上在JDBC中也存在事务处理,如果要想进行事务处理的话,则必须按照以下的步骤完成. JDBC中事务处理的步骤: 1.要取消掉JDBC的自动提交:void setAutoCommit(boolea

【转】MYSQL入门学习之三:全文本搜索

转载地址:http://www.2cto.com/database/201212/173873.html 一.理解全文本搜索 www.2cto.com 1.MyISAM支持全文本搜索,而InnoDB不支持. 2.在使用全文本搜索时,MySQL不需要分别查看每个行,不需要分别分析和处理每个词.MySQL创建指定列中各词的一个索引,搜索可以针对这些词进行.这样MySQL可以快速有效地决定哪些词匹配,哪些词不匹配,它们匹配的频率,等等. 二.使用全文本搜索 1.为了进行全文本搜索,必须索引被搜索的列,