mysql 常用语法

一、sql 中的 left join 、right join 、inner join之间的区别

  left join      (左联接)     返回包括左表中的所有记录和右表中联结字段相等的记录 
  right join    (右联接)     返回包括右表中的所有记录和左表中联结字段相等的记录

  inner join   (等值连接)  只返回两个表中联结字段相等的记录

二、对表中数据某个字段进行修改

       update table_name set column1 = value1, colunm2 = value2...where ...;

三、给表添加或者修改字段

        ALTER TABLE table_name ADD/MODIFY columnName 类型(int)默认值(DEFAULT NULL)描述(COMMENT)

四、case when 语法

       

        有两种形式

        1、column  是任意需要比较的字段 , value是比较的值 ,result 是指定的结果,name 是返回这一列的列名

           CASE column  
           WHEN value1 THEN result1 
           WHEN value2 THEN result2 ...  
           ELSE result3  

           END AS NAME 

          2、两种写法基本相似

 

           CASE 
           WHEN   column  = value1 THEN result1 
           WHEN   column  = value2 THEN result2 ...  
           ELSE result3  

           END AS NAME 

           练习

SELECT login_name , 
            CASE login_name
            WHEN '黎明'  THEN '明星'
            WHEN 'lisi'  THEN '普通人'
            ELSE '不是人'
            END AS type

            FROM saut_m_user WHERE id > 0

           结果

         

五、mapper 中传入一个数组参数

<if test="applyStatus != null and applyStatus.size() > 0 ">
    loan.apply_status in
	<foreach item="item" index="index" collection="applyStatus" open="(" separator="," close=")">
	   #{item, jdbcType=BIGINT}
	</foreach>
</if>

六,根据多列进行排序

   SELECT * FROM table ORDER BY column1 DESC, column2 DESC

   首先根据column1进行降序排序,如果column1相同,再根据column2进行降序排序

七,MySQL的Limit子句

  Limit子句可以被用于强制 SELECT 语句返回指定的记录数。Limit接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。

  //初始记录行的偏移量是 0(而不是 1):
  mysql> SELECT * FROM table LIMIT 5,10; //检索记录行6-15

  //为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1:
  mysql> SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last

  //如果只给定一个参数,它表示返回最大的记录行数目。换句话说,LIMIT n 等价于 LIMIT 0,n:
  mysql> SELECT * FROM table LIMIT 5;     //检索前 5 个记录行

八 ,GROUP_CONCAT 函数

       GROUP_CONCAT 函数可以在 group by 分组之后,找出哪些列被分在了一起,如下

SELECT id, SUM(loan_balance) AS loan_balance, GROUP_CONCAT(id) as groupIds
	 FROM t_loan_application_detail 
	 where id in (29, 35)
	 GROUP BY payee, collection_account_number, organize_id, 
	 payment_purpose, payment_body, payment_account

       

       我们可以看到,id 为29 ,35的列被分为了一组,这样我们就可以做进一步的关联了!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值