MySQL表的增删查改总结

java哥 阅读:304 2021-05-14 10:09:02 评论:0

1、增加——insert into
(1)语法:insert into table_name[(column[,column…])] values(valu [,value…]);
(2)案例:
在这里插入图片描述
(3)使用添加语句需要注意的细节
1)插入的数据应与字段的数据类型相同,比如:将‘abc’插入到id列就不行。
2)数据的大小应在规定的范围内,例如:不能将一个长度为60的字符串插入到长度为40的列中。
3)在values中列出的数据位置必须与被加入的列的位置相对应。
4)字符和日期类型应该包含在单引号中。
5)插入空值可以不指定或指定为null。
6)批量插入,格式为:insert into table_name values(),(),()…;
7)隐含列插入,给表中的所有字段添加数据,可以不写前面的字段名称。
8)指定列插入,只给表的某几个字段赋值,则需要指定字段名。

2、增加进阶
在数据插入的时候,假设主键对应的值已经存在,插入失败。
在这里插入图片描述
当主键存在冲突的时候,可以选择性的进行处理:
(1)更新操作
格式为:insert into table_name(字段1,字段2) values(值1,值2) on duplicate key update 字段1=值1,字段2=值2;
在这里插入图片描述
(2)替换——replace into
格式为:replace into table_name values();
在这里插入图片描述
3、更新——update
(1)语法:update table_name set column_name=expr1,[,col_name2=expr2…][where condition][limit n];
(2)案例:
1)将所有物品的价钱修改为80
在这里插入图片描述
2)将id为1的物品价钱修改为100
在这里插入图片描述
3)将id为2的物品的价钱增加20。
在这里插入图片描述
4)goods表中两种物品的价钱为100,将前一种物品的名称改为羊排。
在这里插入图片描述
(3)update使用细节
1)update语法可以用新值更新原有表中的各列值;
2)set子句指示要修改哪些列和要给予哪些值;
3)where子句指定应更新哪些行,如果没有where子句,则更新所有行。
4)where子句后面指定limit,更新限制数量的符合条件的行。

4、删除——delete from
(1)语法:delete from table_name [where condition]
(2)案例:
1)删除表中id为1的数据
在这里插入图片描述
2)复制表数据
A、复制表结构。
在这里插入图片描述
B、把goods表的数据复制到goods2表中。
在这里插入图片描述
3)删除表中的所有记录,但是表的结构还存在。
在这里插入图片描述4)使用truncate清空表中数据,但是表的结构还存在。
在这里插入图片描述
(3)delete和truncate两种删除表记录的比较
1)效果一样,但是truncate的速度块;
2)delete删除表记录成功返回被删除的记录数,而truncate返回0;
3)清空表数据建议用truncate;
4)delete使用细节
A、配合where子句,可以灵活的删除满足条件的记录;
B、delete语句不能删除某一列的值,可以用update置null;
C、使用delete语句仅删除记录,不删除表本身,如果想删除表本身可使用drop table table_name。

5、查询——select
(1)基本语法:select [distinct] *|{column1,column2,…} from table_name;
(2)简单查询:
1)创建一张学生表。
在这里插入图片描述
2)插入数据。
在这里插入图片描述
3)指定查询哪些列,比如:id、姓名、语文成绩。
在这里插入图片描述
4)’ * '号表示所有列,查询时使用‘*’号效率较低,原则上用哪些字段就取哪些字段。
在这里插入图片描述
5)distinct,表示在查询中去除重复行
在这里插入图片描述
6)在查询中可以使用表达式对查询的列进行运算,并使用as起别名。
格式为:select column as 别名 from table_name;
在这里插入图片描述
7)将姓林的学生的总成绩增加60%
在这里插入图片描述
(3)select的where字句
在select中使用where字句进行查询过滤,经常使用的运算符有:
在这里插入图片描述案例:
1)查询姓林的学生的成绩。
在这里插入图片描述
2)查询英语成绩大于90分的同学。
在这里插入图片描述
3)查询英语成绩大于90分并且姓林的学生
在这里插入图片描述4)查询总分大于200的学生。
在这里插入图片描述5)查询语文成绩大于英语成绩的学生。
在这里插入图片描述
6)查询总分大于200,并且语文成绩大于英语成绩,而且姓毕的学生。
在这里插入图片描述
7)查询数学成绩90~100分的学生。
在这里插入图片描述
8)查询语文成绩是98和99的同学。
在这里插入图片描述
(4)select的order by子句
作用:在select语句中使用order by子句排序查询的结果
语法: select column1,column2,… from table order by volumn asc|desc;
order by指定排序的列,也可以是别名。asc表示升序(默认),desc表示降序,order by子句应该位于select语句的结尾。
案例:
1)对数学成绩进行排序
在这里插入图片描述
2)对总分进行排序后,按从高到低输出
在这里插入图片描述
3)按姓毕的学生的语文成绩从高到低排序
在这里插入图片描述
(5)select的limit分页查询
语法:

1)select 字段 from table_name where 条件 limit 起始位置,记录条数; 
2)select 字段 from table_name where 条件 limit 记录条数 offset 起始位置; 

案例:按学生的id号升序取数,每页显示2条记录。
在这里插入图片描述


声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

发表评论
搜索
关注我们