目录
[WHERE和ORDER BY的位置](#WHERE和ORDER BY的位置)
[1.创建数据表 CREATE TABLE <表名>](#1.创建数据表 CREATE TABLE <表名>)
[2.1 基本插入](#2.1 基本插入)
[2.2 插入多行数据](#2.2 插入多行数据)
[2.3 插入部分列](#2.3 插入部分列)
[2.4 插入JSON数据](#2.4 插入JSON数据)
[3.1 更新单个字段](#3.1 更新单个字段)
[3.3 使用条件表达式](#3.3 使用条件表达式)
[3.4使用ORDER BY和LIMIT](#3.4使用ORDER BY和LIMIT)
[4.1 DELETE语句的基本语法](#4.1 DELETE语句的基本语法)
[4.3 使用比较运算符](#4.3 使用比较运算符)
[4.4 使用逻辑运算符](#4.4 使用逻辑运算符)
[4.6 使用LIKE操作符进行模糊删除](#4.6 使用LIKE操作符进行模糊删除)
一、MySql的细节知识
SQL语句的结束
多条SQL语句必须以英文分号(;)分隔。MySQL如同多数DBMS一样,不需要在单条SQL语句后加分号。但特定的DBMS可能必须在单条SQL语句后加上分号。当然,如果愿意可以总是加上分号。事实上,即使不一定需要,但加上分号肯定没有坏处。如果你使用的是mysql命令行,必须加上
分号来结束SQL语句。
sql
#加分号
SELECT * FROM TABLE_name;
#不加分号
SELECT * FROM TABLE_name
SQL语句的大小写
请注意,SQL语句不区分大小写,因此SELECT与select是相同的。同样,写成Select也没有关系。许多SQL开发人员喜欢对所有SQL关键字使用大写,而对所有列和表名使用小写,这样做使代码更易于阅读和调试。
sql
#小写
select * from person
#大写
SELECT * FROM person
#大小写混合
SELECT * from person
不过,一定要认识到虽然SQL是不区分大小写的,但有些标识符(如数据库名、表名、列名)可能不同。
SQL语句中的空格
在处理SQL语句时,其中所有空格都被忽略。SQL语句可以在一行上给出,也可以分成许多行。
sql
SELECT * from TABLE_name
#空格不影响结果
SELECT * from TABLE_name
#换行不影响结果
SELECT *
FROM TABLE_name
SQL查询结果并排序
升序:ASC
降序:DESC
sql
#ASC升序
select * from person order by age ASC;
#DESC降序
select * from person order by age DESC;
其中,默认为升序方向;如需降序,必须显式加上DESC。
可以对多个列进行排序,并且多个列之间的排序方向可以不同。
WHERE和ORDER BY的位置
1.group by:从英文上理解 就是分组的意思。需要和 聚合函数(例如:max(),count(),avg()等)配合使用,使用时至少有一个分组标识字段(例如某一列的列名)。
2.oder by :从英文上理解就是排序。一般后面跟上某一列的列名,然后查询到的数据会以该列的大小顺序进行排序显示,默认的是ASC(从小到大排列),desc(大到小排列)
-
where: 对查询到的内容进行筛选,where后面跟上限定条件,where使用在分组和排序之后。
-
having:作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组。
【ORDER BY子句的位置】 在给出ORDER BY子句时,应该保证它位于FROM子句之后。如果使用LIMIT,它必须位于ORDER BY之后。使用子句的次序不对将产生错误消息。
【WHERE子句的位置】 在同时使用ORDER BY和WHERE子句时,应该让ORDER BY位于WHERE之后,否则将会产生错误。
常用数据类型
MYSQL比较运算符
MYSQL算术运算符
MYSQL逻辑运算符
运算符的优先级
二、MySql数据库的基本操作
1.创建数据库
创建数据库语句:create database [数据库名]
sql
#创建数据库
create database test_name
2.选择数据库,使用数据库名
sql
#使用数据库
use test_name;
3.删除数据库
语句:DROP DATABASE [IF EXISTS 数据库名]
"IF EXISTS"表示当数据库名test_name存在时,才执行删除语句,避免报错。
sql
#删除数据库
DROP DATABASE IF EXISTS test_name;
4.MySQL注释
-
单行注释使用#或 --,不同之处在于,#后面直接跟注释,--后面加个空格才能写注释
-
多行注释使用/* */注释符 。/用于注释内容的开头,/用于注释内容的结尾。
三、MYSQL数据表的基本操作
1.创建数据表 CREATE TABLE <表名>
sql
#创建数据库基本语法
CREATE TABLE table_name (
column1 datatype constraint,
column2 datatype constraint,
column3 datatype constraint,
...
PRIMARY KEY (one or more columns)
);
#例子:创建student表
create table student (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(255) NOT NULL,
age int(3) NOT NULL ,
major varchar(50)
PRIMARY KEY (id)
);
其中,CREATE TABLE关键字表示创建数据表,table_name表示数据表的名称,column1、column2、column3等表示数据表中的列名,datatype表示列的数据类型,constraint表示列的约束条件,例如NOT NULL、UNIQUE、DEFAULT等。
在通用的SQL语句中,PRIMARY KEY约束用于定义数据表的主键,主键可以由一个或多个列组成,用括号括起来并用逗号分隔。
2.插入数据:INSERT语句
插入数据是数据库操作的基础,了解INSERT
语句的多种用法对于高效地管理MySQL数据库至关重要。
2.1 基本插入
最基本的INSERT
语句用于向表中添加单行数据。其语法如下:
sql
#基本语法
INSERT INTO table_name (column1, column2, column3) VALUES (value1, value2, value3);
#例子
INSERT INTO student (name, age, major) VALUES ('张三',19, '计算机科学与技术');
2.2 插入多行数据
一次性插入多行数据,这对于批量数据处理非常有用。语法如下:
sql
#基本语法
INSERT INTO table_name (column1, column2) VALUES (value1, value2), (value3, value4), ...;
#例子
INSERT INTO student(name, age) VALUES ('张三', 34), ('李四', 25);
2.3 插入部分列
如果表中的其他列有默认值或允许为空,可以只插入部分列的数据。例如:
sql
#基本语法
INSERT INTO table_name (column1) VALUES (value1);
#例子
INSERT INTO student(major) VALUES ('人工智能');
2.4 插入JSON数据
对于存储JSON数据的列,可以这样插入:
sql
INSERT INTO table_name (json_column) VALUES ('{"key": "value"}');
通过这些丰富多样的INSERT
用法,你可以灵活地处理各种数据插入场景,从而更有效地管理MySQL数据库。
3.更新数据:UPDATE语句
在MySQL中,UPDATE
语句是用来修改表中现有数据的强大工具。它的基本语法
sqlUPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
3.1 更新单个字段
最基本的用法是更新表中单个字段的值。例如,假设我们要将学生表中张三的年龄更新为20:
sqlUPDATE student SET quantity = 20 WHERE name = '张三';
3.2更新多个字段
UPDATE
可以同时修改多个字段。例如,张三的名称改为"李四",年龄改为21:
sqlUPDATE student SET name = '李四', age = 21 WHERE name = '张三';
3.3 使用条件表达式
可以使用更复杂的条件表达式来更新特定的数据。例如,增加所有年龄少于10的人的age:
sqlUPDATE student SET age= age+ 10 WHERE age< 10;
3.4使用ORDER BY和LIMIT
在某些情况下,你可能需要按特定顺序更新记录,并限制更新的行数。例如,仅更新年龄最小的两位同学的专业:
sqlUPDATE student SET major= '计算机技术' ORDER BY age DESC LIMIT 2;
3.5利用JOIN进行复杂更新
当需要根据其他表中的数据来更新一个表时,可以使用JOIN
语句。例如,如果我们有一个供应商表suppliers
和水果表fruits
,且想根据供应商的某些条件来更新水果的价格,可以这样做:
sqlUPDATE fruits JOIN suppliers ON fruits.supplier_id = suppliers.id SET fruits.price = fruits.price * 1.05 WHERE suppliers.country = 'China';
3.6使用子查询更新
在某些情况下,你可能需要根据从同一表或不同表中检索到的数据来更新记录。例如,假设你想将最畅销水果的价格提高10%:
sqlUPDATE fruits SET price = price * 1.1 WHERE name = ( SELECT name FROM sales GROUP BY name ORDER BY SUM(quantity) DESC LIMIT 1 );
4.删除数据:DELETE语句
在MySQL中,DELETE
语句是用来删除表中一行或多行数据的强大工具。理解其多样的用法对于有效管理数据库至关重要。以下是一些常用的DELETE
语句用法:
4.1 DELETE语句的基本语法
基本的DELETE
语句格式如下:
sqlDELETE FROM table_name WHERE condition;
table_name
是你想要从中删除记录的表名。WHERE condition
是用来指定哪些行应该被删除的条件。如果省略了WHERE
子句,所有行都会被删除,这将清空表但不会删除表本身。
4.2删除特定行
根据特定条件删除行。例如,删除学生表中所有"张三"的记录:
sqlDELETE FROM student WHERE name = '张三';
4.3 使用比较运算符
可以使用比较运算符(如<
, >
, <=
, >=
)来删除行。例如,删除所有年龄少于20的学生:
sqlDELETE FROM fruits WHERE age< 20;
4.4 使用逻辑运算符
使用AND、OR等逻辑运算符来组合条件。例如,删除名称为"Apple"且数量小于10的记录:
sqlDELETE FROM fruits WHERE name = 'Apple' AND quantity < 10;
4.5删除满足IN条件的行
当需要删除匹配特定列表中值的行时,可以使用IN
。例如,删除所有名称是"Apple","Banana",或"Orange"的水果:
sqlDELETE FROM fruits WHERE name IN ('Apple', 'Banana', 'Orange');
4.6 使用LIKE操作符进行模糊删除
使用LIKE
操作符删除满足模糊匹配条件的行。例如,删除所有名字以"A"开头的水果:
sqlDELETE FROM fruits WHERE name LIKE 'A%';
注意事项
数据表是一种非常重要的数据结构,它可以用来存储和管理大量的数据。在使用数据表时,有几个基本的操作需要注意。
创建数据表 :创建数据表时需要定义表名、列名和数据类型等信息。在定义列名时应该尽可能清晰地描述列的含义和数据类型,以方便后续的操作和查询。同时还需要考虑数据表的主键、外键和索引等约束条件,以保证数据的一致性和完整性。
查看数据表 :查看数据表时可以使用SELECT语句,通过指定表名和列名等条件,可以查看表中的数据。同时也可以使用DESCRIBE语句查看数据表的结构信息,包括表名、列名、数据类型和约束条件等。
修改数据表 :在数据表的使用过程中,可能需要修改表的结构信息,包括添加、删除和修改列等。在进行修改操作时需要考虑数据表的约束条件,以避免影响数据的完整性和一致性。
删除数据表 :删除数据表时需要非常小心,因为数据表中存储的数据可能非常重要。在删除数据表时需要确认是否备份了相关数据,并且要避免误删操作。同时还要考虑数据表的约束条件,以避免影响其他数据表的使用。
需要注意的是,不同的数据库系统可能会有不同的语法和操作方式,因此在具体操作时需要根据所使用的数据库系统进行相应的调整。此外,在进行任何操作之前,一定要备份数据,以防止数据丢失。
写在最后的话
通过本篇博客,我们深入探讨了MySQL中的数据修改基础操作:MySQL的细节知识、INSERT、UPDATE、DELETE语句。从创建一个简单的水果表,学生表开始,我们逐步展示了如何插入新数据、更新现有数据,以及删除不需要的数据。这些操作是数据库管理中非常重要的技能。掌握它们不仅有助于管理和维护数据库中的数据,还能提高你处理数据的灵活性和效率。
请记住,实践是学习数据库管理的关键。我建议你在自己的数据库环境中创建这样的表,并尝试执行这些操作。随着实践的增多,你将对MySQL的使用更加得心应手。如果在学习过程中遇到任何问题,不妨继续探索或寻求帮助。祝你在MySQL的学习之旅上取得更多进步!