一、插入语句
1、查询的基本语句
插入单行数据:
INSERT INTO table_name [(column_names)] VALUES (column_values);
备注:自增长字段不指定值或者指定null值的时候会触发自增长。
根据查询结果插入多行数据:
INSERT INTO table_name SELECT * FROM table_name2;
把表格二的数据插入到表格一中
二、更新数据
UPDATE table_name SET column_name1=column_value1[,column_name1=column_value1] WHERE predicate;
三、删除数据
DELETE FROM table_name1 WHERE predicate;
四、查询语句
1、查询语句的关系操作
基本操作
- Restriction(限制)
- Projection(投影)
- Cartesian Production(笛卡尔积)
- Union(联合)
- Difference(差)
- Rename(重命名)
附加操作
- Intersection(交叉)
- Natural Join(自然连接)
- Assign(赋值)
拓展操作
- Generalized Projection(广义投影)
- Left Outer Join(左外连接)
- Right Outer Join(右外连接)
- Full Outer Join(全外连接)
2、查询语句的基本结构
SELECT [distinct] hedaing /*distinct:表示重复结果*/
FROM table_name
WHERE predicate
GROUP BY coulmn_name /*对数据进行分组,一般与聚合运算合用*/
HAVING predicate /*对分组数据进行约束*/
ORDER BY column_name [asc|desc] /*asc:升序排序,desc:降序排序*/
LIMIT count,offset;/*count :最多显示多少数据,offset:跳过多少行*/
筛选语句的执行顺序:原表-条件-分组-分组约束-筛选列-排序-限制。
3、条件子句
根据关系运算符来查询:<、>、=
逻辑运算符:AND、OR、NOT、IN
LIKE和GLOB操作符:
和
GLOBLIKE
是 SQLite 中两种用于字符串模式匹配的不同操作符,它们有以下区别:
- 通配符:
GLOB
使用通配符*
和?
,其中*
匹配零个或多个字符,而?
匹配一个字符。LIKE
使用%
作为通配符,其中%
匹配零个、一个或多个字符,而_
匹配一个字符。
- 区分大小写:
GLOB
是区分大小写的,这意味着它将区分字符串的大小写。LIKE
可以是区分大小写或不区分大小写,具体取决于数据库的配置。如果在LIKE
表达式中使用COLLATE NOCASE
,则可以执行不区分大小写的匹配。
- 功能:
GLOB
更接近正则表达式的功能,允许执行更复杂的模式匹配,但它的语法与LIKE
不同。LIKE
是更常见的模式匹配操作符,通常用于执行基本的字符串匹配操作。
- 性能:
- 通常情况下,
LIKE
的性能较好,因为它使用简单的通配符,而不涉及复杂的正则表达式匹配。 GLOB
可能会比较慢,因为它执行更复杂的匹配,特别是在大型数据集上。
- 通常情况下,
综上所述,选择使用 GLOB
还是 LIKE
取决于您的需求。如果您只需要执行基本的字符串匹配,通常建议使用 LIKE
。如果需要执行更高级或复杂的模式匹配操作,可以考虑使用 GLOB
,但请注意性能方面的潜在差异。
in操作符:输入一个值和一列值,若值在列中返回真,否则返回假。
4、分组和分组约束
SELECT type_id,count(*) FROM table_name GROUP BY type_id HAVING count(*) > 20;
从表格中筛选出type_id和对应的数量,并约束数量大于20的type_id和对应的数量。
5、别名
SELECT name,(SELECT count(id) from foods_episodes WHERE food_id = f.id) [AS] count FROM foods [AS] f ORDER BY count desc LIMIT 10;
f是foods表的别名,count是一个子查询结果的别名。AS是一个可选的关键字
6、子查询
用在where in 子句,为查询提供数据列。
SELECT * from table1 where table1.column1 in (SELECT id FROM table2);
查询表1中的数据,表一中的某一列值在表格2的id列中。
7、复合查询
复合查询是对多个查询结果的处理。包含关键字UNION、EXCEPT和INTERSECT。
- UNION:将两个查询结果联合成一个只包含AB非重复字段的新结果。
- INTERSECT:即在A结果也在B结果中的数据。
- EXCEPT:在A中但是不在B中的数据
8、case语句
对条件进行匹配,输出相应的值。
CASE value
WHEN x THEN value_x
WHEN y THEN value_y
WHEN z THEN value_z
ELSE default_value
END
CASE
WHEN condition1 THEN value1
WHEN condition1 THEN value1
WHEN condition1 THEN value1
ELSE default_value
END
留言