MariaDB基本命令

表数据类型及修饰符

整型:
INT:基本整型数据,4字节长度(包含正负数,以下均如此)
TINYINT:范围更小的整形数据,1字节
BIGINT:8字节长度整形数据

浮点型:
FLOAT:单精度浮点型,4字节
DOUBLE:双精度浮点型,8字节

字符型:
CHAR(#):长度为#的字符串,不区分大小写
BINARY(#):长度为#的字符产。区分大小写
VARCHAR(#):最大长度为#的变长字符串,不区分大小写
VARBINARY(#):最大长度为#的变长字符串,区分大小写
ENUM:枚举类型
SET:集合
TEXT,BLOB:存放大型字符文本,其不同在于TEXT不区分大小写,BLOB区分大小写

日期时间型:
DATE:日期,3字节
TIME:时间,3字节
DATETIME:日期时间
TIMESTAMP:时间戳,自1970-1-1 00:00:00到现在的秒数
YEAR(2):两位年份
YEAR(4):四位年份

常用的修饰符:
NOT NULL:不允许为空
DEFAULT:指定默认值,后跟值
PRIMARY KEY:设为主键
UNIQUE KEY:设为唯一键
UNSIGNED:无符号数值



常用命令

数据库相关:

MariaDB [(none)]> SHOW DATABASES;	#显示所有数据库
MariaDB [(none)]> CREATE DATABASE db_name;	#创建数据库
MariaDB [(none)]> CREATE DATABASE IF NOT EXISTS db_name;	#增加了限定符,如果不存在则添加数据库
MariaDB [(none)]> SHOW CHARACTER SET;	#显示当前使用的字符集
MariaDB [(none)]> CHARACTER SET utf8;    #使用UTF-8字符集
MariaDB [(none)]> DROP DATABASE IF EXISTS db_name;	#如果数据库存在则删除
MariaDB [(none)]> USE ‘db_nam’;    #使用数据库,可理解为进入某个数据库视图,便于管理表单

表相关:

MariaDB [testdb]> SHOW TABLES;	#使用USE命令后使用,显示当前数据库的所有表单
MariaDB [testdb]> DESC tb_name;	#查看表单结构
MariaDB [testdb]> CREATE TABLE tb_name (col1 type1, col2 type2,...);	#创建表单,同样可以配合限定符使用。之前提到的修饰符紧跟在type(字段数据类型)后面
MariaDB [testdb]> SHOW TABLE STATUS LIKE ’tb_name‘\G	#竖行格式查看表单状态信息,注意此项格式
MariaDB [testdb]> DROP TABLE  tb_name;	#删除表单
MariaDB [testdb]> ALTER TABLE tb_name ADD col_add col_type AFTER col_naem;	#在col_name字段后追加字段col_add,使用FIRST则表示在其前面追加字段
MariaDB [testdb]> ALTER TABLE tb_name DROP col_name;	#删除表单某一字段
MariaDB [testdb]> ALTER TABLE tb_name CHANGE col_s_name col_d_name INT UNSIGNED	#修改字段名,字段数据类型与修饰符与原来保持一致
MariaDB [testdb]> SHOW INDEXES FROM db_name.tb_name;    #查看数据库某表单上的索引信息,查看当前数据库表单索引信息直接跟表单名即可
MariaDB [testdb]> CREATE INDEX index_name ON tb_name (col1,col2,...);	#为某些字段创建索引

数据的增、删、查、改:

MariaDB [testdb]> INSERT tb_name col_name VALUE value;	#插入表单一条信息,如果由多个字段,则使用下面命令
MariaDB [testdb]> INSERT tb_name (col1, col2,...) VALUES (value1, value2,...)
MariaDB [testdb]> SELECT * FROM tb_name;	#产看表单所有信息
MariaDB [testdb]> SELECT * FROMtb_name WHERE id>5 LIMIT 10;    #筛选出表中id>5的信息并输出头10行
MariaDB [testdb]> SELECT col1,col2,col3 FROM tb_name WHERE col_name1>10 ORDER BY col_name2 LIMIT 2,100;	#获得col_name1字段值大于10的信息,并按col_name2字段进行排序,排序后从第2行开始输出,共100行中的col1,col2,col3字段的信息
//注:表中的数据行编号从0开始,排序后的编号亦是如此
MariaDB [testdb]> DELETE FROM tb_name WHERE id=5;	#删除f符合条件的数据
MariaDB [testdb]> UPDATE tb_name SET col1=value1,col2=value2,... WHERE id=5;	#更改符合条件的某些字段值
/*
WHERE的补充:
	>, <, =, >=, <=, != #数值判断
	WHERE LIKE col_name='_c%' #使用MariaDB的通配符
	WHERE RLIKE 'Regexp'    #调用正则表达式进行匹配,不建议使用
	IS NULL:为空
	IS NOT NULL:不为空
	AND, OR, NOT:逻辑操作
*/

用户及权限管理:

MariaDB [(none)]> CREATE USER tuser@localhost IDENTIFIED BY 'testpasswd';	#创建用户tuser并设置密码
MariaDB [(none)]> SET PASSWORD FOR tuser@localhost=PASSWORD("newpasswd");    #修改用户密码
MariaDB [(none)]> DROP USER tuser@localhost;    #删除用户tuser
MariaDB [(none)]> SHOW GRANTS FOR tuser@localhost;    #查看tuser用户的权限
MariaDB [(none)]> SHOW GRANTS FOR CURRENT_USER;	#查看当前用户权限信息
MariaDB [(none)]> GRANT privileges_list ON db_name.tb_name TO tuser@localhost;	#对db_name数据库的tb_name表(使用db_name.*表示db_name数据库的所有表)授予用户tuser某些权限权限
//注:privilege:ALL, SELECT, CREATE, DELETE, UPDATE, INSERT等。
MariaDB [(none)]> REVOKE privileges_list ON db_name.tb_name FROM tuser@localhost;	#删除某些权限

注: MariaDB服务启动时,会读取mysql数据库中的授权表(包含用户权限信息)到内存中,在对用户做权限更改后,有的命令仅会修改存储信息,不会同步到内存中,因此需要手动让MariaDB服务进程重读授权表,命令是:FLUSH PRIVILEGES;



示例:

创建数据库execdb,创建对该数据库具有一定的管理权限的用户euser。使用euser登录并在execdb数据库下创建表单stus,填入信息,修改信息。
最后逐步删除这些内容:删除表内数据–删除表–删除用户权限–删除用户–删除数据库

# systemctl start mariadb    #确保mariadb服务正在运行,此处演示系统为CentOS7
# mysql -u root -p	#root用户登录数据库
MariaDB [(none)]> CREATE DATABASE execdb;    #创建数据库execdb
MariaDB [(none)]> CREATE USER euser@localhost IDENTIFIED BY 'passwd';	#创建用户euser并设置密码为passwd
MariaDB [(none)]> GRANT CREATE,SELECT,INSERT,DELETE,UPDATE ON execdb.* TO euser@localhost;	#授权euser用户对execdb数据库所有表单对应的权限
MariaDB [(none)]> exit	#退出数据库
# mysql -u euser -p    #使用euser登录
MariaDB [(none)]> SHOW DATABASES;	#查看数据库,如果前面正确配置,则会看到execdb数据库
MariaDB [(none)]> USE execdb;	#使用execdb数据库
MariaDB [execdb]> CREATE TABLE stus (id INT UNSIGNED PRIMARY KEY, name CHAR(20), age TINYINT UNSIGNED);	#创建并定义表stus
MariaDB [execdb]> INSERT stus (id, name, age) VALUES (0, 'Bob', 18);	#对stus表新增一行数据
MariaDB [execdb]> SELECT * FROM stus;	#查看表stus所有信息,正确配置可以看到Bob的信息
MariaDB [execdb]> UPDATE stus SET age=19 WHERE id=0;	#修改id=0的行age字段值为19
MariaDB [execdb]> SELECT * FROM stus WHERE id=0;	#查看Bob修改后的信息
//随后是删除等操作
MariaDB [execdb]> DELETE FROM stus WHERE id=0;	#删除第刚才添加的信息
MariaDB [execdb]> exit	#退出数据库
# mysql -u root -p	#使用root用户登录
MariaDB [(none)]> DROP TABLE execdb.stus;	#删除stus表,由于没有授权euser用户DROP权限,所以euser不能删除
MariaDB [(none)]> REVOKE ALL ON execdb.* FROM euser@localhost;	#移除euser用户所有权限
MariaDB [(none)]> DROP USER euser@localhost;	#删除euser用户
MariaDB [(none)]> DROP DATABASE execdb;	#删除数据库
MariaDB [execdb]> exit
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值