MariaDB基础(2)—管理篇

MariaDB的交互命令接口:mysql>

可运行的命令有两类:

客户端命令:在mysql客户端本地直接运行的命令

通过help获取完整列表:

mysql> help

服务器端命令:由客户端将命令通过协议封闭成报文发往mysqld,由mysqld运行,并取回运行结果至客户端;

即SQL语句,这些语句必须有语句结束符,默认为分号;



客户端命令:

quit, \q:退出客户端

help, \h:获取帮助信息

clear, \c: 中止正在编写的语句;类似bash中的Ctrl+c的功能;

go, \g:语句结束符

ego, \G: 语句结束符,但竖排显示每行数据;

delimter, \d: 定义语句结束符;

use, \u: 设定要操作默认数据库




sql语句:

获取帮助:help KEYWORD




DDL(data definitionlanguage):

主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,大多在建立表时使用。

DML(data manipulation language):

主要命令SELECT、UPDATE、INSERT、DELETE,命令是用来对数据库里的数据进行操作的语言。

DCL(Data Control Language):

数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。



数据库管理操作:

创建数据库:CREATE DATABASE

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS]db_name
   [create_specification] ...
 
create_specification:
   [DEFAULT] CHARACTER SET [=] charset_name
  |[DEFAULT] COLLATE [=] collation_name
 
MariaDB [(none)]> CREATE DATABASEtest_MariaDB ;

查看已有数据库:SHOW DATABASES

查看某库创建时使用的语句:

SHOWCREATE DATABASE db_name;

MariaDB [(none)]> SHOW CREATE DATABASEtest_MariaDB;
+--------------+-------------------------------------------------------------------------+
| Database     | Create Database                                                        |
+--------------+-------------------------------------------------------------------------+
| test_MariaDB | CREATE DATABASE`test_MariaDB` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+--------------+-------------------------------------------------------------------------+
1 row in set (0.00 sec)

查看MySQL支持的所有字符集

SHOW CHARACTER SET;

MariaDB [test_MariaDB]> SHOW CHARACTER SET;
+----------+-----------------------------+---------------------+--------+
| Charset  | Description                 | Default collation   | Maxlen |
+----------+-----------------------------+---------------------+--------+
| big5     | Big5 Traditional Chinese    | big5_chinese_ci     |      2 |
.......
| swe7     | 7bit Swedish                | swe7_swedish_ci     |      1 |
| ascii    | US ASCII                    | ascii_general_ci    |      1 |
| ujis     | EUC-JP Japanese             | ujis_japanese_ci    |      3 |

查看MySQL支持的所有Collate

SHOW COLLATION;

MariaDB [(none)]> SHOW COLLATION;
+--------------------------+----------+-----+---------+----------+---------+
| Collation                | Charset  | Id  | Default | Compiled | Sortlen |
+--------------------------+----------+-----+---------+----------+---------+
| big5_chinese_ci          | big5     |   1 | Yes     | Yes      |       1 |
| big5_bin                 | big5     |  84 |         | Yes      |       1 |
| dec8_swedish_ci          | dec8     |   3 | Yes     | Yes      |       1 |
| dec8_bin                 | dec8     |  69 |         | Yes      |       1 |
......

删除数据库:DROP DATABASE

DROP {DATABASE | SCHEMA} [IF EXISTS] db_name

修改数据库:

ALTER {DATABASE | SCHEMA} [db_name]
    alter_specification ...
ALTER {DATABASE | SCHEMA} db_name
    UPGRADE DATA DIRECTORYNAME
 
alter_specification:
    [DEFAULT] CHARACTER SET[=] charset_name
  | [DEFAULT] COLLATE [=]collation_name



表的管理操作:

创建表:CREATE TABLE 创建表时,可以同时创建索引

CREATE TABLE [IF NOT EXISTS] tbl_name (col1 type1 dec1, col2 type2dec2, ...)

通过表选项:

设置主键PRIMARY KEY,唯一键UNIQUE KEY,外键FOREIGN KEY

选择使用的存储引擎:ENGINE = engine_name

例如:学号、姓名、年龄、性别

学号:StuID, INT

姓名:Name, 定长字符,30

年龄:Age, TINYINT

性别:Gender, 枚举,ENUM(‘M‘,‘F‘)

示例:

MariaDB [test_MariaDB]> CREATE TABLE IF NOT EXISTS students(StuID INT UNSIGNED NOT NULL PRIMARY KEY, Name CHAR(30) NOT NULL, Age TINYINTUNSIGNED, Gender ENUM(‘M‘,‘F‘));
Query OK, 0 rows affected (0.76 sec)

注意:MySQL支持插件存储引擎

查看支持的所有存储引擎

SHOW ENGINES;

存储引擎:表类型

创建每个表时,都可以单独指明其表类型;但,建议同一个库内的所有表,应该使用同一种类型;

