MySQL中INSERT的一般用法】的更多相关文章

原文链接:http://www.blogjava.net/midnightPigMan/archive/2014/12/15/421406.html MySQL中INSERT的一般用法 INSERT语句是最常见的SQL语句之一,但是MySQL中INSERT语句的用法和标准用法不尽相同,下文就为您详细介绍MySQL中INSERT的一般用法,供您参考. 1用法 在标准的SQL语句中,一次插入一条记录的INSERT语句只有一种形式. INSERT INTO tablename(列名…) VALUES(…
mysql 中find_in_set()和in()用法比较 在mysql中in可以包括指定的数字,而find_in_set()用于特定的数据类型. find_in_set 函数使用方法 个例子来说:有个文章表里面有个type字段,它存储的是文章类型,有 1头条.2推荐.3热点.4图文...1,12,13 等等 .现在有篇文章他既是 头条,又是热点,还是图文,type中以 1,3,4 的格式存储.那我们如何用sql查找所有type中有4图文标准的文章呢??这就要我们的 find_in_set 出马…
mysql中INSTR函数的用法 INSTR(字段名, 字符串) 这个函数返回字符串在某一个字段的内容中的位置, 没有找到字符串返回0,否则返回位置(从1开始) SELECT * FROM tblTopic ORDER BY INSTR( topicTitle, 'ha' ) > 0 DESC SELECT INSTR( topicTitle, 'ha' ) FROM tblTopic mysql中使用instr配合IN排序 将instr结果作为一列,按其排序 select id,1 from…
1. 语法介绍      有三张表a.b.c,现在需要从表b和表c中分别查几个字段的值插入到表a中对应的字段.对于这种情况,可以使用如下的语句来实现: INSERT INTO db1_name (field1,field2) SELECT field1,field2 FROM db2_name 上面的语句比较适合两个表的数据互插,如果多个表就不适应了.对于多个表,可以先将需要查询的字段JOIN起来,然后组成一个视图后再SELECT FROM就可以了: INSERT INTO a (field1,…
转: Mysql中INSERT ... ON DUPLICATE KEY UPDATE的实践 阿里加多 0.1 2018.03.23 17:19* 字数 492 阅读 2613评论 2喜欢 1 一.前言 在日常业务开发中经常有这样一个场景,首先创建一条记录,然后插入到数据库:如果数据库已经存在同一主键的记录,则执行update操作,如果不存在,则执行insert操作: 这个操作可以在业务层做,也可以在数据库层面做: 业务层一般做法是先查询,如果不存在在插入,如果存在则更新,但是查询和插入不是原子…
1. 语法介绍      有三张表a.b.c,现在需要从表b和表c中分别查几个字段的值插入到表a中对应的字段.对于这种情况,可以使用如下的语句来实现: INSERT INTO db1_name (field1,field2) SELECT field1,field2 FROM db2_name 上面的语句比较适合两个表的数据互插,如果多个表就不适应了.对于多个表,可以先将需要查询的字段JOIN起来,然后组成一个视图后再SELECT FROM就可以了: INSERT INTO a (field1,…
在MySQL中进行条件插入数据时,可能会用到以下语句,现小结一下.我们先建一个简单的表来作为测试: CREATE TABLE `books` ( `id` ) NOT NULL AUTO_INCREMENT, `name` ) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `NewIndex1` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 1.insert ignore into 当插入数据时,如出现错误时,如…
新建一个test表,三个字段,id,title,uid,  id是自增的主键,uid是唯一索引: 插入两条数据 '); ');执行单条插入数据可以看到,执行结果如下: [SQL]insert into test(title,uid) VALUES ('123465','1001'); 受影响的行: 1 时间: 0.175s 使用 replace into插入数据时: ');执行结果:[SQL]REPLACE INTO test(title,uid) VALUES ('1234657','1003…
在向表中插入数据时,我们经常会遇到这样的情况:1.首先判断数据是否存在:2.如果不存在,则插入:3.如果存在,则更新. 在SQL Server中可以这样处理: if not exists (select 1 from t where id = 1)? insert into t(id, update_time) values(1, getdate()) else update t set update_time = getdate() where id = 1 那么 MySQL 中如何实现这样的…
要点:Insert into xxx on duplicate key update可以在唯一索引重复的情况下,进行更新操作.           (1) 插入里边的字段应该只有一个 唯一索引:            (2)多行插入用values(value)              (3) 当表中有auto_increment字段id,而且插入字段中含有另外一个unique index ,那么插入时id递增,更新时不变. 在看代码的过程中碰到了这一用法,不太理解,google了一下.它的意义…
如何在mysql从多个表中组合字段然后插入到一个新表中,通过一条sql语句实现.具体情形是:有三张表a.b.c,现在需要从表b和表c中分别查几个字段的值插入到表a中对应的字段.对于这种情况,我们可以使用如下的语句来实现: INSERT INTO db1_name(field1,field2) SELECT field1,field2 FROM db2_name 当然,上面的语句比较适合两个表的数据互插,如果多个表就不适应了.对于多个表,我们可以先将需要查询的字段join起来,然后组成一个视图后再…
MySQL中concat函数 使用方法: CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意: 如果所有参数均为非二进制字符串,则结果为非二进制字符串. 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串. 一个数字参数被转化为与之相等的二进制字符串格式:若要避免这种情况,可使用显式类型 cast, 例如: 1 SELECT CONCAT(CAST(int_col AS CHAR), char_col) My…
MySQL中concat函数使用方法:CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意:如果所有参数均为非二进制字符串,则结果为非二进制字符串. 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串.一个数字参数被转化为与之相等的二进制字符串格式:若要避免这种情况,可使用显式类型 cast, 例如:SELECT CONCAT(CAST(int_col AS CHAR), char_col) MySQL的con…
1. group by的常规用法 group by的常规用法是配合聚合函数,利用分组信息进行统计,常见的是配合max等聚合函数筛选数据后分析,以及配合having进行筛选后过滤. 假设现有数据库表如下: 表user_info,id主键,user_id唯一键 CREATE TABLE `user_info` ( `id` ) NOT NULL AUTO_INCREMENT COMMENT '主键id', `) NOT NULL DEFAULT '' COMMENT '用户编号', `grade`…
在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条,但 往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值.其原因是distinct只能返回它的目标字段,而无法返回其它字段,经过实验, 有如下方法可以实现. 举例如下:这是test表的结构id test1 test21 a 12 a 23 a 34 a 15 b 16 b 27 b 38 b 2比如我想用一条语句查询得到test1不重复的所有数据,…
1.WITH ROLLUP:在group分组字段的基础上再进行统计数据. 例子:首先在name字段上进行分组,然后在分组的基础上进行某些字段统计,表结构如下: CREATE TABLE `test` ( `Id` ) NOT NULL AUTO_INCREMENT, `title` ) DEFAULT NULL COMMENT '标题', `uid` ) DEFAULT NULL COMMENT 'uid', `,) ', `name` ) DEFAULT NULL, PRIMARY KEY (…
WEEK(date[,mode]):该函数返回日期的星期数 模式 星期的第一天 范围 星期 1 是第一天 0 Sunday 0-53 一年中多一个星期天 1 Monday 0-53 一年多3天 2 Sunday 1-53 一年中多一个星期天 3 Monday 1-53 一年多3天 4 Sunday 0-53 一年多3天 5 Monday 0-53 一年中多一个星期一 6 Sunday 1-53 一年多3天 7 Monday 1-53 一年中多一个星期一 mysql> SELECT WEEK('1…
去除左空格函数: LTRIM(str) mysql> SELECT LTRIM(' barbar'); -> 'barbar' 去除右空格函数: RTRIM(str) mysql> SELECT RTRIM('barbar '); -> 'barbar' 过滤指定的字符串: 完整格式:TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str) 简化格式:TRIM([remstr FROM] str) mysql> SELECT…
比起orcale,MySQL相比之下就简单得多了,只需要一个Cast()函数就能搞定.其语法为:Cast(字段名 as 转换的类型 ),其中类型可以为: CHAR[(N)] 字符型  DATE  日期型 DATETIME  日期和时间型 DECIMAL  float型 SIGNED  int TIME  时间型 例如表table1 date 2015-11-03 15:31:26 select cast(date as signed) as date from  table1; 结果如下: da…
str_to_date(str,format) 函数的用法 str_to_date函数将str转化为日期型的数据,format表示转化后的格式. format参数格式: 常用: %Y  年 %m  月 %d  日 %H  小时 %i  分 %s  秒 大全: %a 缩写星期名 %b 缩写月名 %c 月,数值 %D 带有英文前缀的月中的天 %d 月的天,数值(00-31) %e 月的天,数值(0-31) %f 微秒 %H 小时 (00-23) %h 小时 (01-12) %I 小时 (01-12)…
-- 建表语句 CREATE TABLE score( id INT PRIMARY KEY AUTO_INCREMENT, NAME ), SUBJECT ), score INT); -- 添加数据 INSERT INTO score VALUES (), (), (), (), (), (), (); -- 用一条 SQL 语句查询出每门课都大于 80 分的学生姓名 -- 想法: -- 难点:每门课的分数 -- 解决方案:把分数少于80分的进行排除(not exist -- not exi…
coalesce():返回参数中的第一个非空表达式(从左向右依次类推): 例如: select coalesce(null,4,5); // 返回4 select coalesce(null,null,3); // 返回3 select coalesce(1,2,3); // 返回1 如果传入的参数所有都是null,则返回null,比如 SELECT COALESCE(NULL, NULL, NULL, NULL); -- Return NULL 这个参数使用的场合为:假如某个字段默认是null…
SELECT DISTINCT ( CASE ' THEN '关羽' ' THEN ' 张飞' ' THEN ' 赵云' ' THEN ' 马超' ' THEN ' 黄忠' ' THEN ' 魏延' ELSE ' 其他' END ) 注册来源 FROM tb_userInfo t 结果如下:…
STR_TO_DATE() $sql = " SELECT "; $sql .= " m_img,m_content,STR_TO_DATE(m_time,\"%Y-%m-%d\") as m_time "; $sql .= " FROM "; $sql .= " message "; $sql .= " ORDER BY message.m_time DESC "; $rs = $th…
mysql--语法: SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset --举例: select * from table limit 5; --返回前5行 select * from table limit 0,5; --同上,返回前5行 select * from table limit 5,10; --返回6-15行…
SELECT ( @rowNO := @rowNo + 1 ) AS rowno, A.*FROM ( SELECT * FROM t_user ) a, ( SELECT @rowNO := 0 ) b…
SELECT ( @rowNO := @rowNo + 1 ) AS rowno, A.*FROM ( SELECT * FROM t_user ) a, ( SELECT @rowNO := 0 ) b…
Mysql replace与replace into都是经常会用到的功能:replace其实是做了一次update操作,而不是先delete再insert:而replace into其实与insert into很相像,但对于replace into,假如表中的一个旧记录与一个用于PRIMARY KEY或一个UNIQUE索引的新记录具有相同的值,则在新记录被插入之前,旧记录被删除. replace是mysql 里面处理字符串比较常用的函数,可以替换字符串中的内容.类似的处理字符串的还有trim截取…
一.背景 当使用replace语句更新access_apps表时,原有的mark列.remark列的信息丢失. CREATE TABLE `access_apps` (   `base` varchar(11) NOT NULL DEFAULT '',   `business` varchar(64) NOT NULL DEFAULT '',   `owt` varchar(64) NOT NULL DEFAULT '',   `pdl` varchar(64) NOT NULL DEFAULT…
这里主要介绍mysql丰富的内置函数. 数学函数 数学函数相对比较简单,就是涉及一些数值的计算,这里列出数学函数的功能,仅个别给出实例. 函数 作 用 ABX(x) 返回x的绝对值 CEIL(X),CEILING(x) 返回大于或等于x的最小整数 FLOOR(X) 返回小于或等于x的最大整数 RAND() 返回0~1的随机数 RAND(X) 返回0~1的随机数,x值相同时,返回的随机数相同 SIGN(x) 返回x的符号,负数,0,正数对应的符号分为-1,0,1 PI() 返回圆周率 TRUNCA…