1、书写排序
sql语句的书写顺序:select —> from —>where —> group by —> having —> order by
其中where和having是不能同时使用的,并且having和group by 是联合使用的。
where在group by之前执行,having 在group by 之后执行。
2、关键字DISTINCT:用于查询唯一不同的值。
SELECT DISTINCT * FROM 表
3、WHERE子句:
SELECT … FROM 表 WHERE 字段名 运算符 值
例如:SELECT * FROM 表 WHERE 字段名 = ‘变量’; 若为数字,则不加引号;若为变量,则加单引号。
4、AND和OR
SELECT * FROM 表 WHERE (字段 = ‘值1’ OR 字段 = ‘值2’)AND 字段 = ‘值3’;(连贯使用例子)
5、ORDER BY:默认升序
SELECT * FROM 表 ORDER BY 字段1 DESC,字段2 ASC
两个排序条件,在前的优先排序。
6、插入数据INSERT
INSERT INTO 表(字段1,字段2,…) VALUES (‘值1’,‘值2’,…)
PS:在tp5中,DB::execute():写入操作 DB::query():查询操作
7、更新数据 UPDATE
UPDATE 表 SET 字段1=‘值1’,字段2=‘值2’,。。。WHERE 字段1=‘值1’ AND 字段1=‘值2’AND。。。
8、删除数据 delete
DELETE FROM 表 WHERE 字段1=‘值1’ AND 字段 IN(变量);
9、模糊查询:like
SELETE * FROM 表 WHERE 字段 LIKE ‘A%’;
LIKE NOT LIKE
A%:查询以A开头的类似值
%A:查询以A结尾的类似值
%A%:查询含A的值
10、BETWEEN…AND…:在WHERE子句中使用,选取介于两个之间的数据。
SELECT * FROM 表 WHERE 字段 BETWEEN ‘值1’ AND ‘值2’ NOT BETWEEN…AND…
11、别名:表别名和字段别名
SELECT … FROM 表 AS 表别名
SELECT 字段名 AS 字段别名 FROM 表
12、LEFT JOIN和RIGHT JOIN
LEFT JOIN:即使右表中无匹配,也从左表中返回所有行
RIGHT JOIN:即使左表中无匹配,也从右表中返回所有行
SELECT … FROM 表1 LEFT JOIN 表2 ON 表1.字段名=表2.字段名
SELECT … FROM 表1 RIGHT JOIN 表2 ON 表1.字段名=表2.字段名
13、创建数据库和数据表:
CERATE DATABASE 数据库名 CREATE TABLE 数据表名
14、NOT NULL 约束:强制字段必须有值,若为null,则无法插入新纪录或更新记录
15、每个表可以有多个UNIQUE约束,但只能有一个PRIMARY KEY 主键。
主键只能有一个,且每个表必备。PRIMARY KEY
外键可以有多个,指向另一个表的主键。FOREIGN KEY
16、删除数据表和数据库
DROP 表名
DROP 数据库名
17、ALTER TABLE语句:用来在已有的表中添加、修改或删除列。
ALTER TABLE 表 ADD 字段名 字段类型。 :在表中添加新列
18、AVG函数:返回平均值
SELECT AVG(字段名) FROM 表
19、GROUP BY语句:用于结合合计函数SUM,根据一个或多个列对结果集进行分组。