用MSSQLMySQL的学习比较(八)--插入更新删除

用MSSQLMySQL的学习比较(八)--插入更新删除
以同样的方式,它只会解释不同于SQLServer是什么

插入

将多行查询结果插入表中

语法
插入table_name1(column_list1)选择(column_list2)从哪里table_name2(条件)
插入选择也支持SQLServer

table_name1指定表中插入数据;column_list1指定哪些列插入表格插入;table_name2指定插入的数据是从

这表的查询;column_list2指定数据源表的查询的列,必须是在column_list1列表字段数相同,该数据类型是一样的。

条件指定SELECT语句的查询条件。

查询所有记录从person_old表并将其插入到表的人
创建表(人)
我没有空auto_increment int unsigned,
名称char(40)不是NULL默认值,
默认值为0,
信息char(50)null,
主键(id)


创建表(person_old
我没有空auto_increment int unsigned,
名称char(40)不是NULL默认值,
默认值为0,
信息char(50)null,
主键(id)


插入person_old
值(11,哈利',20,'student),(12,31,'beckham,警方)

SELECT * FROM person_old

你可以看到,插入记录是成功的,并person_old是两个记录中显示。下一步,在person_oldperson_old表中的所有记录被插入到表的人
插入人(ID,姓名,年龄,信息)
选择ID,姓名,年龄,从person_old信息;

从人中选择*

您可以看到数据传输是成功的。这里的id字段是自增主键,插入时保证字段值的唯一性。如果不确定,插入时可以忽略该字段。

只插入其他字段的值

如果你再做一次,你会犯错误的。
MySQL和SQL Server之间的差异:

不同的一个

当要导入的数据中有重复值时,MySQL有三种选择

场景1:使用忽略关键字

方案二:替换成

方案三:关于重复密钥更新

第二个和第三个方案没有在这里介绍,因为它们很复杂,不符合要求。这是第一个在这里。
截断表的人

TRUNCATE TABLE persona_old

插入person_old
值(11,哈利',20,'student),(12,31,'beckham,警方)

注意下面这# # INSERT语句不忽略关键词
插入人(ID,姓名,年龄,信息)
选择ID,姓名,年龄,从person_old信息;

插入person_old
值(13,好的,26,'student)

注意下面这# # INSERT语句是忽略关键词
插入忽略到人(ID,姓名,年龄,信息)
选择ID,姓名,年龄,从person_old信息;
您可以看到插入成功。

SQLServer

在SQLServer的一面,如果你想忽略重复键,你需要指定(ignore_dup_key = { }在上)对原建筑的表的时间。

这样,当重复值插入,SQLServer将保持价值的第一次,当第二次发现,SQLServer将忽略它。

不同的两

插入自添加列之间的差异

SQLServer需要使用设置identity_insert表名,将自我增值领域到表中,如果不添加组identity_insert表名

当数据插入表的自增字段的值不能被指定,和ID字段不指定值,和SQLServer自动添加一个给你。
插入人(姓名、年龄、信息)值('feicy ',33,'student)

MySQL不需要它,而且自由度非常大。

可以将id字段的值指定为null,MySQL将自动添加一个id字段给您。
插入人(身份证,姓名、年龄、信息)值(null,'feicy ',33,'student)

还可以指定值。
将忽略为人(ID、姓名、年龄、信息)的值(16,88,'student',')

你也可以不写ID值,mysql会自动帮你添加一个。
将忽略为人(姓名、年龄、信息)值('amy ',12,'BB')

您可以指定id字段的值,或者不能指定它。当id字段列没有插入的值时,这意味着没有重复的值。

自由度是非常大的,而且不需要指定选项的设置identity_insert表名称

三者之间的区别

唯一索引的空值重复问题

MySQL

在MySQL中,惟一的索引将在空字段中失败。
插入测试(a)值(null)

插入测试(a)值(null)
可以重复插入上面的INSERT语句(相同的联合唯一索引是相同的)

SQLServer

SQLServer不工作
创建表(人)
id不是null标识(1,1),
名称char(40)NULL默认值,
默认值为0,
char信息(50)null,
主键(id)


创建唯一索引ix_person_unique { - }。{人}(名称)

插入{ } {人} dbo。
({ },{ },{ })
值(NULL,name - char(40))
1岁-国际
AA——信息字符(50)
),
(NULL)——名称char(40)
2岁-国际
BB——信息char(50)

消息2601,第14级,状态1,第一行
一排重复键不能插入一个独特的指标ix_person_unique.the重复键值对象dbo.person是()。
语句已终止。
更新

更新很简单,没什么要说的。
更新个人信息= 'police'where ID 14和17之间

从人中选择*

删除

删除个人表中某一范围的数据
从ID在14到17之间的人删除

从人中选择*

如果要删除表的所有记录,可以使用以下两种方法

# #方法

删除的人

方法2 # #

截断表的人

与SQLServer,截断表将以更快的速度比删除表

MyISAM引擎下的试验结果,30线

如SQLServer,在截断表执行,自增字段从一开始。
################################
插入忽略到人(ID,姓名,年龄,信息)
选择ID,姓名,年龄,从person_old信息;

从人中选择*

截断表的人

将忽略为人(姓名、年龄、信息)值('amy ',12,'BB')

从人中选择*

当您按照以下语句截断表时,您将从一开始就看到它。
显示表的状态like'person

总结

本节介绍的插入、更新和删除,MySQL,并比较两者之间的区别从SQLServer,尤其是在mysql insert语句的灵活性

刚开始从SQLServer可能有点不合适

如果有不对的地方,欢迎派专噢(一_ u)O

tag:删除学习电脑软件MSSQLMySQL

相关内容