• mysql常用sql语句


    SELECT * FROM table1
    
    SELECT * FROM table1 WHERE id >= 1 AND id<=20 AND id IN(1,2,3,4,5,6,7,8,9) OR (id BETWEEN 1 AND 10)
    
    SELECT * FROM table3 WHERE t3Date >= '2011-08-10'
    
    SELECT * FROM table1 WHERE id IS NOT NULL GROUP BY id,t1Name ORDER BY id,t1Name
    
    SELECT * FROM (SELECT a.*,b.t2Value FROM table1 a LEFT JOIN table2 b ON a.id = b.t2Table1Id) a
    
    SELECT a.*,b.* FROM table1 a LEFT JOIN table2 b ON a.id = b.t2Table1Id/*显示a表中所有数据与b表中所有符合关联条件的数据,b表中有多条满足a表条件的行,则b表所有满足的行都显示,结果中对应a表显示部分的内容相同。如果a表中某条数据在b表中没有关联数据,则查询结果该条记录对应b表列为null空*/
    
    SELECT a.*,b.* FROM table1 a RIGHT JOIN table2 b ON a.id = b.t2Table1Id/*显示b表中所有数据与a表中所有符合关联条件的数据。如果b表中某条数据在a表中没有关联数据,则查询结果该条记录对应a表列为null空*/
    
    SELECT a.*,b.* FROM table1 a INNER JOIN table2 b ON a.id = b.t2Table1Id/*只显示a表b表中所有与对方有对应的数据*/
    
    -- 把 UNION 前后两语句查询的结果累加起来,并且结果中字段值完全一样的多条记录只保留一条,再返回结果。UNION前后俩语句查询的字段名及顺序必须一致
    SELECT field1 FROM table1 WHERE id <10
    UNION
    SELECT field1 FROM table1 WHERE id >20
    
    -- 返回数据库最后插入的id值
    SELECT @@IDENTITY AS id;
    SELECT LAST_INSERT_ID() AS id;
    
    UPDATE table4 a LEFT JOIN table5 b ON a.table5_id = b.id SET a.name = CONCAT(a.name, '.html') WHERE b.id = 1;-- CONCAT(a.name, '.html')CONCAT()将两字符串连接后返回
    -- 批插入
    INSERT INTO table1(id, t1Name) VALUES(1, 'name1'), (2, 'name2'), (3, 'name3');
    
    CREATE TABLE table6 AS  SELECT a.id,b.name  FROM table4 a LEFT JOIN table5 b ON a.table5_id = b.id WHERE b.id = 1;-- 用查询结果创建新表,可用来复制表
    
    -- 为输出结果加排序号
    SELECT (@i:=@i+1) AS num,b.test_field2 FROM test_table a
    LEFT JOIN test_table2 b ON a.id = b.test_table_id
    ,(SELECT @i:=0) AS num_table
    
    -- =========================================常用函数,其中参数均可用字段代替
    -- 字符串函数
    select substring(str, offset, len);  -- 在str中截取从offset开始的len个字符。字符。
    select char_length(str);  -- 获取str中的字符个数;
    select lengtg(str);   -- 获取str中的字节长度;
    select instr(str, otherstr);  -- 获取otherstr第一个字符在str中第一次出现的位置, 如果不存在返回0
    select lpad(str, len, fillstr);  -- 左填充, 用fillstr左填充str,使其达到len长度,如果str的长度>len,返回str的前len个字符。字符。
    select insert(str, pos, len, newstr);  -- 用newstr替换str中从pos开始的len个字符。字符。
    select scrcmp(str1, str2);  -- 比较两个字符串, 如果str1 = str2,返回0, 如果str1 > str2,返回1,如果str1 < str2,返回-1,比较结果与校对集有关。
    -- 汇总函数 SELECT SUM(id) FROM table1 -- 获取括号内字段的和 ; SELECT COUNT(*) FROM table1 -- 获取括号内参数的个数 ; -- 逻辑函数 SELECT IF(2>1, '2大于1', '2不大于1') -- 判断第一个参数,真返回第二个参数,假返回第三个参数 ; SELECT IFNULL(NULL,0) -- 判断第一个参数,不是NULL返回第一个参数,是NULL返回第二个参数 ; SELECT CASE 1 WHEN 1 THEN '这是1' WHEN 2 THEN '这是2' WHEN 3 THEN '这是3' END AS a -- 判断CASE后面的参数值与哪个WHEN的值相等,就返回这个WHEN对应的THEN的值,不限制WHEN与THEN的个数 ; SELECT CONCAT('a','b','c') -- 将括号内参数值连接起来再返回,参数个数无限制 ; -- 取整函数 SELECT CEIL(1.2) -- 向上取整,获取大于参数的最小整数,输出2 ; SELECT FLOOR(1.2) -- 向下取整,获取小于参数的最大整数,输出1 ; SELECT ROUND(1.2),ROUND(1.6) -- 四舍五入取整 ; -- 时间函数 SELECT NOW() -- 获取当前格式化时间 输出 2014-10-16 00:26:04 ; SELECT UNIX_TIMESTAMP(NOW()) -- 获取括号内格式化时间的时间戳,括号为空则返回当前时间戳 ; SELECT UNIX_TIMESTAMP(UTC_DATE()) -- 当天0点时间戳 ; SELECT FROM_UNIXTIME(1413388191, '%Y-%m-%d %H:%i:%s') -- 根据第二参数格式化时间,第二参数可以不写,输出2014-10-15 23:49:51 ; -- 混合应用 SELECT IF(1 IS NOT NULL,CONCAT('1','不是','NULL'),'是NULL') AS a ;
  • 相关阅读:
    【总结】进程和线程的区别
    为什么要求数据链路层帧的长度必须限制在一定范围内?
    常用正交表
    用正交表设计测试用例
    测试中的杀虫剂困境
    作品集-1:淘宝支付宝登陆框
    # 36氪开放日 • 杭州 • 11月10日 # 谈谈参会感受
    《在你身边,为你设计》读后感
    抱怨的背后
    更快的方式实现PHP数组去重
  • 原文地址:https://www.cnblogs.com/pengyin/p/6360058.html
Copyright © 2020-2023  润新知