zoukankan      html  css  js  c++  java
  • mysql查漏补缺

    Mysql查漏补缺
    1.mysql中+的作用:
            1.如果两边都为数值,则数值直接相加
            2.如果一边为数值一边不为数值,则尝试将不为数值的一边进行转换:
    	         1.转换成功,直接相加
    		 2.转换不成功,转换成0后相加
           3.如果有一边为null,则不管另外一边为什么都为null
    2.mysql中转义:
          1.使用直接进行转义
          2.使用escape关键字制定转义字符 
    	  eg:查询文章标题中包含_的文章
    	  select * from article where article_title liek '%\_%';
    	  select * from article where article_title like '%$_%'escapse'$';
    3.查询的结果中有null:
          1.为了避免结果不符合预期可以用IFNULL(selectValue,replaceVulue)函数 进行处理,如果查询的值为null会自动替换为replaceValue
    4.mysql约束:
          1.六大约束
                1.NOT NULL:保证字段不为空
    	    2.DEFAULT:保证字段有默认值
    	    3.PRIMARY:保证字段具有唯一性且非空,只可以有一个主键,可以用多个字段来组成这个主键
    	    4.UNIQUE:保证唯一性但可以为空可以有多个
    	    5.CHECK:mysql中不支持
      	    6.FOREIGN KEY:限制i两个表的关系,用于保证改字段的值必须来自主表的关联列的值
        2.添加约束的时机
    	    1.创建表时
    	   2.修改表时
    	3.添加约束的分类
    	    1.列级约束:六大约束语法上都支持,但是外键约束没有效果
    		2.表级约束:除了非空,默认,其他的都支持
    		    1.语法:
    			   在各个字段的最下面
    			   [constraint 约束名] 约束类型(字段名)
    		    2.外键的一些特点:
    			   1.在从表上添加外键
    			   2.所设置外键的字段不能为主键
    			   3.外键所参考的字段必须为key(primary key,unique)
    			   4.两个字段必须具有相同的数据类型和约束
    			   5.插入数据和删除数据时应该注意主表从表的先后顺序
    			   
    5.mysql事务:https://www.cnblogs.com/huanongying/p/7021555.html
        1.ACID:原子性,一致性,隔离性,持久性 
        2.事务的创建(隐式事务和显式事务)
            1.显式事务(如果不commit也不rollback则数据只会在当前会话中有效):
    		       1.set autocommit=0;
    			2.start transction;
    			3.编写sql语句
    			4.commit;或者rollback;
        3.一些并发的问题
    	        1.脏读
    		2.不可重复读
    		3.幻读
    	4.隔离级别
    	        1.读未提交
    		2.不可重复读
    		3.可重复读
    		4.串行化
    	5.回滚:
    	        1.rollback
    		2.savepoint+rollback
    6.delete和trancate区别
       1.delete删除表结构和数据,支持回滚
       2.trancate删除表数据,不支持回滚
    7.自定义用户变量
       1.创建 set@变量名=变量值
       2.查看select @变量名
    8.存储过程和函数(这里以存储过程为例)(类似于方法)
    	1.创建存储过程
    	   create procedure 存储过程名(参数列表)
    	   begin
    	      方法体(一组合法有效的sql语句)
    	   end
    	   注意:1.参数列表包含三部分
    	            1.参数模式:in out inout
    				2.参数名
    				3.参数类型
    		    2.存储过程体只有一句话可以省略begin end
    		    3.存储过程中的每条sql语句结尾必须加分号,存储过程结束可以通过DELIMITER设置结束标志
    	2.调用存储过程
    	    call 存储过程名(实参列表名)
    	3.删除存储过程
    	   drop procedure 存储过程
    
  • 相关阅读:
    使用 BinToHex() 把 TBytes 转换为十六进制字符串 回复 "梧桐栖凤" 的问题
    ASP.NET中UrlEncode应该用Uri.EscapeDataString()
    抛弃WebService,在.NET4中用 jQuery 调用 WCF
    事实证明Ajax的世界更需要ASP.NET MVC
    tinyMCEPopup.close轻松让IE 9 RC崩溃
    不走寻常路:在WebForm中使用MVC
    关于ASP.NET预编译
    不错的VS2010扩展——JSEnhancements,让js和css也折叠
    VS2010 SP1 Beta与VisualSVN的冲突引起VS2010关闭时重启
    Web应用架构探索笔记 —— 查询
  • 原文地址:https://www.cnblogs.com/wantao/p/10596127.html
Copyright © 2011-2022 走看看