MariaDB資料庫基礎操作
阿新 • • 發佈:2019-07-11
前言:
最近整理一些以前的學習筆記。
過去都是儲存在本地,此次傳到網路留待備用。\
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)