Mariadb 操做以下:(下载:https://downloads.mariadb.org/)mysql
1、Window10上进行zip安装linux
一、解压,把\mariadb-10.3.11-winx64\bin)配置入环境变量 Pathsql
二、以管理员权限启动CMD开始安装服务,首先必须定位到上述bin目录,不然亲测安装以后启动不了,系路径错误!,命令:“mysqld.exe --install mariadb” (mariadb 为服务名,能够自定义),显示 “Service successfully installed.” 安装成功。数据库
PS D:\developer\mariadb-10.3.13-winx64\bin> mysqld.exe --install mariadbide
Service successfully installed.函数
三、启动这个服务,命令:“net start mariadb”,启动成功!编码
PS D:\developer\mariadb-10.3.13-winx64\bin> net start mariadbserver
mariadb 服务正在启动 .排序
mariadb 服务已经启动成功。ip
删除服务:mysqld.exe --remove mariadb
四、配置:
D:\developer\mariadb-10.3.13-winx64\bin> mysql -uroot
MariaDB [(none)]> set password = password("1234"); #设置密码
MariaDB [(none)]> flush privileges; #刷新
MariaDB [(none)]> exit
C:\Users\liubo>mysql -uroot -p1234
MariaDB [(none)]> show variables like 'character%'; #显示编码集
set character_set_client=utf8mb4 ; # 配置编码
set character_set_connection=utf8mb4 ;
set character_set_database=utf8mb4;
set character_set_filesystem=binary ;
set character_set_results=utf8mb4;
set character_set_server=utf8mb4;
set character_set_system=utf8 ;
show variables like 'character%'; # 查看配置结果
用户受权
mysql>grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
mysql>flush privileges;
2、数据库操做
查看数据库状态 # 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; --查询基本使用(条件,排序,聚合函数,分组,分页) --建立 --建立学生表 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