您现在的位置是:首页 >技术杂谈 >【MySQL】数据库的增删改查二:CURD网站首页技术杂谈
【MySQL】数据库的增删改查二:CURD
目录
需要知道
需要知道
CURD在SQL表示增加(Create),删除(Delete),修改(Update)和查询(Retrieve)。
?一、增加数据
?1、语法
INSERT [INTO] 表名 指定的列名 VALUES 对应的值
注意:(1)指定的列名可以有多个,和对应的值要一一对应。指定列插入:
(2)当不指定列名时,默认是全部列。全列插入
?2、单行数据,全列插入
insert into goods values (3,'火腿肠',12,'零食','张三');
?3、多行数据,全列插入
insert into goods values (3,'火腿肠',12,'零食','张三'),(4,'汉堡',5,'零食','李四');
❓问题:一次写入一条数据与一次写入多条数据,哪个效率高?
一次写入多条数据(控制在一个合理的范围内)比一次一条的效率更高。
?二、查询数据
?1、全列查询
select * from 表名;
?2、指定列查询
select 指定的列名 from 表名;
?3、查询字段为表达式
注意:结果并不是一个真实存在的列名,而是一个计算之后的结果。
(1)查询的是一个常量
(2)查询的是列与指定值进行运算操作后的值
(3)一列数据中,列与列之间的运算,最终生成的是一个临时表。列名就是查询表达式。
(4)为列指定别名
?4、去重:Distinct
select distinct 根据哪个字段名去重 from 表名;
去重之后的:
注意:去重的指定的字段名一定要每一个都相同才可以成功去重。比如:
?5、排序:Order By
select 要查询的列名 from 表名 Order By 排序依据的列名 ASC(升序)或者DESC(降序);
(1)注意:默认是ASC。但是建议自行指定,不要依赖于默认。
❗ 注意Null值的大小说明:
(1)Null在MySQL中比任何数值都小;
(2)Null与任何值运算都是Null。
(3)Null与别的值比较,都会返回False;
(4)Null就是Null,不是0;
(2)使用表达式以及别名排序
(3)对多个字段排序,排序优先级随书写的顺序。每个被排序的字段都可以指定排序规则,多个字段之间用逗号隔开。
?6、条件查询:where
AND的优先级高于OR。其实不用死记,在使用的时候,用()将自己希望的先执行的括起来就好啦!
(1)like的使用:模糊匹配(注意细节)
(2)where使用的时候,可以用表达式,但是不能使用别名。这是因为在执行sql语句的时候,先执行的是where条件,这样查询效率会更高。因此如果使用别名就无法识别该别名了。
?查询语文成绩大于英语成绩的同学
?查询总分在200分以下的同学
(3)and 和 or的使用
(4)Between ... And .. 查询语文成绩在 [80, 90] 分的同学及语文成绩
使用and也可以实现。
(5)in的使用:查询数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩
使用or也可以实现
(6)Null的查询
?7、分页查询:Limit
什么是分页查询?比如我们在浏览器搜索,一页不可能将所有的结果都加载出来显示。都是分页显示,一页显示多少条数据。
(1)从0开始,筛选出n条记录
select 字段名 from 表名 (where) (order by) Limit 0,要查询的条数;
(2)从第s条数据开始,筛选n条记录(两种写法都可)
select 字段名 from 表名 (where) (order By) Limit s,n;
select 字段名 from 表名 (where) (order By) limit n offset s;
?三、修改数据
update 表名 set 列名=要进行的操作;
(1)将孙悟空的语文成绩更改为99分
(2)将猪悟能同学的数学变为80分,英语变为90分
(3)将总成绩倒数前3的同学的所有语文成绩加上10分。
❗ 注意:如果在更新的时候没有加条件会给所有数据都进行更新,是危险操作!
?四、删除数据
数据库中的删除也是个危险操作,建议眼睛学会就行手忘掉?
delete from 表名 (where) (order by) (limit);
删除孙悟空同学的所有考试成绩
最近的任务还很重,要打起精神来加班加点的完成,不要陷入恶性循环中。继续加油吧!?