MySQL基础:数据库的基本操作详解(增删改查 原理+代码+运行截图详解)
MySQL基础:数据库的基本操作详解(增删改查 原理+代码+运行截图详解)
MySQL是一种关系型数据库管理系统,广泛应用于各种Web应用和企业级应用中。本文将详细介绍MySQL数据库的基本操作,包括数据库和表的增删改查等核心功能。
一、如何使用系统运行窗口连接MySQL
在Windows系统中,可以通过以下步骤连接MySQL:
- 按下
Win+R
键,打开系统运行窗口。 - 输入
cmd
并回车,打开命令提示符。 - 在命令提示符中输入
mysql -u root -p
,其中root
是默认的管理员用户名。 - 输入密码后,即可进入MySQL命令行界面。
二、数据库的基本操作
1. 显示当前的数据库
要查看当前系统中所有的数据库,可以使用以下SQL语句:
SHOW DATABASES;
注意:SQL语句必须以分号结尾!
2. 创建数据库
创建一个名为test1
的数据库:
CREATE DATABASE test1;
3. 使用数据库
要选择并使用某个数据库,可以使用USE
语句:
USE 数据库名;
4. 删除数据库
删除一个名为test1
的数据库:
DROP DATABASE test1;
删除数据库时,该数据库中的所有表和数据都将被删除。
5. 显示当前数据库
要查看当前正在使用的数据库,可以使用以下SQL语句:
SELECT DATABASE();
长时间操作多个数据库时,使用这个命令可以避免误操作。
三、表的基本操作
在进行表操作之前,需要先选择要操作的数据库:
USE 数据库名;
1. 查看表结构
要查看某个表的结构,可以使用DESC
语句:
DESC 表名;
2. 显示数据库中有哪些表
查看当前数据库中所有的表:
SHOW TABLES;
3. 创建表
创建一个名为table_name
的表,包含三个字段:
CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
);
可以在字段定义中使用COMMENT
来添加字段说明。
4. 删除表
删除一个名为table_name
的表:
DROP TABLE table_name;
5. 插入数据
单行数据全插入
INSERT INTO table_name VALUES (数据,数据……);
多行数据指定列插入
INSERT INTO table_name (id, name) VALUES
(1, '张三'),
(2, '李四');
6. 查询数据
全列查询
SELECT * FROM table_name;
指定列查询
SELECT id, name FROM table_name;
查询时列的顺序可以与定义时不同。
查询的字段为表达式
表达式不包含字段:
SELECT id, 10 FROM table_name;
表达式包含一个字段:
SELECT id, id+10 FROM table_name;
表达式包含多个字段:
SELECT id, class, id + class FROM table_name;
别名查询
SELECT id, name 别名 FROM table_name;
去重查询:DISTINCT
假设表中数据如下:
—————其中 80 分重复了—————
去重查询:
SELECT DISTINCT english FROM table_name;
排序查询:ORDER BY
格式:
SELECT … FROM table_name ORDER BY … [ASC | DESC];
ASC
:升序(从小到大)DESC
:降序(从大到小)- 默认为升序
注意:
- 没有
ORDER BY
子句的查询结果顺序是未定义的。 NULL
数据在排序中被视为最小值。- 可以对多个字段进行排序,排序优先级按字段书写顺序。
条件查询:WHERE
比较运算符和逻辑运算符:
- 比较运算符:
>
,<
,>=
,<=
,=
,!=
- 逻辑运算符:
AND
,OR
注意:
WHERE
可以使用表达式,但不能使用别名。AND
的优先级高于OR
,需要时可以用括号改变执行顺序。
范例:
- 基本查询
- 查询成年的同学的姓名(age >= 18)
- 查询分数不及格的同学的信息(grade < 60)
- AND 与 OR
- 查询未成年且不及格的同学的信息(age < 18 AND grade < 60)
- 查询未成年或不及格的同学的信息(age < 18 OR grade < 60)
- BETWEEN … AND …
- 查询分数在80-90的同学的信息([80,90])
- IN
- 查询分数为80,90的同学的信息(80,90)
- 模糊查询:LIKE
%
匹配任意多个任意字符:SELECT name FROM table_name WHERE name LIKE '张%';
(张三、张二三、张都可以被匹配)
_
匹配严格的一个任意字符:SELECT name FROM table_name WHERE name LIKE '张_';
(只能匹配张三,不能匹配张二三、张)
- NULL的查询:IS (NULL | NOT) NULL
查询名字为空的同学的信息:
SELECT name FROM table_name WHERE name IS NULL;
查询名字不为空的同学的信息:
SELECT name FROM table_name WHERE name IS NOT NULL;
分页查询:LIMIT
语法:
从0开始,筛选N条结果:
SELECT … FROM table_name [WHERE …] [ORDER BY] LIMIT N;
从X开始,筛选N条结果:
SELECT … FROM table_name [WHERE …] [ORDER BY] LIMIT X , N;
或者:
SELECT … FROM table_name [WHERE …] [ORDER BY] LIMIT X OFFSET N;
注意:使用OFFSET
的方式会更精确。
7. 修改表内容
修改表内容会直接修改硬盘上的数据,无法撤回,操作时要慎重!
语法:
UPDATE table_name SET 修改内容 [WHERE …] [ORDER BY …] [LIMIT …];
范例:
- 建立一张班级名称的表格
- 将网络工程的老师改为“林一”
- 将电气工程的id改为4000,老师改为“郭二”
- 将所有班级的id改为1010
注意:如果不加任何限制条件,默认会修改表中的所有数据。修改后的值不能超出原本定义的范围,否则会报错。
8. 删除表中的内容
语法:
DELETE FROM table_name [WHERE …] [ORDER BY…] [LIMIT …];
范例:
- 删除网络工程的信息
- 删除整张表
如果不加限制条件,就是删除表中的所有内容。所以操作需谨慎!
与DROP的区别:
DROP
是删除整个表,表内数据和表结构都不存在了;DELETE
是删除表内的数据,表结构仍然存在。
以上就是MySQL数据库基本操作的全部内容,希望能对您有所帮助!