博客
关于我
MariaDB的简单使用
阅读量:794 次
发布时间:2023-02-07

本文共 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;

转载地址:http://swyfk.baihongyu.com/

你可能感兴趣的文章
MacOS:创建目录出现 Read-only file system
查看>>
macOS使用django安装mysqlclient遇到的问题(mysqlclient 1.3.3 or newer is required)
查看>>
macOS系统上安装JDK
查看>>
MacType Decency 项目常见问题解决方案
查看>>
Mac下IDEA更换Maven仓库
查看>>
Mac下MySQL 报错:Error1045(28000)解决办法
查看>>
Mac下redis安装和启动
查看>>
Mac下各种网络命令的使用
查看>>
Mac下如何配置环境变量
查看>>
Mac下安装jdk
查看>>
Mac下安装PEAR
查看>>
mac下安装配置nginx
查看>>
Mac下忘记MySQL密码可以这样做!
查看>>
Mac下配置多个SSH-Key (gitLab)
查看>>
mac地址随机变化的解决方法(安卓手机通用)不用ROOT
查看>>
Mac备忘录内容突然全部消失恢复
查看>>
mac如何查看连过的wifi密码
查看>>
mac安全权限解决
查看>>
Mac安装FastDFS
查看>>
Mac安装Maven
查看>>