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,根据一个或多个列对结果集进行分组。

例如:计算每个人的消费总额

SELECT 字段名 函数名(字段名) FROM 表 WHERE 字段名 运算符 值 GROUP BY 字段名