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