zoukankan      html  css  js  c++  java
  • MySQL 使用笔记

    (1) 创建数据库

    CREATE DATABASE IF NOT EXISTS RUNOOB DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

    创建数据库,该命令的作用:

    • 1. 如果数据库不存在则创建,存在则不创建。
    • 2. 创建RUNOOB数据库,并设定编码集为utf8

    (2)避免重复插入


    关键字/句:insert ignore into,如果插入的数据会导致UNIQUE索引或PRIMARY KEY发生冲突/重复,则忽略此次操作/不插入数据,例:

    INSERT IGNORE INTO `student`(`name`, `age`) VALUES('Jack', 18);

    (3)mysql sql长度限制解决

    my.ini中修改 max_allowed_packet

    (4)ON DUPLICATE KEY UPDATE单个增加更新及批量增加更新的sql

    导入的数据不存在时则进行添加,有修改时则进行更新。

    ON DUPLICATE KEY UPDATE 基于唯一索引或主键使用。

    在mybatis中进行单个增加或修改sql的写法为:

    <insert id="insertOrUpdateCameraInfoByOne" paramerType="com.pojo.AreaInfo">
        insert into camera_info( cameraId,zone1Id,zone1Name,zone2Id,zone2Name,zone3Id,zone3Name,zone4Id,zone4Name)
        VALUES(
            #{cameraId},#{zone1Id},#{zone1Name}, #{zone2Id},
            #{zone2Name}, #{zone3Id}, #{zone3Name},
            #{zone4Id}, #{zone4Name},)
        ON DUPLICATE KEY UPDATE 
        cameraId = VALUES(cameraId),
        zone1Id = VALUES(zone1Id),zone1Name = VALUES(zone1Name),
        zone2Id = VALUES(zone2Id),zone2Name = VALUES(zone2Name),
        zone3Id = VALUES(zone3Id),zone3Name = VALUES(zone3Name),
        zone4Id = VALUES(zone4Id),zone4Name = VALUES(zone4Name)
    </insert>

    在mybatis中进行批量增加或修改的sql为:

    <insert id="insertOrUpdateCameraInfoByBatch" parameterType="java.util.List">
          insert into camera_info(
              zone1Id,zone1Name,zone2Id,zone2Name,zone3Id,zone3Name,zone4Id,zone4Name,
              cameraId
              )VALUES
               <foreach collection ="list" item="cameraInfo" index= "index" separator =",">
                 (
                    #{cameraInfo.zone1Id}, #{cameraInfo.zone1Name}, #{cameraInfo.zone2Id},
                    #{cameraInfo.zone2Name}, #{cameraInfo.zone3Id}, #{cameraInfo.zone3Name},
                    #{cameraInfo.zone4Id}, #{cameraInfo.zone4Name}, 
                    #{cameraInfo.cameraId}, 
                 )
               </foreach>
               ON DUPLICATE KEY UPDATE
                   zone1Id = VALUES(zone1Id),zone1Name = VALUES(zone1Name),zone2Id = VALUES(zone2Id),
                   zone2Name = VALUES(zone2Name),zone3Id = VALUES(zone3Id),zone3Name = VALUES(zone3Name),
                   zone4Id = VALUES(zone4Id),zone4Name = VALUES(zone4Name),
                   cameraId = VALUES(cameraId)
        </insert>

    其他例子

    INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6) ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b);

    (5)CASE WHEN实现批量更新

    UPDATE categories SET
        display_order = CASE id
            WHEN 1 THEN 3
            WHEN 2 THEN 4
            WHEN 3 THEN 5
        END,
        title = CASE id
            WHEN 1 THEN 'New Title 1'
            WHEN 2 THEN 'New Title 2'
            WHEN 3 THEN 'New Title 3'
        END
    WHERE id IN (1,2,3)

    (6)添加字段

    增加一个字段,设好数据类型,且不为空,添加注释

    alert table sys_application add `url` varchar(255) not null comment '应用访问地址';

    alert 更多用法见 mysql alter 用法,修改表,字段等信息



  • 相关阅读:
    Vue(小案例_vue+axios仿手机app)_go实现退回上一个路由
    nyoj 635 Oh, my goddess
    nyoj 587 blockhouses
    nyoj 483 Nightmare
    nyoj 592 spiral grid
    nyoj 927 The partial sum problem
    nyoj 523 亡命逃窜
    nyoj 929 密码宝盒
    nyoj 999 师傅又被妖怪抓走了
    nyoj 293 Sticks
  • 原文地址:https://www.cnblogs.com/betterwgo/p/11559621.html
Copyright © 2011-2022 走看看