数据库知识汇总

between

按照工资进行排序

select *from emp order by sal;默认是按照升序排序

select *from emp order by deptno,sal

聚合函数

select lower(ename) from emp; --最终返回的是14,lower()是单行函数

select max(sal) from emp; --返回1行,max()是多行函数

having对分组之后的信息进行过滤

having和where的区别

  相同的

       都是对数据过滤,只保留有效的数据

不同

      where是对原始数据的过滤having只对分组之后的记录过滤

      where必须的写在having的前面,顺序不可颠倒否则运行出错

      having子句用来对分组之后的数据进行过滤,因此使用having时通常都会先使用group by

连接查询

select ... from A,B的用法

    产生的结果:

          行数是A和B的乘积

          列数是A和B之和

          把A表的每一条记录和B表的每一条记录组合在一起形成的是个笛卡尔积

mysql索引 

          

   mysql入门

  1. 字符要用双引号引起,实际上2000与2005,2008都允许单引号引起,但是oracle不允许。为了将来可以方便的移植代码,就定为字符统一由双引号引起。

  1. Select  salary*12  as  “年薪”  from  emp;

                 As是指定列名,因为salary*12 是计算出来的结果,所以这个结果没有列名,as可以省略。

  1. distinct 不允许重复的

例如:select  distinct  deptno  from  emp;

空值(null)被当做一个对象处理,对于两个输出项,则将两个合并为一个整体来判断是否相同

  1. SQL中用双横杠表示注释

  1. 讲课时要引导学生得出结论,由你来决定结果是否正确

  1. 做生意和谈业务就是要让客户跟着你走,理直气壮

  1. 谈生意的时候,不要听推销员则么说,最好是你问他答,这样他就不敢唬你了,或者你不说话,一直让他说。

  1. SQL中最重要的是执行顺序(这个地方在编程,在数据库,在shell处处都会存在,在编程中尤为重要,注意归类和总结)

  1. Select  *  from  emp

         Where   sal=5000   

--顺序:1.where sal=5000

       2.selcet * from emp

  1. between 的用法

   select * from emp

        where sal between 1500 and 3000

  1. in 的用法

select * from emp

     where sal in (1500,3000) -- 仅输出sal为1500和3000的行,in相当于一个数组

select * from emp

     where sal not in(1500,3000)-- not in的用法

13.数据库中不等于有两种表示: !=  <>   推荐使用第二种 , 或取反为并 ,并取反为或

14.top 用法

Select top 2 *from emp

Select top 5 percent * from emp

Percent 是百分比

SQL server是用top来作分页的

Oracle是用rownum分页

什么时候用到分页?

当你的结果有很多(例如一万行),你就需要分页,来规定每页仅显示10个结果,比如百度和谷歌都是规定了每页可以显示多少个结果

虽然数据库都大同小异,但是由于各自使用的语言的不同,用一种语言无法完全实现代码的全移植。

可以使用中间软件写成代码,在选择要转换成何种数据库实体,生成与之匹配的代码。

完全跨平台是不可能的,但要尽量写的跨平台些。

15.Order by sal desc  -- desc 降序

Order by 的用法

例:  seclet top 4 *④

           From emp①

           Where sal between 1500 and 3000 ②

           Order by sal desc ③

执行顺序是:①②③④

16.select * from emp

Where comm != null  ①

<> null ② --这三个结果都是error

= null ③

总结:null不能参与<>,!=,=运算

      要想用null,可以用Is,not is

     Where comm is null

另外,零与null不一样, null是没有值,零一个值

 零与null的区别:

      Null 不参与<>,!=,=运算

      Null不是一个值

      任何值都可以是null,但如何值不能使零

17.select empno,ename,sal*12+comm “年薪” from emp

由于comm是奖金,有null的时候会导致sal*12+comm的结果为null,因为null不是一个值无法参与运算

那怎么解决这个问题呢?

将sal*12+comm换成sal*12+isnull(comm,0)

isnull(comm,0)意思是:如果comm是null,返回值为0

18.select * from emp order by deptno,sal

   --order by 先排deptno,deptno相同了,再按sal排,并非把deptno,sal做为一个整体排序

升序 asc

降序 desc

对其中一个字段指定的排序标准不会影响到其他字段的排序,如果不指定排序标准默认为升序,推荐给每个字段指定排序标准。

19.模糊查询:搜索引擎会用到

Select *

     From emp

     Where ename like ‘%a%’;--注意应该用带引号引起,单引号音乐能够字符串,双引号用于对象的名字,这个地方经测试双引号结果为error

通配符:

%     任意多个字符

_      下划线  1个字符

[a-f]   a到f的任意单字符

[a,f]   a或f中的一个字符  例子: ‘_[a,f]’

[~a-f]  不是a到f中的任意一个字符的其他字符

\      转义字符,使得%不会因为是sql server保留字符而被当做任意字符来用。用法:’%\%%’  escape’\’这个的意思是查找内容中有%的名字,escape意思是逃脱,就是说明什么是转义字符

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值