余烽 发表于 2023-7-13 04:37:39

【技术积累】Mysql中的SQL语言【技术篇】【二】

数据操作

插入数据

Mysql使用INSERT语句来插入数据。INSERT语句的一般格式如下:
INSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...);其中,表名是要插入数据的表名;列1, 列2, 列3 是要插入数据的列名;值1, 值2, 值3是要插入的具体值。
下面以一个学生表student为例进行说明。
假设student表结构如下:
表名:student
列名:id (int, 主键)
   name (varchar(50))
   age (int)
   gender (varchar(10))
插入一条数据的SQL语句为:
INSERT INTO student (id, name, age, gender) VALUES (1, 'John', 20, 'Male');这条SQL语句向student表插入了一条学生数据,该学生的id为1,姓名为John,年龄为20,性别为Male。
解释该SQL语句的具体含义如下:
1. INSERT INTO student:指定要插入数据的表为student。
2. (id, name, age, gender):指定要插入数据的列为id, name, age, gender。
3. VALUES (1, 'John', 20, 'Male'):指定要插入的具体值为1, 'John', 20, 'Male'。注意,值的顺序要与列的顺序对应。
该SQL语句执行后,student表中将插入一条新的学生数据,即id为1,姓名为John,年龄为20,性别为Male的数据。
查询数据

Mysql使用SELECT语句来查询数据。SELECT语句的一般格式如下:
SELECT 列1, 列2, 列3, ... FROM 表名 WHERE 条件;其中,列1, 列2, 列3是要查询的列名;表名是要查询的表名;WHERE条件是可选的,用于筛选符合条件的数据。
以下以学生表student为例进行说明。
假设student表结构如下:
表名:student
列名:id (int, 主键)
   name (varchar(50))
   age (int)
   gender (varchar(10))
查询所有学生的SQL语句为:
SELECT * FROM student;这条SQL语句查询student表中的所有数据。
解释该SQL语句的含义如下:
1. SELECT *:表示查询所有列的数据。可以替换为具体的列名,例如SELECT id, name, age, gender。
2. FROM student:指定要查询数据的表为student。
该SQL语句执行后,将返回student表中所有学生的数据。
更新数据

Mysql使用UPDATE语句来更新数据。UPDATE语句的一般格式如下:
UPDATE 表名 SET 列1=值1, 列2=值2, 列3=值3, ... WHERE 条件;其中,表名是要更新数据的表名;列1, 列2, 列3是要更新的列名;值1, 值2, 值3是要更新的具体值;WHERE条件是用于确定要更新的行。
以下以学生表student为例进行说明。
假设student表结构如下:
表名:student
列名:id (int, 主键)
   name (varchar(50))
   age (int)
   gender (varchar(10))
更新学生年龄的SQL语句为:
UPDATE student SET age=22 WHERE id=1;这条SQL语句将会更新id为1的学生的年龄为22。
解释该SQL语句的含义如下:
1. UPDATE student:指定要更新数据的表为student。
2. SET age=22:指定要更新的列为age,值为22。
3. WHERE id=1:指定更新的条件为id等于1的行。
该SQL语句执行后,将会更新student表中id为1的学生的年龄为22。
需要注意的是,UPDATE语句可以同时更新多个列,只需要在SET后面使用逗号分隔。例如:
UPDATE student SET age=22, name='Tom' WHERE id=1;这条SQL语句会将id为1的学生的年龄更新为22,姓名更新为Tom。
通过上述例子,你可以根据实际需求来更新不同的列和具体值。
删除数据

Mysql使用DELETE语句来删除数据。DELETE语句的一般格式如下:
DELETE FROM 表名 WHERE 条件;其中,表名是要删除数据的表名;WHERE条件是用于确定要删除的行。
以下以学生表student为例进行说明。
假设student表结构如下:
表名:student
列名:id (int, 主键)
   name (varchar(50))
   age (int)
   gender (varchar(10))
删除id为1的学生数据的SQL语句为:
DELETE FROM student WHERE id=1;这条SQL语句将会删除student表中id为1的学生数据。
解释该SQL语句的含义如下:
1. DELETE FROM student:指定要删除数据的表为student。
2. WHERE id=1:指定删除的条件为id等于1的行。
该SQL语句执行后,将会删除student表中id为1的学生数据。
需要注意的是,DELETE语句可以根据不同的条件删除不同的数据。例如:
DELETE FROM student WHERE age > 20;这条SQL语句会删除student表中年龄大于20的学生数据。
通过上述例子,你可以根据实际需求来使用不同的条件进行数据删除操作。
数据过滤与排序

WHERE 子句

