mysql当中的一些常用函数

1.mysql当中的一些常用函数

 1>跟日期时间相关的函数

           addtime() -------日期上加一定的时间差
           current_date()-------当前系统日期
           current_time()-------当前系统时间
           current_timestamp()----当前系统时间戳
           date_add()-------------加上相应的日期或时间
           date_sub() ------------减去一定的日期或时间
           datediff()--------------返回两个日期的差
           now()---------------------当前系统的时间
           year()--------------------获取日期的年部分
           month()------------------获取日期的月部分
           day()---------------------获取日期的天部分
           hour,minute,sencond----------小时,分钟,秒
   2> 跟字符串相关的函数
              charset() -----------返回字符串的字符集
              concat()-------------连接字符串
               instr()----------------返回子串在字符串当中出现的位置
               Ucase()--------------转大写字母
                Lcase()---------------转小写字母
               left() ------------------截取子串
                length()-------------获取字符串的长度
               replace()---------------替换字符串
                 strcmp()--------------比较字符串的大小
                  trim()-----------------去掉字符串两端的空格
     3>跟数学运算相关的函数

                  ceiling() ---------------向上取整
                  floor()-----------------向下取整
                  mod()-----------------取余
                  round()-----------------四舍五入
                   rand()------------------0-1的随机数

       4>  其他一些常用函数
                          
                    ifnull()-------------------空值处理
                    md5()--------------------加密

                    limit  开始记录的编号,多少条  ------------------按记录编号进行查询
               
2.数据库约束

                1>主键约束        主键列的值要保证唯一且不为空
                             primary key   ---表级约束  列级约束
                2>唯一键约束     唯一键列的值要保证唯一
                             unique     ----- 表级约束  列级约束
                3> 非空约束        非空值的列的值不能为空值
                             not  null ----------列级约束
                4> 默认值           可以为某列设置默认值
                              default
                5> 外键约束         指定外键列的值必须要来自于另一张表某个列
                              foreign key       定义表级的外键约束                     
             
                         foregin key(外键列)  references  表名(列名)


                   两张表的关系:

                            1-n关系,n-1关系:都应该在相应的多的一方的表中添加一个引用1的一方的数据的外键列
                             1-1关系:  在任意一方的表中添加一个外键列
                            n-n关系:  需要创建一张中间关系表,在中间关系表当中添加2个外键列,分别引用这两张表当中的相关列
                         
  3.连接查询                          
    
        笛卡尔连接查询:

              1>        select     表1.列名,表2.列名
                           from     表1,表2,表3,..表n
              2>        select   表1.列名,表2.列名
                           from  表1
                           inner join   表2
                           inner join  表3
                           ....
                           inner join  表n
          笛卡尔连接查询会查询到两张表当中的记录的乘积,但是会有一些无效的记录.                           

          等值连接查询(内连接):
                        select
                              表1.列名,表2.列名
                        from
                              表1  
                        inner join
                              表2
                        inner join
                              表3
                        inner join
                              表n
                        on
                               连接条件

                        and  
                               连接条件
            
          内连接查询的记录数等于两张表当中满足连接条件的记录数.

如果查询的数据不是来自于一张表,而是来自于多张表,就需要先将多张表进行连接,然后才能查询出想要的数据.

      自连接查询:

        一张表当中某些列具有关系,可以将一张表看成两张表来进行连接查询.
                  select  
                           表别名1.列,表别名2.列
                  from
                            表   别名1
                 inner join
                            表   别名2
                  on  连接条件

         外连接

              两种外连接:

                 1>左外连接:
                                left outer join

                 2>右外连接:
                                right  outer join
                
          外连接在查询数据时,查询到的数据不仅有满足连接条件的记录,还有主表(左外连接就是左边的表,右外连接就是右边的表)当中不满足连接条件的记录.

      集合运算(并集运算)

                   union      union all
       union和union all的区别:

             union是合并两个查询的结果,去除掉重复的记录

             union是直接合并两个查询的结果,不会去除重复的记录
 4.子查询

     就是在select语句当中嵌套select语句

      两种嵌套方式:

        1>可以将select语句嵌套在from子句的后面

                            from   (select语句) 表别名

        2>可以在where子句的表达式中嵌套select语句

               a.带普通运算符的子查询

                     where id =(select id from 表)

               b.带in运算符的子查询
                     where id in(select id from 表)

               c.带any和all的子查询
                  any是任意一个   all是所有

               d.带exists的子查询

                     如果子查询是有结果的,那么where条件就成立,子查询没有结果,where条件就不成立.

你可能感兴趣的:(mysql当中的一些常用函数)