46°

MariaDB数据库基础操作

前言:

最近整理一些以前的学习笔记。
过去都是存储在本地,此次传到网络留待备用。\


 

MariaDB

  • Mysql数据库的兄弟版本,在mysql被收购后,为防止闭源,由mysql开发者主导开发
  • 兼容mysql
  • 软件:
    • 服务端: mariadb-server
    • 客户端: mariadb
  • 端口: 3306
  • 配置文件: /etc/my.cnf
  • 数据库存储目录:/var/lib/mysql/

 

一、部署MariaDB

1.安装软件包:mariadb-server、mariadb

]# yum -y install mariadb-server mariadb

2.启动服务:

]# systemctl start mariadb
]# ss -utnlp | grep mysql
tcp  LISTEN  0  50  *:3306  *:*  users:(("mysqld",pid=1365,fd=13))

3.进入数据库管理系统

]# mysql
MariaDB [(none)]> 

 

二、数据库操作

  • 显示所有数据库:

    MariaDB [(none)]> show databases;           --初始默认有4个库
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | test               |
    +--------------------+
    4 rows in set (0.00 sec)
    
  • 进入数据库:

    MariaDB [(none)]> use 数据库名;
    MariaDB [(none)]> use mysql;            --进入mysql库
    Database changed
    MariaDB [mysql]> 
    
  • 显示所有数据表:

    MariaDB [(数据库名)]> show tables;
    MariaDB [mysql]> show tables;               --显示mysql库中的所有表
    +---------------------------+
    | Tables_in_mysql           |
    +---------------------------+
    | columns_priv              |
    | db                        |
    | event                     |
    | func                      |
    | general_log               |
    | help_category             |
    | help_keyword              |
    | help_relation             |
    | help_topic                |
    | host                      |
    | ndb_binlog_index          |
    | plugin                    |
    | proc                      |
    | procs_priv                |
    | proxies_priv              |
    | servers                   |
    | slow_log                  |
    | tables_priv               |
    | time_zone                 |
    | time_zone_leap_second     |
    | time_zone_name            |
    | time_zone_transition      |
    | time_zone_transition_type |
    | user                      |           --存放授权用户信息
    +---------------------------+
    24 rows in set (0.00 sec)
    
  • 查看表中的数据:

    MariaDB [(数据库名)]> select * from 表名;
    MariaDB [mysql]> select * from user\G;              --查询user表中的所有字段
    
  • 退出数据库:

    MariaDB [(数据库名)]> exit
    MariaDB [mysql]> exit               --退出
    Bye
    
  • 备份数据库(导出):

    ]# mysqldump -u账户 -p密码 数据库名 > /路径/备份名.bak
    ]# mysqldump mysql > ./database_mysql.bak               #备份mysql库
    ]# mysqldump mysql.user > ./table_user.bak              #备份mysql库中的user表
    ]# ls                                               #确认备份
    database_mysql.bak  table_user.bak
    
  • 还原数据库(导入):

    ]# mysql -u账户 -p密码 数据库名 < /路径/备份名.bak
    ]# mysql test < database_mysql.bak                 #恢复备份库到指定库
    

