Mariadb SQL使用

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

相关文章
相关标签/搜索