MySQL插入方式
mysql中常用的三种插入数据的方法
insert into:正常的插入数据,插入数据的时候会检查主键或者唯一索引,如果出现重复就会报错。
# 第一种方式 insert into 表名(字段名1,字段名2,…) values(值1,值2,…);
# 第二种方式:按照表中所有字段进行插入数据,一定要与字段在表中定义的顺序一致 insert into 表名 values(值1,值2,…);
replace into:替换数据。插入时,如果表中已经存在相同的primary key或者unique索引,则用新数据替换;如果没有相同的primary key或者unique索引,则直接插入。
# 第一种方式 replace into 表名(字段名1,字段名2,…) values(值1,值2,…);
# 第二种方式:按照表中所有字段进行插入数据,一定要与字段在表中定义的顺序一致 replace into 表名 values(值1,值2,…);
insert ignore into:插入时,如果表中已经存在相同的primary key或unique索引,则不插入;如果没有相同的primary key或者unique索引,则直接插入。这样就不用校验是否已经存在了,有则忽略,无则添加
第一种方式
insert ignore into 表名(字段名1,字段名2,…) values(值1,值2,…);
第二种方式:按照表中所有字段进行插入数据,一定要与字段在表中定义的顺序一致
insert ignore into 表名 values(值1,值2,…);
对于以上三种方法,如果表中没有设置主键或唯一索引;则效果都是一样的,即直接插入数据。
substring和substr的区别(相同与不同)
SUBSTR()
mysql中,substr()函数的作用是:截取字符串
语法:
substr(str,pos):截取从pos位置开始到最后的所有str字符串
substr(str,pos,len)
str:列名、字符串名
pos:开始位置(从哪个位置开始截取),mysql中pos的截止开始位置是从1开始的,不是从0开始的。如果pos的值为正数,则截取的方向是从正序方向查数(如果字符串是4561133,pos=2,则开始截取数就是5,)如果pos的值为负数,则截取的方向是倒序开始数(如果字符串是7894561,pos=-2,则开始截取的位置截取的位置就是6)。
len:截取字符个数(长度)。
SUBSTRING() 函数用法:
SUBSTR() 函数用法:
从字符串中提取子字符串。–函数从特定位置开始的字符串返回一个给定长度的子字符串。
substring()
select substring (str,pot);
select substring (str from len);
str:要提取子字符串的字符串
pot:用于指定字串的开始截取的位置,同样也可以是正数也可以是负数,代表的意义与substr中参数的意义相同。
substr()与substring()的区别:
在js中:
(1) 当有两个参数时候,susbtr()返回从start位置开始length长度的字串
“goodboy”.substr(1.6);
输出结果为:oodboy
(2)substring()返回从start位置开始到end位置的字串(不包含end)
“ goodboy” .substring(1,6);
输出结果为oodbo
truncate和delete有什么区别
truncate
删除表中的内容,不删除表结构,释放空间;
delete
删除内容,不删除表结构,但不释放空间
区别
内存空间
truncate删除数据后重新写数据会从1开始,而delete删除数据后只会从删除前的最后一行续写;内存空间上,truncate省空间
处理速度
因为,truncate是直接从1开始,即全部清空开始,而delete需要先得到当前行数,从而进行续写;所以truncate删除速度比delete快;
语句类型
delete属于DML语句,而truncate和drop都属于DDL语句,这造成了它们在事务中的不同现象:
delete在事务中,因为属于DML语句,所以可以进行回滚和提交操作(由操作者)
truncate和drop则属于DDL语句,在事务中,执行后会自动commit,所以不可以回滚;
语法
delete from 表名 (where…可写可不写,写的话进行选择性删除,不选清空表中数据)
truncate 表名(删除表中的数据,无法回滚的)
delete可以在后续加上where进行针对行的删除
truncate和drop后面只能加上表名,直接删除表,无法where
注意:并且drop和truncate不能够激活触发器,因为该操作不记录各行删除;
drop table 表名
删除表,内容连带结构一起删除