暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

mysql基础知识

黑马金牌编程 2021-09-26
135

创建数据库:

    create database +(名称);

删除数据库数据库:

    drop database +(名称);

显示数据表:

    show tables; 

创建表:

    create table +表名;

删除表:

    drop table +表名;


显示表结构:

desc +表名


重设MySQL密码方法:

    

    mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
    mysql -u root mysql
    UPDATE user SET password=''??WHERE User='root' AND Host='localhost';
    FLUSH PRIVILEGES;
    quit;
    mysqladmin -u root password '123456‘
    pgrep -l mysqld_safe ,查到pid再kill -9 pid
    mysql -u root -p
    复制


    记住密码的情况下可以用下面方法修改密码:

      update user set password=password('新密码') where user='用户名';
      (在mysql数据库里更改普通用户 密码),更改之后刷新权限:
      flush privileges;




      也可以使用set更改用户密码:set password=password('新密码');


      password()函数具有加密功能
      复制


      (更改数据库编码方式):

                  alter database 数据库名称 default character set 编码方式 collate 编码方式_bin;

      (修改数据表名称):

                  alter table 旧名称 rename to 新名称;

      修改字段名):

                  alter table 表名 change 旧字段名 新字段名 新数据类型;

      (修改字段数据类型):

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

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

      (删除字段名):

                  alter table 表名 drop 字段名;


      在数据表字段尾数加auto_increment,可以实现自动递增。


      修改数据库编码

          vim etc/my.cnf

            添加:
        [client]
        default-character-set=utf8
        [mysql]
        default-character-set=utf8
        [mysqld]
        character-set-server=utf8
        复制


            或者直接输入:SET character_set_server = utf8;


            也可以在创建数据表时在后面指定字符集:ENGINE = MyISAM DEFAULT CHARSET UTF8;


            Mysql数据库默认使用的引擎是MyISAM,而MyISAM引擎不支持建外键,所以将数据库默认引擎改为                   InnoDB。


        insert 语句可以不指定字段名添加数据

        IN关键字可以查询在集合内的数据,NOT IN则查询不在集合内的数据

        between and 关键字用于查询指定范围内的数据,加 NOT则相反。

        使用 IS NULL 查询字段是否为空

        distinct用于过滤查询的重复数据

        修改表字符集 :

            alter table 表名 convert to character set utf8;

        数据备份:

           

          mysqldump -uroot -p123456   chapter08>备份路径+备份名称后缀名为sql(备份单个数据库)




          mysqldump -uroot -p123456 【--database(此参数可以备份多个数据库)】+要备份的多个数据库>备份 路 径+备份名称后缀名为sql(备份多个数据库)




          mysqldump -uroot -p123456 --all-databases >备份路径+备份名称后缀名为sql(备份所有数据库)




          数据库不能还原,只能还原数据库里的数据,数据库被删除后,需要新建数据库,然后才能还原里面的数 据。




          mysql -u用户名 -p密码 要还原的数据库 < 已备份的数据库路径+备份名称后缀名为sql(备份单个数据库)
          复制



          (用于创建用户密码):

          identified by '密码';

          使用insert语句创建的用户,需要使用flush privileges刷新权限才可以登陆数据库。


          grant insert,select on *.* to 'user4'@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION;(创建用户并且赋予对所有数据库具有查询,增加以及对其他用户具有赋予相应权限的功能)

          (收回了添加权限):

          REVOKE语句可以收回权限比如 revoke insert on *.* from 'user5'@'localhost';

          (收回用户所有权限):

          revoke all privileges,grant option from 'user6'@'localhost';


          数据库起始状态的设定信息是不安全的,任何用户都可以登陆而不需要输密码,所以我们需要作以下设定:


            mysql_secure_installation                             安全初始化
            Enter current password for root (enter for none): 刚下载的mariadb超户是没有密码的,且默认登陆的用户就是超户,所以直接回车
            Set root password? [Y/n] 是否为超户设置密码
            New password: 输入你设置的密码
            Re-enter new password: 再次输入你设置的密码
            Remove anonymous users? [Y/n] 是否移走匿名用户
            Disallow root login remotely? [Y/n] 不允许超户远程登陆
            Remove test database and access to it? [Y/n] 删掉测试的数据库
            Reload privilege tables now? [Y/n] 对数据库刷新,让所有的数据同步
            复制




            MySQL引擎功能对比:




            文章转载自黑马金牌编程,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

            评论