我整理的MySQL语句大全如下:


添加一条新记录
INSERT INTO students (class_id, name, gender, score) VALUES (2, '大牛', 'M', 80);
一次性添加多条新记录
INSERT INTO students (class_id, name, gender, score) VALUES
  (1, '大宝', 'M', 87),
  (2, '二宝', 'M', 81);
更新id=1的记录
UPDATE students SET name='大牛', score=66 WHERE id=1;
更新id=5,6,7的记录
UPDATE students SET name='小牛', score=77 WHERE id>=5 AND id<=7;
把所有80分以下的同学的成绩加10分:
UPDATE students SET score=score+10 WHERE score<80;
整个表的所有记录都会被更新
UPDATE students SET score=60;
删除id=1的记录
DELETE FROM students WHERE id=1;
删除id=5,6,7的记录
DELETE FROM students WHERE id>=5 AND id<=7;
整个表的所有记录都会被删除
DELETE FROM students;
查询语句
基本查询
select * from students
条件查询
select * from student where id=1
投影查询
select id,score,name,from students
排序 
按score从低到高
select id,name,gender,score,from  students order by score
按score从低到高
select id,name,gender,score,from  students order by score desc
分页查询
查询第一页
select id,name,gender,score,from students order by score desc limit 3 offset 0
查询第二页
select id,name,gender,score,from students order by score desc limit 3 offset 3
聚合查询
selwct count(*)from students
使用聚合查询并设置结果集的列名为num:
SELECT COUNT(*) num FROM students;
 使用聚合查询并设置WHERE条件:
SELECT COUNT(*) boys FROM students WHERE gender = 'M';
使用聚合查询计算男生平均成绩:
SELECT AVG(score) average FROM students WHERE gender = 'M';
两表联查 外连接 inner join
select  s.id sid s.name s.classid  s.sex from student inner join class c on  s.classid = c.id

两表联查 内连接 outer join
select  s.id sid s.name s.classid  s.sex from student outer join class c on  s.classid = c.id

两表联查左连接  left outer  join
select  s.id sid s.name s.classid  s.sex from student left outer join class c on  s.classid = c.id

两表联查右连接  right outer join
select  s.id sid s.name s.classid  s.sex from student right outer join class c on  s.classid = c.id

多表查询
SELECT
    s.id sid,
    s.name,
    s.gender,
    s.score,
    c.id cid,
    c.name cname
FROM students s, classes c;

本文由 来鹏飞 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论