3.SQL常用命令一览表
句法:
SELECT * FROM <表名>; #查
INSERT INTO <表名> (字段1, 字段2, ...) VALUES (值1, 值2, ...); #增
UPDATE <表名> SET 字段1=值1, 字段2=值2, ... WHERE ...; #改
DELETE FROM <表名> WHERE ...; #删
提示:星号(*)是选取所有列的快捷方式。
某些数据库会要求末尾加上;号,正常不需要加,如果加的话,可以一行运行多条命令。
students表
id | class_id | name | gender | score |
---|---|---|---|---|
1 | 1 | 小明 | M | 90 |
2 | 1 | 小红 | F | 95 |
3 | 1 | 小军 | M | 88 |
4 | 1 | 小米 | F | 73 |
5 | 2 | 小白 | F | 81 |
6 | 2 | 小兵 | M | 55 |
7 | 2 | 小林 | M | 85 |
8 | 3 | 小新 | F | 91 |
9 | 3 | 小王 | M | 89 |
10 | 3 | 小丽 | F | 88 |
1.查询(Retrieve)
SELECT * FROM <表名> #SELECT * FROM students(从students表中查询所有的行和列)
SELECT * FROM <表名> WHERE <条件表达式> #SELECT * FROM students WHERE score >= 80(从students表中查找分数大于80分的学生)
SELECT * FROM <表名> WHERE <条件表达式> <条件1> AND <条件2> #SELECT * FROM students WHERE score >= 80 AND gender = 'M'(从students表中查找分数大于80分且性别是男的学生)
SELECT * FROM <表名> WHERE <条件表达式> <条件1> OR <条件2> #SELECT * FROM students WHERE score >= 80 OR gender = 'M'(从students表中查找分数大于80分或性别是男的学生)
SELECT * FROM <表名> WHERE <条件表达式> <条件1> NOT <条件2> #SELECT * FROM students WHERE NOT class_id = 2(从students表中查找不是二班的学生)
,简写为class_id <> 2
SELECT 列1, 列2, 列3 FROM <表名> #SELECT id, score, name FROM students(从students表中查找所有的行但是只需要列id,列score,列name的学生)
SELECT 列1 别名1, 列2 别名2, 列3 别名3 FROM <表名> #SELECT id, score points, name FROM students(从students表中查找所有的行但是只需要列id,列score,列name的学生并且把列score重命名为points)
SELECT 列1 别名1, 列2 别名2, 列3 别名3 FROM <表名> WHERE <条件表达式> # SELECT id, score points, name FROM students WHERE gender = 'M'(在上个示例中再叠加一个WHERE条件)
SELECT id, name, gender, score FROM students ORDER BY score #按照score正序排序
SELECT id, name, gender, score FROM students ORDER BY score DESC #按照score倒序排序
SELECT id, name, gender, score FROM students ORDER BY score DESC, gender #先按score倒序排序,分数相同的情况下,按照gender正序排序
SELECT id, name, gender, score FROM students WHERE class_id = 1 ORDER BY score DESC #按照score倒序排序且从一班里面查找
SELECT id, name, gender, score FROM students ORDER BY score DESC LIMIT 3 OFFSET 0 #从0算起,分页查询,每页最多显示3条结果
SELECT COUNT(*) FROM students #从students表中查询总计有多少条记录
SELECT COUNT(*) num FROM students #给COUNT(*)设置num别名
SELECT COUNT(*) boys FROM students WHERE gender = 'M' #查询总计有多少个男生,并将COUNT(*)设置boys别名
SELECT AVG(score) average FROM students WHERE gender = 'M' #查询男生的分数平均值,并将AVG(score)设置别名average
SELECT AVG(score) average FROM students WHERE gender = 'X' #查询的WHERE条件没有匹配到任何行,COUNT()会返回0,而SUM()、AVG()、MAX()和MIN()会返回NULL
SELECT COUNT(*) num FROM students GROUP BY class_id #按照班级依次统计学生记录条数
SELECT class_id, COUNT(*) num FROM students GROUP BY class_id #上个示例不知道是哪个班,添加班级
SELECT class_id, gender, COUNT(*) num FROM students GROUP BY class_id, gender #按照性别和班级分组
SELECT * FROM <表1> <表2> #从多个表中查询
2.增加(Insert)
INSERT INTO <表名> (字段1, 字段2, ...) VALUES (值1, 值2, ...) #例: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) #插入多个记录值
3.更改(Update)
UPDATE <表名> SET 字段1=值1, 字段2=值2, ... WHERE ... #例:UPDATE students SET name='大牛', score=66 WHERE id=1;
UPDATE students SET name='小牛', score=77 WHERE id>=5 AND id<=7 #增加条件
UPDATE students SET score=score+10 WHERE score<80 #把80分以下的同学全部加10分
4.删除(Destroy)
DELETE FROM <表名> WHERE ... #例:DELETE FROM students WHERE id=1
5.备注
SQL 语句对大小写不敏感。SELECT 等效于 select。
原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/basic/sql/1899.html