MySql语句:增删改查和联表查

由于测试需要,不符合逻辑的建两张表,表内容如下:

user表:userid,name,age;

inClass表示:userid,className;表示该id所在的班级信息


基本操作:建表、增删改插

建表:

-- CREATE table InClass(
-- userid int NOT NULL PRIMARY KEY AUTO_INCREMENT,
-- className VARCHAR(4)
-- );

增:

INSERT INTO user VALUES(0,'小白','30');

删:

DELETE FROM user where name='赵日天';

改:

UPDATE user set name='赵日天' where userid=1;


查:

SELECT * FROM user;


两个表数据如下:

user:


inClass:



多表联查:查询名字叫小红的,所在的班级

两种方法:

第一种:傻瓜式--

SELECT user.name,inClass.className FROM user,inclass where user.userid=inClass.userid AND
user.name='小红';

因为两张表关联的地方是ID,其次需要查询的是user中的小红


第二种:join 内连接

SELECT user.name,inClass.className FROM user INNER JOIN inClass ON user.userid=inClass.userid AND
user.name='小红';


对于join的四种方式:join/left join/right join/full join


join是如果有满足条件的就返回符合条件的;

left join是在如果右侧没有匹配的数据,返回左侧的信息;

举个栗子:user表有ID为1,2,3,4的数据,class表有ID为1,2,3,5的数据,如果sql数据为select user.name,class,name from user left join class on user.id=class.id;

呢么返回的数据会是:

id为1的名字 id为1的班级

id为2的名字 id为2的班级

id为3的名字 id为3的班级

id为4的名字 


right join 是在如果左侧没有匹配的数据,返回右侧的信息;同样是上面的例子,返回的数据会是这样的:

id为1的名字 id为1的班级

id为2的名字 id为2的班级

id为3的名字 id为3的班级

                    id为5的班级    



接下来对于full join,就是返回两边的了,上面的例子,数据如下:

id为1的名字 id为1的班级

id为2的名字 id为2的班级

id为3的名字 id为3的班级

id为4的名字 

                    id为5的班级    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值