MySQL学习笔记二

系统 1624 0

Ø function 函数

        函数的作用比较大,一般多用在select查询语句和where条件语句之后。按照函数返回的结果,
      
        可以分为:多行函数和单行函数;所谓的单行函数就是将每条数据进行独立的计算,然后每条数据得到一条结果。
      
        如:字符串函数;而多行函数,就是多条记录同时计算,得到最终只有一条结果记录。如:
        
          sum
        
        、avg等
      
        多行函数也称为聚集函数、分组函数,主要用于完成一些统计功能。MySQL的单行函数有如下特征:
      
            单行函数的参数可以是变量、常量或数据列。单行函数可以接受多个参数,但返回一个值。
      
            单行函数就是它会对每一行单独起作用,每一行(可能包含多个参数)返回一个结果。
      
            单行函数可以改变参数的数据类型。单行函数支持嵌套使用:内层函数的返回值是外层函数的参数。
      
         
      
        单行函数可以分为:
      
            类型转换函数;
      
            位函数;
      
            流程控制语句;
      
            加密解密函数;
      
            信息函数
      

单行函数

         
      
        1、    char_length字符长度
      
        
          select
        
        
          char_length
        
        (tel) 
        
          from
        
        
          user
        
        ;
      
         
      
        2、    sin函数
      
        
          select
        
         sin(age) 
        
          from
        
        
          user
        
        ;
      
        
          select
        
         sin(1.57);
      
         
      
        3、    添加日期函数
      
        
          select
        
         date_add(
        
          '2010-06-21'
        
        , 
        
          interval
        
         2 
        
          month
        
        );
      
        interval是一个关键字,2 month是2个月的意思,2是数值,month是单位
      
        
          select
        
         addDate(
        
          '2011-05-28'
        
        , 2);
      
        在前面的日期上加上后面的天数
      
         
      
        4、    获取当前系统时间、日期
      
        
          select
        
         curdate();
      
        
          select
        
         curtime();
      
         
      
        5、    加密函数
      
        
          select
        
         md5(
        
          'zhangsan'
        
        );
      
         
      
        6、    
        
          Null
        
         处理函数
      
        
          select
        
         ifnull(birthday, 
        
          'is null birthday'
        
        ) 
        
          from
        
        
          user
        
        ;
      
        如果birthday为null,就返回后面的字符串
      
         
      
        
          select
        
        
          nullif
        
        (age, 245) 
        
          from
        
        
          user
        
        ;
      
        如果age等于245就返回null,不等就返回age
      
         
      
        
          select
        
         isnull(birthday) 
        
          from
        
        
          user
        
        ;
      
        判断birthday是否为null
      
         
      
        
          select
        
        
          if
        
        (isnull(birthday), 
        
          'birthday is null'
        
        , 
        
          'birthday not is null'
        
        ) 
        
          from
        
        
          user
        
        ;
      
        如果birthday为null或是0就返回birthday 
        
          is
        
        
          null
        
        ,否则就返回birthday 
        
          not
        
        
          is
        
        
          null
        
        ;类似于三目运算符
      
         
      
        7、    
        
          case
        
         流程函数
      
        case函数是一个流程控制函数,可以接受多个参数,但最终只会返回一个结果。
      
        
          select
        
         name, 
      
        age, 
      
        (
        
          case
        
         sex
      
        
          when
        
         1 
        
          then
        
        
          '男'
        
      
        
          when
        
         0 
        
          then
        
        
          '女'
        
      
        
          else
        
        
          '火星人'
        
      
        
          end
        
      
        ) sex
      
        
          from
        
        
          user
        
        ;
      

 

组函数

