作者主页:paper jie_博客
本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。
本文录入于《MySQL》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造,将MySQL基础知识一网打尽,希望可以帮到读者们哦。
其他专栏:《算法详解》《C语言》《javaSE》《数据结构》等
内容分享:本期将会分享MySQL表的基础增删查改
目录
前言
新增(Create)
语法
全列插入单行数据
指定列插入多行
查询(Tetrieve)
语法
全列查询
指定列查询
查询字段为表达式
别名查询
去重查询(distinct )
排序(order by)
条件查询(where)
基本查询
and与or
between and
in
模糊查询: like
null查询: is(not)null
分页查询(limit)
修改(update)
语法
全列修改
指定修改
删除(delete)
语法
删除整个表内容
删除指定记录
总结
在程序猿这个圈子里一直有一个常用词CRUD,也就是我们口中的增删查改. 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写.这里我们聊的就是MySQL的表的增删查改.
insert into 表名 values(参数.....); insert into 表名(类型) values(参数....);
举例准备:
create table student(id int, name varchar(20), sex varchar(20));
insert into student values(1, '孙悟空', '石头人'); insert into student values(2, '八戒', '猪');
insert into student(id,name) values(3, '唐僧'); insert into student(name) values('金角大王');
//全列查询 select * from 表名; //指定列查询 select (类型,类型....) from 表名;
栗子前准备:
create table score(naem varchar(20), chinese decimal(4, 2), english decimal(4,2), math decimal(4,2));
select * from score;
select name, math from score;
select name, chinese+english+math from score;
select name, chinese+math+english astotal from score;
select distinct math from score;
//升序排序: select * from score order by math; //降序排序: select * from score order by math desc;
使用表达式及别名排序:
//升序: select name, math+chinese+english as total from score order by total; //降序: select name, math+chinese+english as total from score order by total desc;
多个字段进行排序:
//升序: select * from score order by math, english, chinese; //降序: select * from score order by math, english, chinese desc;
比较运算符:
运算符 | 作用 |
> >= < <= | 大于,大于等于,小于,小于等于 |
= | 等于,但是null不同,null = null 的结果是null |
<=> | 等于,可以使用null,null<=>null的结果是true |
!= <> | 不等于 |
between..and... | 范围表达 [a1, a2] 闭区间 |
in(a1, a2, a3....) | 是括号里的任意一个,返回true |
is null | 是null |
is not null | 不是null |
like | 模糊匹配 %表示任意多个字符 (字符%) |
逻辑运算符:
运算符 | 作用 |
and | 多个条件为true,才为true |
or | 任意一个条件为true,结果就为true |
not | 条件结果为true,结果为false |
这里需要注意:
where条件查询的时候不可以使用别名
and的优先级高于or
select * from score where math < 60; select * from score where Chinese > english; select * from score where chinese+math+english < 150;
select * from score where chinese >60 and math > 60; select * from score where chinese >60 or math > 60; select * from score where chinese >60 or math > 60 and english < 80;
select * from score where chinese berween 60 and 90;
select * from score where chinese in(10, 39, 60, 70, 80);
select * from score where name like '孙%'; select * from score where name like '%孙'; //只能匹配一个字符 select * from score where name like '孙_'; select * from score where name like '_孙';
select * from score where name is null; select * from score where name is not null;
//默认从第一行开始查询: select * from score limit 3; //从指定行开始查询: select * from score limit 3 offset 0;
注意这里的0就是第一行,和数组的下标是一样的~
update 表名 set 参数 = 预期值;
update score set chinese = 80;
update score set chinese = 70 where math > 60;
delete from 表名; delete from 表名 where 限定条件;
delete from score;
delete from score where english < 60;
新增:
单行插入:
insert into 表(字段1, ..., 字段N) values (value1, ..., value N);
-- 多行插入
insert into 表(字段1, ..., 字段N) values(value1, ...),
(value2, ...),
(value3, ...);
查询:
-- 全列查询
select * from 表
-- 指定列查询
select 字段1,字段2... from 表
-- 查询表达式字段
select 字段1+100,字段2+字段3 from 表
-- 别名
select 字段1 别名1, 字段2 别名2 from 表
-- 去重DISTINCT
select distinct 字段 from 表
-- 排序ORDER BY
select * from 表 order by 排序字段
-- 条件查询WHERE:
-- (1)比较运算符 (2)BETWEEN ... AND ... (3)IN (4)IS NULL (5)LIKE (6)AND (7)OR(8)NOT
select * from 表 where 条件
修改:
update 表 set 字段1=value1, 字段2=value2... where 条件
删除:
delete from 表 where 条件