3.SQL常用命令一览表

句法:

SELECT * FROM <表名>;                                               #查
INSERT INTO <表名> (字段1, 字段2, ...) VALUES (值1, 值2, ...);      #增
UPDATE <表名> SET 字段1=值1, 字段2=值2, ... WHERE ...;              #改
DELETE FROM <表名> WHERE ...;                                       #删

提示:星号(*)是选取所有列的快捷方式。

某些数据库会要求末尾加上;号,正常不需要加,如果加的话,可以一行运行多条命令。

students表

idclass_idnamegenderscore
11小明M90
21小红F95
31小军M88
41小米F73
52小白F81
62小兵M55
72小林M85
83小新F91
93小王M89
103小丽F88

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

发表评论

电子邮件地址不会被公开。 必填项已用*标注