发布时间:2025-06-24 17:39:53  作者:北方职教升学中心  阅读量:034


  1. mysqld的作用

    • mysqld是MySQL的服务器程序,它负责处理客户端的连接请求、图形化管理工具等)尝试连接到MySQL数据库时,实际上是连接到mysqld进程。执行SQL语句、.快速上手使用数据库

      ​ 在这里,我们抛弃刻板的说教,直接先用一用mysql:

      创建数据库

      createdatabasedb_1;

      选择要用的数据库

      usedb_1;

      创建数据库表

      createtableifnotexistsstudents(id int,name varchar(13),sex varchar(3));

      表中插入数据

      insertintostudents (id,name,sex)values(1,'张三','男');insertintostudents (id,name,sex)values(2,'李四','女');insertintostudents (id,name,sex)values(3,'王五','男');

      查询表中的数据

      select*fromstudents;

      查询到的数据会是如下:

      查询到的数据

      这样就说明我们初步成功使用了mysql!!

      这个时候,我们在linux中进入db_1,会发现目录内部已经创建了一些文件了,这些文件就是students表对应linux目录树的文件。

      selectdatabase();

      1.7数据库的备份和恢复

      1.7.1数据库备份:

      数据库的备份方式有多种,既可以在linux目录树中直接把文件拷贝一份,备份起来,也可以把创建数据库的语句保存起来。管理数据库文件等。mysql登录的基本介绍

      ​ 在确保MySQL处于运行状态下,在linux命令行输入指令:

      mysql -h 127.0.0.1 -P 3306 -u root -p

      解释:

      -h:指明登录部署了MySQL的主机

      -P(大写):指明我们要访问的端口号

      -u:指明登录用户

      -p(小写):指明需要通过输入密码登录

      二、

      1.8查看数据库的链接情况

      语法:

      showprocesslist;

      查看数据库的链接情况
      这个命令对应的输出可以告诉我们那些用户链接到了我们的MySQL,可以排查数据库被黑入的情况。MySQL的基本理解

      1.为什么可以在本地查询到mysqld?

      ​ 我们可以通过ps axj | grep mysql指令可以查看到运行的mysql,以及mysqld:

      img

      其中:mysql是数据库服务的客户端;mysqld是数据库服务的服务端。(comment是类似于注释的东西,在建表的时候放在每列的类型后面)

      总结:

      • 修改表名:
      altertable现在表名 renameto新表名;
      • 增加某一列:
      altertable表名 add新列名 datatype commentafter现有列名;

      示例:在users表中新增一个语文成绩:

      在users表中新增一个语文成绩

      • 删除某一列:
      altertableusers droppassword;

      运行前后比较:运行前后比较

      • 修改某一列:
      altertable表名 modify列名 新datatype;(会覆盖原有的数据类型)

      示例:把users内的name列的长度扩大为100:

      altertableusers modifyname varchar(100);

      把users内的name列的长度扩大为100


      五、表的操作
      @水墨不写bug
      MySQL

      文章目录

      • 一、

        标题:[MySQL初阶]MySQL(1)MySQL的理解、

        1.4修改数据库

        修改数据库的语法

        ALTERDATABASEdb_name	[alter_spacification [,alter_spacification]...]alter_spacification:[DEFAULT]CHARACTERSETcharset_name[DEFAULT]COLLATEcollation_name

        对数据库的修改主要是对数据库的字符集和校验集进行修改。
        **说明:

        coln:表示列名称
        datatype:表示数据类型
        charset:表示字符集;若不指定,则继承数据库的字符集
        collate:校验规则;若不指定,则继承数据库的校验规则

        2.2删除表

        语法:

        DROP[TEMPORARY]TABLE[IFEXISTS]tbl_name [,tbl_name]...

        示例:删除上述创建的users表;

        droptableusers;

        2.3查看表

        语法:

        desc+表名称;

        示例:创建一个表,并查看这个表。
        如果不得已需要修改表,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎;以及增加字段,删除字段等,就需要如下的语法:

        ALTERTABLEtablename ADD(columndatatype [DEFAULTexpr][,columndatatype]...);ALTERTABLEtablename MODIfy(columndatatype [DEFAULTexpr][,columndatatype]...);ALTERTABLEtablename DROP(column);
        2.4.1查看comment

        在修改表之前,需要先理解清楚表中的每一个字段代表的意义,这就需要查看comment字段:

        showcreatetable+表名 \G;

        对,这就是上面的查看创建表语句的sql语句,在输出中也可查看到comment 内容。
        示例:把上面演示的时候创建的db_1成绩数据库的字符集修改为gbk:

        alterdatabasedb_1 charset=gbk;

        把上面演示的时候创建的db_1成绩数据库的字符集修改为gbk

        1.5删除数据库

        DROPDATABASE[IFEXISTS]db_ name;

        删除之后:
        mysql内部看不到对应的数据库
        linux对应的数据库文件夹被删除,级联删除,里面的数据表全部被删

        删除数据库要慎重!

        1.6查询数据库

        在使用某一个数据库之前,需要先选择这个数据库:

        use+数据库名称;

        如果想要查询我们当前处于的数据库,如下指令可以显示我们当前所处的数据库名称。

        2.表的操作

        2.1创建表

        语法:

        CREATETABLEtb_name (col1 datatype,col2 datatype,col3 datatype)charset=字符集 collate=校验规则 engine=存储引擎;(这是我比较喜欢的写法)

        charset=字符集 collate=校验规则 engine=存储引擎

        如果不写上述部分设置,则mysql会使用默认的字符集,校验集,存储引擎。mysql登录的基本介绍

      • 二、

        示例一:使用校验规则分别为utf8_general_ci(不区分大小写)、
        此外这篇文章,我认为起到了不错的引导作用!


        ~完
        转载请注明出处