组函数就是多行函数,组函数是完成一行或多行结果集的运算,最后返回一个结果,而不是每条记录返回一个结果。

        1、    avg平均值运算
      
        
          select
        
        
          avg
        
        (age) 
        
          from
        
        
          user
        
        ;
      
        
          select
        
        
          avg
        
        (
        
          distinct
        
         age) 
        
          from
        
        
          user
        
        ;
      
         
      
        2、    
        
          count
        
         记录条数统计
      
        
          select
        
        
          count
        
        (*), 
        
          count
        
        (age), 
        
          count
        
        (
        
          distinct
        
         age) 
        
          from
        
        
          user
        
        ;
      
         
      
        3、    
        
          max
        
         最大值
      
        
          select
        
        
          max
        
        (age), 
        
          max
        
        (
        
          distinct
        
         age) 
        
          from
        
        
          user
        
        ;
      
         
      
        4、    
        
          min
        
         最小值
      
        
          select
        
        
          min
        
        (age), 
        
          min
        
        (
        
          distinct
        
         age) 
        
          from
        
        
          user
        
        ;
      
         
      
        5、    
        
          sum
        
         求和、聚和
      
        
          select
        
        
          sum
        
        (age), 
        
          sum
        
        (
        
          distinct
        
         age) 
        
          from
        
        
          user
        
        ;
      
        
          select
        
        
          sum
        
        (ifnull(age, 0)) 
        
          from
        
        
          user
        
        ;
      
         
      
        6、    
        
          group
        
        
          by
        
         分组
      
        
          select
        
        
          count
        
        (*), sex 
        
          from
        
        
          user
        
        
          group
        
        
          by
        
         sex;
      
        
          select
        
        
          count
        
        (*) 
        
          from
        
        
          user
        
        
          group
        
        
          by
        
         age;
      
        
          select
        
         * 
        
          from
        
        
          user
        
        
          group
        
        
          by
        
         sex, age;
      
         
      
        7、    having进行条件过滤
      
        不能在where子句中过滤组,where子句仅用于过滤行。过滤group by需要having
      
        不能在where子句中用组函数,having中才能用组函数
      
        
          select
        
        
          count
        
        (*) 
        
          from
        
        
          user
        
        
          group
        
        
          by
        
         sex 
        
          having
        
         sex <> 2;
      

 

Ø 多表查询和子查询

        数据库的查询功能最为丰富,很多时候需要用到查询完成一些事物,而且不是单纯的对一个表进行操作。而是对多个表进行联合查询,
      
        MySQL中多表连接查询有两种规范,较早的SQL92规范支持,如下几种表连接查询:
      
            等值连接
      
            非等值连接
      
            外连接
      
            广义笛卡尔积
      
        SQL99规则提供了可读性更好的多表连接语法,并提供了更多类型的连接查询,SQL99支持如下几种多表连接查询:
      
            交叉连接
      
            自然连接
      
            使用using子句的连接
      
            使用on子句连接
      
            全部连接或者左右外连接
      
         
      
        SQL92的连接查询
      
        SQL92的连接查询语法比较简单,多将多个table放置在from关键字之后,多个table用“,”隔开;
      
        连接的条件放在where条件之后,与查询条件直接用and逻辑运算符进行连接。如果条件中使用的是相等,
      
        则称为等值连接,相反则称为非等值,如果没有任何条件则称为广义笛卡尔积。
      
        广义笛卡尔积:
        
          select
        
         s.*, c.* 
        
          from
        
         student s, classes c;
      
        等值:
        
          select
        
         s.*, c.* 
        
          from
        
         student s, classes c 
        
          where
        
         s.cid = c.id;
      
        非等值:
        
          select
        
         s.*, c.* 
        
          from
        
         student s, classes c 
        
          where
        
         s.cid <> c.id;
      
        
          select
        
         s.*, c.name classes 
        
          from
        
         classes c, student s 
        
          where
        
         c.id = s.classes_id 
        
          and
        
         s.name 
        
          is
        
        
          not
        
        
          null
        
        ;
      
         
      
        SQL99连接查询
      
        1、交叉连接cross 
        
          join
        
        ,类似于SQL92的笛卡尔积查询,无需条件。如:
      
        
          select
        
         s.*, c.name 
        
          from
        
         student s 
        
          cross
        
        
          join
        
         classes c;
      
         
      
        2、自然连接 
        
          natural
        
         join查询,无需条件,默认条件是将2个table中的相同字段作为连接条件,如果没有相同字段,查询的结果就是空。
      
        
          select
        
         s.*, c.name 
        
          from
        
         student s 
        
          natural
        
        
          join
        
         classes c;
      
         
      
        3、using子句连接查询:using的子句可以是一列或多列,显示的指定两个表中同名列作为连接条件。
      
        如果用natural join的连接查询,会把所有的相同字段作为连接查询。而using可以指定相同列及个数。
      
        
          select
        
         s.*, c.name 
        
          from
        
         student s 
        
          join
        
         classes c 
        
          using
        
        (id);
      
         
      
        4、    
        
          join
        
         … on连接查询,查询条件在on中完成,每个on语句只能指定一个条件。
      
        
          select
        
         s.*, c.name 
        
          from
        
         student s 
        
          join
        
         classes c 
        
          on
        
         s.classes_id = c.id;
      
         
      
        5、    左右外连接:3种外连接,
        
          left
        
         [
        
          outer
        
        ] 
        
          join
        
          right
        
         [
        
          outer
        
        ] 
        
          join
        
        ,连接条件都是通过用on子句来指定,条件可以等值、非等值。
      
        
          select
        
         s.*, c.name 
        
          from
        
         student s 
        
          left
        
        
          join
        
         classes c 
        
          on
        
         s.classes_id = c.id;
      
        
          select
        
         s.*, c.name 
        
          from
        
         student s 
        
          right
        
        
          join
        
         classes c 
        
          on
        
         s.classes_id = c.id;
      
         
      
            子查询
      
            子查询就是指在查询语句中嵌套另一个查询,子查询可以支持多层嵌套。子查询可以出现在2个位置:
      
            from关键字之后,被当做一个表来进行查询,这种用法被称为行内视图,因为该子查询的实质就是一个临时视图
      
            出现在where条件之后作为过滤条件的值
      
         
      
        子查询注意点:
      
            子查询用括号括起来,特别情况下需要起一个临时名称
      
            子查询当做临时表时(在from之后的子查询),可以为该子查询起别名,尤其是要作为前缀来限定数据列名时
      
            子查询用作过滤条件时,将子查询放在比较运算符的右边,提供可读性
      
            子查询作为过滤条件时,单行子查询使用单行运算符,多行子查询用多行运算符
      
         
      
        将from后面的子查询当做一个table来用:
      
        
          select
        
         * 
        
          from
        
         (
        
          select
        
         id, name 
        
          from
        
         classes) s 
        
          where
        
         s.id 
        
          in
        
         (1, 2);
      
        当做条件来用:
      
        
          select
        
         * 
        
          from
        
         student s 
        
          where
        
         s.classes_id 
        
          in
        
         (
        
          select
        
         id 
        
          from
        
         classes);
      
        
          select
        
         * 
        
          from
        
         student s 
        
          where
        
         s.classes_id = 
        
          any
        
         (
        
          select
        
         id 
        
          from
        
         classes);
      
        
          select
        
         * 
        
          from
        
         student s 
        
          where
        
         s.classes_id > 
        
          any
        
         (
        
          select
        
         id 
        
          from
        
         classes);
      

