创建数据库

数据类型
int 数字
bigint 大数字
double 小数
varchar 字符串
text 大文本
date
datetime
timestamp
1.新增
insert into book(mc,price) values('水浒传',22.35)
2.修改
update book set mc='红楼梦的爱粉' where id=1 -- 单个值修改
update book set mc='水浒传的爱妃',price=100 where id=2 -- 多个值修改
3.删除
delete form book --直接删除表数据
delete from book where id= 3
delete from book where mc= '红楼梦' and price=25.35; -- 多条件查询的时候,必须同时满足多个条件才能执行相关
truncate book; -- 删除表的所有数据,新增数据后,id重新开始,操作十分危险
面试题:
drop,delete,truncate的区别?
DELETE:删除后可回滚,可以使用where删除,按行删除
truncate:删除表的数据,mysql不可回滚,保留表结构,自增项重置
drop:删除表或者数据库,不保留表结构,不可回滚
| 场景 | 推荐使用 |
|---|---|
| 删除部分数据 | DELETE |
| 清空表并重置自增列 | TRUNCATE |
| 彻底删除表和所有数据 | DROP |
4.查询
在Java中查询到1条记录返回的是List,多条的话是对象
- as
- like
- join
- group by …having
- order by
- limit
like
select * from book where mc like '%三%' -- 全模糊
select * from book where mc like '三%' -- 左模糊
select * from book where mc like '%三' -- 左模糊



as & like
select mc as 名称,price as 价格 from book where mc like '%三%' and price=52.00
或者
select mc 名称,price 价格 from book where mc like '%三%' and price=52.00
left join …on
表1外键关联表2
表1 --book

表2–user
创建user表

建立关联关系:在books上创建

- left join
select * from book left join user on book.user_id=user.id
- left join & as
select b.mc as 书名, b.price as 价格,u.name as 用户名,u.age as 年龄 from book b left join user u on b.user_id=u.id

group by —根据某个字段排序,这个字段如果重复就过滤mc
select mc FROM book GROUP BY mc
having --只能在group by 后使用,相当于where,进行再次过滤
select mc FROM book GROUP BY mc HAVING mc='三国演义'
order by
asc递增
select * from book ORDER BY price asc
desc递减
select * from book ORDER BY price desc
limit
select * from book limit 5 --默认是select * from book limit 0,5 ;没写0,系统会自动加上
select * from book limit 5,10 --第6条数据开始查10条数据
执行顺序
- select 字段1,字段2,distinct
- from 表名
- join on 表名
- where 条件
- group by 分组排列
- having 条件
- order by排序
- limit结果限定
2003

被折叠的 条评论
为什么被折叠?



