2022.7.8安全第二次作业

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 表名

删除表,内容连带结构一起删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值