Ø 操作符和函数

        1、    boolean只判断
      
        
          select
        
         1 
        
          is
        
        
          true
        
        , 0 
        
          is
        
        
          false
        
        , 
        
          null
        
        
          is
        
        
          unknown
        
        ;
      
        
          select
        
         1 
        
          is
        
        
          not
        
        
          unknown
        
        , 0 
        
          is
        
        
          not
        
        
          unknown
        
        , 
        
          null
        
        
          is
        
        
          not
        
        
          unknown
        
        ;
      
         
      
        2、    coalesce函数,返回第一个非null的值
      
        
          select
        
        
          coalesce
        
        (
        
          null
        
        , 1);
      
        
          select
        
        
          coalesce
        
        (1, 1);
      
        
          select
        
        
          coalesce
        
        (
        
          null
        
        , 1);
      
        
          select
        
        
          coalesce
        
        (
        
          null
        
        , 
        
          null
        
        );
      
         
      
        3、    当有2个或多个参数时,返回最大的那个参数值
      
        
          select
        
         greatest(2, 3);
      
        
          select
        
         greatest(2, 3, 1, 9, 55, 23);
      
        
          select
        
         greatest(
        
          'D'
        
        , 
        
          'A'
        
        , 
        
          'B'
        
        );
      
         
      
        4、    Least函数,返回最小值,如果有null就返回null值
      
        
          select
        
         least(2, 0);
      
        
          select
        
         least(2, 0, 
        
          null
        
        );
      
        
          select
        
         least(2, 10, 22.2, 35.1, 1.1);
      
         
      
        5、    控制流函数
      
        
          select
        
        
          case
        
         1 
        
          when
        
         1 
        
          then
        
        
          'is 1'
        
        
          when
        
         2 
        
          then
        
        
          'is 2'
        
        
          else
        
        
          'none'
        
        
          end
        
        ;
      
        
          select
        
        
          case
        
        
          when
        
         1 > 2 
        
          then
        
        
          'yes'
        
        
          else
        
        
          'no'
        
        
          end
        
        ;
      
         
      
        6、    ascii字符串函数
      
        
          select
        
         ascii(
        
          'A'
        
        );
      
        
          select
        
         ascii(
        
          '1'
        
        );
      
         
      
        7、    二进制函数
      
        
          select
        
         bin(22);
      
         
      
        8、    返回二进制字符串长度
      
        
          select
        
        
          bit_length
        
        (11);
      
         
      
        9、    char将值转换成字符,小数取整四舍五入
      
        
          select
        
        
          char
        
        (65);
      
        
          select
        
        
          char
        
        (65.4);
      
        
          select
        
        
          char
        
        (65.5);
      
        
          select
        
        
          char
        
        (65.6);
      
        
          select
        
        
          char
        
        (65, 66, 67.4, 68.5, 69.6, 
        
          '55.5'
        
        , 
        
          '97.3'
        
        );
      
         
      
        10、    using改变字符集
      
        
          select
        
         charset(
        
          char
        
        (0*65)), charset(
        
          char
        
        (0*65 
        
          using
        
         utf8));
      
         
      
        11、    得到字符长度char_length,
        
          character_length
        
      
        
          select
        
        
          char_length
        
        (
        
          'abc'
        
        );
      
        
          select
        
        
          character_length
        
        (
        
          'eft'
        
        );
      
         
      
        12、    compress压缩字符串、uncompress解压缩
      
        
          select
        
         compress(
        
          'abcedf'
        
        );
      
        
          select
        
         uncompress(compress(
        
          'abcedf'
        
        ));
      
         
      
        13、    concat_ws分隔字符串
      
        
          select
        
         concat_ws(
        
          '#'
        
        , 
        
          'first'
        
        , 
        
          'second'
        
        , 
        
          'last'
        
        );
      
        
          select
        
         concat_ws(
        
          '#'
        
        , 
        
          'first'
        
        , 
        
          'second'
        
        , 
        
          null
        
        , 
        
          'last'
        
        );
      

