
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name [(col_name,...)]
VALUES ({expr | DEFAULT},...),(...),...
[ ON DUPLICATE KEY UPDATE col_name=expr, ... ]
这个语法是很简单的,根据英语单词的意思就可以直接翻译过来:插入 表名(字段1名,字段2名) values (字段1的值,字段2的值)
事情的起因是这样的,在练手项目的时候,表的一个关联字段并没有建立外键关系,只是名义上的外键关系,
而在修改数据的时候,考虑到安全性的问题,确保运行不会报异常的话,每次在做修改字段的时候,都需要先查
寻该字段是否存在,若不存在则需要主动添加。如以下的 userId,是并没有外键的!
如果每次都先查询再修改的话,是相当影响效率的,所以呢,mysql也帮我们准备好了解决方式,感谢mysql团队
1. ** 首先,你需要一个触发条件,也就是唯一索引啦,这是必要的!!! 譬如我想我的userId不重复,又想达到该效果,就需要把该字段设置为唯一索引,譬如:
2. 语法: duplicate key
怎么使用已经很明显了吧 :
insert into 表名(字段1,userId,字段3,....) values(值1,值,值3,....) 意思是,当userId不重复时,则会触发这个插入语句
update 字段1=值1,字段2=值2 .... 就是userId的值已经存在时,则触发这个修改语句
那么我的语句就是:
3. 最后
顺带一提,可以在myBatis的xml文件中获取当前时间哦,使用 now()
学而时记之,人笨只能多写啦,加油哦!!!.....
ALTERTABLE:添加,修改,删除表的列,约束等表的定义。
查看列:desc
表名
修改表名:alter
table
t_book
rename
to
bbb
添加列:alter
table
表名
add
column
列名
varchar(30)
删除列:alter
table
表名
drop
column
列名
修改列名MySQL:
alter
table
bbb
change
nnnnn
hh
int
修改列名SQLServer:exec
sp_rename't_student.name','nn','column'
修改列名Oracle:lter
table
bbb
rename
column
nnnnn
to
hh
int
修改列属性:alter
table
t_book
modify
name
varchar(22)
sp_rename:SQLServer
内置的存储过程,用与修改表的定义。
mysql修改、删除数据记录
mysql数据库相信很多人都接触过,在进行mysql数据库的 *** 作的时候,有人就希望删除或者修改mysql数据库中的一些数据记录。
mysql数据库相信很多人都接触过,在进行mysql数据库的 *** 作的时候,有人就希望删除或者修改mysql数据库中的一些数据记录。DELETE
和UPDATE
语句令我们能做到这一点。
用update修改记录
UPDATE
tbl_name
SET
要更改的列
WHERE
要更新的记录
这里的
WHERE
子句是可选的,因此如果不指定的话,表中的每个记录都被更新。
例如,在pet表中,我们发现宠物Whistler的性别没有指定,因此我们可以这样修改这个记录:
mysql>
update
pet
set
sex=’f’
where
name=”
Whistler”
用delete删除记录
DELETE
语句有如下格式:
DELETE
FROM
tbl_name
WHERE
要删除的记录
WHERE
子句指定哪些记录应该删除。它是可选的,但是如果不选的话,将会删除所有的记录。这意味
着最简单的
DELETE
语句也是最危险的。
这个查询将清除表中的所有内容。一定要当心!
为了删除特定的记录,可用
WHERE
子句来选择所要删除的记录。这类似于
SELECT
语句中的
WHERE
子句。
mysql>
delete
from
pet
where
name=”Whistler”
可以用下面的语句清空整个表:
mysql>delete
from
pet
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)