MySQL
定义
- 数据库:DataBase(DB),是存储和管理数据的仓库

- 数据库管理系统:DataBase Management System(DBMS),操作和管理数据库的大型软件
- SQL:Structured Query Language,操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准。
数据库产品
以下均属于关系型数据库

MySQL概述
MySQL连接:mysql -hxxx -Pxxx -uxxx -pxxx
-h:连接的ip地址(可选){未选,默认本机的3306接口}
-P:连接的端口号(可选)
-u:指定的用户名
-p:指定的密码
数据模型
-
关系型数据库:建立在关系模型基础上,由多张相互连接的二维表(有行有列)组成的数据库(RDBMS)
-
特点:
-
使用表存储数据,格式统一,便于维护
-
使用SQL语言操作,标准统一,使用方便,可用于复杂查询

数据库存储方式:
- 数据库 -> 表 -> 数据(记录)
-
SQL
- 分类:

重点关注前三个

SQL语句
DDL
数据库
- 操作语法 [ ]:可选(如果要使用里面的代码,[ ]不要敲)

数据库名后的[ ]作用是指定字符集(默认utf8mb4)
在命令行敲:mysql -u root -p进入mysql
系统自带数据库:
注意:上述语法中的database,也可以替换成schema(复数要加s)。如:Create schema db01;MySQL8版本中,默认字符集为utfmb4
MySQL客户端工具 - 图形化工具

- 介绍:DataGrip是JetBrains旗下的一款数据库管理工具,是管理和开发MySQL、Oracle、PostgreSQL的理想解决方案
- 官网:https://www.jetbrains.com/zh-cn/datagrip/
连接数据库:
-
创建project


-
创建连接


下载驱动, 可能会比较耗时, 耐心等待一会儿。
- 测试连接
下载完驱动之后,可以点击 Test Connection 来测试一下是否可以正常的连接数据库。

然后点击 OK , 就已经连接上了MySQL数据库了。
连接上以后点击图中所示按钮可以选择要展示的数据库

此时右边的控制台会出现一个console,在这里就可以编写数据库(如果没有就自行点击左侧的类似于终端按钮的图标即可显示)
注解:–
- 找上一次编辑的文件:


如果觉得名字不好记可以自行更改
表结构-创建
- 创建表的语法:

|
|
选中该字段运行:左侧就会出现相关信息

双击user:就可以查看表

- 约束:约束是作用于表中字段上的规则,用于限制存储在表中的数据
- 目的:保证数据库中数据的正确性、有效性和完整性

|
|

|
|
- 数据类型
MySQL中的数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型
数值类型:

字符串类型:

日期时间类型:

案例
根据页面原型,设计员工表
步骤:
①阅读并分析页面原型及需求
②分析表中包含哪些字段,以及字段的类型、约束
③创建表结构
需求:
![]()


![]()
|
|
表结构-查询、修改、删除
- 表结构的查询、修改、删除相关语法如下:

注意:在删除表时,表中的全部数据也会被删除
|
|
也可以通过以下操作添加/修改,删除字段选择" - “,删除表结构选择drop,改名选择Rename

DML
-
DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增、删、改操作。
- 添加数据(INSERT)
- 修改数据(UPDATE)
- 删除数据(DELETE)
添加语句

|
|
注意: 1.插入数据时,指定的字段顺序需要与值的顺序是一一对应的 2.字符串和日期型数据应该包含在引号中(单引号、双引号都可以) (使用双引号可能会报红,但是不妨碍正常运行,建议使用单引号) 3.插入的数据大小/长度,应该在字段的规定范围内
修改语句

注意:修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据
|
|
如果不添加条件,会报出以下警告,此时点击Execute则会继续运行


删除语句

注意:
1.DELETE 语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据。
2.DELETE 语句不能删除某一个字段的值(如果要操作,可以使用UPDATE,将该字段的值置为NULL)。
|
|


DQL
- DQL英文全称是Data Query Language(数据查询语言),用来查询数据库表中的记录
- 关键字:SELECT

基本查询

|
|




注意:* 号代表查询所有字段,在实际开发中尽量少用(不直观、影响效率)
条件查询

|
|
语句太多,结果就不一一展示了
分组查询


|
|
注意:
1.null值不参与所有聚合函数的运算
2.统计数量可以使用:count() count(字段) count(常量),推荐使用count()


|
|


注意:
1.分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义
2.执行顺序: where > 聚合函数(group by) > having
having后可以使用聚合函数,where不可以
排序查询

- 排序方式:升序(asc),降序(desc);默认为升序asc,是可以不写的。
注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序
|
|


3.
分页查询


|
|
注意:
项目开发中,前段传递过来的是页码,需要转化为起始索引
起始索引 = (页码 - 1) * 每页展示记录数
