小工具知识网

当前位置: 首页 > 行业知识 > 【MySQL篇】 MySQL基础学习

行业知识

【MySQL篇】 MySQL基础学习

2026-11-15 04:51:17 来源:互联网转载

文章目录

  • 前言
  • 基础
    • 数据类型
    • DDL数据库操作
      • 查询数据库
      • 创建数据库
      • 删除数据库
      • 使用数据库
      • DDL表操作
        • 创建表
        • 查询表
        • 修改表
        • 删除
        • DML-增删改
          • 添加数据
          • 更改数据
          • 删除数据
          • DQL-查询
            • 基础查询
            • 条件查询
            • 聚合函数
            • 分组查询
            • 排序查询
            • 分页查询
            • 编写顺序
            • DML-用户及权限
              • 用户管理
              • 权限控制
              • 函数
                • 字符串函数
                • 数值函数
                • 日期函数
                • 流程函数
                • 约束
                  • 概述
                  • 外键约束
                  • 外键更新、删除时的操作
                  • 多表查询
                    • 概述
                    • 连接查询
                      • 内连接
                      • 外连接
                      • 自连接
                      • 联合查询
                      • 子查询
                        • 标量子查询
                        • 列子查询
                        • 行子查询
                        • 表子查询
                        • 事务
                          • 基础
                          • 操作
                          • 四大特性
                          • 并发事务问题

                            前言

                            在做项���的过程中,深深感悟到一个扎实的MySQL基础是多么重要,这篇文章就用来记录一下我对于MySQL的复习,下面开始介绍了。

                            MySQL 是一款开源免费的数据库。后端程序员的工作离不开与数据库打交道,MySQL因其简单易懂、使用方便的特性深受Java程序员喜爱,这篇文章就让我们一起来了解MySQL。

                            此外,在这里我非常推荐大家可以去看看鱼皮大佬的MySQL练习网站SQL之母 - SQL自学网站 (yupi.icu),大家可以在上面检验一下自己编写sql语句的水平。

                            基础

                            数据类型

                            数值类型:

                            字符串类型:

                            日期类型:

                            DDL数据库操作

                            查询数据库

                            查询所有数据库

                            show databases;

                            查询当前数据库

                            select database();

                            创建数据库

                            create database 数据库名;

                            如果不存在该数据库则创建,存在则创建失败:

                            create database if not exists 数据库名;

                            删除数据库

                            drop database 数据库名;

                            如果存在该数据库则删除,不存在则删除失败:

                            drop database if exists 数据库名;

                            使用数据库

                            对某个数据库操作(进入该数据库来操作数据库中的表)

                            use 数据库名;

                            DDL表操作

                            记住一定要先进入该数据库,才能对该数据库的表进行操作。

                            创建表

                            create table 表名(    data1 数据类型 可接comment '注释'表示对data注释,    data2 数据类型,    data3 数据类型) comment '注释';

                            如下表:表示创建一个包含姓名、年龄、爱好这三个字段的用户表

                            create table user(name varchar(20) comment '姓名',    age int comment '年龄',    gender varchar(100) comment '爱好')comment '用户表';

                            查询表

                            1.查询当前库的所有表

                            show tables;

                            2.查询表结构

                            desc 表名;
                            1. 查询指定表的建表结构
                            show create table 表名;

                            修改表

                            1.添加字段

                            alter table 表名 add 字段名 数据类型;

                            2.修改字段

                            • 修改数据类型
                              alter table 表名 modify 字段名 新数据类型;
                              • 修改字段名和字段类型
                                alter table 表名 change 旧字段名 新字段名 类型;

                                3.修改表名

                                alter table 表名 rename to 新表名;

                                删除

                                1.删除字段

                                alter table 表名 drop 字段名;

                                2.删除表

                                drop table 表名;

                                3.删除并重新创建该表

                                truncate table 表名;

                                DML-增删改

                                添加数据

                                1.给指定字段添加数据

                                insert into 表名 (字段1、字段2,...) values (值1,值2,...);

                                2.给全部字段添加数据

                                insert into 表名 values (值1,值2,...);

                                3.批量添加数据

                                insert into 表名(字段1、字段2,...) values (值1,值2,...),(值1,值2,...),...;
                                insert into 表名 values (值1,值2,...),(值1,值2,...);

                                更改数据

                                这里大致列出基本语法,更新时主要是根据where条件来更新(后面会讲)

                                1.更新所有数据

                                update 表名 set 字段1=要更改成的值;

                                2.更新部分数据

                                update 表名 set 字段1=要更改成的值 where 字段2=某值;

                                删除数据

                                1.删除所有数据

                                delete from 表名;

                                2.删除部分数据

                                delete from 表名 where 字段1=某值;

                                DQL-查询

                                基础查询

                                *表示所有字段

                                1.查询多个字段

                                select 字段1,字段2,... from 表名;
                                select * from 表名;

                                2.设置别名(在我们的sql语句比较复杂时设置别名可以让我们的sql语句更加简洁清晰)

                                select 字段1 as '别名' from 表名;

                                3.去除重复记录

                                select distinct 字段 from 表名;

                                条件查询

                                select 字段列表 from 表名 where 条件;

                                %表示任意长度的任意字符序列。_表示单个字符。

                                例如我们要查询一张表中名字中不带李的其他所有人的信息:

                                select * from 表名 where name not like '%李%';

                                聚合函数

                                函数功能
                                count统计数量
                                max最大值
                                min最小值
                                avg平均值
                                sum求和

                                语法:

                                select 聚合函数(字段) from 表名;

                                例子如下:

                                • 统计user表中未成年的数量(每条数据都有一个id字段用来确定唯一性)
                                  select count(id) from user where age聚合函数>having
                                • 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义

                                  排序查询

                                  select 字段 from 表名 order by 字段1 排序方式,字段2 排序方式;

                                  asc升序(默认) desc(降序)

                                  • 例如:根据创建时间(create_time)降序查询
                                    select * from user order by create_time desc;

                                    注意:如果是多字段排序,第一个字段相同时,才会继续根据第二个字段排序。

                                    分页查询

                                    select 字段 from 表名 limit 起始索引,查询记录数;

                                    注意:*起始索引从0开始,起始索引=(查询页码-1)每页显示记录数。

                                    • 查询第1页数据,每页10条数据
                                      select * from 表名 limit 0,10;
                                      • 查询第2页数据,每页10条数据
                                        select * from 表名 limit 10,10;

                                        编写顺序

                                        select 字段列表 from 表名列表 where 条件列表 group by 分组字段列表 having 分组后条件列表 order by 排序字段列表 limit 分页参数;

                                        DML-用户及权限

                                        用户管理

                                        1.查询用户

                                        use mysql;select * from user;

                                        2.创建用户

                                        create user '用户名'@'主机名' identified by '密码';

                                        3.修改用户密码

                                        alter user '用户名'@'主机名' identified with mysql_native_password by '新密码';

                                        4.删除用户

                                        drop user '用户名'@'主机名';

                                        权限控制

                                        常见权限:

                                        权限意义
                                        all所有权限
                                        select查询数据
                                        insert插入数据
                                        update修改数据
                                        delete删除数据
                                        alter修改表
                                        drop删除数据库、表、视图
                                        create创建数据库、表

                                        1.查询权限

                                        show grants for '用户名'@'主机名';

                                        2.授予权限

                                        grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';

                                        3.撤销权限

                                        revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';

                                        注意:1.多个权限中用逗号分隔。2.数据库名和表名都可以用*表示,代表所有。

                                        函数

                                        不知道你是否还记得上面我们讲到过聚合函数,这里是其他的函数,具体用法就先不一一介绍了,混个眼熟后续再细说。

                                        字符串函数

                                        函数功能
                                        concat(s1,s2,…,sn)将s1,s2…sn拼接起来
                                        lower(str)将str全转换为小写
                                        upper(str)将str全转换为大写
                                        lpad(str,n,pad)用pad填充str左边,达到n个长度
                                        rpad(str,n,pad)用pad填充str右边,达到n个长度
                                        trim(str)去掉字符串头尾的空格
                                        substring(str,start,len)返回str从start开始len个长度的字符串,索引从1开始

                                        数值函数

                                        函数功能
                                        ceil(x)对x向上取整
                                        floor(x)对x向下取整
                                        mod(x,y)返回x除以y取余
                                        rand()返回0~1的随机数
                                        round(x,y)求x四舍五入的值,保留y位小数

                                        日期函数

                                        函数功能
                                        curdate()返回当前日期
                                        curtime()返回当前时间
                                        now()返回当前日期和时间
                                        year(date)获取date的年
                                        month(date)获取date的月
                                        day(date)获取date的日
                                        date_add(date,interval expr type)返回date加上type类型的时间间隔expr后的时间
                                        datediff(date1,date2)返回date1和date2的时间间隔

                                        流程函数

                                        函数功能
                                        if(value,t,f)若value位true,返回t,否则返回f
                                        ifnull(value1,value2)若value不为空,返回value1,否则返回value2
                                        case val1 then res1 when val2 then res2… elae res3 end如果val1为真返回res1,val2为真返回res2,否则返回res3
                                        case expr when val1 then res1 when val2 then res2… elae res3 end如果expr为val1则返回res1,为val2则返回res2,否则返回res3

                                        约束

                                        概述

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

                                        约束描述关键字
                                        非空约束数据不能为nullnot null
                                        唯一约束数据唯一,不能重复unique
                                        主键约束主键是一行数据的唯一表示,要非空且唯一primary key
                                        默认约束若未指定该字段的值,采用默认值default
                                        检查约束保证字段值满足一个条件check
                                        外键约束让两张表的数据之间建立连接,保证数据的一致性以及完整性foreign key

                                        注意:我们可以在创建表的时候添加约束,也可以在修改表的时候添加约束。

                                        实例:

                                        create table user(    id int primary key auto_increment comment '主键',    name varchar(10) not null unique comment '姓名',    age int check (age>0&&age50union allselect * from emp where salary

上一篇:域服务器怎么查找登录账号?

下一篇:优保刷单平台揭秘,违法犯罪的警示与风险深度剖析!