资讯动态

MySQL数据库零基础入门

发布时间:2026/8/13 10:36:15 来源:尧图企业网站定制
一、前言数据库是后端开发必不可少的核心工具我们写的聊天系统、图书管理系统所有用户信息、业务数据都需要存放在数据库中。很多刚接触后端的同学对数据库概念陌生分不清DDL、DML、DQL写查询语句经常出错。本文从零开始从概念、软件安装到库、表操作再到全套查询语句全部搭配可直接复制运行的SQL示例小白跟着敲代码就能学会。掌握本章为后续JavaWeb开发铺路。二、数据库基础与MySQL环境搭建1、数据库相关概念1.1 数据库• 存储数据的仓库数据是有组织的进行存储运行在服务器上可以持久保存数据• 英文DataBase简称DB1.2 数据库管理系统• 管理数据库的大型软件• 英文DataBase Management System简称DBMS1.3 SQL• 英文Structured Query Language简称SQL结构化查询语言• 操作关系型数据库的编程语言• 定义操作所有关系型数据库的统一标准1.4 常见的关系型数据库管理系统• Oracle收费的大型数据库Oracle公司的产品•MySQL开源免费的中小型数据库。后来Sun公司收购了MySQL而Sun公司又被Oracle收购• SQL ServerMiscroSoft公司收费的中型的数据库。C#、.net等语言常使用• PostgreSQL开源免费中小型的数据库• DB2IBM公司的大型收费数据库产品• SQLite嵌入式的微型数据库。如作为Android内置数据库• MariaDB开源免费中小型的数据库2、MySQL安装/配置/登录/卸载2.1 下载 安装解压https://downloads.mysql.com/archives/community/到对应官网下载压缩包安装MySQL服务本体提供数据库服务。2.2 配置2.2.1 添加环境变量右键此电脑 → 属性点击高级系统设置点击环境变量在系统变量中新建MYSQL_HOME点击确定确定后编译一下Path添加bin目录2.2.2 新建配置文件新建一个文本文件内容如下更改设置mysql的安装目录和设置mysql数据库 的数据的存放目录双斜线[mysql] # 设置mysql客户端默认字符集 default-character-setutf8 [mysqld] # 设置3306端口 port 3306 # 设置mysql的安装目录 basedir D:\\MySQL\\mysql-5.7.24-winx64 # 设置mysql数据库的数据的存放目录 datadir D:\\MySQL\\mysql-5.7.24-winx64\\data # 允许最大连接数 max_connections20 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-serverutf8 # 创建新表时将使用的默认存储引擎 default-storage-engineINNODB # 创建模式 sql_mode NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES把上面的文本文件另存为在保存类型里选所有文件* . *)文件名叫my.ini存放的路径为MySQL的根目录例如我的是D:\MySQL\mysql-5.7.24-winx64根据自己的MySQL位置修改。2.2.3 初始化MySQL在cmd里面输入 mysqld --initialize-insecure注意这里要用管理员方式运行cmd回车后会发现文件夹下会多出一个新的文件夹data2.2.4 注册MySQL服务在cmd里敲入 mysqld -install回车mysqld -install现在计算机上已经安装好了MySQL服务了2.2.5 启动MySQL服务在cmd里敲入 net start mysql回车net start mysql // 启动mysql服务 net stop mysql // 停止mysql服务2.2.6 修改默认账户密码在cmd里敲入 mysqladmin -u root password 1119这里的1119就是指默认管理员即root账户的密码可以自行修改。mysqladmin -u root password 11192.3 登录/退出MySQL在cmd中敲入 mysql -uroot -p 后输入密码回车mysql -uroot -p退出mysql以下两种都可以exit quit上面是连接本机的MySQL如若要连接别人的MySQL注意以下登陆参数mysql -u用户名 -p密码 -h要连接的mysql服务器ip地址(默认127.0.0.1) -p端口号(默认3306)2.4 卸载MySQL① 敲入 net stop mysql 回车net stop mysql② 再敲入 mysql -remove mysql 回车mysql -remove mysql③ 最后删除MySQL目录及相关的环境变量3、MySQL数据模型关系型数据库关系型数据库是建立在关系模型基础上的数据库简单说关系型数据库是由多张能互相连接的二维表组成的数据库。数据库 → 多张数据表 → 表里面多行数据每行分为多个字段列。类比Excel一个数据库一个Excel文件一张数据表Excel里面的一个工作表。• 优点① 都是使用表结构格式一致易于维护② 使用通用的SQL语言操作使用方便可用于复杂查询③ 数据存储在磁盘中安全在MySQL里数据库就相当于硬盘上的文件夹三、SQL简介、通用语法及分类1、SQL简介• 英文Structured Query Language简称SQL• 结构化查询语言一门操作关系型数据库的编程语言• 定义操作所有关系型数据库的统一标准• 对于同一个需求每一种数据库操作的方式可能会存在一些不一样的地方我们称为“方言”2、SQL通用语法① SQL语句可以单行或多行书写以分号结尾② MySQL数据库的SQL语句不区分大小写关键字建议使用大写③ 注释• 单行注释-- 注释内容一定要有空格否则会报错 或 #注释内容MySQL特有• 多行注释/* 注释 */3、分类• DDLData Definition Language数据定义语言用来定义数据库对象数据库表列等• DMLData Manipulation Language数据操作语言用来对数据库中表的数据进行增删改• DQLData Query Language数据查询语言用来查询数据库中表的记录数据• DCLData Control Language数据控制语言用来定义数据库的访问权限和安全级别及创建对象四、DDL库与表的管理语法1、DDL操作数据库1.1 查询所有数据库show databases;1.2 创建数据库• 创建数据库create database 数据库名称;• 创建数据库判断如果不存在则创建create database if not exists 数据库名称;使用判断即使存在该数据库也不会报错。1.3 删除数据库• 删除数据库drop database 数据库名称;• 删除数据库判断如果存在则删除drop database if exists 数据库名称;1.4 使用数据库• 查看当前使用的数据库select database();• 使用数据库use 数据库名称;2、DDL操作数据表2.1 查询表• 查询当前数据库下所有表名称show tables;• 查询表结构desc 表名称;2.2 创建表create table 表名( 字段名1 数据类型1 字段名2 数据类型2 ... 字段名n 数据类型n );❗注意最后一行末尾不能加逗号2.3 表的数据类型• MySQL支持多种类型可以分为三类• 数值• 日期• 字符串分类数据类型大小/格式描述数值类型TINYINT1字节小范围整数SMALLINT2字节中等范围整数MEDIUMINT3字节较大范围整数INT/INTEGER4字节大整数类型BIGINT8字节极大范围整数FLOAT4字节单精度浮点数DOUBLE8字节格式score double(总长度小数点后保留的位数)双精度浮点数DECIMAL小数值日期和时间类型DATE格式为YYYY-MM-DD存储日期TIME格式为HH:MM:SS存储时间YEAR格式为YYYY存储年份DATETIME格式为YYYY-MM-DD HH:MM:SS存储日期和时间TIMESTAMP存储时间戳字符串类型CHAR0-255字节定长字符串VARCHAR0-65535字节变长字符串TINYBLOB0-255字节不超过255个字符的二进制字符串TINYTEXT0-255字节短文本字符串BLOB0-65535字节二进制形式的长文本数据TEXT0-65535字节长文本数据MEDIUMBLOB0-16777215字节二进制形式的中等长度文本数据MEDIUMTEXT0-16777215字节中等长度文本数据LONGBLOB0-4294967295字节二进制形式的极大文本数据LONGTEXT0-4294967295字节极大文本数据2.4 修改表2.4.1 修改表名alter table 表名 rename to 新的表名;2.4.2 添加一列alter table 表名 add 列名 数据类型;2.4.3 修改数据类型alter table 表名 modify 列名 新数据类型;2.4.4 修改列名和数据类型alter table 表名 change 列名 新列名 新数据类型;2.4.5 删除列alter table 表名 drop 列名;2.5 删除表• 删除表drop table 表名;• 删除表时判断表是否存在drop table if exists 表名;五、图形化客户端工具-Navicat• Navicat for MySQL 是管理和开发 MySQL 或 MariaDB 的理想解决方案• 这套全面的前端工具为数据库管理、开发和维护提供了一款直观而强大的图形界面• 官网http://www.navicat.com.cn下载安装成功后连接本机MySQL想要修改表只需要右键点击设计表要想在客户端工具里写SQL语句只需要点击查询后点击新建查询在面板中就可以写SQL语句。写完的语句选中右键运行即可六、DML数据增删改操作DDL改表结构DML改表里真实的数据行。1、添加数据 insert1.1 给指定列添加数据insert into 表名(列名1列名2...) values(值1值2...);1.2 给全部列整行插入添加数据insert into 表名 values(值1值2...);1.3 批量添加数据一次性插入多条insert into 表名(列名1列名2...) values(值1值2...),(值1值2...)...; insert into 表名 values(值1值2...),(值1值2...)...;2、修改数据 updateupdate 表名 set 列名1值1,列名2值2,... where 条件;❗重点不加 where 条件会修改整张表全部数据新手务必带上 where 3、删除数据 deletedelete from 表名 where 条件;❗重点不加where条件清空整张表所有数据七、DQL数据查询核心语法DQL是开发使用最多只读取数据不会修改数据库内容可以放心练习。准备一张练习student表• 基础查询 • 条件查询(where) • 分组查询(group by) • 排序查询(order by) • 分页查询(limit)select 字段列表 from 表名列表 where 条件列表 group by 分组字段 having 分组后条件 order by 排序字段 limit 分页限定1、基础查询1.1 查询多个字段select 字段列表 from 表名; select * from 表名; -- 查询所有数据1.2 去除重复记录select distinct 字段列表 from 表名;1.3 起别名as: as 也可以省略2、条件查询2.1 条件查询语法select 字段列表 from 表名 where 条件列表;2.2 条件运算符符号功能大于小于大于等于小于等于等于 或 !不等于between ... and ...在某个范围内都包含in(...)多选一like 占位符模糊查询 _单个任意字符 %多个任意字符is null是nullis not null不是nulland 或 并且or 或 ||或者not 或 !非不是• 查询年龄等于18岁• 年龄大于19• 年龄18并且性别女• 分数80-100之间• 模糊查询名字以张开头• 查询第二个是红的学生信息3、排序查询 order byselect 字段列表 from 表名 order by 排序字段名1 [排序方式1],排序字段名2 [排序方式2] ...;排序方式asc升序排列默认值desc降序排列注意如果有多个排序条件当前边的条件值一样时才会根据第二条件进行排序• 分数降序排序• 先按年龄升序年龄相同再按分数降序4、聚合函数4.1 概念将一列数据作为一个整体进行纵向计算。4.2 聚合函数分类函数名功能count(列名)统计数量(一般选用不为null的列)max(列名)最大值min(列名)最小值sum(列名)求和avg(列名)平均值4.3 聚合函数语法select 聚合函数名(列名) from 表名;注意null值不参与所有聚合函数运算4.4 聚合函数演示• 总记录数量• 最高分• 最低分• 分数总和• 平均分5、分组查询 group byselect 字段列表 from 表名 [where 分组前条件限定] group by 分组字段名 [having 分组后条件过滤];注意分组之后查询的字段为聚合函数和分组字段查询其他字段无任何意义❗where 和 having 区别• 执行时机不一样where 是分组之前进行限定不满足where条件则不参与分组而having是分组之后对结果进行过滤• 可判断条件不一样where 不能对聚合函数进行判断having 可以执行顺序where 聚合函数 having• 查询男同学和女同学各自的平均分• 查询男同学和女同学各自的平均分以及各自人数要求分数低于60分的不参与分组• 查询男同学和女同学各自的平均分以及各自人数要求分组之后人数大于两个的select后面写的字段要么是group by分组字段要么是聚合函数其他字段不要写。6、分页查询 limitselect 字段列表 from 表名 limit 起始索引,每页条数;• 起始索引从0开始计算公式起始索引当前页码-1* 每页显示的条数tips• 分页查询 limit 是MySQL数据库的方言• Oracle 分页查询使用 rownumber• SQL Server 分页查询使用 top• 从0开始查询查询2条数据• 每页显示2条数据查询第1页数据• 每页显示2条数据查询第2页数据• 每页显示2条数据查询第3页数据7、小结查询完整执行顺序from 表 → where条件 → group by分组 → having → select查询字段 → order by排序 → limit分页八、结语本篇完整覆盖MySQL入门阶段核心知识点我们学习了数据库概念、环境部署、DDL库表操作、DML数据增删改、DQL各类查询。SQL是后端的基本功多动手写练习SQL避免只看不动手。掌握本篇内容为后续JavaWeb、SpringBoot项目开发打下扎实基础。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价