1、数据库连接
1、通过命令行连接数据库
1 2 | [root@localhost ~]# mysql -u root -p Enter password : |
输入以上命令,回车后输入密码,回车,出现 mysql> 命令提示窗口则表示登录成功,可以在mysql>下输入任何sql语句。
2、退出mysql
1 2 | mysql> exit Bye |
2、创建数据库
1 | 语法: CREATE DATABASE <数据库名>; |
先连接mysql服务后,再使用sql语句。可以通过命令连接也可以通过客户端工具例如navicat连接,以下创建一个库名为lemon的数据库
1 | mysql> create DATABASE lemon; |
3、显示数据库
1 | 语法:show databases; |
示例:查看mysql服务所有数据库
1 2 3 4 5 6 7 8 9 10 11 | mysql> show databases; + --------------------+ | Database | + --------------------+ | information_schema | | future | | lemon | | mysql | | test | | test_mysql | + --------------------+ |
4、删除数据库
1 | 语法: drop database <数据库名>; |
drop删除数据库命令谨慎使用,一旦删除,所有数据都没有了。以下示例:删除一个库名为test的数据库。
1 | mysql> drop DATABASE test; |
5、选择数据库
1 | 语法:use <数据库名>; |
示例:选取数据库lemon进行操作。
1 2 | mysql> use lemon; Database changed |
6、创建表
1 | 语法: create table <表名> ( <字段名1> <类型1>,<字段名2> <类型2>, ...,<字段名n> <类型n>); |
示例:需要创建一个学员信息表,用于存储学号、姓名、性别、班级、年龄。
1 2 3 4 5 6 7 | create table student( sno int (8) not null primary key auto_increment comment '学号' , sname varchar (20) NOT NULL comment '姓名' , ssex varchar (4) NOT NULL comment '性别' , sclass int (8) NOT NULL comment '班级' , sage int (4) NOT NULL comment '年龄' ) DEFAULT CHARSET=utf8; |
解析:
int为整型,这里学号sno、班级编号sclass设定为整型;
varchar字符型,这里姓名sname、性别ssex、年龄sage设定为字符型;
字段属性设定为not null,表示字段值不允许空;
primary key关键字用于定义列为主键。主键唯一、不重复,一般以编号为主键;
auto_increment定义列属性为自增,一般用于主键,插入数据时数值会自动加1;
comment相当于给列添加备注;
DEFAULT CHARSET 设置编码,utf8对传值中文防止乱码。
7、显示数据表
1 2 3 4 5 6 7 | mysql> show tables; + ----------------+ | Tables_in_test | + ----------------+ | student | | student1 | + ----------------+ |
8、查看表结构
1 2 3 4 5 6 7 8 9 10 | mysql> desc student; + --------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | + --------+-------------+------+-----+---------+----------------+ | sno | int (8) | NO | PRI | NULL | auto_increment | | sname | varchar (20) | NO | | NULL | | | ssex | varchar (5) | NO | | NULL | | | sclass | int (8) | NO | | NULL | | | sage | int (4) | NO | | NULL | | + --------+-------------+------+-----+---------+----------------+ |
9、删除表
1 | 语法: drop table <表名>; |
drop删除表请谨慎操作,因为执行删除命令后该表及包含的数据都会消失。以下示例:删除一个表名为student的数据表。
1 | mysql> drop table student; |
10、插入表数据
1 2 3 | 语法: insert into <表名> ( 字段名1,字段名2,...字段名N) values ( 值1, 值2,...值N ); |
示例:
1、往学员信息表中插入一条学员信息
1 | insert into student (sno,sname,ssex,sclass,sage) values (6301, '柠檬' , '女' ,20190163,18); |
注意:如果数据值为字符型必须用单引号或者双引号括起来。
2、批量插入,插入多条学员信息
1 2 3 | insert into student (sname,ssex,sclass,sage) values ( '毛毛' , '女' ,20190163,20),( '大大' , '女' ,20190163,22); |
11、修改表数据
1 | 语法: update 表名 set 字段名1= 新值1,字段名2=新值2, … where 条件表达式1 and ( or ) 条件表达式2 …; |
示例:修改学员姓名为毛毛的性别为男
1 | update student set ssex = '男' where sname = '毛毛' ; |
12、查询单表数据
1 | 语法: select 字段名1,字段名2,… from <表名> where 条件表达式1 and ( or ) 条件表达式2 … ; |
1、查询所有字段列信息
示例:查询student表中,性别女且年龄在20岁以上的学员信息
1 | select * from student where ssex = '女' and sage > 20 |
2、查询指定字段列信息
示例:查询student表中,性别女或者年龄在20岁以上的学员姓名
1 | select sname from student where ssex = '女' or sage > 20; |
3、查询前几行信息
示例:查询student表中,性别女且年龄在20岁以上的前2行学员信息
1 | select sname from student where ssex = '女' and sage > 20 limit 0,2; |
13、查询多表关联数据
1 2 3 4 5 | 语法: 1、关联查询: select 字段名1,… from 表名1,表名2,… where 关联条件表达式 and 过滤条件表达式 …; 2、等值连接: select 字段名1,… from 表名1 inner join 表名2 on 关联条件表达式 and 过滤条件表达式… ; 3、左连接: select 字段名1,… from 表名1 left join 表名2 on 关联条件表达式 and 过滤条件表达式… ; 3、右连接: select 字段名1,… from 表名1 right join 表名2 on 关联条件表达式 and 过滤条件表达式… ; |
示例:

1、以上左表user表,右表为左表的对象信息user_lover表,查询两表中存在对象关系的信息
1 2 3 | SELECT * FROM ` user `, user_lover WHERE ` user `.id = user_lover.u_id; SELECT * FROM ` user ` INNER JOIN user_lover on ` user `.id = user_lover.u_id; |
运行结果:

2、读取左表全部数据,即使右表没有关联数据
1 | SELECT * FROM ` user ` LEFT JOIN user_lover on ` user `.id = user_lover.u_id; |
运行结果:

3、以右表为基础,与LEFT JOIN相反
1 | SELECT * FROM ` user ` RIGHT JOIN user_lover on ` user `.id = user_lover.u_id; |
运行结果:

14、删除表数据
1 | 语法: delete from 表名 where 条件1 and ( or ) 条件2……; |
示例:删除student表中年龄小于18岁的用户信息
1 | delete from student where sage < 18; |
15、mysql学习教程
mysql官网:https://dev.mysql.com/doc/
runoob.com:https://www.runoob.com/mysql/
w3cschool:https://www.w3cschool.cn/mysql/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix