mysql的查询笔记.

查询:select

排序:order by
升序:asc
降序:desc
        case  when  end 
count:统计。null不统计。
sum:求和。null不参与运算
where:条件。
from :
group by :分组查询

having:

where和having的比较:
where:
记录过滤器,只针对每条记录,不针分组记录。
通常出现在from子句后面,可有可无。
where不能独立存在,(没有from,不能单独使用)


having:
分组过滤器,只针对分组,不针对每条单独记录
通常出现在group by子句后面,可有可无。
having不能独立存在,(没有group by,不能单独使用)

mysql的查询:对于数据库来说,最重要的就是查询,查询中最重要的就是条件查询,对于mysql来说.相对Oracle较简单,但不是绝对的,如果应用得利,mysql也许更适合你..

1,从问题出发,

我们学习数据库的查询,我认为最重要的一点是从问题出发..再一点一点的深入.并理解,因为所有的查询语句格式都是固定的.

        变化的是需要我们解决的问题,因此我就是从问题出发,来学习这个查询语句.

2,需求1,查询所有表中的数据,

这个是最简单的需求,我们只需要两个关键字,一个通配符就可以实现 .如下

select * from TableName;

   通过这句简单的语句,其实我们就已经基本学会了查询的SQL;

3,需求2,查询表的姓名为"zhangsan"的信息.,

通过需求2,我们可以查询所有的,信息,这个只是多了一个条件而已,其实我们的所有的查询都是条件查询,

只是条件不同而已.因此我们需要就是怎样去分解问题,把复杂的问题简单化.简单的事情简单做.,

         这里啰嗦了一点,后面的话,对于问题+SQL了.

 mysql> select * from TableName where name="zhangsan";

4,需求3.

A,查询只显示姓名和出生年月的信息

  mysql>select  name as 姓名,brithday ad 出生年月  from TableName;

B.查询姓名为"lisi"并显示出姓名和出生年月的信息

mysql>select  name as 姓名,brithday ad 出生年月  from TableName; where name="lisi";

5,需求4:查询出生为"1988年"出生的人.

    mysql>select * from TableName where birthday="1988"这句是有问题的,我们常常会遇到其它类型时,需要进行转换;

mysql>select * from mysql_test where trim(date(brithday))='1986-01-01';

   注意:以上条件不能填为"1986-1-1",这样可能查找不出来,这个知识原理的东西,再看一下..

6,需求5,分页.关键字:limit

A,mysql中的分页较为简单,关键的是记住limit关键字,后面跟着两个参数,如下:
     select * from TableName limit 3,4;
     注意事项:数字的话(其它需要测试一下),不需要用括号,引号,这个往往容易养成一个习惯.用空格格开即可.
              第一个参数代表的是从第几行开始查找,第二个参数为查找几条数据.
  B,,数据库分页的一些扩展知识.

      , mysql,oracle的索引都是从1开始的,与Java是不一样的,而在Java的数组,集合等都是从0开始


 7,需求,按工资的由高到低进行排序:

     select * from TableName order by salary desc;

   mysql默认由低到高,asc关键字可以不写

 8.需求:查询工资的总和,按降序显示

select sum(salary) as 工资总和 from TableName where group by gender having count(*)>2 order by sum(salary) desc;

9,需求:把工资为分为三组
select
name as 姓名,
case salary
when 7000 then '高薪'
when 6000 then '中薪'
when 5000 then ‘起薪’
else '试用期'
end as 薪水情况
from    TableName;


 

建议多练,看懂不动手的话,很难发现问题的..


















表结构如下:

mysql> desc mysql_test;
+----------+-------------+------+-----+---------+----------------+
| Field    | Type        | Null | Key | Default | Extra          |
+----------+-------------+------+-----+---------+----------------+
| id       | int(11)     | NO   | PRI | NULL    | auto_increment |
| name     | varchar(20) | NO   |     | NULL    |                |
| brithday | date        | YES  |     | NULL    |                |
+----------+-------------+------+-----+---------+----------------+
3 rows in set (0.06 sec)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wscwsc58888

只为正式环境创作

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值