格式:INSERT INTO TABLES(value1,value2) VALUES (1,2),(12,34);
INSERT INTO test1(id, p_name, p_data) VALUES
(1,'1','1'),
(2,'2','2');
格式:DELETE FROM TABLES WHERE condition
DELETE FROM test1 WHERE id=1;
格式:UPDATE TABLES set value=xx WHERE condition
UPDATE test1 SET p_name='3' WHERE id=2;
格式:SELECT * FROM TABLES WHERE contition
SELECT * FROM test1;
解释:一对多查询需要两个表,其中假设test1为一对多的一那个表,test2为一对多的多那个表,选取test1中的p_name作为它们的共同字段,其中p_name一列将被专门插入test2表中称为test2的外键
SELECT test1.id,test1.p_name,test1.p_data,test2.s_name,test2.s_data FROM test1
LEFT JOIN test2
ON test1.p_name=test2.p_name
WHERE test1.p_name='2';
解释:多对多查询需要三个表,其中一个表为中间表,记录另外两个表的共同字段,多对多查询常常使用三表联查进行查询
// 现在有产品表,和供应商表还有一个中间表
// 查询产品编号为1的多个供应商信息
SELECT goods.goods_id,goods.cate_id,goods.supplier_id, goods.goods_name, goods.price,category.cate_name,supplier.supplier_id AS supplierId,supplier.supplier_name,supplier.mobileFROM goods
INNER JOIN category ON goods.cate_id=category.cate_id
INNER JOIN supplier ON goods.supplier_id=supplier.supplier_id
WHERE category.cate_id=1;
// 查询哪几个产品供应商编号为3
SELECT goods.goods_id,goods.cate_id,goods.supplier_id, goods.goods_name, goods.price,category.cate_name,supplier.supplier_id AS supplierId,supplier.supplier_name,supplier.mobileFROM goods
INNER JOIN category ON goods.cate_id=category.cate_id
INNER JOIN supplier ON goods.supplier_id=supplier.supplier_id
WHERE supplier.supplier_id=3
解释:"GROUP BY"是一种在数据库查询中使用的语句。它用于根据指定的列对查询结果进行分组,并在每个组上执行聚合函数操作
例子:SELECT product, SUM(quantity) as total_quantity FROM sales GROUP BY product;
解释:HAVING是在数据库查询中使用的子句,它与GROUP BY一起使用,用于对分组后的结果进行筛选
例子:SELECT product, SUM(quantity) as total_quantity FROM sales GROUP BY product HAVING total_quantity > 100;
解释:LIKE"是在数据库中进行模式匹配的操作符,用于在查询中搜索满足特定模式的数据
参数:
例子:SELECT column_name(s) FROM table_name WHERE column_name LIKE 'prefix%';
解释:"EXISTS"是一个用于检查子查询结果是否存在的条件操作符。它在数据库查询中用于确定一个查询是否返回了至少一行数据,把下面例子也读了才能理解exists
例子:SELECT Sn FROM student AS s WHERE EXISTS(SELECT * FROM sc WHERE dp.Sno=s.Sno;
)(在这个例子中SELECT Sn FROM student执行到第一行时,会将产生的结果提供给EXISTS让其去做判断(EXISTS必需用到前面查询的值),如果EXISTS至少存在一个值就会返回1,以此类推SELECT Sn FROM student一直执行到结束)
解释:它用于查询中去除重复的行。在数据库查询中,有时从结果集中获取唯一的、不重复的行是很有用的
例子:SELECT DISTINCT column_name(s) FROM table_name;
解释:在MySQL中,ALL关键字用于比较操作符(如>、=、<等)的右侧,用于与子查询的结果集进行比较。
ALL关键字的含义是:比较操作符的左侧的值与子查询的结果集中的每个值进行比较,并要求其满足比较操作符右侧的所有条件。也就是说,如果比较操作符与ALL关键字一起使用,它要求左侧的值大于(或小于)子查询结果集的每个值。
例子:SELECT student_name FROM grades WHERE score > ALL (SELECT score FROM grades);
解释:union会联合两个查询语句产生的内容。它返回所有查询结果的组合,并消除重复的行。
例子:SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2;
解释:排序,desc为逆序
例字:SELECT * FROM employee ORDER BY Salary DESC; -- 逆序排列
解释:在…之间
例子:SELECT ProjectName FROM Project WHERE StartDate BETWEEN '2022-02-01' AND '2022-05-01'; -- 在这连个日期之间