数据库常用SQL语句

1.一张表只有一个字段,而且是自增主键id插入:

insert into 表名 (column1) values (null)       //括号必须有

2.有时候删除了自增字段的一些数据,但序号还是会继续往下排,将自增字段重置为表里数据继续往下排的数据(意思就是没有按顺序接上的数据就要删掉,比如5,7,删掉了6,按照自增的规则接下来就是8,就变成了5,7,8,但要是把7和8删掉并写了该语句,就会从6开始,变成5,6,而不是按照自增的规则变成5,9)

alter table 表名 auto_increment=1

3.选取两张表中想要的字段(可以根据查询条件在结尾加上where条件语句)

select column1,column2 form table1 inner join table2 on table1.column1=table2.column1

4.一个实体类中嵌套了多个其他的实体类集合的sql语句

<select id="findUserByAccount" resultMap="UserRoleMap">
    select * from zty_user u,zty_role r,zty_userrole ur,zty_permission p,zty_rolepermission rp
    where  u.account=#{account}
    and u.user_id=ur.user_id and ur.role_id=r.role_id  and r.role_id=rp.role_id and  rp.permission_id=p.permission_id
</select>


<resultMap id="UserRoleMap" type="com.example.project02.entity.User">
    <id  column="user_id" property="user_id"/>
    <result column="account" property="account"/>
    <result column="password" property="password"/>
    <result column="user_name" property="user_name"/>
    <result column="timing" property="timing"/>
    <result column="last_update" property="last_update"/>
    <result column="is_online" property="is_online"/>
    <collection property="roles" ofType="com.example.project02.entity.Role">
        <id column="role_id" property="role_id"/>
        <result column="role_name" property="role_name"/>
        <result column="role_issys" property="role_issys"/>
                <collection property="permissions" ofType="com.example.project02.entity.Permission">
                    <id column="permission_id" property="permission_id"/>
                    <result column="permission_name" property="permission_name"/>
                    <result column="permission_type" property="permission_type"/>
                    <result column="permission_url" property="permission_url"/>
                </collection>
    </collection>

5.有时候需要在一张表里递归嵌套查询,比如树状图需要查询单表中某条数据的子数据(父、子数据都在一个表里,根据某个字段关联起来)

DELIMITER //
CREATE FUNCTION `getChildLst`(rootId INT)

RETURNS varchar(1000) READS SQL DATA

BEGIN
  DECLARE sTemp VARCHAR(1000);
  
  DECLARE sTempChd VARCHAR(1000);

  SET sTemp = '$';

  SET sTempChd =cast(rootId as CHAR);

  WHILE sTempChd is not null DO

    SET sTemp = concat(sTemp,',',sTempChd);
    
    SELECT group_concat(id) INTO sTempChd FROM t_files where FIND_IN_SET(parent_id,sTempChd)>0;

  END WHILE;

  RETURN sTemp;

END  //
DELIMITER ;

然后在xml文件中写sql语句,返回类型resultmap必须是集合

select *from t_files where find_in_set(id, getChildLst(#{id));

6.多个条件任意一个满足就查询(比如根据姓名或者电话号码)

(1)在mapper层定义方法参数里写(Map param)

(2)xml文件sql语句写判断语句<if test="name!=null">

                                                            and name=#{name}

                                                    </if>

                                                     <if test="tel!=null">

                                                            and tel=#{tel}

                                                    </if>

  (3)service层定义局部变量 Map param=new HashMap();

                                           param.put("name",name);

                                           param.put("tel",tel);

  (4)其他的就一样了

11.SpringBoot整合mybatis实现多条件数据查询_星星藏进星夜-CSDN博客

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值