数据库的下载

  • 添加源 rpm -ivh https://repo.mysql.com/mysql57-community-release-el7-9.noarch.rpm
  • yum 安装yum install mysql-community-server -y --nogpgcheck
  • 使用之前使用systemctl工具进行服务的开启

    数据库的常规操作(增删改查)

  • 登录数据库mysql -uroot -p1;

  • 增加数据库 create database<数据库名>,`` create database db1 charset utf8;
  • 查看数据库show databases;
  • 修改数据库 alter database db1 charset latin1;
  • 删除数据库 drop database db1;

对于表的操作

  • 修改表中的数据使用update update t1 set name='sb' where id=2;
  • 进入到某一数据库中 use use db1;
  • 删除表中的某一数据delete from t1 where id=1;
    • l两种删除表的方法的对比
      • delete from t1; #如果有自增id,新增的数据,仍然是以删除前的最后一样作为起始
      • truncate table t1;数据量大,删除速度比上一条快,且直接从零开始,
  • 删除表 drop table t1;

远程连接数据库

  • tcp/ip 方式:示例代码:mysql -uroot -p777 -h 192.168.80.128 -P3306
  • socket 方式:示例代码:mysql -uroot -p -S /tmp/mysql.sock

    存储引擎(表)

  • InnoDB

    • ⽀持事务,主要⾯向在线事务(OLTP)处理的应⽤;
    • ⾏锁设计、⽀持外键、⽀持类似于Oracle的⾮锁定读;
    • 从5.5.8版本开始,InnoDB存储引擎是默认的存储引擎;
    • 将数据放在⼀个逻辑的表空间中,这个表空间就像⿊盒⼀样由InnoDB存储引擎⾃身进⾏管 理;
  • MyISAM

    • 不⽀持事务、表锁设计、⽀持全⽂索引,主要⾯向OLAP数据库应⽤;
    • 它的缓冲池只缓存索引⽂件,不缓存数据⽂件;
    • MyISAM存储引擎表由MYD和MYI组成,MYD⽤来存放数据⽂件,MYI⽤来存放索引⽂件。

      存储引擎的查看

      show engines\G;
  • 查看默认存储引擎 show engines\G;

  • 创建指定存储引擎的表
    • create table ai(id bigint(12),name varchar(200)) ENGINE=MyISAM;
    • create table country(id int(4),cname varchar(50)) ENGINE=InnoDB;
  • 切换存储引擎alter table ai engine = innodb;
  • 配置文件修改存储引擎vim /etc/my.cnf `` default-storage-engine=INNODB

    SQL语句

    用户管理

  • 创建用户 create user eagle@192.168.33.128 identified by '1';

  • 查询用户 select user,host,password from mysql.user;
  • 修改用户密码use mysql update user set password=password('2') where user='eagle' and host='192.168.33.128';
  • 删除用户 drop user eagle@192.168.33.128;

    管理员密码设定

    示例: mysqladmin -uroot -p password 1(这里的1输入的是新密码)
    在Enter password界面中输入的是旧密码

    忘记密码时的操作

  1. 停止数据库服务systemctl stop mariadb.service
  2. 跳过授权登录 mysqld_safe --skip-grant-tables --skip-networking &
  3. 登录mysql修改密码mysql
  4. 刷新数据库中的用户信息MariaDB [mysql]> flush privileges;
  5. 重启数据库 pkill mysqld systemctl restart mariadb

    用户权限管理

    示例代码grant all on *.* to eagle@'%' identified by '123';
    ALL还可以替换为 SELECT,INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE
  • ALL : 以上所有权限,一般是普通管理员拥有的
  • with grant option:超级管理员才具备的,给别的用户授权的功能
  • .: 前面对应的对应的是库名,后面的对应的是表名
  • 权限的回收,实例revoke delete on *.* from eagle@'%'

    对于表的管理

  • 建表create table staff_info ( id int,name varchar(50), age int(3), sex enum('male','female'), phone bigint(11), job varchar(11) );

  • 插入数据 三种方式
    • insert into staff_info (id,name,age,sex,phone,job) values (1,'xwz',83,'female',13651054608,'IT');
    • insert into staff_info values (2,'cs',26,'male',13304320533,'Teacher');
    • insert into staff_info values (3,'tj',25,'male',13332353222,'IT'), (4,'fcy',40,'male',13332353333,'IT');
  • 查看表的结构 describe staff_info;
  • 更全面的表定义信息 show create table staff_info\G;
  • 修改表

    • 重命名 alter table staff_info rename staff;
    • 删除一列 alter table staff drop sex;
    • 删除表中的某一数据delete from t1 where id=1;
    • 添加列 alter table staff add sex enum('male','female');
    • 修改id长度 alter table staff modify id int(4);
    • 修改name字段名 alter table staff change name sname varchar(20);
    • 修改sex列的位置 alter table staff modify sex enum('male','female') after sname;
    • 创建id自增主键 alter table staff modify id int(4) primary key auto_increment;
    • 删除主键
        1. 删除主键自增约束alter table staff modify id int(11);
        1. 删除主键约束 alter table staff drop primary key;
    • 添加联合主键alter table staff add primary key (sname,age);
    • 删除主键 alter table staff drop primary key;
    • 为主键添加自增属性 alter table staff modify id int(4) auto_increment;

      数据类型

      整数类型

      在创建表的数据的时候指定数据类型是必须的操作,下表中的数据都可以使用
      image.png

      日期时间类型

      image.png
      日期时间类型数据使用案例
  • data/time/datatime实例

create table t4 (d date,t time,dt datetime)