持续更新
目录
select
基本查询
SELECT * FROM table_name
注:table_name为查询的表名称,可替换
限制行数
SELECT * FROM table_name limit 5
排序
SELECT * FROM table_name order by tableid desc
注:tableid为排序的字段名称,可替换。
desc表示倒序,asc表示正序。若没有asc或desc的注明则默认正序。
限制条件
精确查询
SELECT * FROM table_name WHERE tableid > 10 AND tableid < 15;
SELECT * FROM table_name WHERE tableid IN (123,222,345) ;
SELECT * FROM table_name WHERE one_field = "HELLO WORLD" ;
SELECT * FROM table_name WHERE one_field != 'HELLO WORLD' ;
SELECT * FROM table_name WHERE one_field IN ('HELLO WORLD','HELLO2','HELLO3') ;
SELECT * FROM table_name WHERE one_field IS NOT NULL ;
例子说明:one_field 表示某个字段名,需替换
1、对于数字字段可以直接用大于小于查询范围,多个条件之间用 and 或 or 来连接
2、可以用 in 来进行多值查询。此查询后半截等同于:WHERE tableid = 123 OR tableid =222 OR tableid =345
返回结果为 tableid =123 或 222 或345 的所有数据
3、文本类型的字段同时支持 单引号和双引号
4、不等于用 != 表示
5、多值查询
6、对于空值 不能写成 WHERE one_field = NULL 要使用 IS 和 IS NOT 关键字来判断空值
模糊查询
SELECT * FROM table_name WHERE one_field LIKE '%你好%'
SELECT * FROM table_name WHERE one_field LIKE '你好%'
SELECT * FROM table_name WHERE one_field LIKE '%你好'
注:
使用百分号来表示其他字符。假设数据库字段如下:
tableid | one_field |
---|---|
1 | 你好吗 |
2 | 很高兴见到你,你好 |
3 | 你猜我今天觉得你好不好呀 |
则此三条查询语句的查询结果id分别为:123、1、 2
其中百分号%在句末的查询速度最快。数据量大时百分号在句首查询速度会很慢。
半模糊查询(find_in_set)
对于库内数据用英文逗号隔开的字符:
tableid | one_field |
---|---|
1 | hello,hi,你好你好 |
2 | 哈哈哈,hi,h |
查询:
SELECT * FROM table_name WHERE FIND_IN_SET('h',one_field)
SELECT * FROM table_name WHERE FIND_IN_SET('hi',one_field)
第一条查询只会返回2,第二条是1和2逗号返回。
update
UPDATE table_name SET one_field = 'hello' WHERE tableid=1
注:若没有where,则会更新全部数据。
delete
DELETE FROM table_name WHERE tableid=12
注:若没有where,则会删除全部数据。
insert
直接插入insert
INSERT INTO table_name (id,one_field) VALUES (1,"test1"),(2,"test2")
去重插入insert ignore
没有重复的时候才插入
INSERT ignore INTO table_name (id,one_field) VALUES (1,"test1"),(2,"test2"),(1,"test1")