sql常用语句小结

查询:

1、考点:查询账号s_01在所有学科的成绩

select id,pin from student where pin='s_01'

select sid,gid,fenshu from student_group where sid=222

select id,name from group where id=333

账号肯定存在,账号-学科关系存在,则分数一定存在,账号-组关系不存在的,就不用显示,则:

根据左连接特性,左边的表的所有列都会列出,sql语句为:

selct XX from A left join B on A.XX=B.XX where XXX;

select s.pin as 学生,g.name as 学科,sg.fenshu as 分数 from student as s left join student_group as sg on s.id=sg.sid left join group as g on sg.gid=g.id where s.pin='s_01'

2、查询分组的数据,比如查询所有学生的总分, 考点:sum函数、max、min、avg、group by

select s.pin as 学生,sum(sg.fenshu) as 分数 from student as s left join student_group as sg on s.id=sg.sid where s.pin in('s_01','s_02') group by s.pin

sum()一般要与group by一起用。

3、select count(distinct A)from XXX,计算总数时,有重复项,将有重复项的A去重,用此语法。

4、select distinct A from XXX,查询结果时,有重复项,将有重复项的A去重,用此语法。

5、having语法:

SELECT column_name, aggregate_function(column_name)

FROM table_name

WHERE column_name operator value

GROUP BY column_name

HAVING aggregate_function(column_name) operator value

order by XXX

eg:

SELECT Customer,SUM(OrderPrice) FROM Orders

GROUP BY Customer

HAVING SUM(OrderPrice)<2000

order by Customer desc

新增:

INSERT INTO 表名称 VALUES (值1, 值2,....)

eg:INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')(Persons表有4个列)

我们也可以指定所要插入数据的列:

INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

eg:INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees')

修改:

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

删除:

DELETE FROM 表名称 WHERE 列名称 = 值

猜你喜欢

转载自pigcircle-126-com.iteye.com/blog/2391364