MariaDB安装及简单使用

mysql默认端口号:3306
1.安装mariadb数据库
做本地mariadb的yum源,配置文件如下:文件下载源指向Mariadb的官网
[mariadb]
name=MariaDB
baseurl=http://mirrors.ustc.edu.cn/mariadb/yum/10.3/centos7-amd64/
gpgkey=http://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
网络源的repo文件也不可以移走
安装:
# yum -y install MariaDB-server
2.启动服务
# systemctl restart mysqld
3.修改配置文件:跳过密码验证
# vim /etc/my.cnf.d/server.cnf
添加 skip-grant-tables (跳过密码验证)
4.登录数据库,不需要密码
# mysql -uroot
5.关于数据库操作的简单命令(命令尾巴必须加;号)
在linux界面下:
查看数据库版本号 # mysqladmin --version
修改数据库密码: # mysqladmin -uroot -proot password aaaaaa
# mysqladmin -u root -p password 123
进入数据库的界面:
# mysql -uroot -proot
给数据库添加密码为123
# update user set password=password('123') where user 'root';
列示数据库 # show databases;

 

 
查看数据库状态 # show create database 数据库名;
创建数据库(如果有特殊符号,要用` `引起来)
# create database 数据库名;
使用指定数据库 # use 数据库名;
修改数据库默认字符
# alter database 数据库名 default character set=utf8;
查看当前用户 # select user();
添加用户 # create user aaa identified by bbb;
赋予权限: # grant all privileges on *.* to bbb@'%';
all:权限,所有权限,最高权限
第一个*:数据库名字(可以指定个别数据库)
第二个*:数据库里的所有表(可以指定个别表)
bbb:给那个用户赋予权限
@:分隔符
%:指定登录模式
权限有四种:
select:查询
create:创建
update:更新
delete:删除
all:全部权限,最高权限
登录权限:
localhost:只能本地登录(在数据库的主机上登录,在linux终端)
%:本地和第三方软件都可以登录
 
刷新权限 # flush privileges;
查看指定用户权限 # show grants for '用户名';
收回权限 # revoke all on *.* from 'aaa'@'%';
查看权限 # show grants
添加表 # insert into student (name,age,gid) values ('zl',12,6)
创建root远程连接mysql # delete from mysql.user where user='';
删除匿名用户 # delete from mysql.user where user='';
查看用户命令表 # select Host,user,password from user;
创建一个root用户给最高权限设置密码为123
# grant all privileges on *.* to 'root'@'%' identified by '123';
如果root忘记密码:
先在配置文件中添加跳过密码验证
重启服务
进入mysql,设置密码
update user set password=password('123') where user='root';
--显示当前时间
select now();
--查看表结构
desc table_name
--查看表的规则
show create table table_name
--插入信息
insert into students values(0,'金星',18, 188.88, '中性', 0);
--查看表中所有字段
select * from students;
--修改表-添加字段
--alter table 表名 add 列名 类型;
alter table students add birthday datetime;
-- 修改表-修改字段:不重命名版
-- alter table 表名 modify 列名 类型及约束;
alter table students modify birthday date;
-- 修改表-修改字段:重命名版
-- alter table 表名 change 原名 新名 类型及约束;
alter table students change birthday birth date default '2000-01-01';
-- 修改表-删除字段
-- alter table 表名 drop 列名;
alter table students drop xxx;
-- 删除表
-- drop table 表名;
drop table students;
--全列插入
--insert into 表名 values(..)
--主键字段 可以用0 null default 来站位
insert into classes values (0, '大神班');
-- 向students表里插入 一个学生信息
insert into students values (0, '鹿鼎记', 20, '女', 1, '1990-01-01')
insert into students values (null, '鹿鼎记', 20, '女', 1, '1990-01-01')
insert into students values (default, '鹿鼎记', 20, '女', 1, '1990-01-01')
--部分插入
insert into students(name, gender) values ('小乔', 2);
insert into students(name, gender) values ('大乔', 2),('貂蝉', 2);
--修改
--update 表名 set 列1=值1, 列2=值2... where 条件;
update students set
--删除
-- 物理删除
-- delete from 表名 where 条件
delete from students;
delete from students where id=17;
-- 逻辑删除
-- 用一条字段来表示 这条信息是否已经不能在使用了
-- 给students表添加一个is_delete字段 bit 类型
alter table students add is_delete bit default 0;
update students set is_delete=1 where id=6;
alter table students add is_delete bit default 0;
--查询基本使用(条件,排序,聚合函数,分组,分页)
 
