在表中插入数据
insert into table_name (c1, c2, c3…) values (val1, val2, val3…),(val1, val2, val3…)…
在表中插入数据可以指定列插入。
如果不写列的列表,则是全列插入。
可以插入多列。
插入时,如果出错了则我们可能想要修改出错项,可以使用如下格式。
insert into table_name (c1, c2, c3…) values (val1, val2, val3…)on duplicate key update c1=‘v1’, c2=‘v2’…
对于mysql的返回值,使用该操作返回值有三种(0, 1, 2)
0:代表数据表中的数据和要更新的数据相同,不需要修改。
1:则代表该数据没有冲突,可以直接插入。
2:代表冲突并且要修改,该操作的本质是先删除,在增加所以是两次操作。
replace into table_name () values ()
该语句和insert的使用语法差不多,如果插入的数据没有冲突,则直接插入,返回1,如果冲突了,则更新,返回2。
在表中更新数据
update table_name set c1=val1, c2=val2… where … order by…
update一般和where字句使用,如果不用where字句,则直接改变一列,搭配order by可以进行筛选更新。
改变某一行。
使用order by可以实现排序筛选更新。
比如按other降序排序,更新前三行。
在表中删除数据
delete from table_name where… order by…
对于delete,一般使用where字句配合,否则就会删除全部数据,同时也可以搭配order by进行筛选删除。
在表中查询数据
表中查询数据是mysql中常用的操作。
select [c1, c2, c3…] or [ *(代表全列) ] from [table_name1], [table_name2]… where… order by… having…
一般我们不会直接查找全列,因为表中可能存在许多数据。
对于查询,我们需要了解到mysql语句执行的顺序。
我们先要指明我们需要查询的表,随后判断where的条件,随后按格式显示,最后排序。
在之后我们会学习更多的select字句,之后我们在修改这个顺序。
目前我们所用的查询是单表查询,及只查询一个表,在之后我们会学习多表查询以及子查询。
mysql的查询方式多种多样。
1).distinct可以对筛选的列去重。
2).as字句可以对显示的列重命名
但要注意上述的执行顺序,我们不能在where后使用重命名的名字,因为执行select字句执行的顺序比where的顺序靠后。
order by解析
order by可以对结果进行排序,可以使用在select上,也可以用在delete上,还可以用update上。
order by c1 asc, c2 desc…
asc是将c1列按照升序排序,desc是将c2列按照降序排序。
将上述语句是在c1升序的情况下,c2降序排序。
要注意,排序并非对数据库内的数据进行排序。
limit解析
limit可以对结果进行分页或者筛选。
limte n,limit begin , n。
limte n可以显示从最开始的n行,limit begin n可以显示从begin开始的后n行。
可以用在delete上或者update上,但是在select上,可以使用limit begin,n,但是delete和update不能使用。
where详解
where字句用来判断,进行筛选。
where 各种条件
条件的判断需要运算符,mysql中的运算符如下。