MySQL数据库day_02

目录

1.条件查询:

2.单字段排序(默认是升序):

3.排序综合案例:

4.数据处理函数(单行处理函数):

5.数据处理函数综合案例:


1.条件查询:

        不是将表中的所有数据都查出来,查出来符合条件的;

        格式:select 字段1,字段2,....from表名where 条件;

    =

等于

select empno,ename,sal from emp where sal=3000;

 <>或者!=

不等于

select empno,ename,sal from emp where sal<>3000;

   <

小于

select empno,ename,sal from emp where sal<3000;

   <=

小于等于

select empno,ename,sal from emp where sal<=3000;

   >

大于

select empno,ename,sal from emp where sal>3000;

   >=

大于等于

select empno,ename,sal from emp where sal>=3000;

between...and...或者>=and<=

两个值之间

select empno,ename,sal from emp where sal>=3000;

select empno,ename,sal from emp where sal>=3000;

is null,is not null

空,非空

select empno,ename,sal,comm from where comm is not null;

    and

并且

...where  job=’MANGER’  and sal  > 1000;

    or

或者

 ...where  job=’MANGER’or or job=’SALESMAN’;

in,not in

包含

...while job in(‘MANGER’,’SALESMAN’);

like

模糊查询

select enamefrom empwhere ename like ‘%O%’;名字含有

select enamefrom empwhere ename like ‘O%’;以O开始

select enamefrom empwhere ename like ‘%O’;以O结尾

select enamefrom empwhere ename like ‘_O%’;第二个字母O

select enamefrom empwhere ename like ‘%O’;第三个字母O

select enamefrom empwhere ename like ‘%\_%’;含有 _的名字

                注意:

                       1.  数据库中null不能使用等号衡量,需要使用is null,不能使用等号
                       2. and和or同时出出现,and的优先级比较高,所以可以加小括号

                       3. in 不是一个区间,而是一个具体的值

                        4.like支持%和_匹配,前者指的是匹配任意多个字符,后者是任意一个字符

                        5.找出名字中含有特殊含义的数据,加转义字符“\”

2.单字段排序(默认是升序):

        select ename,sal from emp order by sal asc; 指定升序

        select ename,sal from emp order by sal desc;    指定降序

        多字段排序:

        要求:当薪资一样,按照名字的升序排列

        注意:排序前面的起主导作用,后边的是在相等的时候才会轮到它

        select ename,sal from emp order by sal,ename asc;

        自定义位置排序:

        注意:因为不健壮,所以不建议在开发中书写

        select ename sal from emp order by 2;

3.排序综合案例:

        要求:找出工资在1250到3000之间的员工信息,要求按照薪资的降序排序

        注意:执行顺序不能改变,from   where   select   order by

        select ename,sal from emp where sal between 1250  and  3000  order by sal desc;

4.数据处理函数(单行处理函数):

        特点:一个输入对应一个输出;和单行相对应的是多行处理函数(多输入对应单输出);

        解释:单行为一条记录一条记录的允许输入输出;多行,举例就是求和;

lower

转换小写

select lower(ename) as ename from emp;  14输入,14输出

upper

转换大写

select upper(ename) as ename from emp;  14输入,14输出

substr(string,int,int)

取子串

select substr(ename,1,4) as ename from emp;  取子串

select ename from emp where substr(ename,1,1)=’a’;首字母为A

concat

拼接字符串

select concat(ename,empno) as result from emp;字符串拼接

length

取长度

select length(ename) as result from emp;  取字符串的长度

trim

去掉空格

select *from emp where ename=trim(‘   KING’);

str_to_date

字符串转化日期

date_format

格式化日期

format

设置千分位

round

四舍五入

select round(123.678,0) as result from emp;  0为整数

rand()

生成随机数

select rand() from emp;   

ifnull

将null转化具体值

select ename,(sal+ifnull(comm,0))*12 as yearsal from emp;

        注意:

               1. 如果select后边跟着“字面量/字面值”或者“字段名”,当是前者时候,会生成多 行字面值。                   select 1000 as  result  from emp; select ‘abc’ as  result  from emp;

                2.字符串拼接不能用‘+’号,用concat。

                3.在round中为0则是保留整数,1则是一位小数,-1则是保留到10位,依次同理

                4.只有null参与的数学运算,最终结果就是NULL

                5.ifnull当为null的时候,被看做后边的值

5.数据处理函数综合案例:

        要求:首字母大写?

  select concat(upper(substr(ename,1,1)),substr(ename,2,length(ename)-1)) as result from emp;

        要求:100以内的随机数?

 select  round(rand()*100,0) from emp;

        补充:case....when...then....when....then...else..end

        要求:当员工的工资岗位是manger的石红,工资上调10%,salesman上调50%。其他正常

    select ename,sal as oldsal,job,(case job when ‘MANAGER’ then sal*1.1 when     ‘SALESMAN’ then sal*1.5  else sal end)as newsal from emp;

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

aimigas

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值