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’;