Ø 事务处理

        动作
      
            开始事务:
        
          start
        
        
          transaction
        
      
            提交事务:
        
          commit
        
      
            回滚事务:
        
          rollback
        
      
            设置自动提交:
        
          set
        
         autocommit 1 | 0 
      
            atuoCommit系统默认是1立即提交模式;如果要手动控制事务,需要设置set autoCommit 0;
      
            这样我们就可以用commit、rollback来控制事务了。
      
         
      
        在一段语句块中禁用autocommit 而不是set autocommit
      
        
          start
        
        
          transaction
        
        ;
      
        
          select
        
         @
        
          result
        
         := 
        
          avg
        
        (age) 
        
          from
        
         temp;
      
        
          update
        
         temp 
        
          set
        
         age = @
        
          result
        
        
          where
        
         id = 2;
      
        
          select
        
         * 
        
          from
        
         temp 
        
          where
        
         id = 2;
        
          //值被改变
        
      
        
          rollback
        
        ;
        
          //回滚
        
      
        
          select
        
         * 
        
          from
        
         temp 
        
          where
        
         id = 2;
        
          //变回来了
        
      
        在此期间只有遇到commit、
        
          rollback
        
          start
        
         Transaction的禁用autocommit才会结束。然后就恢复到原来的autocommit模式;
      
         
      
        不能回滚的语句
      
            有些语句不能被回滚。通常,这些语句包括数据定义语言(DDL)语句,比如创建或取消数据库的语句,
      
            和创建、取消或更改表或存储的子程序的语句。
      
            您在设计事务时,不应包含这类语句。如果您在事务的前部中发布了一个不能被回滚的语句,
      
            则后部的其它语句会发生错误,在这些情况下,通过发布ROLLBACK语句不能 回滚事务的全部效果。
      
         
      
        一些操作也会隐式的提交事务
      
        如alter、
        
          create
        
          drop
        
        、rename 
        
          table
        
        、lock 
        
          table
        
          set
        
         autocommit、
        
          start
        
        
          transaction
        
          truncate
        
        
          table
        
         等等,
      
        在事务中出现这些语句也会提交事务的
      
            事务不能嵌套事务
      
            事务的保存点
      
        
          Savepoint
        
         pointName/
        
          Rollback
        
        
          to
        
        
          savepoint
        
         pointName
      
        一个事务可以设置多个保存点,rollback可以回滚到指定的保存点,恢复保存点后面的操作。
      
        如果有后面的保存点和前面的同名,则删除前面的保存点。
      
        Release savepoint会删除一个保存点,如果在一段事务中执行commit或rollback,则事务结束,所以保存点删除。
      
         
      
        
          Set
        
         Transaction设计数据库隔离级别
      
        
          SET
        
         [
        
          GLOBAL
        
         | 
        
          SESSION
        
        ] 
        
          TRANSACTION
        
        
          ISOLATION
        
        
          LEVEL
        
      
        { 
        
          READ
        
         UNCOMMITTED | 
        
          READ
        
         COMMITTED | REPEATABLE 
        
          READ
        
         | SERIALIZABLE }
      
        本语句用于设置事务隔离等级,用于下一个事务,或者用于当前会话。
      
        在默认情况下,
        
          SET
        
         TRANSACTION会为下一个事务(还未开始)设置隔离等级。
      
        如果您使用GLOBAL关键词,则语句会设置全局性的默认事务等级,
      
        用于从该点以后创建的所有新连接。原有的连接不受影响。使用SESSION关键测可以设置默认事务等级,
      
        用于对当前连接执行的所有将来事务。
      
        默认的等级是REPEATABLE READ全局隔离等级。
      

 