修改密码:update user set password=password('root') where user='root';
--创建
--创建学生表
create table students (
id int unsigned not null auto_increment primary key,
name varchar(20) default '',
age tinyint unsigned default 0,
high decimal(5,2),
gender enum('男', '女', '中性', '保密') default '保密',
cls_id int unsigned default 0,
is_delete bit default 0
);
--创建班级表
create table classes(
id int unsigned auto_increment primary key not null,
name varchar(20) not null
);
--往students表里插入数据
insert into students values
(0,'小明',18,180.00,2,1,0),
(0,'小月月',19,180.00,2,2,0),
(0,'彭于晏',28,185.00,1,1,0),
(0,'刘德华',58,175.00,1,2,0),
(0,'黄蓉',108,160.00,2,1,0),
(0,'凤姐',44,150.00,4,2,1),
(0,'王祖贤',52,170.00,2,1,1),
(0,'周杰伦儿',34,null,1,1,0),
(0,'程坤',44,181.00,1,2,0),
(0,'和珅',55,166.00,2,2,0),
(0,'刘亦菲',29,162.00,3,3,0),
(0,'金星',45,180.00,2,4,0),
(0,'静香',18,170.00,1,4,0),
(0,'郭静',22,167.00,2,5,0),
(0,'周杰',33,178.00,1,1,0),
(0,'钱小豪',56,178.00,1,1,0),
(0,'钱小豪',38,175.00,1,1,0);
--向classes表里插入数据
insert into classes values (0, '云唯_01期'),(0, '云唯_02期');
 
--查询
-- 查询所有列
--select * from 表名
select * from students;
--一定条件查询
select * from students where name='周杰伦儿';
select * from students where id>3;
-- 查询制定列
select name, gender from students;
-- 使用as给字段起别名
select name as 姓名, age as 年龄 from students;
-- 通过表名字查询
select students.name, students.age from students;
-- 给表起别名查询
select s.name, s.age from students as s;
--消除重复行
-- distinct
select distinct gender from students;
--条件查询
--比较运算符
-- 查询年纪大于18岁的信息
select * from students where age > 18;
select id, name, gender from students where age > 18;
--18岁到28岁之间(and)
select * from students where age>18 and age<28;
--在18岁以上或者身高180以上的人(or)
select * from students where age>18 or high>=180;
-- 模糊查询
-- like
-- % 替代1个或者多个甚至是没有
select * from students where name like '小%';
-- 查询姓名中有‘小’的所有名字
select * from students where name like '%小%';
-- 查询有两个字的名字
select * from students where name like '__';
-- 查询至少有2个字的名字
select * from students where name like '__%';
-- rlike 正则
-- 查询以周开始的名字
select * from students where name rlike '^周.*';
select * from students where name rlike '^周.*儿$';
--范围查询
-- in (1,3,8)表示在一个非连续的范围内
-- 查询 年纪为18,34的人
select * from students where age=18 or age=34;
select * from students where age=18 or age=34 or age=12;
select * from students where age in (12,18,34);
--查询 年龄在17岁到34岁之间的信息
select * from students where age between 18 and 34;
--查询 年纪不在18到34岁的信息
select * from students where age not between 18 and 34;
-- 空判断
-- 判断is null
-- 查询身高为空的信息
select * from students where high is null;
-- 判断非空is not null
select * from students where high is not null;
-- 排序
-- order by 字段
-- asc从小到大排列,即升序
-- desc从大到小排序,即降序
-- 查询年纪在18到34岁之间的男性,按照年纪从小到大
select * from students where age between 18 and 34 and gender=1;
select * from students where age between 18 and 34 and gender=1 order by age;
select * from students where age between 18 and 34 and gender=1 order by age asc;
select * from students where (age between 18 and 34) and gender=1 order by age desc;
-- 查询年纪在18到34岁之间的女性,身高从高到矮
select * from students where (age between 18 and 34) and gender=2 order by high desc;
-- order by 多字段
-- 查询年纪在18到34岁的女性,身高从高到矮排序,如果身高相同的情况下按照年纪从小到大排序
select * from students where (age between 18 and 34) and gender=2 order by high desc, age desc;
-- 查询年纪在18到34岁的女性,身高从高到矮排序,如果身高相同的情况下按照年纪从小到大排序,如果年龄也相等那么按照id从小到大排序;
select * from students where (age between 18 and 34) order by high desc, age,id;
-- 按照年纪从小到大、身高从高到矮的排序
select * from students order by age asc, high desc;
 
