MariaDB的简单使用
发布日期:2025-04-12 01:37:46 浏览次数:7 分类:精选文章

本文共 2850 字,大约阅读时间需要 9 分钟。

MariaDB SQL语法说明

SQL语法分类

数据定义语言 (DDL)

  • 创建:CREATE
  • 删除:DROP
  • 修改:ALTER
  • 用于定义数据库、表、字段等结构

数据操作语言 (DML)

  • 插入:INSERT
  • 删除:DELETE
  • 修改:UPDATE
  • 查询:SELECT
  • 用于对数据库中的数据进行操作

权限管理

  • 权限新增:GRANT
  • 权限删除:REVOKE
  • 用于管理用户对数据库、表、字段等的访问权限

数据类型

字符型

  • 定长字符型:CHAR(#) 不区分大小写

  • Binary类型:BINARY(#) 区分大小写

  • 可选长度:可指定具体长度

  • 变长字符型:VARCHAR(#) 不区分大小写

  • Binary类型:VARBINARY(#) 区分大小写

  • 可选长度:可指定具体长度

  • 文本存储

    • TEXT:不区分大小写
    • BLOB:区分大小写

内置类型

  • 枚举类型:ENUM
  • 集合类型:SET
  • 日期时间类型:DATE、TIME、DATETIME、TIMESTAMP、YEAR

数值型

  • 精确数值型
    • tinyint:1字节
    • smallint:2字节
    • mediumint:3字节
    • int:4字节
    • bigint:8字节
    • decimal:支持小数点
  • 浮点型
    • float:单精度
    • double:双精度

日期时间型

  • 日期:DATE
  • 时间:TIME
  • 日期时间:DATETIME
  • 时间戳:TIMESTAMP
  • 年份:YEAR(2)、YEAR(4)

修饰符

  • 非空约束:NOT NULL
  • 默认值:DEFAULT VALUE
  • 主键:PRIMARY KEY
  • 唯一键:UNIQUE KEY
  • 无符号:UNSIGNED
  • 自增字段:AUTO_INCREMENT

数据库操作语句

创建数据库

CREATE DATABASE [IF NOT EXISTS] 'DB_NAME';
  • 示例:创建数据库 mydb

删除数据库

DROP DATABASE [IF EXISTS] 'DB_NAME';
  • 示例:删除数据库 mydb

设置默认数据库

USE DB_NAME;
  • 示例:切换到数据库 mydb

设置字符集

CHARACTER SET '字符集名称';
  • 示例:设置字符集为 gb2312

查看字符集

SHOW CHARACTER SET;

设置排序规则

COLLATE '排序规则名称';
  • 示例:设置排序规则为 big5_bin

查看排序规则

SHOW COLLATION;

获取命令帮助

HELP KEYWORD;
  • 示例:获取 CREATE DATABASE 的帮助信息

表操作语句

创建表

CREATE TABLE [IF NOT EXISTS] [db_name.]tb_name (col1 datatype modifiers...)
  • 示例:创建表 students
    CREATE TABLE IF NOT EXISTS mydb.students (id int UNSIGNED NOT NULL PRIMARY KEY,  name VARCHAR(100) NOT NULL,  age int UNSIGNED)

删除表

DROP TABLE [IF EXISTS] tb_name;
  • 示例:删除表 mytb1

修改表操作

  • 添加字段:ALTER TABLE tb_name ADD col_name datatype
  • 删除字段:ALTER TABLE tb_name DROP COLUMN col_name
  • 修改字段:ALTER TABLE tb_name RENAME COLUMN old_col_name TO new_col_name

索引

  • 创建索引:CREATE INDEX index_name ON tb_name (col_name...)
  • 删除索引:DROP INDEX index_name ON tb_name
  • 添加索引:ALTER TABLE tb_name ADD INDEX col_name
  • 查看索引:SHOW INDEXES FROM db_name.tb_name

数据操作

插入数据

INSERT INTO tb_name [(col_name,...)] (值1, 值2, ...)
  • 示例:插入数据到 students
    INSERT INTO students (sid, name) VALUES (3, '李'), (4, '王');

查询数据

SELECT col1, col2 FROM tb_name [WHERE 条件] [ORDER BY col_name [DESC]] [LIMIT m, n];
  • 排序规则ORDER BY col_name 升序排序,ORDER BY col_name DESC 降序排序
  • 限制显示LIMIT m, n 限制显示数量
  • 字段别名col1 AS alias_name

删除数据

DELETE FROM tb_name [WHERE 条件] [ORDER BY col_name [DESC]] [LIMIT m, n];
  • 示例:删除 students 表中 sid=3 的数据

更新数据

UPDATE tb_name SET col1 = new_val1, col2 = new_val2 [WHERE 条件];
  • 示例:更新 students 表中 sid=4 的记录

用户帐号及权限管理

用户帐号格式

  • 用户名@主机名
    • 用户名:数据库用户名
    • 主机名:允许连接的主机或地址

创建用户

CREATE USER 'USERNAME@HOST' [IDENTIFIED BY 'PASSWORD'];
  • 示例:创建用户 user1@localhost 密码为 redhat

删除用户

DROP USER 'USERNAME@HOST';
  • 示例:删除用户 user1@localhost

授权用户

GRANT priv_type, ... ON [object_type] db_name.tb_name TO 'USERNAME@HOST' [IDENTIFIED BY 'PASSWORD'] [WITH GRANT OPTION];
  • 示例:给 user1@localhostmydb 中的 students 表授予查询和删除权限

查看用户权限

SHOW GRANTS FOR 'USERNAME@HOST';
  • 示例:查看 user1@localhost 的权限

回收用户权限

REVOKE priv_type, ... ON db_name.tb_name FROM 'USERNAME@HOST';
  • 示例:从 user1@localhost 中撤销 mydb.students 表的删除权限

注意事项

  • 删除操作不可逆,执行前请确认数据
  • MariaDB 服务进程启动时会读取数据库中的授权信息
  • 需要手动刷新授权信息:FLUSH PRIVILEGES;
上一篇:Mariadb第一章:介绍及安装--小白博客
下一篇:MariaDB密码重置

发表评论

最新留言

感谢大佬
[***.8.128.20]2025年05月17日 15时18分45秒