MySQL表的增删改查(3)

MySQL表的增删改查

1、CRUD

  • 注释:在SQL中可以使用“–空格+描述”来表示注释说明
  • CRUD:增加(create)、查询(Rereieve)、更新(Update)、删除(Delete)

2、新增(create)

2.0、语法
insert [into] tablename[(column,...)] values(); 

案例:

drop table if exists student;
create table if not exists student(
    id int,
    name varchar(20) comment '姓名',
    birthday timestamp,
    amout decimal(13,2)
);
2.1、单行数据 + 全列插入
insert into student values(1,'张三','1998-02-02',12.45);
insert  student values(2,'李四','1998-03-03',120.45);
2.2、多行数据 + 指定列插入
insert into student(id,birthday,amout) values(3,'2020-09-08',234.45),(4,'2020-07-06',23456.7);

3、查询(Retrieve)

3.0、语法
select [distinct]
	   [from tablename]
	   [where ...]
	   [order by column]
	   [limit ...]
3.1、全列查询
select * from tablename;
3.2、指定列查询
select id,name from tablename;
3.3、查询字段为表达式
select id,name,amout+1  from tablename;
3.4、别名(as)
select column [as] newname from tablename;

3.5、去重(distinct)

使用DISTINCT关键字对某列数据进行去重:

select distinct column from tablename;

3.6、排序(order by)

ASC: 升序(从小到大)— 默认

DESC:降序(从大到小)

select ... from tablename [where ...] 
	order by column [ASC/DESC],[...]

注意

1、没有 order by子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序

2、NULL 数据排序,视为比任何值都小

3、使用表达式及别名排序

select name,amout+id from tablename order by (amout+id) desc;
select name,amout+id as newamout from tablename order by newamout desc;

4、可以对多个字段进行排序,排序优先级随书写顺序

SELECT name, math, english, chinese FROM exam_result
	ORDER BY math DESC, english, chinese;

3.7、条件查询(where)
1、比较运算符
运算符说明
>,>=,<,<=大于,大于等于,小于,小于等于
=等于,NULL 不安全,例如 NULL = NULL 的结果是 NULL
<=>等于,NULL 安全,例如 NULL <=> NULL 的结果是 TRUE(1)
!=, <>不等于
BETWEEN a0 AND a1范围匹配,[a0, a1],如果 a0 <= value <= a1,返回 TRUE(1)
IN (option, …)如果是 option 中的任意一个,返回 TRUE(1)
IS NULL是 NULL
IS NOT NULL不是 NULL
LIKE模糊匹配。% 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字符
2、逻辑运算符
运算符说明
AND多个条件必须都为 TRUE(1),结果才是 TRUE(1)
OR任意一个条件为 TRUE(1), 结果为 TRUE(1)
NOT条件为 TRUE(1),结果为 FALSE(0)

注意

1、where 条件可以使用表达式,但不能使用别名

2、AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分

3.8、分页查询(limit)

起始是从 0 开始的,不是 1

-- 从 0 开始,筛选 n 条结果
select ... from tablename [where ...] [order by ...] limit n;

-- 从 s 开始,筛选 n 条结果
select ... from tablename [where ...] [order by ...] limit s,n;

-- 从 s 开始,筛选 n 条结果,比第二种用法更明确,建议使用
select ... from tablename [where ...] [order by ...] limit n offset s;

4、修改(update)

语法
update tablename set column = expr [...] [where ...] [order by ...] [limit ...]

5、删除(delete)

语法
delete from tablename [where ...] [order by ...] [limit ...]

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值