1.7.3注意事项
  • 如果备份的不是整个库,而是库中的几个表该如何操作?

运行如下指令即可:

mysqldump -u root -p 数据库名称 表名1表名2...>路径(具体到每一个.sql文件)
  • 如果同时备份多个数据库
mysqldump -u root -p -B 数据库名1数据库名2...>数据库存放路径
  • 如果在备份一个数据库时,没有带上-B参数?

在恢复数据库时,需要先创建一个空数据库,然后:

use+数据库名称

然后再用source还原即可。


2.MySQL数据库、


小结:

1.创建MySQL数据库:create database +数据库名称;

2.查看现有的数据库:show databases;

3.运行mysql指令,在末尾需要加上分号“;”,与C++类似。utf8_bin(区分大小写)查询相同的表结构:

name:a A b B c C d D

执行如下的查询语句:

select*fromtem wherech ='a';

utf8_general_ci(不区分大小写):

utf8_general_ci结果

utf8_bin(区分大小写):

utf8_bin结果


示例二、
对我们一般而言的用途是当我们发现数据库比较卡的时候,可以看看数据库的链接情况。
否则,在项目开发中后期,上层的代码逻辑和数据库之间的关系在修改表之后,往往会出现各种问题。

三、
  • 当客户端(如mysql命令行工具、理解MySQL数据库
  • 1.库的操作

    1.1创建数据库语法

    CREATEDATABASE[IFNOTEXISTS]db_name 	[create_specification     [,create_specification]...]create_specification:	[DEFAULT]CHARACTERSETcharset_name	[DEFAULT]COLLATEcollation_name
    • 大写的表示关键字
    • [] 是可选项
    • CHARACTER SET: 指定数据库采用的字符集
    • COLLATE: 指定数据库字符集的校验规则

    1.2数据库的编码集

    在创建数据库的时候,会发现我们可以指定数据库的编码集和校验集:

    字符集——数据库未来存入数据使用的编码格式;
    校验集——支持数据库进行字段比较的编码,是从数据库读取数据采用的编码格式;

    示例:创建一个一个数据库,用来记录同学们的各科成绩,字符集和校验集都采用utf-8编码:
    创建示例


    查看系统默认字符集以及校验规则
    运行如下指令,可以查看

    showvariables like'character_set_database';

    我的数据库默认的字符集

    showvariables like'collation_database';

    我的数据库默认的校验集

    查看数据库支持的所有的字符集
    数据库支持的所有的字符集

    查看数据库支持的所有的校验规则
    数据库支持的所有的校验规则


    校验规则对数据库的影响,为什么要指定数据库的编码规则?
    1.数据库中表的编码规则继承自数据库;
    2.使用不同的校验规则,即使对相同的数据,查询的结果也会不同。文件 结构的对应关系?

  • 三、

    通过本篇文章,你应该知道:

    • 1.mysql数据库如何登录;

    • 2.mysql数据库的内容和linux目录树之间的对应关系;

    • 3.本地可以查询到的mysqld是实际执行sql语句的;

    • 4.mysql数据库的增删查改,以及相关sql语句如何使用;

    • 5.mysql数据库内的表的增删查改,以及相关语句如何使用。
      前者 通常数据量庞大,不推荐;
      后者 则是MySQL备份数据的方式:

      在linux命令行中运行如下指令,注意是linux中,而不是mysql中!!

      mysqldump -u root -P3306 -p -B 数据库名 >数据库备份存储的文件路径+保存的文件名(.sql后缀)

      MySQL数据库的备份
      此时,若打开.sal文件,会发现备份数据库的内容其实就是把整个创建数据库,建表,导入数据的语句都装到了这个文件中。总结

  • 一、

    createtableifnotexistsusers(id int,name varchar(13),passwd char(32),birthday date);descusers;

    输出结果:
    查看这个表

    2.4修改表

    在实际开发中,修改表一般是不推荐的;
    在项目开发初期,就要决定并敲定表的结构设计,特别是开发人员和项目经理之间的协调。库的操作、


    根据现有的理解,MySQL不是一个网络服务吗,为什么可以在本地查询到mysql的服务端mysqld?

    mysqld确实是MySQL的服务端,并且可以在本地进程列表中查询到mysqld,这是因为mysqld作为MySQL的服务器后台程序,它在后台运行并监听特定的端口(通常是3306端口),以便客户端程序可以连接并访问数据库。总结

    能看到这里,你很厉害。文件 结构的对应关系?

    ​ 当我们登录MySQL,可以先运行最简单的一条指令:创建一个数据库

    create database db_1;

    img

    这样我们就成功创建了第一个MySQL数据库,可以通过show databases 查看:

    show databases;

    img

    ​ 可能你会发现出现了就像上图一样的很多数据库,这些数据库可能是系统默认就有的,不必担心。

    当然知道了这些语法并不代表什么,希望你继续学习更加深入的知识。理解MySQL数据库

    • 1.库的操作
      • 1.1创建数据库语法
      • 1.2数据库的编码集
      • 1.3 查看创建数据库的语句
      • 1.4修改数据库
      • 1.5删除数据库
      • 1.6查询数据库
      • 1.7数据库的备份和恢复
        • 1.7.1数据库备份:
        • 1.7.2数据库还原
        • 1.7.3注意事项
      • 1.8查看数据库的链接情况
    • 2.表的操作
      • 2.1创建表
      • 2.2删除表
      • 2.3查看表
      • 2.4修改表
        • 2.4.1查看comment
  • 五、表结构 和 linux目录、MySQL的基本理解
    • 1.为什么可以在本地查询到mysqld?
    • 2.MySQL数据库、区分与不区分大小写的排序结果

      不区分大小写的排序
      不区分大小写的排序结果
      区分大小写的排序
      区分大小写的排序

      1.3 查看创建数据库的语句

      我们想要知道一个数据库当初是如何创建出来的,可以使用如下的指令来查看创建这个数据库的语句:

      showcreatedatabase+数据库名称;

      示例:查看上面演示的时候创建的db_1的数据库语句:
      演示的时候创建的db_1的数据库语句

      在指令的结尾处加上“\G”,可以让输出更加便于阅读。

      1.7.2数据库还原

      在mysql中运行如下指令:

      source +备份的数据库的路径和文件名(.sql后缀)

      还原的sql语句,本质是把建库,建表,导入数据的历史有效命令全都执行了一遍。.快速上手使用数据库

    • 四、表结构 和 linux目录、

      对应Linux目录树中的文件


      四、

      但是这些数据库和linux的目录树有什么关系?

      ​ 当我们进入 /var/lib/mysql 这个目录,会发现这个目录下就有我们刚刚创建的db_1!

      img

      这就验证了上一篇安装后顺便讲述的结论:([MySQL]如何在Ubuntu快速安装MySQL,开启高效管理海量数据的新世界大门?)

      • 建立数据库,本质就是在linux的一个特定目录下建立一个目录;
      • 在数据库内建表,本质就是在linux下的一个目录中创建文件;
      • 数据库的本质其实也是文件,只不过这个文件不直接由我们直接操作,而是由数据库伴我们进行操作。