本文主要是介绍Mariadb(mysql)基本操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.:安装与初始化
1)安装
yum install -y mariadb/*
2)初始化
systemctl restart mariadb
systemctl enable mariadb
mysql_secure_installation
查看数据库版本:select 'version' ;
除设置密码外,一直摁"y"。
2.对数据库的操作
1)查库:show databases;
2)创库:create database 库名;
自定义数据库字符集创建数据库:GBK:create database test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
UTF8: create database test2 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
3)删库:drop database 库名;
4)进库:use 库名;
3.创建表
(1)了解常见数据类型
日期和时间数据类型
MySQL数据类型 | 含义 |
date | 3字节,日期,格式:2014-09-18 |
time | 3字节,时间,格式:08:42:30 |
datetime | 8字节,日期时间,格式:2014-09-18 08:42:30 |
timestamp | 4字节,自动存储记录修改的时间 |
year | 1字节,年份 |
整数型
MySQL数据类型 | 含义(有符号) |
tinyint | 1字节,范围(-128~127) |
smallint | 2字节,范围(-32768~32767) |
mediumint | 3字节,范围(-8388608~8388607) |
int | 4字节,范围(-2147483648~2147483647) |
bigint | 8字节,范围(+-9.22*10的18次方) |
bigint | 8字节,范围(+-9.22*10的18次方) |
浮点型
MySQL数据类型 | 含义 |
float(m, d) | 4字节,单精度浮点型,m总个数,d小数位 |
double(m, d) | 8字节,双精度浮点型,m总个数,d小数位 |
decimal(m, d) | decimal是存储为字符串的浮点数 |
字符串数据类型
MySQL数据类型 | 含义 |
char(n) | 固定长度,最多255个字符 |
varchar(n) | 可变长度,最多65535个字符 |
tinytext | 可变长度,最多255个字符 |
text | 可变长度,最多65535个字符 |
mediumtext | 可变长度,最多2的24次方-1个字符 |
longtext | 可变长度,最多2的32次方-1个字符 |
(2) create table 表名
(
列名1 数据类型,
列名2 数据类型,
列名3 数据类型
);
实例:create table list
(
id int,
name varchar(50),
passwd varchar(100)
);
4 .查看表数据结构:desc 表名;
5.查询数据库内表详情;show tables ; !!!(查之前,要进入相应的库use 库名;)
6.删除一个表:drop table 表名;
7.修改表
(1)重命名表:
alter table 旧表名 rename 新表名;
(2)向表中添加一列:
alter table 表名 add 要添加的列名 数据类型;
(3)删除表中的一列:
alert table 表名 drop column 被删的列名;
(4)修改一个列的数据类型:
alter table 表名 modify 列名 数据类型;
(5)重命名一个列:
alter table 表名 change column 旧列名 新列名 数据类型;
8.向表中插入语句
(1)向表中全部列都插入一条记录:
insert into 表名称 values (值1,值2,值3);
例:insert into name values (99,'zhangsan','zhangsan-passwd');
(2)指定列插入一条记录:
insert into 表名称(列1,列3) values (值1,值3);
例:insert into name(username,password) values (lisi,lisi-passwd);
9.查询数据
(1)从表格中查询数据记录:
查询表中全部列的数据记录:select * from 表名称;
例: select * from name;
(2)查询表中指定列的数据记录:select 列名1,列名2,列名3 from 表名称;
例: select username,password from name;
10.按条件查询数据
select 列名称 from 表名 where 指定列 运算符 值; (满足条件则列出指定表的一行!"*"代表所有!)
例:select * from name where id=3 ;
select username,password from name where id=3 ;
select username,password from name where id>3;
select username,password from name where id<3;
select username,password from name where id<>3; 不等于
select username,password from name where id>=3;
select username,password from name where id<=3;
11.删除一条记录:
(1)删除表中全部记录:delete * from 表名称:
例:delete * from name;
(2)删除表中指定的记录:delete from 表名称 where 列名 运算符 值:
例:delete from name where id=3; !注意字符串需要单引号!
12.更新一条记录
(1)从表中更新一条记录:update 表名称 set 列名称=新值 where 列=值;
(2)mysql管理员密码丢失找回:
1.关闭数据库:systemctl stop mariadb
2.mysqld_safe --skip-grant-tables --user=mysql &
3.进入数据库 mysql 直接进去 ,在数据库内更改用户密码:update mysql.user set password=password("新密码") where user='root' and host='localhost' ; 注!更新完毕,要使用 flush privileges ;刷新数据库,并推出 /q 。
4.mysqladmin -u root -p shutdown 注意!!在此处输入更新了的密码,然后 重启数据库: systemctl restart mariadb
公式: update name set 变量名='值' where 判断条件 and 判断条件;
13.返回结果去除重复项:
select distinct 列名称 from 表名称;
例:select distinct username from name;
14.where条件中使用逻辑组合:
select * from 表名称 where 列名1='值1' and 列名2='值2'; 必须满足and前后两个条件 ==》为真
select * from 表名称 where 列名1='值1' or 列名2='值2'; 必须满足or前后的某一个条件 ==》为真
例:select * from name where username=zhangsan and id=1 ;
select * from name where username=zhangsan or id=0 ;
15.对查询结果进行排序:
(1)从小到大排序:select * from 表名称 order by 列名称;
例:select * from name order by id;
(2)从大到小排列:select * form 表名称 order by 列名称; desc; 注意desc在这里是”倒序”的意思!
例:select * from name order by id desc;
16.mariadb用户管理
(1)创建一个mariadb数据库用户:
create user 用户名 identified by '密码' ;
例:create user Luigi identified by 'redhat-passwd';
!使用 flush privileges ;刷新!
(2)删除一个用户:drop user '用户名'@'主机名';
例:drop user 'Luigi'@'localhost';
!使用 flush privileges ;刷新!
(3)重命名用户:rename user 原用户名 to 新用户名;
例: rename user Luigi to Natasha;
!使用 flush privileges ;刷新!
(4)修改用户密码:
①修改当前用户密码:set PASSWORD=PASSWORD('新密码');
例 : set PASSWORD=PASSWORD('redhat-passwd');
!使用 flush privileges ;刷新!
②修改指定用户密码:set PASSWORD for 用户名=PASSWORD('新密码');
例:set PASSWORD for zhangsan=PASSWORD('zhangsan-passwd');
!使用 flush privileges ;刷新!
17.权限管理
(1)权限分类:1.检查用户是否能连接主机。
2.是否有操作数据库的权限。
(2)授权层级:1.全局层级
2.数据库层级
3.表层级
4.列层级
5.子程序层级
(3)使用grant指令授予用户权限,使用revoke撤销用户权限
权限分类;
select 查询权限
all 所有权限
usage (受限制!)登入权限
①授予一个用户权限grant 权限 on 层级 to '用户名'@'主机名' identified by '密码';
例:授予Luigi对全部数据库的全部管理权限:grant all on *.* to 'Luigi'@'%' identified by 'redhat';
!使用 flush privileges ;刷新!
授予Luigi对centos数据库的本地查询权限:grant select on centos.* to 'Luigi'@'localhost' identified by 'redhat';
!使用 flush privileges ;刷新!
②撤销一个用户的权限:revoke all privileges from 用户名;
例:revoke all privileges from Luigi;
!使用 flush privileges ;刷新!
(4)主机连接认证:grant all privileges on *.* to '用户'@'主机名' identified by '用户密码';
例:grant all privileges on *.* to 'Luigi'@'*.example.com' identified by 'redhat';
!使用 flush privileges ;刷新!
18.简单备份与恢复:
(1)备份一个指定的数据库:mysqldump -u root -p 数据库名称 > /备份的路径/备份文件
例:mysqldump -u root -p rhce > /root/rhce.sql
(2)恢复一个数据库:mysql -u root -p 数据库的名称 < /备份的路径/数据库名称
例 : mysql -u root -p rhce < /root/rhce.sql
这篇关于Mariadb(mysql)基本操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!