二、Mysql数据操作[数据查询、数据更改、常见词义]

一、增删改查

1.增

格式: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');

2.删

格式:DELETE FROM TABLES WHERE condition

DELETE FROM test1 WHERE id=1;

3.改

格式:UPDATE TABLES set value=xx WHERE condition

UPDATE test1 SET p_name='3' WHERE id=2;

4.查

4.1 基本查询

格式:SELECT * FROM TABLES WHERE contition

SELECT * FROM test1;

4.2 一对多查询

解释:一对多查询需要两个表,其中假设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';

4.3 多对多查询

解释:多对多查询需要三个表,其中一个表为中间表,记录另外两个表的共同字段,多对多查询常常使用三表联查进行查询

// 现在有产品表,和供应商表还有一个中间表
// 查询产品编号为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

二、常见词义

1. group by

解释:"GROUP BY"是一种在数据库查询中使用的语句。它用于根据指定的列对查询结果进行分组,并在每个组上执行聚合函数操作

例子:SELECT product, SUM(quantity) as total_quantity FROM sales GROUP BY product;

2.having

解释:HAVING是在数据库查询中使用的子句,它与GROUP BY一起使用,用于对分组后的结果进行筛选

例子:SELECT product, SUM(quantity) as total_quantity FROM sales GROUP BY product HAVING total_quantity > 100;

3.like

解释:LIKE"是在数据库中进行模式匹配的操作符,用于在查询中搜索满足特定模式的数据

参数:

  1. 百分号(%):表示匹配任意字符序列(包括零个字符,字符内容0-n长度)。
  2. 下划线(_):表示匹配单个字符。

例子:SELECT column_name(s) FROM table_name WHERE column_name LIKE 'prefix%';

4.exists

解释:"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一直执行到结束)

5.distinct

解释:它用于查询中去除重复的行。在数据库查询中,有时从结果集中获取唯一的、不重复的行是很有用的

例子:SELECT DISTINCT column_name(s) FROM table_name;

6.all

解释:在MySQL中,ALL关键字用于比较操作符(如>、=、<等)的右侧,用于与子查询的结果集进行比较。
ALL关键字的含义是:比较操作符的左侧的值与子查询的结果集中的每个值进行比较,并要求其满足比较操作符右侧的所有条件。也就是说,如果比较操作符与ALL关键字一起使用,它要求左侧的值大于(或小于)子查询结果集的每个值。

例子:SELECT student_name FROM grades WHERE score > ALL (SELECT score FROM grades);

7.union

解释:union会联合两个查询语句产生的内容。它返回所有查询结果的组合,并消除重复的行。

例子:SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2;

8.order by

解释:排序,desc为逆序
例字:SELECT * FROM employee ORDER BY Salary DESC; -- 逆序排列

9.between and

解释:在…之间

例子:SELECT ProjectName FROM Project WHERE StartDate BETWEEN '2022-02-01' AND '2022-05-01'; -- 在这连个日期之间

你可能感兴趣的:(数据库,mysql,数据库)