SHOW TABLE STATUS [{FROM | IN} db_name]
                 [LIKE‘pattern‘ | WHERE expr]
LIKE用于作模糊匹配,支持通配符:
         _: 匹配任意单个字符;
         %: 匹配任意长度的任意字符;

索引管理:

创建索引:

CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name ON tbl_name(index_col_name,...)

删除索引: 

  DROP INDEX index_name ON tbl_name

查看表结构:

DESC  tbl_name

MariaDB [test_MariaDB]> desc students;
+--------+---------------------+------+-----+---------+-------+
| Field  | Type                | Null | Key | Default | Extra|
+--------+---------------------+------+-----+---------+-------+
| StuID  | int(10)unsigned    | NO   | PRI | NULL    |      |
| Name   | char(30)           | NO   |     | NULL    |       |
| Age    | tinyint(3) unsigned| YES  |     | NULL   |       |
| Gender | enum(‘M‘,‘F‘)      | YES  |     | NULL   |       |
+--------+---------------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

查看数据库的表

SHOW [FULL] TABLES [{FROM |IN} db_name]
     [LIKE ‘pattern‘ | WHERE expr]

删除表:DROP TABLE

 DROP [TEMPORARY] TABLE [IF EXISTS]
      tbl_name [, tbl_name] ...




DML(data manipulation language):

操作表中的数据:

插入数据:

INSERT [INTO] tbl_name[(col_name,...)]
        {VALUES | VALUE} ({expr |DEFAULT},...),(...),...
 
MariaDB [test_MariaDB]> INSERT INTO studentsVALUES(01,‘Roger‘,18,‘M‘);
Query OK, 1 row affected (0.07 sec)

删除数据:

DELETE FROM tbl_name
        [WHERE where_condition]
        [ORDER BY ...]
      [LIMIT row_count]
   WHERE子句:过滤条件
              布尔型表达式:
 
MariaDB [test_MariaDB]> delete from students where stuid=03;
Query OK, 1 row affected (0.05 sec)

