• mysql学习笔记(二)


    • 模糊查询:like,需要占位符或者通配符。占位符包括:
      下划线_,表示某个数字或字符仅出现一次。
      %百分号,任意字符出现任意次数。
      --查询名字以S开头的用户
      select * from emp where ename like('S%');
      --查询名字以S开头且倒数第二个字符为T的用户
      select * from emp where ename like('S%T_');
      注意:使用like时候要慎重,like效率比较低。
      
    • escape,使用转义字符,可以自定义转义字符。
      --查询名字中带有%的用户
      select * from emp where ename like('%\%%') escape('\');
      like注意事项:
      1.不能过度使用通配符,如果其他操作符额能达到目的,就不要使用通配符。
      2.确实需要使用通配符时,除非绝对必要,否则不要把通配符用到搜索模式最开始处,因为这样是最慢的。如'%A%','_A%'
      
    • order by :进行排序操作
      asc是默认的排序方式,表示升序。
      desc表示降序。数值排序按照大小,字符串排序按照字典序。
      在排序时可指定多个字段,且多个字段可使用不同的排序方式。
      select * from emp order by sal asc, ename desc;
      每次执行orderby相当于做全排序,比较耗费系统资源,因此选择在业务不繁忙的时候进行。
      
    • 创建计算字段:
      我们经常需要直接从数据库中检索出转换、计算或者格式化过的数据,而不是检索出数据,然后再重新格式化。
      计算字段并不实际存在于数据库表。
      sql中允许select子句出现+-*/以及列名和常熟的表达式。
      拼接字段(|| +):首选||来作为拼接字段(MySQL中||表示or,一般用concat());
      --使用计算字段,字符串连接符来连接,有两种方式:
      select 'my name is' || ename name from emp;
      select concat('my name is',ename) name from emp;
      --计算所有员工的年薪
      select ename,(e.sal+e.comm)*12 from emp e;//绩效加基本工资*12,如果没有绩效的为NULL。
      --NULL是比较特殊的,null做任何运算都还是null,因此要进行转换。
      引入nvl,nvl(a1,a2),如果a1为空则返回a2,不为空则返回a1;
      select ename,(e.sal+nvl(e.comm,0))*12 from emp e;
      
    • sql中允许列值为空,空值用保留字NULL表示。NULL不同于数字0或者空格,它就是代表了一个不确定的内容。任何含有NULL值的数学表达式最后的结果都为空值。
      select ename,sal,comm,(sal * 12)+comm "income" from emp;//此时有的员工没有绩效的员工则comm为NULL,结果为空值,可转换为具体的值。
      --可以通过函数将NULL转换成一个确切的值
      select ename,comm,nvl(comm,0) from emp;
      select ename,sal,comm,(sal*12) +nvl(comm,0) "income" from emp;
      
  • 相关阅读:
    第二章:列表简介
    第三章:shell变量知识进阶
    第二章:shell变量
    WEB服务器
    第一章:变量和简单的数据类型
    第一节:python基础
    第一章:shell脚本初入门
    vim命令
    知识点一:OSI模型初识
    知识点二:HTTP超文本文件传输协议
  • 原文地址:https://www.cnblogs.com/shaokai7878/p/16273718.html
Copyright © 2020-2023  润新知