网页后端开发(基础4--数据库MySQL)

发布于:2025-06-20 ⋅ 阅读:(15) ⋅ 点赞:(0)

 MySQL概述

数据库:DataBase(DB),是存储和管理数据的仓库。

数据库管理系统:DataBaseManagementSystem(DBMS),操纵和管理数据库的大型软件。
SOL:Structured Query Language,操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准.

MySQL基础设置

MySQL连接语法:mysql -u用户名 -p密码 [-h数据库服务器IP地址 -P端口号]

例如:mysql -uroot -p1234

退出MySQL

MySQL数据模型

关系型数据库:建立在关系模型基础上,由多张相互连接的二维表组成的数据库。

特点:
使用表存储数据,格式统一,便于维护。
使用SQL语言操作,标准统一,使用方便,可用于复杂查询

DBMS(数据库管理系统,Database Management System)是一种用于操纵和管理数据库的大型软件系统。它的主要功能包括建立、使用和维护数据库,确保数据库的安全性和完整性。DBMS是数据库系统的核心组成部分,通过它可以对数据库进行定义、查询、更新及各种控制。

主要功能

  1. 数据定义:DBMS提供数据定义语言(DDL),用于定义数据库的结构、约束和权限。

  2. 数据操作:DBMS提供数据操作语言(DML),用于实现对数据的追加、删除、更新和查询。

  3. 数据库运行管理:包括并发控制、安全性检查、存取限制控制、完整性检查和事务管理等。

  4. 数据组织、存储与管理:分类组织、存储和管理各种数据,提高存储空间利用率和存取效率。

  5. 数据库保护:通过恢复、并发控制、完整性控制和安全性控制来保护数据库中的数据。

SQL语句

SQL:一门操作关系型数据库的编程语言,定义操作所有关系型数据库的统一标准。

SQL分类

DDL(对数据库和表的结构进行处理)

对数据库的处理

查询所有数据库  show databases;
查询当前数据库  select database;
使用/切换数据库  use 数据库名;
创建数据库  create database [if not exists] 数据库名 [default charset utf8mb4];
删除数据库 drop database [if exists] 数据名;

示例:

连接数据库:

创建数据库:

创建重复数据库:(会产生报错,需要使用 [if not exists] )

查询所有数据库:

注意:information_schema  mysql  performance_schema  sys这四个是Mysql的系统数据库,尽量不要对这四个数据库进行操作。

使用/切换数据库:

查询当前数据库:

删除数据库:

注意:
上述语法中的database,也可以替换成Schema。
如:create schema dbo1;

MySQL8版本中,默认字符集为utf8mb4

图形化工具

使用命令提示符管理MySQL时,没有提示且操作比较繁琐,所以使用客户端工具。

MySQL客户端工具-图形化工具:SQLyog,Navicat,Premium,Intelly IDEA,DataGrip

DataGrip是JetBrains旗下的一款数据库管理工具,是管理和开发MySQL、Oracle、PostgreSQL的理想解决方案。

具体操作:

选择需要执行的语句,点击运行,运行代码。

且执行的语句不会丢失,可以使用下面方法找回:

可以使用图形化工具直接进行创建数据库:

可以使用图形化工具直接进行删除数据库:

刷新数据库:

表结构的数据类型

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

数值类型:

字符串类型:

日期时间类型:

总结:

1.数值类型在定义的时候,后面加了unsigned关键字是什么意思?
unsigned表示无符号类型,表示只能取及正数
不加默认是signed,表示可以取负数


2.char与varchar的区别是什么?什么时候用char,什么时候用varchar
char是定长字符串,varchar是变长字符串
如果一个字段的长度是固定的,建议使用char;如:身份证号、手机号
如果一个字段的长度不是固定的,建议使用varchar;如:用户名、姓名

对表结构的创建

给表内添加数据:

查询表内数据:

对表结构的约束

约束:约束是作用于表中字段上的规则,用于限制存储在表中的数据。

目的:保证数据库中数据的正确性、有效性和完整性。

示例:

表的编号不能重复且不能为空。

手机号不能重复。

使用方法:

运行结果:

总结

示例:

对表结构的查询,修改,删除

注意:在删除表时,表中的全部数据也会被删除

查询表:

查询表结构:

查询建表语句:

添加表结构:

修改表的一个结构的名称:

删除表的某个结构:

修改整个表的名称:

删除整个表

DML(对表的数据进行处理)

        DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增、删、改操作。

添加数据(INSERT)

示例:

示例2:

示例3

示例4

总结:

1.插入数据时,指定的字段顺序需要与值的顺序是一一对应的。
2.字符串和日期型数据应该包含在引号中(单引号、双引号都可以)。
3.插入的数据大小/长度,应该在字段的规定范围内。


修改数据(UPDATE)

注意:修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据。

示例1:

示例2:

修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据。


删除数据(DELETE)

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

示例1:

示例2:

DQL(对表的数据进行查询)

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

基本查询(select...from...)

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

创建表,并进行初始化

示例1

示例2

示例3

示例4

示例5

总结:

1.基本查询语法?
select 字段列表 from 表名
2,如何为查询返回的字段设置别名?

字段名 as 别名
3,如何去除查询返回的重复记录?
distinct

示例:select job from emp1;   不去重

select distinct job from emp1;  去重


条件查询(where)

示例1:

示例2:

示例3:

示例4:

示例5:

示例6:

示例7:

示例8:

示例9:

示例10:

示例11:

总结:

1.如何进行nu值的判断?
is null,s not null
2.模糊匹配中的通配符?
%(任意个字符),_(一个字符)
3如何组装多个查询条件?
and/or


分组查询(group by)

聚合函数

示例1:

示例2:

示例3:

示例4:

示例5:

示例6:

示例7:

注意:
1.nuli值不参与所有聚合函数的运算
2,统计数量可以使用:

count(*),count(字段),count(常量),推荐使用count(*)

分组查询

示例1:

示例1:

报错,因为分组与查询的字段不符。

示例2:

示例3:

示例4:

示例5:

示例6:

注意:


排序查询(order by)

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

示例1:

示例2:

示例3:

示例4:

注意:

下面排序查询的语法分别代表什么意思
         ...order by age;
//根据age进行升序排列
         ...order by age desc ,score asc; //根据age进行降序排列,如果age相同,则根据score进行升序排列
         ...order by age, score, update_time desc;//根据age进行升序排列。如果age相同,则根据score进行升序排列。如果score也相同,则根据update_time进行降序排列。


分页查询(limit)

示例1:

示例2:

示例3:

示例4:

DOL语句中的分页查询:
语法:Limit起始索引,每页展示记录数
注意:项目开发中,前端传递过来的是页码,需要转换为起始索引
公式:  (页码-1)*每页展示记录数


网站公告

今日签到

点亮在社区的每一天
去签到