MySQL——表的增删改查

注意:在MySQL中存放数据、保管数据最后都是为了使用,在使用的时候需要我们进行查询,所以最重要的就是查询。
1.增加(插入)
(1)在插入的时候数据应该与对应的数据类型相同。比如创建表的时候类型是int,而在插入的时候却用了char,则会出错。
(2)插入的数据范围应该在规定的范围内
(3)在values中列出的位置应该与被加入的列位置是对应的。
(4)字符或日期类型应该加上单引号
(5)插入控制不指定或指定为null
(6)可以隐含插入,但是要求插入的数量必须是表中全部列数
增加进阶
当主键存在冲突的时候,可以选择以下两种方法进行处理
更新操作:insert into 表名(字段列表) values(值列表) on duplicate key update 字段=新值;
替换操作:replace into 表名(包含字段) values (值列表);
2.更新
可以根据你的条件进行更新
update tb_name set col_name = expr1,[,col_name2=expr2 …] [where condition] [limit n]
eg:
update goods set price=300;
update goods set price =1000 where id = 100;
update使用细节:
。update 语法可以用新值更新原有表中的各列值
。set子句指示要修改哪些列和要给予哪些值
。where子句指定要更新哪些行。如果没有where子句,则更新所有行
。where子句后面指定limit,更新限制数量的符合条件
3.删除
delete from table [where condition]
4.复制表的结构
create table tb2_name like tb1_name;
5.复制表的数据
insert into tb2_name select * from tb1_name;
6.删除表的数据
(1)delete from goods;---->删除整个表的数据,但是表的结构还存在
(2)truncate table goods;---->把整个表的记录删除
delete和truncate两种删除整表的区别
。效果一样,turncate速度更快
。delete语句不能删除某一列的值(可以用update置null)
。使用delete语句仅删除记录,不能删除表本身
在表的优化上面可以考虑他们两个的使用来达到优化的效果
7.查询
select * from table_name;---->对于*表示表中的所有列,查询它的效率是非常低的
select distinct column from tab_name;---->查询这一列去除重复的
select column as 别名 from 表;---->取别名
eg:
select * from student where name like ‘李%’---->%表示一个字符
select * from student where english>90;
select * from student where name like ‘李%’ and id >10;
查询多个值或的关系:
select * from student where math in(89,90,78);/select * from student where math =89 or math=90 or math=78;
对于查询、删除、复制的应用练习
要求:删除表中的重复记录,重复的数据只能有一份
create table tt(id int,name varchar(30));
create table ttnew like tt;
insert into ttnew select distinct * from tt;
drop table tt;
alter table ttnew rename tt;

猜你喜欢

转载自blog.csdn.net/ZhuiZhuDream5/article/details/83507521