zoukankan      html  css  js  c++  java
  • mysql增删改查

    目录:

    1.增加

    例一:两个表的数据互插

    INSERT INTO db1_name(field1,field2) SELECT field1,field2 FROM db2_name

    例二:对于多个表,我们可以先将需要查询的字段join起来,然后组成一个视图后再select from就可以了:

    INSERT INTO a(field1,field2) SELECT * FROM(SELECT f1,f2 FROM b JOIN c) AS tb

     其中f1是表b的字段,f2是表c的字段,通过join查询就将分别来自表b和表c的字段进行了组合,然后再通过select嵌套查询插入到表a中,这样就满足了我们这个场景了,如果需要不止2个表,那么可以多个join的形式来组合字段。需要注意的是嵌套查询部分最后一定要有设置表别名,如下:

    SELECT * FROM(SELECT f1,f2 FROM b JOIN c) AS tb

     即最后的as tb是必须的(当然tb这个名称可以随意取),即指定一个别名,否则在mysql中会报如下错误:

    ERROR 1248 (42000): Every derived TABLE must have its own alias

      即每个派生出来的新表都必须指定别名才可以的。

     2.语句模糊查询

    1.%:表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。

    比如 SELECT * FROM [user] WHERE u_name LIKE '%三%'

    2,_: 表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:
    比如 SELECT * FROM [user] WHERE u_name LIKE '_三_'

    3,[ ]:表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。
    比如 SELECT * FROM [user] WHERE u_name LIKE '[张李王]三' 将找出“张三”、“李三”、“王三”(而不是“张李王三”);

    SELECT * FROM [user] WHERE u_name LIKE '老[1-9]' 将找出“老1”、“老2”、……、“老9”;

    4,[^ ] :表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。
    比如 SELECT * FROM [user] WHERE u_name LIKE '[^张李王]三' 将找出不姓“张”、“李”、“王”的“赵三”、“孙三”等;
    SELECT * FROM [user] WHERE u_name LIKE '老[^1-4]'; 将排除“老1”到“老4”,寻找“老5”、“老6”、……

    5,查询内容包含通配符时
    由于通配符的缘故,导致我们查询特殊字符“%”、“_”、“[”的语句无法正常实现,而把特殊字符用“[ ]”括起便可正常查询。据此我们写出以下函数:
    function sqlencode(str) str=replace(str,"';","';';")
    str=replace(str,"[","[[]") ';此句一定要在最先 str=replace(str,"_","[_]") str=replace(str,"%","[%]") sqlencode=str end function

    存储过程的模糊查询:

    select * from a where a.BrandAbbreviation LIKE concat('%', (CASE
                                         WHEN _keyword = '' THEN
                                                 a.BrandAbbreviation
                                         ELSE
                                                 _keyword
                                         END
                                    ),'%');

     

    作者:chenze
    出处:https://www.cnblogs.com/chenze-Index/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    如果文中有什么错误,欢迎指出。以免更多的人被误导。
  • 相关阅读:
    一起做一款开源软件吧--开源软件诞生1
    牛客-紫魔法师(仙人掌染色-判奇环)
    牛客编程巅峰赛S1第12场 王者C-椭圆曲线(快速乘的运用)
    牛客编程巅峰赛S1第12场 王者B-上上下下(DP)
    牛客编程巅峰赛S1第12场 王者A-锻炼身体(树上追击问题)
    CSUSTOJ 1127-区间方差(线段树)
    Codeforces 1398C- Good Subarrays(区间值为0的个数变形-思维)
    CSUSTOJ 4000-你真的会数据结构吗?(状压+素数分解)
    牛客练习赛67 F-牛妹的苹果树(树上最远点对/区间带权直径-线段树+LCA)
    牛客练习赛67 E-牛妹游历城市(拆位最短路)
  • 原文地址:https://www.cnblogs.com/chenze-Index/p/9977309.html
Copyright © 2011-2022 走看看