SELECT单表查询:

 SELECT
   [DISTINCT]
   [SQL_CACHE | SQL_NO_CACHE]
   col_name AS Alias, col_name AS Alias, ...
   [FROM table_references
   [WHERE where_condition]
   [ORDER BY {col_name | expr | position}
   [ASC | DESC], ...]
        WHERE后的条件表达式:
           >, <, >=, <=, ==, !=
           BETWEEN ... AND ...
           LIKE ‘pattern‘
             _ :匹配任意单个字符
             % :匹配任意个数字符
             RLIKE ‘pattern‘
               使用正则表达式做匹配;
 
         组合条件:或 与非 OR AND NOT
            
MariaDB[test_MariaDB]> select * from students;
+-------+-------+------+--------+
| StuID | Name  | Age  | Gender |
+-------+-------+------+--------+
|     1 | Roger |   18 | M     |
|     2 | Roger |   30 | M     |
|     3 | Roger |   70 | M     |
|     4 | Roger |   70 | M     |
+-------+-------+------+--------+
4 rows in set (0.00 sec)

更新数据 UPDATE:

UPDATE table_reference
  SET col_name1={expr1|DEFAULT}[, col_name2={expr2|DEFAULT}] ...
             [WHERE where_condition]
             [ORDER BY ...]
             [LIMIT row_count]
             
MariaDB [test_MariaDB]> UPDATE students SET name=‘Wang‘ WHERE stuid=3;
Query OK, 1 row affected (0.03 sec)
Rows matched: 1  Changed: 1  Warnings: 0




用户及权限管理:

用户账号:

用户账号有两部分构成 :‘username‘@‘host‘

host可使用IP、网络地址、使用通配符(_和%);

创建用户账号,并赋予密码;

CREATE USER ‘username‘@‘host‘ IDENTIFIED BY [PASSWORD] ‘password‘;

MariaDB [(none)]> create user ‘wang‘@‘%‘ identified by ‘123456‘;
Query OK, 0 rows affected (0.08 sec)

删除用户

DROP USER ‘username‘@‘host‘;

MariaDB [(none)]> DROP USER ‘test‘@‘%‘;
Query OK, 0 rows affected (0.00 sec)

授权:

GRANT priv1,... ON db_name.tbl_name TO ‘username‘@‘host‘ [IDENTIFIED BY [PASSWORD] ‘password‘];

如果用户事先不存在,则创建此账号并授权;

ALL [PRIVILEGES]:表示所有权限,参照下图

示例

MariaDB [(none)]> GRANT ALL ON test_MariaDB.students TO ‘wang‘@‘%‘;
Query OK, 0 rows affected (0.03 sec)

查看用户已经获得的授权:

SHOW GRANTS [FOR user]

收回授权:REVOKE

REVOKE priv1,... ON db_name.tbl_name FROM ‘username‘@‘host‘;

若有错误,敬请指正!

谢谢!


关于MariaDB的学习,将会持续更新。。。。

时间: 2024-10-12 17:43:43

MariaDB基础(2)—管理篇的相关文章

MariaDB基础(1)--数据类型

MariaDB介绍      MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品.在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB. MariaDB基于事务的Maria存储引擎,替换了MySQL的MyISAM存储引擎,它使用了Percona的 XtraDB,InnoDB的变体,分支的开发者希望提供访问即将到来的MySQL 5.

Mariadb基础总结

Mariadb基础总结 1.是什么? Mariadb是多用户,多线程的SQL数据库服务器.它是C/S架构,即client/server,客服端/服务端架构.MariaDB基于事务的Maria存储引擎,使用了Percona的 XtraDB,InnoDB的变体,性能十分的强大.mariadb由开源社区维护,采用GPL授权许可,完全兼容MySQL. 2.为什么选择mariadb? (1)开源!开源!开源!重要的事情说三遍! 其实还有更多: (2) 更多的存储引擎: Maria 存储引擎 PBXT 存储

mariadb 基础使用

MariaDB 基础使?mariadb的基本概念DQL 数据查询语言 select DDL 数据定义语言 create drop alterDML 数据操作语言 insert delete updateDCL 数据控制语言 grant revoke commit rollback 使? MariaDB 的 root ?户登陆,然后使? show databases 命令查看当前数据库服务中都有哪些具体的库 database1.登陆    mysql -uroot -p密码           #

MariaDB基础详解

数据库结构模型分类 1.层次模型 2.网状模型 3.关系模型 关系模型的组成部分 二维关系 表 row column 索引 index 视图 view (只包含固定字段,不包含其他字段) 关系型数据库的常见组件: 数据库 : Database 表 : table 行 : row 列 : column 索引 : index 视图 : view 用户 : user 权限 : privilege 存储过程 : procedure 存储函数 : function 触发器 : trigger 事件调度器

Mysql(Mariadb) 基础操作语句 (持续更新)

基础SQL语句,记录以备查阅.(在HeiDiSql中执行) # 创建数据库 Create Database If Not Exists VerifyIdear Character Set UTF8; # 创建表 Create Table If Not Exists VerifyIdear.MyTable( ID Bigint(8) unsigned Primary key Auto_Increment, Updatetime DateTime, name VarChar(128) )Engine

MySQL/MariaDB基础

数据库管理系统很早就有了,在最开始时,数据库管理的结构是层次化的,即层次模型,它是一个树形结构,可以通过有限次的查找来定位需要的数据,然而,这种查找还是需要遍历才能实现,所以这种模型应用时间不长久:之后有了网状模型,也就是多个树的集合:层次模型和网状模型都称为非关系型数据库.之后由Edgar Frank Codd提出了一个关系型数据库的模型,从此之后就有了关系模型,其中Oracle公司就是以此为原型开发了Oracle数据库:到现在又提出了反关系模型--No-SQL,它是非关系型的数据库,例如:键

MySQL/MariaDB基础知识

数据库:即数据存储的仓库或集合 数据库的组成: 1.  数据库 2.  数据表 3.  记录 4.  字段 5.  索引 6.  查询 7.  视图 8.  过滤器 1.  数据库 :  由一个或多个表组成以文件的形式存储在磁盘上的物理文件: 2.  数据表  :   一组按行排列的相关数据,由一组数据记录组成: 3.  记录     : 表中的一行称为一个记录(记录即行),由若干个字段组成: 4.  字段    : 表中的一列称为一个字段,也叫域,每个字段都有相应的描述信息,如数据类型,大小,

MariaDB基础(二)

介绍关于MariaDB的如下知识点: 1. 查询缓存 2. 索引 3. EXPLAIN 1.查询缓存: 1)什么是缓存? 缓存就是数据交换的缓冲区,即Cache,存放在内存中: 2)查询缓存的数据以何种形式存在? 查询缓存的数据以键值对(key/value)的形式存在; key    : 查询语句的哈希值(哈希值可理解为数据的×××,用于验证数据来源的真实性) value : 查询语句的查询结果 3)缓存命中的标准: 将查询语句的哈希值与数据的源哈希值做比较,相同则命中,反之则未命中: 4)什么

MySQL/MariaDB基础(2)

MariaDB查询缓存 缓存中的数据是开源形式的,以键值对(k/v)的形式存在 key:查询语句的hash值: value:查询语句的查询结果: 缓存中的数据主要是通过整个查询语句的hash值的比较,完全相同则命中:这样通过缓存响应客户端请求,可以提高检索效率:当然,也不是所有的查询数据都可以缓存,那么哪些数据不能够缓存呢? 1.要查询的数据库中可能包含敏感信息:如MySQL数据库中的各系统表: 2.在查询语句中包含有用户自定义的函数(UDF) 3.存储函数: 4.用户自定义变量: 5.对于临时