WHERE是MySQL中的查询条件,用于指定筛选条件,从表格中选择符合条件的记录。它通常用于SELECT、DELETE、UPDATE等语句中。
以下是一个基本的案例,假设有一个名为"employees"的表格,其中包含员工的信息(员工号、姓名、性别、年龄、职位等)。我们想要筛选出性别为男性且年龄大于30岁的员工信息。
SQL语句如下:
SELECT * FROM employees WHERE gender = '男' AND age > 30;解释: 此SQL语句中的WHERE条件为"gender = '男' AND age > 30",它包含了两个筛选条件。第一个条件"gender = '男'"表示筛选出性别为男的员工,第二个条件"age > 30"表示筛选出年龄大于30岁的员工。通过AND运算符将两个条件连接在一起,保证了筛选结果符合两个条件的员工信息。最终结果包含了满足所有筛选条件的员工的所有信息。
需要注意的是,WHERE条件中的字段和条件之间需要进行正确的语法和逻辑运算符的组合,以便得到正确的结果。
LIKE语句

LIKE是MySQL中的模糊查询条件,用于指定模式匹配的筛选条件。它通常用于SELECT语句中,用于查询符合特定模式的记录。
以下是一个基本的案例,假设有一个名为"employees"的表格,其中包含员工的信息(员工号、姓名、性别、职位等)。我们想要筛选出所有姓氏以"王"开头的员工信息。
SQL语句如下:
SELECT * FROM employees WHERE name LIKE '王%';解释: 此SQL语句中的WHERE条件为"name LIKE '王%'",其中使用了LIKE关键字和%通配符。关键字LIKE表示进行模糊匹配,然后通过%通配符指定匹配的模式。在本例中,%表示任意字符出现任意次数。所以"王%"表示匹配以"王"开头的任意字符。最终结果将包含以"王"开头的所有姓氏的员工信息。
需要注意的是,LIKE条件中的%通配符可以放在模式的任何位置,以实现不同的匹配需求。在使用LIKE时,还可以结合其他通配符(如_表示匹配单个字符)进行更灵活的模糊查询。
IN语句

IN是MySQL中的条件运算符,用于指定一个条件范围,如果字段的值在该范围内,则符合筛选条件。它通常用于SELECT、DELETE、UPDATE等语句中。
以下是一个基本的案例,假设有一个名为"employees"的表格,其中包含员工的信息(员工号、姓名、性别、年龄、职位等)。我们想要筛选出职位为经理或副经理的员工信息。
SQL语句如下:
SELECT * FROM employees
WHERE position IN ('经理', '副经理');解释:
此SQL语句中的WHERE条件为"position IN ('经理', '副经理')",其中使用了IN关键字。IN关键字后面跟着一个括号,括号里用逗号分隔多个条件值。在本例中,我们指定了职位为经理或副经理的条件值。如果字段"position"的值在指定的条件值范围内,就会符合筛选条件。最终结果将包含职位为经理或副经理的员工信息。
需要注意的是,IN条件可以用来筛选出字段值在一个固定列表内的记录,提供了一种简洁的方式来进行多个值的筛选。对于更复杂的条件范围,也可以使用其他条件运算符(如BETWEEN、NOT IN等)来实现。
BETWEEN语句

BETWEEN是MySQL中的条件运算符,用于指定一个范围条件,如果字段的值在该范围内,则符合筛选条件。它通常用于SELECT、DELETE、UPDATE等语句中。
以下是一个基本的案例,假设有一个名为"employees"的表格,其中包含员工的信息(员工号、姓名、性别、年龄、职位等)。我们想要筛选出年龄在30岁到40岁之间的员工信息。
SQL语句如下:
SELECT * FROM employees
WHERE age BETWEEN 30 AND 40;解释:
此SQL语句中的WHERE条件为"age BETWEEN 30 AND 40",其中使用了BETWEEN关键字。BETWEEN关键字后面跟着一个范围值,范围值由两个数值和关键字AND连接。在本例中,我们指定了年龄在30岁到40岁之间的范围条件。如果字段"age"的值在指定的范围内,就会符合筛选条件。最终结果将包含年龄在30岁到40岁之间的员工信息。

需要注意的是,BETWEEN条件是包含边界值的,即范围内的值都是符合条件的。如果想要排除边界值,可以使用其他条件运算符(如>,100;解释:
此SQL语句中,首先使用GROUP BY子句将销售记录按产品进行分组。然后使用SUM函数计算每个产品的销售数量(total_quantity)。最后,使用HAVING子句筛选出满足条件(销售数量大于100)的产品分组。
需要注意的是,HAVING子句是在分组之后对结果进行筛选,类似于WHERE子句用于对原始数据进行筛选。但是,HAVING子句只能用于对使用聚合函数进行分组的列进行筛选,而不能用于非分组的列。

类似于WHERE子句,HAVING子句支持使用逻辑运算符(如AND、OR)和比较运算符(如>、
页: [1]
查看完整版本: 【技术积累】Mysql中的SQL语言【技术篇】【二】