【Mysql基础】

查询sql

对于这类sql会有很多组合操作,我们需要分别哪些代码是一组,这个方法就是看那些代码在一起操作会生成一个集合。

select count(id) num,class_id from students group by class_id;

students group by class_id 这里将Students分成了三类:class1,class2,class3;所以上述sql等价于

--假如有三个班级
select count(id) num,class_id from students where class_id = 1;
select count(id) num,class_id from students where class_id = 2;
select count(id) num,class_id from students where class_id = 3;

投影查询

使用SELECT 列1, 列2, 列3 FROM ...时,还可以给每一列起个别名,这样,结果集的列名就可以与原表的列名不同。它的语法是SELECT 列1 别名1, 列2 别名2, 列3 别名3 FROM ...。

连接查询

内连接

INNER JOIN查询的写法是:

  1. 先确定主表,仍然使用FROM <表1>的语法;
  2. 再确定需要连接的表,使用INNER JOIN <表2>的语法;
  3. 然后确定连接条件,使用ON <条件...>
  4. 可选:加上WHERE子句、ORDER BY等子句;

现在我需要查所有学生的信息,并且还要加上他们的班级名,但是学生表里只有班级id,所以需要连接class表找到班级名。

select s.id ,s.name,s.gender,s.score,c.name class_name 
from students s inner join class c 
on s.class_id = c.class_id;

在这里我们就可以将from students s inner join class c 当做一个表。

外连接

如果将上面的上面的连接改为外连接的话

SELECT s.id, s.name, s.class_id, c.name class_name, s.gender, s.score
FROM students s
RIGHT OUTER JOIN classes c
ON s.class_id = c.id;

结果会比上面的多一行

这行就是在class表中有但在students表中没有的。

修改sql

insert

insert的基本语法是:

INSERT INTO <表名> (字段1, 字段2, ...) VALUES (值1, 值2, ...);

例子

INSERT INTO students (class_id, name, gender, score) VALUES
  (1, '大宝', 'M', 87),
  (2, '二宝', 'M', 81),
  (3, '三宝', 'M', 83);

update

基本语法
UPDATE <表名> SET 字段1=值1, 字段2=值2, ... WHERE ...;

例子

UPDATE students SET name='大宝' WHERE id=1;

一定要注意update一定要加上where,如果不加它会将整个表都修改了

delete

基本语法
DELETE FROM <表名> WHERE ...;

例子

DELETE FROM students WHERE id=1;

要特别小心的是,和UPDATE类似,不带WHERE条件的DELETE语句会删除整个表的数据:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值