MySQL基础学习记录(二)单表crud和多表crud

1.记录的操作

1.1单表插入记录

INSERT [INTO] tb_name [(col_name,...)]  {VALUES|VALUE}  ( {expr | default},... ), (....),...

example :

(创建表的时候设置了第一个字段为自动编号)

INSERT  users VALUES (null,'Tim','123',25,1);

INSERT  users VALUES (null,'Tim','123',3+6,1);

INSERT  users VALUES (null,'Tim','123',25,1),(null,'Rose',md5('123'),25,0);





1.2 单表更新


example:

update users set age = age +5, sex=0;

update users set age = age + 10 where  id %2=0;


1.3 单表删除


example:

delete from Users where id = 6;


1.4 单表查询



example:

select 3+5;



select id,username from users;

多表连接后有需要可以加上表的名字:

select users.id,users.username from users;

还可以为列名字加上别名

select id as userId, username as userUsername from users;


1.4.1 where条件语句



1.4.2 group by 对查询结果分组


example:

select sex from users group by sex;


1.4.3having语句设置分组条件



example:

select sex,age from users group by sex having age >35;

select sex,age from users group by sex count(id) >2;

1.4.4order by 对查询结果进行排序


example

select * from  Users order by DESC;

select * from  Users order by age , id DESC;

1.4.5limit 语句限制查询数量


example:

select * from  users limit 2;

select * from users limit 3,2;   //从第四条开始返回两条记录


1.4.6查询后插入记录


example

insert test(username) select username from users where age >= 30


1.5 子查询和连接

子查询:


1.5.1 使用比较运算符的子查询


example:

select goods_id,goods_name, goods_price from tb_goods  where goods_price >=(select avg(goods_prices) from tb_goods);

当子查询返回多个结果时,可以用any some或者all来修饰




1.5.2 使用(not)in/exists的子查询





使用 insert 。。。set语句可以使用子查询

example

把商品的类型等信息用参照表来保存

先把原数据表的cates数据写入到参照表



参照外键表来更新原表

1.5.3多表更新


连接:




example:

把goods_cate的中文该成6



update tdb_goods inner join tdb_goods_cate on goods_cate= cate_name set goods_cate = cate_id;

多表更新之一步到位



example

商品分类参照实现

create table tdb_goods_brands(...) select brand_name from tdb_goods group by brand_name;




update tdb_goods inner join tdb_brands_name on brand_name = brands_name

 set brands_name = brands_id;


这里面其实也绑定了“事实外键”,不是物理外键foreign。


连接的语法结构




1.5.4 内连接 inner join



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值