增:

  • 创建新账户:

    MariaDB [(none)]> grant 权限 on 数据库名.表名
     -> to 账户@'可访问的主机或网段'
     -> identified by '密码';
        --授予 权限 在 指定数据库和表(权限:all=全部;也可写具体指令[select,insert]),
        --给 账户@可访问的主机或网段,
        --设置账户的密码;
    MariaDB [(none)]> grant all on test.* to dbuser@'%' identified by '123456';
    Query OK, 0 rows affected (0.00 sec)
        --在test库的所有表上授予所有权限 给用户@'允许所有主机访问' 设置密码为'123456'
    
  • 创建数据库:

    MariaDB [(none)]> create database 数据库名;
    

    MariaDB [(none)]> create database d1; Query OK, 1 row affected (0.00 sec)

  • 创建表:

    MariaDB [(数据库名)]> create table 表名 (列名1 类型,列名2 类型,...);

    MariaDB [(none)]> create table d1.tab1(id int, name varchar(10)); Query OK, 0 rows affected (0.01 sec) --创建 表 库d1下的tab1表(id字段 整型, name字段 可变字符串(宽度))


  • 删除某条数据:

    MariaDB [(数据库名)]> delete from 表名 where 条件;
    

    MariaDB [(none)]> delete from test.user where host='localhost'; Query OK, 2 rows affected (0.00 sec) --删除test库的user表中 host字段等于'localhost'的行

  • 删除数据表:

    MariaDB [(数据库名)]> drop table 表名;

    MariaDB [(none)]> drop table test.user; --删除test库中的user表 Query OK, 0 rows affected (0.00 sec)

  • 删除数据库:

    MariaDB [(none)]> drop database 数据库名;
    MariaDB [(none)]> drop database test;           --删除test库
    Query OK, 0 rows affected (0.00 sec)
    

  • 修改账户密码:

    ]# mysqladmin -u 账户 -p password "密码"       #修改指定账户的密码
    ]# mysql -u账户 -p密码                         #使用账户和新密码登陆
    
  • 插入数据:

    MariaDB [(数据库名)]> insert into 表名 values (列名,值);
    

    MariaDB [(none)]> insert into d1.tab1 values(1,'niwei'); Query OK, 1 row affected (0.00 sec)

  • 修改数据:

    MariaDB [(数据库名)]> update 表名 set 修改的内容 where 修改的条件;

    MariaDB [(none)]> update d1.tab1 set name='yangyang' where id=1; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0


  • 查看所有数据库:

    MariaDB [(none)]> show databases;
    
  • 查看数据库中所有的表:

    MariaDB [(数据库名)]> show tables;
    MariaDB [(none)]> show tables from 库名;
    
  • 查看表中所有数据:

    MariaDB [(数据库名)]> select * from 表名;
    

    MariaDB [(none)]> select * from d1.tab1; +------+----------+ | id | name | +------+----------+ | 1 | yangyang | +------+----------+ 1 row in set (0.00 sec)

  • 查看表中某列数据:

    MariaDB [(数据库名)]> select 列名1,列名2,... from 表名;

    MariaDB [(none)]> select user,host,password from mysql.user; +--------+-----------+-------------------------------------------+ | user | host | password | +--------+-----------+-------------------------------------------+ | root | localhost | | | root | t1 | | | root | 127.0.0.1 | | | root | ::1 | | | | localhost | | | | t1 | | | dbuser | % | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | +--------+-----------+-------------------------------------------+

  • 条件查询:

    MariaDB [(数据库名)]> select * from 表名 where 条件( and 条件2);
    MariaDB [(none)]> select user,host,password from mysql.user where password !='';
    --查询password字段不为空的行
    +--------+------+-------------------------------------------+
    | user   | host | password                                  |
    +--------+------+-------------------------------------------+
    | dbuser | %    | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
    +--------+------+-------------------------------------------+
    
  • 多表联合查询:

    MariaDB [(数据库名)]> SELECT 查询字段
    -> FROM 表1,表2
    -> WHERE 表1.列1='字符串' AND
    -> 表2.列2='字符串' AND
    -> 表1.匹配列=表2.匹配列;

    MariaDB [mysql]> select user.user,user.host,db.Db -> from user,db -> where user.user=db.User -> and user.user!=''; +--------+------+------+ | user | host | Db | +--------+------+------+ | dbuser | % | test | +--------+------+------+ 1 row in set (0.00 sec)

  • 描述表的信息:

    MariaDB [(数据库名)]> describe 表名;
    MariaDB [(数据库名)]> desc 表名;

    MariaDB [mysql]> desc d1.tab1; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | id | int(11) | YES | | NULL | | | name | varchar(10) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ 2 rows in set (0.00 sec)

本文由【迷失De挣扎】发布于开源中国,原文链接:https://my.oschina.net/xinsui1314x/blog/3072730

全部评论: 0

    我有话说: