MySql中IFNULL、CONCAT和INSERT INTO...SELECT FROM多表复制的介绍
来源:互联网 发布:淘宝网.棉拖鞋 妈妈型 编辑:程序博客网 时间:2024/06/06 02:17
这几天做一个功能,对数据库中存在的数据进行统计,涉及到多表操作,这让我想到之前在实习公司做的功能,都是统计和校验数据,我做的方法就是先将数据查找出来,然后循环操作!在实习公司做功能花了一个星期,然后我的Mentor看到后,无力的笑着对我说,“你这样做到后来会将数据库搞垮,数据几十万条,你一条一条的查找去吧,数据库能操作的就尽量用SQL搞定”
今天下午搞了个循环,晚上老大来检查的时候,也说,你这样不行,效率太低了,应该用SQL语句搞,于是给我说了IFNULL和CONCAT,还有INSERT INTO。。。SELECT。。。
果然,最后两条SQL语句,代替了我一大段的java代码。。。一边感叹老大的技术,一边再想把这些SQL函数学一学,这次用过,下次就会用了嘛!
——————————-分割线——————————–
CONCAT(str1,str2,…)
返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。
注意:
如果所有参数均为非二进制字符串,则结果为非二进制字符串。
如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。
一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型 cast。
例如
SELECT CONCAT(CAST(int_col AS CHAR), char_col)
IFNULL(expr1,expr2)
如果 expr1 不是 NULL,IFNULL() 返回 expr1,否则它返回 expr2。也可以理解为它是MySql里的判断赋值函数那这样就不得不介绍IF(expr1,expr2,expr3)
这个更好理解了,就像代码里的三目运算一样expr1为判断语句,如果为真返回的就是expr2,如果expr1为甲返回的就是expr3;
INSERT INTO…SELECT FROM
一般的插入语句的格式为:
Insert INTO table(field1,field2,...) values(value1,value2,...)
但有的时候,你要将一个表的数据进行相关的操作复制到另一个表里,这个时候
SELECT INTO 和 INSERT INTO SELECT
就该上场了
第一种:表必须存在
Insert into Table2(field1,field2,...) select value1,value2,... from Table1 WHERE....
由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外, 还可以插入其他的数据比如常量。
第二种:表不存在
可以允许表不存在,然后向这个不存在的表里复制数据,然后数据库会自动的创建这个表,语法如下:
SELECT vale1, value2 into Table2 from Table1
table2是不存在的,这样查询结束table2会自动创建,数据会和table1一样
很遗憾的是MySQL不支持select。。。。into。。。。阿!西!吧!
贴上官网的文档
INSERT … SELECT Syntax
就到这了。。。。大家早上好,我要睡觉了,,,,
- MySql中IFNULL、CONCAT和INSERT INTO...SELECT FROM多表复制的介绍
- mysql中复制表数据(select into from和insert into select)
- postgreSQL中insert into select 和select into from复制表
- select into from 和 insert into select 的用法和区别复制表数据
- SQL中SELECT INTO和INSERT INTO SELECT(复制表)
- 表的复制语句: select into 和 insert into select
- mysql的insert into from select 和update by select
- INSERT INTO SELECT 和 SELECT INTO FROM 两种表复制语句
- mysql中insert into select from的使用
- mysql中insert into select from的使用
- mysql中insert into select from的使用
- mysql中insert into select from的使用
- mysql中insert into select from的使用
- mysql中insert into select from的使用
- Mysql的INSERT INTO SELECT与SELECT INTO FROM
- mysql中SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
- select into from 和 insert into from 的区别
- insert into from和select from into的区别
- 利用sharpsvn自动提交源码到SVN服务器
- iOS 如何dismiss所有modalViewController
- phpmailer 实现邮件发送功能方法
- iOS基础知识:Objective-C 之 通知(Notification)
- 晚读->写在考试前
- MySql中IFNULL、CONCAT和INSERT INTO...SELECT FROM多表复制的介绍
- 纪念小伙伴们在惠普奋斗的青春!Come on !
- springmvc的model传值到jsp,el的表达式引用无论如何也不成功
- Axure 交互设计 (2)
- iOS 如何获取scrollView状态是否正在滚动
- c文件操作
- 黑马程序员——java基础知识篇——>IO流
- linq
- C#陷阱之构造函数调用虚方法