做项目时遇到的关于mysql数据库的一些问题

1、为结果集、表、字段赋别名 ,用关键字 as,两个表的连接A left outer join table B on A.字段值=B.字段值(连接条件),最后选择

select id ,name,age from

(

       (select * from A) as m left outer join (select * from B) as n on m.id=n.id

) as x

where id=xx;

2、ifnull(exper1,exper2) 语句的用法

     (我的用途:执行筛选功能,传入多个参数,执行有值的参数)

         如果exper1为假,则返回exper2,如果exper1为真,则返回exper1

例:

DELIMITER //

CREATE PROCEDURE baseweb.test1 (IN plant VARCHAR(20),IN lids INT)

BEGIN

DECLARE li INT;

DECLARE plants VARCHAR(20);

SELECT *

FROM landapply

WHERE lid=IFNULL(lids,lid) ANDplanting=IFNULL(plant,planting);

END

//

DELIMITER ;

CALLbaseweb.`test1`(NULL,'面条');

备注:lid为数据库中表的字段,lids为参数值,如果lids为空,则返回lid,如果lids为非空,则返回lids

3、case语句的用法

DELIMITER //

CREATE PROCEDURE `rent_approve`(IN flag INT)

BEGIN

   case flag

   when 0 then (执行这个区块的语句);

   when 1 then (执行这个区块的语句);

   end case ;

END

//

DELIMITER ;


4、select ....into ....语句

SELECT username,money INTO  id, moneys FROM baseweb.`song` WHERE username=12;  //select 语句

备注:username,money为数据库表的字段,id,moneys为输出参数,将username,money的值赋值给id,moneys 里面


5、mysql 中limit分页

在选出的结果集后面添加    LIMIT 第几条记录,偏移量;  

eg:SELECT * FROM landapply


SELECT * FROM landapply LIMIT 2,2;


6、给选出的字段赋默认值

SELECT IFNULL(resource,'ui'),la_id FROM landapply

7、如何在MySQL从多个表中组合字段然后插入到一个新表中,通过一条sql语句实现。具体情形是:有三张表a、b、c,现在需要从表b和表c中分别查几个字段的值插入到表a中对应的字段。对于这种情况,我们可以使用如下的语句来实现:

 INSERT INTO db1_name(field1,field2) SELECT field1,field2 FROM db2_name
(注:不需要加values)

eg:INSERT INTO landrentinfo(chargeDate,endTime,lid,planting,startTime,userId,applyDept)
(
    SELECT CURDATE() AS dates,la.endTime,la.lid,la.planting,la.startTime,la.applicantId,applyDept
    FROM landapply AS la
    WHERE la_id IN(1,3,4)
)


8、判断选出的字段是否为空用is null或者is not null

9、if语句嵌套if语句时,第二个if语句不加括号

10、在对输入参数string类型的进行操作时,不能直接加单引号
        SET str=CONCAT('%',str,'%');

11、数据库中尽量不要用date型的,否则查询或者匹配时会报错,用varchar类型的

12、SELECT ROW_COUNT(); 可以查询到(insert、delete、update)所影响的条数

13、TRUNCATE TABLE ‘Table name’;



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值