mysql中的一些常用语句

1、四大操作语句——增删改查

此处的示例表名字为 test_table

1.增

1
INSERT INTO test_table (NAME,PASSWORD) VALUES ('jack',123456) // 给test_table中的NAME,PASSWORD两个字段插入值

2.删

1
2
3
DELETE from test_table // 删除test_table表中所有数据

DELETE from test_table WHERE ID = 1// 删除test_table表中ID字段值为1的数据

3.改

1
2
3
UPDATE test_table SET PASSWORD = '123456a' WHERE id = 1; // 更新test_table中id为1的PASSWORD字段

UPDATE test_table SET title='测试的title',description='测试的description',href='测试的href' WHERE ID =1; //更新多个字段

4.查

1
2
3
SELECT * FROM test_table  // 搜索test_table表中所有字段

SELECT Title,Src FROM test_table // 搜索test_table表中的Title和Src两个字段

2、子句

1.WHERE 子句

WHERE 子句用于过滤记录。

1
2
3
4
5
6
7
8
9
SELECT * FROM test_table WHERE ID = 1; //搜索test_table表中id为1的数据

SELECT * FROM test_table WHERE AGE>18; // 搜索test_table表中AGE大于18的数据

SELECT * FROM test_table WHERE AGE<=18; // 搜索test_table表中AGE小于等于18的数据

SELECT * FROM test_table WHERE AGE>=18 AND NAME = 'jack'; // 搜索test_table表中AGE大于等于18并且NAME等于‘jack’的数据

SELECT * FROM test_table WHERE AGE>=18 OR NAME = 'jack'; // 搜索test_table表中AGE大于等于18或者NAME等于‘jack’的数据

2.ORDER 子句

ORDER 子句负责排序

1
2
3
4
5
SELECT * FROM test_table ORDER BY age ASC; // 从test_table表中搜索所有数据按age升序

SELECT * FROM test_table ORDER BY age DESC; // 从test_table表中搜索所有数据按age降序

SELECT * FROM test_table ORDER BY age ASC,id DESC; // 从test_table表中搜索所有数据按age升序,如果age相同,则按id降序排序

3.GROUP 子句

GROUP聚类 ,即合并相同的数据

1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT COUNT(*) FROM test_table; // 获取test_table表中所有数据的条数

SELECT * FROM test_table GROUP BY age; // 合并相同age的数据,即显示所有age不相同的数据

SELECT age,COUNT(age) FROM test_table GROUP BY age; // 获取所有的age,以及对应的age出现的次数

SELECT class,AVG(score) FROM test_table GROUP BY class; // 算各个班级的平均分

SELECT class,MAX(score),MIN(score) FROM test_table GROUP BY class; // 获取各个班级里面最高分和最低分

SELECT class,SUM(score) FROM test_table GROUP BY class; // 获取班级总分

SELECT class,SUM(score) FROM score GROUP BY class ORDER BY score ASC; // 获取班级总分并按照分钟竟然升序

4.LIMIT 子句

主要作用是限制输出

1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT * FROM test_table LIMIT 10; // 获取test_table中的前10条数据

SELECT * FROM test_table LIMIT 3,8; // 从第三条开始获取8条数据(起始数字为0)


//分页demo,每页20条数据
SELECT * FROM test_table LIMIT 0,20;//第一页

SELECT * FROM test_table LIMIT 20,20;//第二页

SELECT * FROM test_table LIMIT 40,20;//第三页

SELECT * FROM test_table LIMIT (N-1)*20,20;//第N页

5.like 子句

利用通配符匹配而不是直接匹配完全一模一样的

1
2
3
4
5
6
7
8
9
SELECT * FROM test_table WHERE name like '%王%'; // 匹配name字段中包含"王"的数据

SELECT * FROM test_table WHERE name like '王%'; // 匹配name字段中以"王"开头的数据

SELECT * FROM test_table WHERE name like '%王'; // 匹配name字段中以"王"结尾的数据

SELECT * FROM test_table WHERE name like '__王'; // 注意"王"前面有两个'_' ,三位字符且结尾字符是王的

SELECT * FROM test_table WHERE name like '王_'; // 两位字符且以王开头的

3、 综合语句

1
2
3
SELECT class,COUNT(class) FROM test_table WHERE score > 60 GROUP BY class ORDER BY COUNT(class) ASC LIMIT 2;

//从所有班级里面获取分数60分以上的人数,并按照人数排序,最后输出人数最少的两个班级

mysql中的一些常用语句
https://xypecho.github.io/2018/07/23/mysql中的一些常用语句/
作者
很青的青蛙
发布于
2018年7月23日
许可协议