--聚合函数
-- 总数
-- count
-- 查询男性有多少人
select * from students where gender=1;
select count(*) from students where gender=1;
select count(*) as '男性' from students where gender=1;
-- 最大值
-- max
-- 查询最大的年纪
select age from students;
select max(age) from students;
-- 查询女性的最高 身高
select gender,max(high) from students where gender=2;
-- 最小值
-- min
select min(age) from students;
-- 求和
-- sum
-- 计算所有人的年龄总和
select sum(age) from students;
-- 平均值
-- avg
-- 计算平均年纪
select avg(age) from students;
-- 计算平均年纪 sum(age)/count(*)
select sum(age)/count(*) from students;
-- 保留2位小数
select round(avg(age), 2) from students;
 
-- 分组
-- group by
-- 按照性别分组,查询所有的性别
select gender from students group by gender;
-- 计算每组性别的人数
select gender, count(*) from students group by gender;
-- 计算男性人数
select gender, count(*) from students where gender=1 group by gender;
--把查出来的内容拼接成一个字符串concat
select concat(id,name,age) from students;
select concat(id,' ',name,' ',age) from students;
-- 查询男性组中的姓名 group_concat
select gender, group_concat(name) from students where gender=1 group by gender;
select gender, group_concat(name,age) from students where gender=1 group by gender;
select gender, group_concat(name,age,id) from students where gender=1 group by gender;
select gender, group_concat(name,age," ",id) from students where gender=1 group by gender;
-- having
-- 查询平均年纪超过30岁的性别,以及姓名 having avg(avg) > 30
select gender, group_concat(name), avg(age) from students group by gender having avg(age)>30;
-- 失败操作:
select gender, group_concat(name), avg(age) from students where avg(age)>30 group by gender;
-- 查询每种性别中的人数多于4个组的信息
select gender, group_concat(name) from students group by gender having count(*)>4;
-- 分页
-- 显示5页
select * from students limit 2;
-- 分页显示,每页显示2条数据
select * from students limit 0, 2;
-- 按照身高从高到矮排序,查找出所有女性,并且分页显示,每页显示2条数据
select * from students where gender=2 order by high desc limit 0, 2;
   -- 数据库的备份与恢复
    备份并不是将数据库的信息备份,而是将数据库的sql语句备份,备份的时候在linux界面备份,还原的时候进入数据库还原
 备份一个数据库:      
    # mysqldump -uroot -proot --databases 数据库名 > 数据库名.sql
备份所有数据库:      
    # mysqldump -uroot -proot --all-databases > all_databases.sql
备份一个数据库中的一个表: 
    # mysqldump -uroot -proot 数据库名 表名 > 表名.sql
还原数据库:
    # source xxxx.sql

 


  

posted @ 2018-11-11 13:50  Dayle  阅读(5539)  评论(0编辑  收藏  举报