Ø 注释

        
          select
        
         1+1;     # 单行注释
      
        
          select
        
         1+1;     
        
          -- 单行注释
        
      
        
          select
        
         1 
        
          /* 多行注释 */ + 1;
        
      

Ø 基本数据类型操作

        字符串
      
        
          select
        
        
          'hello'
        
        , 
        
          '"hello"'
        
        , 
        
          '""hello""'
        
        , 
        
          'hel'
        
        
          'lo'
        
        , 
        
          '\'
        
        hello
        
          ';
        
      
            select "hello", "'hello
        
          '", "'
        
        
          'hello'
        
        
          '", "hel""lo", "\"hello";
        
      
         
      
        \n换行
      
            select 'This\nIs\nFour\nLines
        
          ';
        
      
         
      
        \转义
      
            select 'hello \ world!
        
          ';
        
      
            select 'hello \world!
        
          ';
        
      
            select 'hello \\ world!
        
          ';
        
      
            select 'hello \
        
          ' world!'
        
        ;
      

Ø 设置数据库mode模式

        
          SET
        
         sql_mode=
        
          'ANSI_QUOTES'
        
        ;
      
        
          create
        
        
          table
        
         t(a 
        
          int
        
        );
      
        
          create
        
        
          table
        
         "tt"(a 
        
          int
        
        );
      
        
          create
        
        
          table
        
         "t""t"(a 
        
          int
        
        );
      
        craate talbe tab("a""b" 
        
          int
        
        );
      

Ø 用户变量

        
          set
        
         @num1 = 0, @num2 = 2, @
        
          result
        
         = 0; 
      
        
          select
        
         @
        
          result
        
         := (@num1 := 5) + @num2 := 3, @num1, @num2, @
        
          result
        
        ; 
      

Ø 存储过程

        创建存储过程:
      
        delimiter 
        
          //
        
      
        
          create
        
        
          procedure
        
        
          get
        
        (
        
          out
        
        
          result
        
        
          int
        
        )
      
        
          begin
        
      
        
          select
        
        
          max
        
        (age) 
        
          into
        
        
          result
        
        
          from
        
         temp;
      
        
          end
        
        
          //
        
      
        调用存储过程:
      
        
          call
        
        
          get
        
        (@temp);
      
        查询结果:
      
        
          select
        
         @temp;
      
         
      
        删除存储过程:
      
        
          drop
        
        
          procedure
        
        
          get
        
        ;
      
         
      
        查看存储过程创建语句:
      
        show 
        
          create
        
        
          procedure
        
        
          get
        
        ;
      
         
      
        
          select
        
          into
        
         可以完成单行记录的赋值:
      
        
          create
        
        
          procedure
        
         getRecord(sid 
        
          int
        
        )
      
        
          begin
        
      
        
          declare
        
         v_name 
        
          varchar
        
        (20) 
        
          default
        
        
          'jason'
        
        ;
      
        
          declare
        
         v_age 
        
          int
        
        ;
      
        
          declare
        
         v_sex 
        
          bit
        
        ;
      
        
          select
        
         name, age, sex 
        
          into
        
         v_name, v_age, v_sex 
        
          from
        
         temp 
        
          where
        
         id = sid;
      
        
          select
        
         v_name, v_age, v_sex;
      
        
          end
        
        ;
      
        
          call
        
         getRecord(1);
      

