加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL 学习笔记 二

发布时间:2020-12-11 23:57:17 所属栏目:MySql教程 来源:网络整理
导读:上一篇: ? function 函数 、avg等 单行函数 (tel) ; sin(age) ; sin(1.57); date_add( , 2 ); addDate( ,2); curdate(); curtime(); md5( ); 处理函数 ifnull(birthday, ) ; (age,245) ; isnull(birthday) ; (isnull(birthday), , ) ; ,否则就返回birthday

上一篇:

? function 函数

、avg等



单行函数

 (tel)  ;
 sin(age)  ;
 sin(1.57);
 date_add(, 2 );
 addDate(,2);
 curdate();
 curtime();
 md5();
 处理函数
 ifnull(birthday,)  ;
 (age,245)  ;
 isnull(birthday)  ;
 (isnull(birthday),,)  ;
 ,否则就返回birthday   ;类似于三目运算符
 流程函数
 name,
 sex
 1  
 0  
 

 ;

?

组函数

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

 (age)  ;
 ( age)  ;
 记录条数统计
 (*),(age),( age)  ;
 最大值
 (age),( age)  ;
 最小值
 (age),( age)  ;
 求和、聚和
 (age),( age)  ;
 (ifnull(age,0))  ;
  分组
    sex;
 (*)     age;
 *     sex,age;
 (*)     sex  sex <> 2;

?

? 多表查询和子查询

 s.*,c.*  student s,classes c;
 s.*,classes c  s.cid = c.id;
 s.*,classes c  s.cid <> c.id;
 s.*,c.name classes  classes c,student s  c.id = s.classes_id  s.name   ;
,类似于SQL92的笛卡尔积查询,无需条件。如:
 student s   classes c;
 join查询,无需条件,默认条件是将2个table中的相同字段作为连接条件,如果没有相同字段,查询的结果就是空。
 student s   classes c;
 student s  classes c (id);
 … on连接查询,查询条件在on中完成,每个on语句只能指定一个条件。
 student s  classes c  s.classes_id = c.id;
 []  [] ,连接条件都是通过用on子句来指定,条件可以等值、非等值。
 student s   classes c  s.classes_id = c.id;
 student s   classes c  s.classes_id = c.id;
 *  ( id,name  classes) s  s.id  (1,2);
 *  student s  s.classes_id  ( id  classes);
 *  student s  s.classes_id =  ( id  classes);
 *  student s  s.classes_id >  ( id  classes);

? 操作符和函数

 1  ,0  ,  ;
 1   ,0   ,   ;
 (,1);
 (1,1);
);
 greatest(2,3);
 greatest(,,);
 least(2,0);
);
  1  1    2     ;
   1 > 2     ;
 ascii();
 ascii();
 bin(22);
 (11);
 (65);
 (65.4);
 (65.5);
 (65.6);
 (65,66,67.4,68.5,69.6,,);
 charset((0*65)),charset((0*65  utf8));

 ();
 ();
 compress();
 uncompress(compress());
 concat_ws(,,,);
,);

? 事务处理

 


 autocommit 1 | 0 
 ;
 @ := (age)  temp;
 temp  age = @  id = 2;
 *  temp  id = 2;
;
 *  temp  id = 2;
 Transaction的禁用autocommit才会结束。然后就恢复到原来的autocommit模式;
、rename 、lock  autocommit、   等等,monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px">在事务中出现这些语句也会提交事务的
 pointName/   pointName
 Transaction设计数据库隔离级别
 [ | ]   
 UNCOMMITTED |  COMMITTED | REPEATABLE  | SERIALIZABLE }
 TRANSACTION会为下一个事务(还未开始)设置隔离等级。



?

? 注释

1+1; # 单行注释
 1+1;     
 1 

? 基本数据类型操作

 ,,,,hello




;

? 设置数据库mode模式

sql_mode=;
  t(a );
  "tt"(a );
  "t""t"(a );
);

? 用户变量

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

? 存储过程


  (  )

 (age)    temp;
 (@temp);
 @temp;
  ;
  ;
 可以完成单行记录的赋值:
  getRecord(sid )
 v_name (20)  ;
 v_age ;
 v_sex ;
 name,age,sex  v_name,v_age,v_sex  temp  id = sid;
 v_name,v_sex;
;
 getRecord(1);

? 函数

 (age)  temp;
  addAge(age )  
 age + 5;
 addAge(age)  temp;
    addAge;
  addAge;
  addAge; 

? 游标

cur_Name name temp;
 cur_Name;
 cur_Name  @temp;
 cur_Name;
  cur_show()

 done   0;
 v_id,v_age ;
 v_name (20);
 cur_temp    id,name,age  temp;
  HANDLER     done = 1;
 cur_temp;
 cur_temp  v_id,v_name,v_age;
  done 
 isnull(v_name) 
 temp  name = concat(,v_id)  id = v_id;

 temp  age = 22  id = v_id;
 ;
 ;
 REPEAT;
 cur_temp;




? 触发器

、delete三种触发器事件类型
  trg_temp_ins
 insert
 temp   

 temp_log (.id,.name);
  trg_temp_ins

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读