mariadb&mysql
mariadb与mysql的区别有MariaDB不仅仅是Mysql的一个替代品,mysql已经被oracle闭源了而mariaDB是开源的,MariaDB包括的一些新特性使它优于MySQL。MariaDB跟
MySQL在绝大多数方面是兼容的,对于开发者来说,几乎感觉不到任何不同。Maria DB是一个采用Aria存储引擎的MySQL分支版本,而Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS应用软件之一。而且MariaDB是发展最快的MySQL分支版本,新版本发布速度已经超过了Oracle官方的MySQL版本。
环境
由于本人使用的是kali2020系统所以,无法很好的直接使用mysql,而是使用了其代替产品,mariadb,这个和mysql的操作是基本一致的.目前,sql已经被orcle公司闭源的然而mariadb还是开源的,甚至在某些方面可能优于mysql.此外最让kali用户高兴的是,mariadb是默认安装好了的,只需要开启服务器可.
服务开启
systemctl start mariadb.service
关闭服务
systemctl stop maraidb.service
重启服务
systemctl restart mariadb.service
用户登录
一开始我们默认登陆的是root用户,这个也是权限最高的超级用户.我们需要登录它.
mysql -uroot -p
之后输入你kali的登录密码,当然其实你可以直接输入
mysql
默认登录root用户,不用输入密码.
用户的创建
创建的基本指令的格式如下:
create users 'usrname'@'指定用户登录的地址' identified by'password';
# 查看用户
select * from mysql.user;
例如:
create users 'Hello'@'localhost' identified by'abc123';
这里的'localhost'是本机IP
'%'则是指任意IP
如果你想要创建以后个可以远程连接的用户的话可以这样
create users 'Hello'@'%' identified by'abc123';
修改用户密码
当不小心忘记密码的话,你可以使用另一个有足够权限的账号登录数据库进行对那个账号的修改.
set password for 'Hello'@'%' = password('abcd123');
用户删除
drop usr 'Hello'@'%';
用户权限
当我们创建一个用户后我们可以通过
show grants for 'Hello'@'localhost';
查看
例如;
权限修改
先说说有哪些权限;
SELECT
INSERT
CREATE
DELECT
DROP
UPDATE
CRANT OPITON 给予其他用户权限的权限(当别人爸爸的权力)
现在我们给予它除了CREATEOPTION 的权利
grant all privileges on *.* to Hello@localhost;
revoke GRANT OPTION on *.* from Hello@localhost;
flush privileges; 让配置生效
这里不要慌,这个Hello用户当不了别人baba.
数据库
数据库查看
show databases;
数据库的大致结构
在每个表则类似于一个excel表格,具有分栏
切换使用数据库
use Name;
创建数据库
create database Name charset=utf8;
创建表
create table Name(id int primary key auto_increment,name varchar(128),age int)charset=utf8;
删除的话create改为drop
创建表时比较复杂的,那个括号里面的东西其实就是那个字段,也就是你做excel的时候的小分栏的标题.
格式是 name 类型 条件
例如 age int unique
年龄 整形 唯一的
表格字段的修改
(下面以A这个表为例子)
查看表格的创建
show create table A;
字段的添加
alter table Name add Name 类型 条件;
alter table A add ctl int unique;
此外还可以指定位置
alter table A add ctl int unique frist;第一个
alter table A add ctl int unique after name;在name的后面
修改字段名
这个可以修改名字和属性:
alter table A change ctl height int;
修改字段的属性
alter table A modify height varchar(128);
字段删除
alter table A drop ctl;
表的移动
alter table 表名 rename 数据库(另一个).表名;
alter table A renaem 另一个数据库.B;
把A表移动到另一个数据库名字为A(或改为B)
小补充
修改数据库的字符集
1.先看看有哪些字符集
show char set;
修改:
alter database Name default character set utf8 collate 字符集;
例如:
alter database Hello default character set utf8 collate utf8_general_ci;
2.修改表这个和修改数据库类似
alter table A default character set utf8 collate utf8_general_ci;
简单的增删改查
增:
insert into A(name,age,ctl) values('jack',18,192);
由于id是自增主键,所以可以不加,当然也可以加上.
例子:(select * from 表)
查:
这个一般配合 where 和 having 语句使用
例如
select name,age from A;
select age from A where name='make';
改:
例如修改 kkkkk 的名字为jack
update A set name='jack' where name='kkkkk';
删:
例如删除Jack
delete from A where name='jack';
如果不加where 的话那么这个表的内容都会被删除.
在实际操作中,查找的使用频率最高,下一篇重点写查找操作.