Ø 函数

        函数类似于存储过程,只是调用方式不同
      
        例如:
        
          select
        
        
          max
        
        (age) 
        
          from
        
         temp;
      
         
      
        创建函数:
      
        
          create
        
        
          function
        
         addAge(age 
        
          int
        
        ) 
        
          returns
        
        
          int
        
      
        
          return
        
         age + 5;
      
         
      
        使用函数:
      
        
          select
        
         addAge(age) 
        
          from
        
         temp;
      
         
      
        删除函数:
      
        
          drop
        
        
          function
        
        
          if
        
        
          exists
        
         addAge;
      
        
          drop
        
        
          function
        
         addAge;
      
         
      
        显示创建语法:
      
        show 
        
          create
        
        
          function
        
         addAge; 
      

Ø 游标

        声明游标:
        
          declare
        
         cur_Name 
        
          cursor
        
        
          for
        
        
          select
        
         name 
        
          from
        
         temp;
      
        打开游标:
        
          open
        
         cur_Name;
      
        Fetch游标:
        
          fetch
        
         cur_Name 
        
          into
        
         @temp;
      
        关闭游标:
        
          close
        
         cur_Name;
      
         
      
        示例:
      
        
          CREATE
        
        
          PROCEDURE
        
         cur_show()
      
        
          BEGIN
        
      
        
          DECLARE
        
         done 
        
          INT
        
        
          DEFAULT
        
         0;
      
        
          DECLARE
        
         v_id, v_age 
        
          INT
        
        ;
      
        
          DECLARE
        
         v_name 
        
          varchar
        
        (20);
      
        
          DECLARE
        
         cur_temp 
        
          CURSOR
        
        
          FOR
        
        
          SELECT
        
         id, name, age 
        
          FROM
        
         temp;
      
        
          DECLARE
        
        
          CONTINUE
        
         HANDLER 
        
          FOR
        
        
          SQLSTATE
        
        
          '02000'
        
        
          SET
        
         done = 1;
      
      
        
          OPEN
        
         cur_temp;
      
      
          REPEAT
      
        
          FETCH
        
         cur_temp 
        
          INTO
        
         v_id, v_name, v_age;
      
        
          IF
        
        
          NOT
        
         done 
        
          THEN
        
      
        
          IF
        
         isnull(v_name) 
        
          THEN
        
      
        
          update
        
         temp 
        
          set
        
         name = concat(
        
          'test-json'
        
        , v_id) 
        
          where
        
         id = v_id;
      
               ELSEIF isnull(v_age) 
        
          THEN
        
      
        
          update
        
         temp 
        
          set
        
         age = 22 
        
          where
        
         id = v_id;
      
        
          END
        
        
          IF
        
        ;
      
        
          END
        
        
          IF
        
        ;
      
          UNTIL done 
        
          END
        
         REPEAT;
      
      
        
          CLOSE
        
         cur_temp;
      
        
          END
        
      

Ø 触发器

        触发器分为insert、
        
          update
        
        、delete三种触发器事件类型
      
        还有after、before触发时间
      
        创建触发器:
      
        
          create
        
        
          trigger
        
         trg_temp_ins
      
        
          before
        
         insert
      
        
          on
        
         temp 
        
          for
        
        
          each
        
        
          row
        
      
        
          begin
        
      
        insert 
        
          into
        
         temp_log 
        
          values
        
        (
        
          NEW
        
        .id, 
        
          NEW
        
        .name);
      
        
          end
        
        
          //
        
      
         
      
        删除触发器:
      
        
          drop
        
        
          trigger
        
         trg_temp_ins
      

MySQL学习笔记二


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论