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);


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

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


1.2 单表更新

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

example:

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

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


1.3 单表删除

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

example:

delete from Users where id = 6;


1.4 单表查询

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


example:

select 3+5;

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


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条件语句

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


1.4.2 group by 对查询结果分组

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

example:

select sex from users group by sex;


1.4.3having语句设置分组条件

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


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 对查询结果进行排序

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

example

select * from  Users order by DESC;

select * from  Users order by age , id DESC;

1.4.5limit 语句限制查询数量

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

example:

select * from  users limit 2;

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


1.4.6查询后插入记录

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

example

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


1.5 子查询和连接

子查询:

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

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

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

example:

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

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


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


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

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

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

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


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

example

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

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

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


参照外键表来更新原表

1.5.3多表更新

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

连接:

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


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

example:

把goods_cate的中文该成6

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


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

多表更新之一步到位

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


example

商品分类参照实现

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


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


update tdb_goods inner join tdb_brands_name on brand_name = brands_name

 set brands_name = brands_id;


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


连接的语法结构

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

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


1.5.4 内连接 inner join

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